3Box Joel | 去中心化数字身份与数据,未来在何方?
如何建立更好的信任网络?
带着这个问题,Ceramic Network & 3Box CTO Joel Thorstensson,在BeWater DevCon 2021 全球开发者大会上,和大家分享了,他对「去中心化数字身份与去中心化数据的未来」的理解。
摘要:如果把主权数据变成一个最小可验证的、可修改的数据对象,这样一个稳定的数字身份,可以通过密匙控制访问,并且是可扩展的。把互联网上的大部分数据放到这个系统上,当我们进入一个网页,看到别人的评论时,我会知道它背后是一个真实的人,并且可以与那个人创造在加密世界的关系。
BeWater
大家好,我叫 Joel。我是 3Box Labs 和 Ceramic 的联合创始人。今天我将谈论去中心化的数字身份和数据,以及在某种程度上,这对用户身份和在线声誉有什么影响。
BeWater
一、信任网络
我想先回顾一下,看看早期为实现这样的东西所做的努力,这被称为 "信任网络"。
"信任网络"是这样一个想法:你可以在拥有 PGP(优良保密协议)密钥的用户之间建立一系列的信任关系。这些用户基本上通过签署对方的密钥来建立信任关系。所以你有这样一种严格的形式来定义信任。
基于所有的信任关系图,你可以开始获取和计算规律,比如你在网上看到一个随机的用户,他们有一个公钥,并声称是某个特定的人,你可以推测他们是否可能是那个人,或者他们是否试图欺骗你。
虽然这是一个超级酷的想法,但它还没有真正实现,我认为其中一个主要原因是,它通常需要一个非常严格的方式来定义什么是信任关系。
简单讲,你作为这些 PGP 签署方之一,将与你信任的人使用各自的密钥进行签名。但如果你尝试再思考人与人之间的关系,以及我们是如何建立信任的,你会发现这与现实非常不同。
我们以各种不同的方式建立信任。我们不仅在网上这样做,我们还在网下建立信任,而你尝试着用一种僵硬的方式来做,这是不可能的。要实现这样一个系统,会有一些难以跨越的鸿沟。
但我认为,以我们今天所拥有的技术,我们实际上可以建立一个非常接近的,更灵活的信任网络。
BeWater
二、更灵活的信任网络
因此,如果我们考虑开始这样做,我们需要能一个能装载所谓“信任”的东西。在 PGP 时代, 你所拥有的 PGP 密钥,实际上是一个包含所有公钥的大文件。今天,我们有不同的载体,或者说是更好的载体。例如,以太坊上的地址,对于常人而言仍然有点不方便。那是一串由一长串随机的字母和数字组成的字符串。你可能要不时地更换以太坊地址,更换你的硬件钱包或其他东西,所以如果我们要有一个长期的数字身份,这并不是真正的最佳选择。
然后是 ENS 以太坊域名服务,相较而言好一些。它变成了一个人类可以理解的名字,你甚至可以把它指向不同的以太坊地址。但是,如果你看看人们如何使用 ENS,他们倾向于不时地改变他们的 ENS,因为它就像你的昵称,而你的昵称是你可能随时想要改变的。
因此,我们还需要一些其他的解决方案,来作为一个数字身份,并继续在此基础上建立信任,而不首先于某一种特定的方式。
BeWater
三、中心化的数字身份
我们认为最好的方法是使用去中心化的数字身份,即DID,这是W3C 组织制定的基于数字身份的多重/复杂信任的标准。
如果你有 DID 数字身份,也就有了 DID 方法和身份。你可以通过这个方法,将这个数字身份解析为一个 DID 文档。DID 文件包含你的验证密钥,用来验证签名,以及你的加密密钥,用来发送加密信息。DID 标准允许你即使随着时间的推移改换密钥,却依然保持相同的 DID 数字身份。
有了 DID,你实际上可以开始将你的 ENS 名称、你的以太坊地址、类似 Polygon、Optimism 这样的区块链账户以及其他区块链地址也指向同一个数字身份。你可以使用在不同网络上建立的应用程序,然后将你的数据,你在不同地方说过的话,以及你建立的信任关系,全部指向 DID,而不是一定要绑定到你的 ENS 上,因为 ENS 可能会随着时间的推移而改变。
一旦我们有了这种可以依赖的数字身份,我们就需要一种可靠的办法来存储数据,并让数据可以被验证。否则的话,如果数据被放在服务器的某个地方,别人可能会改变它,这当然不行,如果我们希望为我们正在建立的这个新的 "信任网络 "打下坚实的基础。
我们把符合这种条件的数据称为 "主权数据"。它本质上是可以被验证的加密数据对象。举个例子,IPFS 上的一个文件是一种主权数据。如果哈希值是正确的,你就知道那是你实际请求的文件。基于密码学证明,以太坊上的合约不可以改变,因为它遵循逻辑。JWT 只是一种简单的签过名的 JSON 对象。这些例子都有不同类型的加密验证方式。
我们希望主权数据是一个最小可验证的、可修改的数据对象,一个稳定的数字身份,可以通过密匙控制访问,并且是可扩展的。我们希望能够把互联网上的大部分数据放到这个系统上,希望当我们进入一个网页,看到别人的评论时,我可以相信它确实来自那个人,并且与那个人互动时我们有某种可验证的加密关系。
BeWater
四、去中心化数据演变
因此,为了了解我们如何建立这种类型的主权数据系统,让我们看看去中心化数据的演变。
首先,我们成功推行的去中心化网络是和现在完全不同的。比如 BitTorrent,它是一种允许你在互联网上分享简单的文件的去中心化网络。你有这个磁力链接,它本质上就像种子文件的哈希值,包含数据本身的信息。拿着那个链接,你可以在网络中找到这个人,并从那里找到内容。所以它本质上就像第一个版本的内容可寻址网络,IP 地址也是 BitTorrent 技术的整合后的一种。
但是这里有一个问题,那就是在 BitTorrent 网络中没有办法更改一个文件。每一个被创立的种子文件,它永远都是这样的。因此,在过去,你需要有办法来为所有的磁铁链接制作索引,这就是为什么我们需要像海盗湾这样的网站来避免单点故障。
但后来出现了比特币网络,还有以太坊。这些区块链网络让我们有了一个去中心化的全局状态。在区块链世界中,每个区块都会引入一些交易,并根据这些交易修改整个系统的状态。以 Ethereum 为例,我们有一系列称为智能合约的可同步的数据对象。所有的智能合约都要被同时更新。
为了验证某个错误的合约状态,你需要验证整个区块链的数据,这样才能够知道所有系统记录的消息确实都是在某个时间点发生过的,且所有事情都是按照正确的顺序发生的。
所以这很好。现在我们有一个可依赖的去中心化的状态对象。但是,如果你想这个网络能够拥有整个互联网的数据价值,你也许不希望比如每次我同步一个网站,都需要同步整个网络的状态。我们需要一些更可扩展的东西,希望能够只验证我所关心的数据对象,而不是整个网络。
在这个演变过程中,特别是对于数据来说,下一步的发展是流网络。在流网络中我们有独立的数据对象,并且可以在不同步整个网络的状态下进行验证。每个数据对象都有一个流,相当于记录在一段时间内发生过的被签名过的事件的日志。而这些事件被周期性地记录在区块链上。
你可以在下边的图片中看到这个例子。
正如你所看到的,它被记录在区块链中,我们需要这样做的原因是,这样我们可以对事件的发生有一些确定性。而且我们实际上可以将一堆不同的流记录在区块链上的一个交易中,所以我们可以使其具有相当的可扩展性。
BeWater
五、Ceramic Network
Ceramic Network 是一种像这样的流网络。
Ceramic 是一种以流的形式存在的可独立验证的数据对象的网络,这些流是用户签名提交的事件日志。Ceramic 中的用户以 DID 表示,所以一开始我们就把这个身份系统建在里面。这样导致的一个非常酷的事情是,我们可以真正创建链接数据图。
链接数据网实际上是在互联网社区中被研究了很久的东西。W3C 曾有一个设想叫做 "语义网",他们试图从本质上取代互联网在网站层面上的链接,即不同的网站相互链接,再往下走一步,让数据库,每个服务器都相互链接,所以本质上创造这个跨互联网存在的数据库。
但是,这样做的一个问题是,如果我正在构建一个应用,我把这个构建到一个链接的数据库中,而我要指向你的数据库上的一些数据,我不能确定你不会把这个数据下线,或者你不会被审查,这些种种可能会对我正在构建的应用产生严重后果。所以,我认为阻碍语义网实现的主要原因就是之前我们没有优于只是指向某个地方的服务器的可靠系统。
但是有了 Ceramics,因为这些数据流有独立和稳定的数字身份,我们实际上可以开始创建所有这些独立的数据对象的链接数据图,这些数据对象相互链接。即使我链接了你创建的数据对象,而你和你创建的对象最后都消失了,我也可以有这个对象的备份,我可以通过网络找到它,因为 Ceramic 网络不是按服务器位置寻址的。它对每个数据对象都记录数字身份。这样我们就可以建立更加强大的语义网。
BeWater
六、去中心化的用户表
回到信任的建立。
我认为这里的一个更有意义的应用是一个去中心化的用户表。我们有了 DID,它链接到你在不同网络上的不同区块链账户,而通过这个 DID,你开始关联数据。我们在 Ceramic 上面创建了一个叫做 Self.ID 的系统,它允许开发者自己创建数据定义。
以用户账号为例,开发者可以自己创建定义,描述用户数据的结构和对象是什么。因此,当有一个用户来使用某个应用程序时,程序会告诉用户这是他们需要的数据定义,让用户填入信息。在用户的索引里就多了一条记录。如果一个不同的用户来到这个程序,他将有自己的索引,但使用可以这个相同的定义 ID 并拥有他们自己的记录。
因此,每个用户可以有相同结构的用户表的一部分,但他们有自己的记录。当一个新的开发者来到这里,看到这样的用户数据定义似乎超级有用,并且想在自己应用程序中使用它。现在我们就可以拉入由其他应用程序生成的数据。如果用户允许,我们就可以开始实现用户数据的可组合性,并在 Web3 的所有应用程序中创建了一个共享的用户表。
BeWater
结语
我希望对大家有所帮助。如果你想了解更多,可以在我们的网,查看我们所有的开发者文档。非常感谢!
————————————————
历史文章:
- 闭门会报名 -