-
Zooko三角
推荐好文:介绍DID--理解去中心化身份
每一个从事密码学研究的人都幻想,我们每个人一出生大脑中就有嵌入的私钥芯片,这样我们就可以随时确定自己的身份,而不必担心身份被盗或被骗。不幸的是,我们现在并不是生活在这样一个赛博朋克的乌托邦里,而是一个密码和社会安全号码不断被盗的破碎系统中(译者注:Social Security Number (SSN)为美国社会安全卡(Social Security Card)上的 9 位数字。SSN 原本目的是用于追踪个人的纳税情况,但是现在用途已被扩大到包括区分个人身份,类似中国“居民身份证号码”之作用。社会安全号码一般写作类似 450-12-3672 这样“3位 - 2位 - 4位”的形式。)。
与此同时,区块链技术承诺可以将个人数据的所有权从公司和政府手中返还给个人,进行数字身份变革,从而使个人拥有权力与他人共享数据,并且可以随时撤回。
为了更深入地理解为什么区块链技术对于身份(认证)很有效,我们首先需要从哲学的角度理解身份的定义。请你设想如下的思维实验——两个放在一起的弹珠看起来完全相同。虽然这两个弹珠的本质(比特和原子)是相同的,但是它们的身份是不同的,因为我们能够给每个弹珠一个类似于“弹珠A”和“弹珠B”的唯一标识来区分它们的身份。
但是,一旦我们将这两个弹珠放到口袋里混合一下,这种标识便失效了,我们没法再区分出哪个是“弹珠A”,哪个是“弹珠B”。这种标识问题的一种解决方案是拥有一个无所不知的观察者,在两个弹珠混合过程中一直盯着弹珠(从而在两个弹珠混合后,仍然能够区分出哪个是“弹珠A”,哪个是“弹珠B”)。这种解决方案是可行的,因为时间(第四维空间)作为了身份的时间指标。区块链(保证过去状态的日志不可被篡改)能够提供时间连续性,因此即便是物理环境发生变化时,也能正常用于追踪身份。
身份是 Web 3 基础设施缺失的最重要的一部分,有许多项目采用不同的方式构建整个去中心化应用生态系统可以使用的身份层。目前关注度最高的两个层次是 namespaces(命名空间) 和 attestations(认证)。
一.命名空间
去中心化身份的一个关键点是:如何在没有中心持有的注册机构的情况下,能够标识世界上的人、设备以及其他实体。
在区块链系统中,我们现在使用地址来标识我们的身份——一个形如“0x9992437898114d2770522e050883d6b2dfc48326”的没有实际意义并且很难记住的长字符串。要是我们能够将每个地址与唯一且可读的名称对应会怎么样呢
在计算机科学中,命名空间(Namespace)用于组织对象,使得一些对象虽然拥有同样的命名,但不会发生混淆。文件系统(给文件命名)和 DNS (全称:Domain Name System(域名系统),为网站命名)就是命名空间的例子。
类似地,在区块链中,我们希望维护一个包含地址和名称唯一对应的全局表。此外,理想情况下,我们希望这个对应表是一直安全、去中心化、并且容易理解的。这可行么?我们直接来看一看 Zooko 三角。
Zooko 三角,以 Zcash CEO,Zooko Wilcox 的名字命名,是网络中命名系统的三个理想性质的三难选择困境。
安全:当你查找一个名字时,你能够得到正确的结果,而不是一个假名。
去中心化:没有中心化权威机构控制所有的名字。
可理解的:名字是人们可以记住的,而不是某一长串随机的字符。
Zooko 声称数字名称是无法同时包含以上 3 种性质的。以下几个例子使用了该框架:
DNSSEC, DNS 的安全扩展,提供了一种去中心化且便于理解的命名机制,但是不安全,无法抵御对根服务器的攻击。
比特币地址是安全且去中心化的,但是不便于理解,没有实际意义。
I2P, 匿名、防审查的点对点通信协议,使用本地运行的安全名称转换服务,并且便于人理解,但是需要在去中心化网络中增加权威节点。
解决方案
自从 Zooko 提出他的三难困境以来,已经有了几种解决 Zooko 三角的方案。Nick Szabo 首先在他的论文 “Secure Property Titles with Owner Authority(含所有者权限的安全产权)” 中提出了一种解决方案,文章指出这三种属性都能够达到拜占庭容错的限制。
Aaron Swartz 后来提出了一种基于比特币的命名系统,该系统使用 PoW 共识来建立名称所有权共识。这个解决方案促进 Namecoin 产生。Namecoin 是比特币区块链的第一个 fork,也是 Dot-Bit 所在底层区块链。Dot-Bit 是第一个满足 Zooko 三角的去中心化 DNS 实例,使得用户能够将他们现有域名与 .bit 地址绑定。
自 7 年前发布以来,Namecoin 主要由于用户体验差,而很少被采用。(Namecoin中)拥有成千上万的域名,但是仅有约 30 个开发了 Dot-Bit 网站。有传言说,Namecoin 的开发者曾经找谷哥和 ICANN 寻求潜在合作,背离了使用去中心化 DNS 替代中心化管理的最初目标。
Onename, 由 Princeton 研究员 Ryan Shea 和 Muneeb Ali 于 2014 年 3 月推出,是另一个身份系统,将用户名以及个人资料存储在比特币区块链上。目前,Onename 已经发展为 Blockstack 去中心化应用平台的命名空间注册商(类似于 GoDaddy)。Onename 也是一项技术,它使得 Blockstack 用户能够在不同去中心化应用中保留所有个人数据的所有权,从而减弱 Google 和 Facebook 目前的数据垄断。
ENS 是以太坊上的 DNS,同时具有安全和去中心化的特点。智能合约充当注册商管理和更新以太坊中的名称,而不是像 GoDaddy 中一样使用中心化服务。任何人都能使用 ENS 创建一个可读的 .eth 的子域名,ENS 解析器充当着类似于翻译器的工作,将 ENS 名称转换到对应地址。在 Metamask、MyCrypto、Status 等支持 ENS 的钱包中,用户可以向某些便于记住的地址(类似于“alice.eth”)而不是 '0x4cbe58c50480…' 转钱。ENS 自推出之后,已经注册了超过 16 万个域名,涉及超 320 万 ETH 的账户。
Handshake 是一个由 Joseph Poon (闪电网络和 Plasma 提出者)主导的新项目,旨在将 DNS 根空间(DNS root zones)去中心化,并且取代 ICANN 以及认证中心(CA)。Handshake 构建在一条新的 UTXO 区块链上,其中所有点对点全节点都是持有根空间文件的根服务器,从而使得根空间不受审查、无需许可,并且不受网关限制。目前, Namebase 等项目允许用户在 Handshake 区块链上注册顶级域名,构建钱包和交换 Handshake 币(HNS),使得 Handshake 更易于使用。
从上图可以看出,Dot-Bit 和 ENS 等项目分别单独支持 .bit 和 .eth 域名地址,而 Handshake 向去中心化 ICANN(根域名文件网关) 又前进一步。来源:zk Capital-
总而言之,Handshake 是一个非常有野心的项目,它有可能改变 DNS 和域名服务目前的运作模式。不过,要获得广泛接受以及打破诸如 Verisign 等现有证书颁发机构的垄断是非常困难的,因为操作系统默认采用 DNS。
OpenAlias 和 Portal Network 等项目也在尝试解决 Zooko 三角。
认证
对于一个去中心化身份系统而言,拥有同时满足安全性、去中心化、便于理解的命名空间是不够的。解释一下,当 OneName 推出时,有人立即注册了用户名 +gavin,为此 OneName 之后不得不为比特币核心开发者保留 +gavinandresen。
为了防止有人在网上冒充别人,我们需要验证每个人实际上就是他们声称的那个人。例如,你在 Airbnb 上租房之前,你必须验证你的电子邮箱和电话,有可能还需要验证你的 Facebook、LinkedIn、Google 账号。在这种情况下,Airbnb 充当信任中介 —— 买家和卖家都确信 Airbnb 已经完成了验证过程。但是在去中心化应用的世界中,我们不再信任第三方,但我们仍然需要在智能合约执行之前验证某人的身份。
因此,认证是去中心化身份系统中信任和声誉的基石。在现实世界中,我们使用驾照或护照等证件证明我们的身份。这些文件包含有关我们的事实,例如,我们的姓名、年龄、眼睛颜色。但是驾照在互联网上并不存在。相反,我们需要找到一个将真实身份和加密身份关联的方法。至于如何最好地实现这一目标,目前还没有定论,许多组织都正在摸索。
身份自治产品
一种解决方案是拥有独立的身份产品。这种身份产品需要满足四个基本特性:
身份具有某种唯一标识。(存储这种标识的最佳体系结构就是上文描述的满足 Zooko 三角的命名空间。)
第三方能够声明(注册)某个身份的信息。声明中包括例如名称、地址、电子邮件等。
能以某种方式请求用户的身份认证。
能有某种方式查询有关某身份的声明。
- Facebook 和 Twitter 目前能够认证某些人的 Blockstack 身份。-
独立身份识别产品具有自治(self-sovereign)的优点。身份自治是一种可以在不同去中心化应用间迁移的数字身份,不依赖于任何政府或公司,也永远不会被拿走,而不像现在的互联网,只要你将你的社会安全码(SSN)给了某个人,他不经过你的同意,就可以在任何地方使用,从而可能导致身份盗窃。有了自治的身份,你就可以在连接 dApp 时保留对社会安全码等身份信息的控制、同时证明自己的身份,还不需要把这些身份信息复制一份给 dApp。
有许多团队试图构建身份自治标准。
ERC 725 提出了一种管理以太坊区块链链上身份的标准。由 Fabian Vogelsteller 提出,他还提出了非常成功的 ERC 20 代币标准。一个 ERC 725 身份合约包含一个加密签名,证明该合约所有者控制对其身份的特定声明,例如:电子邮件或电话号码。Origin Protocol 是一种用于创建无需中介的共享经济的协议,在智能合约执行前,使用 ERC 725 验证参与方的身份证明。
uPort 是一种身份自治钱包,让你能够完全控制你的身份以及个人数据。开发团队是 ConsenSys,你可以使用 uPort 在以太坊上创建身份、安全登录去中心化应用且无需密码、管理你的个人信息和认证、签署以太坊交易以及数字签名文件。uPort 最新开发出一种新型去中心化数据存储解决方案 —— 3Box,3Box 使得以太坊用户能够使用任意钱包上传他们的信息并在不同 dApp 间分享。uPort 已经与瑞士 Zug 州合作,为居民提供数字身份证,将真实世界的身份与区块链联系起来。
-uPort 通过分解身份智能合约,在 ERC 725 标准上做了升级。他们新的分层架构提案是 ERC 780。来源:uPort-
Civic 项目由连续创业者 Vinny Lingham 领导,是一个基于以太坊的身份验证去中心化应用。在 Civic 去中心化生态系统中,用户需要验证自己的身份,之后请求接受方(例如销售服务的公司)才能接受该用户为客户。为此,验证者通过交叉引用政府数据库的文档验证用户的声明。一旦验证者证实了用户的身份,他们就用默克尔树根值来认证这段信息,而默克尔树就拿用户的声明来做默克尔树的叶子节点。
其他类似的身份产品有:Sovrin、Evernym、Nuggets。去中心化身份基金会(Decentralized Identity Foundation)主页列出了目前正致力于解决身份问题的团队列表,基金会目前包括超过 50 家合作机构。这些机构以增强系统间互操作性为目标,共同协作尝试不同的去中心化身份(方案),以便于用户不需要将他们的部分个人信息分散到多个协议里。
去中心化身份会再次变成中心化么?
身份自治的一个问题是如果用户私钥丢失或被盗应该怎么办。攻击者就应该得到私钥中的资产么?请记住,我们不是生活在一个赛博朋克的乌托邦里,我们也并没有将私钥植入我们的大脑。也许这个问题需要有可信任的第三方持有(用户的)身份。
Coinbase 最近收购了一家名叫 Distributed Systems 的初创公司,这个初创公司正在开发一个叫做“Clear Protocol 协议”的适用于 DApps 的去中心化身份标准。在此过程中,Coinbase 可能为测试用户增加一个 “Facebook 链接”,以便于用户更简便地登录并连接他们的加密钱包。鉴于 Coinbase 拥有 2000 万用户的 KYC (Know Your Customer)数据,Coinbase 可以将它的身份数据库用在 dApp 中。
-Web 3 身份最终可能看起来像这样。-
据推测,Facebook 区块链团队正在为 dApp 构建一个身份认证和单点登录平台,因为 Facebook 拥有我们的个人信息。在 #DeleteFacebook 活动中,用户下载了包含他们所有个人信息的 .zip 文件,对于 Facebook 已经有多了解他们感到非常震惊…
Telegram Passport 是另一种统一授权方法,用于需要个人身份证明的服务。使用 Telegram Passport,你可以一次上传你的所有文件,并且立刻和需要真实 ID 的服务共享你的数据。
结论
虽然匿名和假名经常被视作加密货币的用例,但是像许多新型加密原生行为,例如链上治理、代币注册等,也很需要身份解决方案。特别是投票系统,例如二次方投票问题,很大程度上依赖于可验证的、独立的用户身份,因为一个人可以通过模拟多个人的身份来显著提升自己的影响力。与此同时,身份依旧是这些系统抵抗女巫攻击以及大规模有效运行的瓶颈。
在我看来,结合最佳命名空间产品和最佳认证产品的一个分层身份体系结构是最理想的方式。看看加密社区未来会采用哪种身份解决方案将会非常有趣。
原文链接:
https://thecontrol.co/understanding-decentralized-identity-433abb343279
作者: Richard Chen
扫一扫 加微信
hrtechchina