Web 5 是一个去中心化的平台,为网络提供一个新的身份层,以启用去中心化应用和协议。
在目前的网络模型中,用户并不拥有自己的数据或身份。他们被公司提供账户,数据被锁在各个应用程序的孤岛里。为了创建一个新的去中心化应用程序和协议类别,把个人放在中心位置,我们要让他们拥有自己的身份,并让他们重新掌控自己的数据。
Web 5 的组成部分去中心化网络平台主要有三个支柱,这三者都基于开放标准。
去中心化的身份标识符我们今天所知和使用的账号或账号名归政府、公司、组织或其他中间商所有。例如,我们的电子邮件地址和社会媒体用户名这些账号是由服务提供商掌控的。这些公司可以随时停用或删除这些账号,而我们对此基本无能为力。
在我们能够实现真正去中心化的应用之前,我们需要由用户拥有并控制的去中心化的身份标识符。这样就不再需要依赖集中化的实体来进行身份验证和代表我们。
去中心化标识符(DIDs)是W3C的一个标准。它们遵循一种标准化的结构,基本上链接到你的相关信息。
这是一段由三个部分构成的长文本。
- URI方案标识符(即did)
- DID方法的标识符(见此处)
- 特定于DID方法的标识符
在Web5中,DIDs是唯一与区块链相关的组件,这一般只用于锚定与该ID相关的密钥和端点。
话虽如此,将DIDs锚定在比特币(或其他区块链上)并不是强制要求。事实上,DIDs的标准化格式非常棒,它们既可以在任何地方被锚定,也可以完全不被锚定,但这仍然可以正常运作,不过去中心化程度会有所不同。
以下是一些比特币区块链、以太坊区块链和网页上的DID示例。请注意,它们都采用了相同的格式:方案、DID方法及其特定标识符。
did:btcr:xyv2-xzpq-q9wa-p7t
did:ens:some.eth
did:web:example.com
去中心化标识符(如上所示)包括以下几种格式:
did:btcr:xyv2-xzpq-q9wa-p7t
did:ens:some.eth
did:web:example.com
全屏...退出全屏
由于个人数据不存储在区块链上,DID实际上就像是一个URI,将DID所标识的对象(比如一个人、公司或物品)与一个存在于链下的DID文档关联起来。
DID 文档是存储在例如去中心化存储系统(如 IPFS)中的 JSON 文件,描述了如何与 DID 主体互动。DID 文档包含 DID 主体的公钥、认证及验证方法,以及指向主体数据位置的服务端点。
{
"@context": "https://www.w3.org/ns/did/v1",
"id": "did:ion:EiClkZMDxPKqC9c-umQfTkR8",
"verificationMethod": [
{
"id": "did:ion:EiClkZMDxPKqC9c-umQfTkR8",
"type": "Secp256k1VerificationKey2018",
"controller": "did:ion:EiClkZMDxPKqC9c-umQfTkR8"
}
],
"authentication": ["did:ion:EiClkZMDxPKqC9c-umQfTkR8"]
}
点击进入全屏,点击退出全屏
可验证的凭证可验证凭证 是正式批准的 W3C 标准,与去中心化标识紧密合作,实现无需信任的互动——这意味着双方在无需信任的情况下就能互动,但关于 DID 主体的声明可以被核实。
比如说,爱丽丝需要证明她在Acme有个账户。Acme会发放一个经过加密签名的可验证凭证,这个凭证会存到她的身份钱包里。
这个凭证的发行者是 Acme,主题是 Alice,还包括 Alice 的账户号码和名字和姓氏。
当有人要求提供银行证明时,Alice出示了由她自己以及她的银行共同签名的可验证凭证 (Verifiable Credential)。
这是在网络上共享凭证的一种简单且易于机器读取的方式。验证者不认识或信任爱丽丝,但他们认为Acme是可靠的,因此Acme实际上为爱丽丝做了担保,从而把信任传递给爱丽丝。
去中心化节点今天,集中的实体作为我们的数据仓库,应用程序在它们的服务器上保存了我们的所有内容和偏好。
去中心化Web节点(DWN)通过让我们能够将我们的数据从使用的应用程序中分离出来,并将其托管在我们自己的个人数据存储空间中,从而改变了现状。
BlueSky 是一个很好的例子;它是一个去中心化的社交媒体平台。你的推文和连接都不会存储在 BlueSky 上。它们是由你来保管的。因此,你可以在任何你选择的去中心化社交平台上展示你的内容,而不仅仅是 BlueSky。
你的DWN可以存储公开和加密的数据。比如说,在一个去中心化的社交媒体应用中,你希望帖子和好友关系是公开的,但是想让你的私信保持保密。
你的去中心化网络节点并不位于区块链上。你可以将你的网络节点托管在任何地方(比如手机、电脑等),并且可以将它们复制到你的设备和云端,所有数据都会同步更新。
虽然自己托管您的DWNs可以为您提供分散数据的方法(去中心化网络),我们认识到一些用户出于便利的原因会更愿意让他人托管他们的Web节点。我们预计将来会有供应商将提供托管您Web节点的服务。这样做的好处是您可以加密任何私密数据,因此与今天云服务商能够扫描托管在他们平台上的所有内容不同,即使您的Web节点由中间商托管,您仍然可以保护一些隐私。
你的DWN(去中心化存储网络)与你的DID(去中心化标识符)相关联,并列在DID文档里。
请注意 DID 文档中的 serviceEndpoint
部分指定了服务端点位置,并提供了指向这些节点的 URI,以便于访问这些节点,
{
"@context": "https://www.w3.org/ns/did/v1",
"id": "did:web:example.com:u:alice",
"service": [
{
"id": "#dwn",
"type": "去中心化网络节点", // "DecentralizedWebNode"
"serviceEndpoint": {
"nodes": ["https://dwn.example.com", "00:11:22:33:FF:EE"]
}
}
],
"verificationMethod": [
{
"id": "did:web:example.com:u:alice",
"type": "Secp256k1VerificationKey2018", // "Secp256k1验证密钥2018" for clarity
"controller": "did:web:example.com:u:alice"
}
],
"authentication": ["did:web:example.com:u:alice"]
}
点击这里进入全屏模式,点击这里离开全屏模式
如果一个应用有你的DWN地址,它就可以向你发送数据请求。
这是一次应用程序请求,旨在获取符合SocialMediaPosting
模式的所有DWN对象。
POST https://dwn.example.com/
BODY {
"requestId": "c5784162-84af-4aab-aff5-f1f8438dfc3d",
"target": "did:example:123",
"messages": [
{
"descriptor": {
"method": "CollectionsQuery",
"schema": "https://schema.org/SocialMediaPosting"
}
},
{...}
]
}
全屏模式,退出全屏。
DWN中的数据是符合通用标准的JSON对象,这使得任何应用都可以根据其语义类别来发现和处理这些数据。
如果数据是公开的,那些对象会自动回传给应用程序;如果数据是私有,节点所有者需要给应用程序访问权限。
身份钱包这些过程对非技术人员来说可能相当复杂。因此,我们需要一个简单且易于使用的界面,让非技术人员能够访问和管理他们的身份信息。
一个设计良好的身份钱包会提供管理分散在网络中的数据、去中心化ID及其使用情境的方法,包括可验证的凭证(例如数字证书)和权限。
去中心化的 Web 应用Web 5 让开发人员可以构建去中心化的网络应用程序(DWAs),并且所有这些都是开源的!您可以自由地将它作为基础,并专注于真正关心的东西,比如您的应用程序。Web5 为 DWAs 带来了与云和应用服务器为传统企业应用带来的好处类似的功能。它处理了其中的难题。它实现了去中心化,帮您管理身份和数据。通过在 Web5 上构建您的应用,您将获得去中心化、身份管理和数据管理等功能,这些都已集成到平台中。
这无疑是对我们数据交换方式的根本性改变,但这并不是对我们现有的互联网进行彻底改造。它的工作方式类似于渐进式Web应用,不过你需要添加去中心化网络节点的SDK,但你还需要添加去中心化网络节点的SDK,这样应用程序就可以真正实现无服务器化,因为数据并不存储在这些应用里。
在这个平台上你能建造的东西没有上限,但这里有一些很酷的基本例子。
音乐应用没有人喜欢反复为不同的应用重复创建音乐播放列表。有了 Web5,你就不用再这么麻烦了。
在这一例中,Groove 可以写入 Alice 的去中心化的网络节点并添加一个新条目。
潮汐可以读取爱丽丝的DWN中的数据,因此能够读取Groove添加的新条目,现在爱丽丝可以在两个应用程序上轻松访问她的播放列表了。
随着数据在不同应用中的持续使用,不仅 Groove 和 Tidal 可以拿到爱丽丝的数据,还用这些数据来提升她的体验,从而给她带来的体验比不用这项技术时更好。
旅游相关App你的旅行喜好、机票和预订分散在那么多不同的酒店、航空公司、租车公司和旅游应用程序中,协调起来非常困难。万一出了什么差错,比如航班延误,你得联系租车公司,告诉他们你会晚到,如果真的晚到很晚,你可能还得给酒店打电话,让他们不要误以为你爽约。而这一切都是在你匆忙赶往机场的时候发生的。
Web 5能帮助我们把这些不同的应用体验统一起来。
如果爱丽丝给酒店、航空公司和租车公司访问她在DWN中的Reservation
和Trip
对象,这样一来,他们可以相应地调整以适应任何更改。
这些只是在 Web 5 之上可以实现的一些应用。一旦网络真正去中心化,就像它本来应有的样子,就会有更多的可能。