深入浅出理解去中心化身份
深圳林妙可
发表于 2022-12-10 05:14:12
162
0
0
6 k" C* P8 `7 U& ?) F% L# L3 `
与此同时,区块链技术承诺可以将个人数据的所有权从公司和政府手中返还给个人,进行数字身份变革,从而使个人拥有权力与他人共享数据,并且可以随时撤回。
# O8 @; {' f) Y: C& J: y, u: e
为了更深入地理解为什么区块链技术对于身份(认证)很有效,我们首先需要从哲学的角度理解身份的定义。请你设想如下的思维实验——两个放在一起的弹珠看起来完全相同。虽然这两个弹珠的本质(比特和原子)是相同的,但是它们的身份是不同的,因为我们能够给每个弹珠一个类似于“弹珠A”和“弹珠B”的唯一标识来区分它们的身份。
但是,一旦我们将这两个弹珠放到口袋里混合一下,这种标识便失效了,我们没法再区分出哪个是“弹珠A”,哪个是“弹珠B”。这种标识问题的一种解决方案是拥有一个无所不知的观察者,在两个弹珠混合过程中一直盯着弹珠(从而在两个弹珠混合后,仍然能够区分出哪个是“弹珠A”,哪个是“弹珠B”)。这种解决方案是可行的,因为时间(第四维空间)作为了身份的时间指标。区块链(保证过去状态的日志不可被篡改)能够提供时间连续性,因此即便是物理环境发生变化时,也能正常用于追踪身份。) f! a9 }% q( R$ E9 c# F
身份是Web3基础设施缺失的最重要的一部分,有许多项目采用不同的方式构建整个去中心化应用生态系统可以使用的身份层。目前关注度最高的两个层次是namespaces(命名空间)和attestations(认证)。
命名空间
去中心化身份的一个关键点是:如何在没有中心持有的注册机构的情况下,能够标识世界上的人、设备以及其他实体。
6 Y$ L- W0 R+ q3 F
在区块链系统中,我们现在使用地址来标识我们的身份——一个形如“0x9992437898114d2770522e050883d6b2dfc48326”的没有实际意义并且很难记住的长字符串。要是我们能够将每个地址与唯一且可读的名称对应会怎么样呢?5 A5 m9 A6 w5 v, E
在计算机科学中,命名空间(Namespace)用于组织对象,使得一些对象虽然拥有同样的命名,但不会发生混淆。文件系统(给文件命名)和DNS(全称:DomainNameSystem(域名系统),为网站命名)就是命名空间的例子。
类似地,在区块链中,我们希望维护一个包含地址和名称唯一对应的全局表。此外,理想情况下,我们希望这个对应表是一直安全、去中心化、并且容易理解的。这可行么?我们直接来看一看Zooko三角。2 B! ?- ^9 B: a4 b+ T
####Zooko’sTriangle4 x8 ?5 {9 N, Y6 t. y! G
9 n8 I9 k- ?' p& ~
Zooko三角,以ZcashCEO,ZookoWilcox的名字命名,是网络中命名系统的三个理想性质的三难选择困境。6 Y( b8 ^0 R9 o& E# `! ~( X
安全:当你查找一个名字时,你能够得到正确的结果,而不是一个假名。. m7 H: W5 S H! M. P: @' Y8 P
^" B* O+ t! c g- C }% q" l8 E/ J
去中心化:没有中心化权威机构控制所有的名字。3 {! g1 v' Y7 l6 _; q: U+ R
可理解的:名字是人们可以记住的,而不是某一长串随机的字符。9 z5 P. U9 T/ h2 l* o- k% h. b
+ W0 @( }& i& O8 D7 t6 U3 [% B
Zooko声称数字名称是无法同时包含以上3种性质的。以下几个例子使用了该框架:
DNSSEC,DNS的安全扩展,提供了一种去中心化且便于理解的命名机制,但是不安全,无法抵御对根服务器的攻击。& Y4 w+ s; s" b* a6 ^% ]9 v+ a7 |
比特币地址是安全且去中心化的,但是不便于理解,没有实际意义。+ s' `+ n5 {- I) j5 L/ N
I2P,匿名、防审查的点对点通信协议,使用本地运行的安全名称转换服务,并且便于人理解,但是需要在去中心化网络中增加权威节点。% N- y! w0 ]; A
; j1 S" B% j7 \) R0 y& R
解决方案
自从Zooko提出他的三难困境以来,已经有了几种解决Zooko三角的方案。NickSzabo首先在他的论文“SecurePropertyTitleswithOwnerAuthority(含所有者权限的安全产权)”中提出了一种解决方案,文章指出这三种属性都能够达到拜占庭容错的限制。
" S6 Z u8 K# d1 `# y/ i
AaronSwartz后来提出了一种基于比特币的命名系统,该系统使用PoW共识来建立名称所有权共识。这个解决方案促进Namecoin产生。Namecoin是比特币区块链的第一个fork,也是Dot-Bit所在底层区块链。Dot-Bit是第一个满足Zooko三角的去中心化DNS实例,使得用户能够将他们现有域名与.bit地址绑定。
自7年前发布以来,Namecoin主要由于用户体验差,而很少被采用。(Namecoin中)拥有成千上万的域名,但是仅有约30个开发了Dot-Bit网站。有传言说,Namecoin的开发者曾经找谷哥和ICANN寻求潜在合作,背离了使用去中心化DNS替代中心化管理的最初目标。/ T" g( R2 j3 W Z) F, g) A8 z! K, m! v" d
Onename,由Princeton研究员RyanShea和MuneebAli于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的账户。3 l0 T2 Q% Z8 W5 i& o* z
" l5 c, ^$ t+ X7 o3 ^" |3 L
Handshake是一个由JosephPoon(闪电网络和Plasma提出者)主导的新项目,旨在将DNS根空间(DNSrootzones)去中心化,并且取代ICANN以及认证中心(CA)。Handshake构建在一条新的UTXO区块链上,其中所有点对点全节点都是持有根空间文件的根服务器,从而使得根空间不受审查、无需许可,并且不受网关限制。目前,Namebase等项目允许用户在Handshake区块链上注册顶级域名,构建钱包和交换Handshake币(HNS),使得Handshake更易于使用。" ~$ ^9 e x0 O' F9 g! }
-从上图可以看出,Dot-Bit和ENS等项目分别单独支持.bit和.eth域名地址,而Handshake向去中心化ICANN(根域名文件网关)又前进一步。来源:zkCapital-2 q3 p- _7 K: x- M, s2 t1 }: v
, v$ |( r: z$ o& _, I, b
总而言之,Handshake是一个非常有野心的项目,它有可能改变DNS和域名服务目前的运作模式。不过,要获得广泛接受以及打破诸如Verisign等现有证书颁发机构的垄断是非常困难的,因为操作系统默认采用DNS。" k+ c: ^; J9 F
OpenAlias和PortalNetwork等项目也在尝试解决Zooko三角。
认证% l3 \! A: j; h0 I* ^% ?
对于一个去中心化身份系统而言,拥有同时满足安全性、去中心化、便于理解的命名空间是不够的。解释一下,当OneName推出时,有人立即注册了用户名+gavin,为此OneName之后不得不为比特币核心开发者保留+gavinandresen。+ S: L, t8 H! H! g! ^% Y% J
4 t% C0 O9 z$ `
为了防止有人在网上冒充别人,我们需要验证每个人实际上就是他们声称的那个人。例如,你在Airbnb上租房之前,你必须验证你的电子邮箱和电话,有可能还需要验证你的Facebook、LinkedIn、Google账号。在这种情况下,Airbnb充当信任中介——买家和卖家都确信Airbnb已经完成了验证过程。但是在去中心化应用的世界中,我们不再信任第三方,但我们仍然需要在智能合约执行之前验证某人的身份。
+ U Y' T! J5 I
因此,认证是去中心化身份系统中信任和声誉的基石。在现实世界中,我们使用驾照或护照等证件证明我们的身份。这些文件包含有关我们的事实,例如,我们的姓名、年龄、眼睛颜色。但是驾照在互联网上并不存在。相反,我们需要找到一个将真实身份和加密身份关联的方法。至于如何最好地实现这一目标,目前还没有定论,许多组织都正在摸索。
身份自治产品
# X; W& r; J4 k5 g+ C5 f4 S
一种解决方案是拥有独立的身份产品。这种身份产品需要满足四个基本特性:" J1 y3 v1 a! ? a# s, r
. @5 f) j1 e* ~# M7 j
身份具有某种唯一标识。(存储这种标识的最佳体系结构就是上文描述的满足Zooko三角的命名空间。)
) c9 X, ?5 E3 ^. Q* \
第三方能够声明(注册)某个身份的信息。声明中包括例如名称、地址、电子邮件等。* J4 {& h- }4 r9 `" B3 t Y, J. s
能以某种方式请求用户的身份认证。3 \" x! Q( J$ {' F0 C) U. `( d: R
能有某种方式查询有关某身份的声明。
Facebook和Twitter目前能够认证某些人的Blockstack身份。-
7 u$ }/ s7 ^1 u; O1 N* O
独立身份识别产品具有自治(self-sovereign)的优点。身份自治是一种可以在不同去中心化应用间迁移的数字身份,不依赖于任何政府或公司,也永远不会被拿走,而不像现在的互联网,只要你将你的社会安全码(SSN)给了某个人,他不经过你的同意,就可以在任何地方使用,从而可能导致身份盗窃。有了自治的身份,你就可以在连接dApp时保留对社会安全码等身份信息的控制、同时证明自己的身份,还不需要把这些身份信息复制一份给dApp。
有许多团队试图构建身份自治标准。3 O# \: E* z4 r! ^( V
ERC725提出了一种管理以太坊区块链链上身份的标准。由FabianVogelsteller提出,他还提出了非常成功的ERC20代币标准。一个ERC725身份合约包含一个加密签名,证明该合约所有者控制对其身份的特定声明,例如:电子邮件或电话号码。OriginProtocol是一种用于创建无需中介的共享经济的协议,在智能合约执行前,使用ERC725验证参与方的身份证明。5 R3 ]% {. G6 W6 g; m2 W0 n! U# A# n
2 V- }# O i/ E5 d2 e
uPort是一种身份自治钱包,让你能够完全控制你的身份以及个人数据。开发团队是ConsenSys,你可以使用uPort在以太坊上创建身份、安全登录去中心化应用且无需密码、管理你的个人信息和认证、签署以太坊交易以及数字签名文件。uPort最新开发出一种新型去中心化数据存储解决方案——3Box,3Box使得以太坊用户能够使用任意钱包上传他们的信息并在不同dApp间分享。uPort已经与瑞士Zug州合作,为居民提供数字身份证,将真实世界的身份与区块链联系起来。5 ~$ B; ]! g$ `5 \1 ]4 g6 o
& A: D' l" ^* ?% @) b
-uPort通过分解身份智能合约,在ERC725标准上做了升级。他们新的分层架构提案是ERC780。来源:uPort-1 l$ G; A$ D* P* E# y* p9 n
Civic项目由连续创业者VinnyLingham领导,是一个基于以太坊的身份验证去中心化应用。在Civic去中心化生态系统中,用户需要验证自己的身份,之后请求接受方(例如销售服务的公司)才能接受该用户为客户。为此,验证者通过交叉引用政府数据库的文档验证用户的声明。一旦验证者证实了用户的身份,他们就用默克尔树根值来认证这段信息,而默克尔树就拿用户的声明来做默克尔树的叶子节点。* Y: d8 k- L9 s
# r, [6 H7 {1 N6 R2 p4 {" _7 |
其他类似的身份产品有:Sovrin、Evernym、Nuggets。去中心化身份基金会(DecentralizedIdentityFoundation)主页列出了目前正致力于解决身份问题的团队列表,基金会目前包括超过50家合作机构。这些机构以增强系统间互操作性为目标,共同协作尝试不同的去中心化身份(方案),以便于用户不需要将他们的部分个人信息分散到多个协议里。
去中心化身份会再次变成中心化么?# |5 }3 _7 o# g8 e! W
身份自治的一个问题是如果用户私钥丢失或被盗应该怎么办。攻击者就应该得到私钥中的资产么?请记住,我们不是生活在一个赛博朋克的乌托邦里,我们也并没有将私钥植入我们的大脑。也许这个问题需要有可信任的第三方持有(用户的)身份。
Coinbase最近收购了一家名叫DistributedSystems的初创公司,这个初创公司正在开发一个叫做“ClearProtocol协议”的适用于DApps的去中心化身份标准。在此过程中,Coinbase可能为测试用户增加一个“Facebook链接”,以便于用户更简便地登录并连接他们的加密钱包。鉴于Coinbase拥有2000万用户的KYC(KnowYourCustomer)数据,Coinbase可以将它的身份数据库用在dApp中。( ~6 `7 X5 v* g; J v
-Web3身份最终可能看起来像这样。-
据推测,Facebook区块链团队正在为dApp构建一个身份认证和单点登录平台,因为Facebook拥有我们的个人信息。在#DeleteFacebook活动中,用户下载了包含他们所有个人信息的.zip文件,对于Facebook已经有多了解他们感到非常震惊…3 X; f' T% o) F u
9 n. B5 _5 H, B! Y5 j+ D! l2 j* Z
TelegramPassport是另一种统一授权方法,用于需要个人身份证明的服务。使用TelegramPassport,你可以一次上传你的所有文件,并且立刻和需要真实ID的服务共享你的数据。. X. B+ e& d M7 g1 N- B
5 g3 n- z% J* Y0 W1 N
结论; \" U+ P8 U5 c; O: Y( e2 ?; t
虽然匿名和假名经常被视作加密货币的用例,但是像许多新型加密原生行为,例如链上治理、代币注册等,也很需要身份解决方案。特别是投票系统,例如二次方投票问题,很大程度上依赖于可验证的、独立的用户身份,因为一个人可以通过模拟多个人的身份来显著提升自己的影响力。与此同时,身份依旧是这些系统抵抗女巫攻击以及大规模有效运行的瓶颈。
在我看来,结合最佳命名空间产品和最佳认证产品的一个分层身份体系结构是最理想的方式。看看加密社区未来会采用哪种身份解决方案将会非常有趣。
成为第一个吐槽的人