内容简介:身份和声誉,是Web 3世界的基础。在本文中,我们给出了相关问题的综述,并罗列出一些解决方法。让我们从了解身份和声誉如何释放协议层面的价值来着手。区块链用户都是匿名的,而且更换新地址的成本可忽略不计,所以共识协议很难要求用户进行正当的行为。发展到今日,我们习惯以质押的概念或是“惩罚条件”来进行约束,本质上就是通过罚没参与者的一些资金(通常是 ETH 或是 ERC20 代币)来惩罚作恶行为。
身份和声誉,是Web 3世界的基础。在本文中,我们给出了相关问题的综述,并罗列出一些解决方法。
为什么身份 & 声誉这么重要
让我们从了解身份和声誉如何释放协议层面的价值来着手。
将一次性博弈转变为重复博弈
区块链用户都是匿名的,而且更换新地址的成本可忽略不计,所以共识协议很难要求用户进行正当的行为。发展到今日,我们习惯以质押的概念或是“惩罚条件”来进行约束,本质上就是通过罚没参与者的一些资金(通常是 ETH 或是 ERC20 代币)来惩罚作恶行为。
假设我们有一种办法,能够以数字化方式体现身份和声誉的稀缺性,便能修改现有的股权机制,采取如同罚没资金一样的方式,使作恶者的声誉遭受损失。相对的,共识协议也能够奖励声誉高的参与者;比如在网络中给与他们更多收益(可以与 Cosmos 和 Keep 项目中提到的工作代币 "work token" 类比 )。参与者有动机来优化自己的声誉,而不只为了短期利益;进而将一次性博弈转变为重复博弈。
抽样
关于抽样,最重要的应用就是共识机制本身( 像 Proof-of-Work 和 Proof-of-Stake 承担了抗女巫攻击认证)。这可以扩展到其他用例,比如选择由谁存储文件,或是由谁在资源市场中执行计算工作。
限流及定价策略
网络服务通过许多的限流及定价策略,来满足不同层次的客群需求。 以 Dropbox 为例,它使用免费增值模式(任何人都能免费使用服务,但免费的服务有限)。通过身份系统,去中心化的协议也能够实现相似功能。像是 Filecoin,可以使用免费增值模式给大需求用户提供更低廉的价格。
除了协议层之外,我们也看到很多应用需要身份。
治理
现有的区块链投票系统,是基于代币投票模式。代币是稀缺资源,提供抗女巫攻击机制,但是这样也导致财阀专权,有钱人的话语权更大。二次方投票(Quartic Voting)之类的机制,虽然能够降低财富的影响,但现在还是可以钻空子;比如一方将钱分散到多个账户地址。
而身份认证使得二次方投票方案得以实施。
声誉,源于用户在协议中曾有过的行为,或是来自社区对该用户的信任;可以作为决定某个节点投票权重的依据。
毋庸置疑的,安全的链上投票的要求比上述要更加严苛。举例来说,为了避免贿选发生,参与者不应能公开他们的投票方式(关于“抗胁迫性”的描述更为广义,相关介绍可见 Daian, Kell, Miers, and Juels 的这篇文章。)
借贷
链上借贷协议无法信任参与者,因此要求完全抵押才能进行借贷,这种高昂借贷成本遏制了应用的发展。
身份系统通过验证借款人在真实世界中的一些特征(征信记录、产权证明、收入等等),来扭转上述局面。声誉,是由以前的借贷经历或是其他人担保而来,可以被视为抵押物。
证券类代币
将真实世界的抵押物代币化,如房地产、股权、艺术品,能够放大它们的价值:增值点在于代币能体现部分所有权,具备及时清结算,及参与7*24全球市场等优势。该类代币的发行和交易须遵守证券法(对交易参与者进行 KYC, AML,资质鉴定,和其他检查 ),这些条件限制能够内化到代币本身(比如使用 Harbor 方法的 R-Token)或在交易所交割时强制执行(如在去中心化交易所调用 ERC20 转移函数前先执行此类限制条件)。
代币发售 & 空投
代币空投能激励网络中的参与者。最近的一些空投例子如 Livepeer 的 Merkle Mine 和 Handshake’s airdrop,都是开源的空投机制。有了身份和声誉体系,我们能够设计更精细的空投分发机制。身份和声誉在这里的应用,包含:构建链上游戏的社交属性(如,游戏中物品的受欢迎程度会影响其价格)、登录及权限控制、DPoS、普适的最低收入,以及聚合去中心化预言机的输入。
下面,让我们来看看身份和声誉究竟代表什么意思。
我们说的身份和声誉是什么?
身份是系统内最基础的角色。在以太坊中,可以说以太坊账户地址就是身份。
身份可以用来证明自己和他人曾发生过一些事,我们把这些事称作声明。随着时间推演,声誉会随着身份体系建立起来。
身份、声明,和声誉的协议,应该通过适当的接口相互交互。这个系统必须是模块化且可扩展的,同时具备以下特性:
去中心化(Decentralization):协议规则应该由网络参与者制定和遵守,而不是由中心化权力机构执行。 自治(Self-sovereignty):用户自行掌控属于自己的身份、声明,和声誉。这与 Web 2 网络形成巨大的反差;在 Web 2 网络中,比如在亚马逊;一个商家的产品积累的声誉,可能会因为亚马逊破产或单方面决定,而被移除。
可移植性 & 互操作性(Portability & interoperability):系统不该扣留用户,而应该允许用户往其他系统上迁移属于自己的数据。 抗女巫攻击(Sybil resistance):设计协议时,必须考虑参与者不能通过发布多个身份获得优势;除此之外,协议中旧身份更换成新身份没有好处。构建一个去中心化的抗女巫攻击身份体系,是一个涉及方方面面的问题。此问题可以使用一种易于单次计算,但难以重复计算的函数;或是一种无法通过机器表现的人为举动。比如 Proof of Work 和 Proof of Stake 都是目前常见的方式。 隐私(Privacy):参与者应该能选择性地与他人共享数据。此外,默认情况下参与者的身份能通过不公开的标识进行验证。
接下来,让我们深入了解这个系统的三个组成:身份、声明、声誉。
身份
身份可以指的是外部持有的账号(由私钥控制),或是一份智能合约(多重签名、DAO、其他等等)。身份能够用于信息签名、数据加密,或是发表关于自己或他人的声明。
身份管理中,密钥的管理是最重要的一环。与私钥最大不同是,使用智能合约管理身份让我们能扩展一些功能,如密钥找回、权限控制、动态花费限制等等。
身份管理合约应该包含密钥恢复机制,以面对以下情况:
- 密钥丢失(用户权限丢失)
- 密钥遭窃(用户拥有权限,小偷也拥有权限)
- 密钥遭窃且丢失(用户权限丢失,小偷拥有权限)
有许多机制在这里能够派上用场:社群找回、暂停证明服务,或是通过 Shamir 密钥分享和 Schnorr 签名方法。
将密钥具体功能分离,能够划分出不同层级的安全性。以 ERC-725 为例,其提议持有不同密钥来用于管理、行动、发表声明,和加密。
为了保护隐私,用户在不同使用场景需要创建和管理不同的身份。如果我们用相同的、完整的身份去借贷、给质押者授权、支付,会导致用户在真实世界的身份被交叉比对最后暴露。在 BIP 32/39/44 中提到的分级确定性(Hierarchical Deterministic)方法能够在这里派上用场。
最后,身份方法必须和其他系统有很好的互操作性,并能适用于 W3C DID(去中心化身份验证者 Decentralized Identifier) 标准。
声明
声明指的是由一个身份对另一个身份提出的事实。
“声明 Claim”的语义遵循“一个实体提出关于某个主题的声明”,并且能够表达许多事:
“A 声明 B 已经通过 KYC。”——用于抗女巫攻击 “A 声明 B 是合格的投资者。”——用于监管合规(如代币售卖,和抵押代币交易等等) “A 声明 B 超过了 21 岁。”——用于有年龄限制的产品 “A 声明 B 是中国公民。”——用于合规审查 “A 声明 B 有 x 收入。”——用于信用风险担保
这些声明由声明人签署,因此其真实性和完整性能够以加密形式验证。
任何一方也能够对其自身发表声明(比如姓名、国籍、生日)。
有些设计准则需要铭记在心:
声明必须是加密的(Claims should be encrypted):声明可能包含敏感信息,因此始终要以加密形式储存。数据拥有者能够以可选的信息公开流程,将数据分享给特定身份对象(比如,通过 Diffie-Hellman 方法交换密钥)。
尽可能少地在链上存储数据(Store as little data as possible onchain):除非要求链上审查(比如,某次需要许可的 ERC20 交易),否则声明数据应该被放在链下存储,只链上存储其加密形式(如,默克尔树的根值)。除此之外,考虑到未来量子计算的普及和目前加密系统的脆弱性,即便数据已经进行加密,也不该存放在区块链上。
只有发布者能够移除声明(Only the claim creator should be able to remove their claim):这样能够使网络有能力发布负面声明,而不用担心它们被删掉。举例来说,可以声明某个以太坊地址是钓鱼诈骗(从虚假 ICO 到推特上的“免费赠币”骗局等等,这是在加密世界始终存在的问题),或是卖方没有履行他们的商业责任。 继续这个思路,我们可以想象一下,如果某个用户被卷入了与他无关或恶意第三方的声明,该怎么办?这不构成问题,因为没有声明是具有权威性的。声明就只是由某个身份提出的、关于另一个身份的状态,至于信不信,完全由验证者自行决定。
声明具有有效期 (Claims can expire):声明不会永远有效。举例来说,在某些司法管辖区,可信的状态每 90 天需要更新一次。每个声明发出时包含当时的区块高度,因此验证者能自行判断这些声明的有效性。
现在,让我们来看看一些设计预案。
实现
ERC 725/735ERC 725 是个关于智能合约身份的提案,实现了一个管理身份声明的标准化接口,部署编号为 ERC 735。用户需要批准所有与他们相关的声明,而且能随时删除。因为这个系统不需要多方协同,所以是可以升级的。
这个提案也有一些问题。因为每个身份都要自己部署声明合约,因此无法保证都遵守 ERC 735 中的规范。因此当验证者与这些身份打交道时,首先得检查他们的源代码;这会带来很大不便。更糟的是,允许用户直接删除关于他们的声明,阻碍整个系统发布负面声明。
最后,涉及隐私保护,ERC 725 需要搭配一个链下系统,因为它将所有声明都存储在链上。
ERC 780
ERC 780 提出在以太坊上建立一个全局的注册表,来存放以太坊上的所有声明。uPort 便是将注册表当作构建一个去中心化 PKI 系统的基础,目标是将大多数声明转移至链下。注册表不会区别声明者是账户或是合约;又因为只存在一份合约,所有验证者可以相信它的逻辑。
这份提案的问题在于声明的表达性有限。因为要求所有声明遵守同样的数据结构,这就直接带来使用上的局限。进行升级时也会遇到麻烦,因为它需要广泛的利益相关者的支持。
Zeppelin TPL
Zeppelin TPL( Transaction Processing Layer ,交易处理层)被设计用于 ERC20 代币的许可交易。在这个方案给每个“司法管辖区”部署了不同的合约。“司法管辖区”的管理集群们选出证书颁发者,这些证书颁发者有权将声明写进该管辖区的声明注册表。
这是个比较实用的设计。验证者更加信任司法管辖区的声明,因为他们知道这些声明者是经过认证的。但另一方面,只允许部分用户发表声明,必然导致系统灵活性降低。
这样的系统也可能遇到难以扩展的问题。没有一个管辖区会提供完整的相关声明列表(因为管理、地理位置,或用例的不同),因此验证者必须检查多个注册表,或是声明对象必须在不同管辖区反复进行声明。
基于 NFT 的身份
我们能以 NFT( Non-Fungible Token,不可替代代币)的形式,将许可进行编码,一组权威节点可以为用户生产 NFT,验证后供用户使用。这里的问题是用户能够交易他们的 NFT,而设计里并没有提到使用 NFT 比使用声明的优势在哪。
解决办法
有个也许可行的系统,能将上述方法的优点整合起来:称为联合声明注册表。
首先创建面向不同种类声明的注册表;这些注册表继承自顶层合约,并且在实施的时候,明确规范那些声明能被添加或删除。这样便增加了声明的表达性,同时确保注册表管理者之间没有冗余的声明。
此外,注册表允许任何人创建声明,而验证者有责任过滤出他们相信的声明。他们能够基于特定用例、地理位置,或是时间来判定是否相信该声明,或是根据由中心化机构(如政府)和去中心化系统(如 DAO) 提供的声明者白名单进行过滤。
接下来,我们进入声誉部分。
声誉
我们可以将声誉分为两大类:一是基于信任图谱的声誉;二是基于行为评价的声誉。
基于信任图谱的声誉
这个方法来源于社交网络算法,PageRank,和委任式民主有许多相似之处。
思想实验
想象一下,在进行大型投票之前,先在每个以太坊账户中空投 100 个信任代币,并让他们自由将信任代币委派给能代表他们投票意见的人。
在委任节点竞选期间,大家可以在线上替自己的以太坊地址账户打广告(在推特、Reddit、个人网站等等),呼吁其他人的支持。大家根据他们在社区里表达的专业知识及政见,对竞选人进行相应委任。
委任节点竞选结束后,每个委任节点开始投票。投票权重根据他们所获得的信任代币数而定,可以直接使用获得的代币总数,也可以像 PageRank 一样使用一个度量系数。
在我们的例子中,图中每条线可以视为信任代币分配情况。PageRank 方法递归地集合了群众的智慧,如果许多人将信任代币指派给 A,那么 A 指派给其他人的代币就将有更高的权重;更进一步,这些委任人再次指派的代币的权重又会更高。以这种方式迭代,声誉能尽可能和他们真实的权重靠拢。
来源: https://en.wikipedia.org/wiki/PageRank
要注意的是,这种方法也能在声明协议中实现。抛开信任代币,用户也能用向其他人的声明来表达上图中的线。不过我们也能看到,基于信任图谱的方法存在一些问题。
抗女巫攻击
攻击者能签名多个身份,并让他们彼此信任,人为的提升这些节点的声誉。以下有几种解决方法:
(1)可信赖身份
在基础 PageRank 算法中有个参数 E(u),能让进行网页爬虫的人有一定的概率跳转到预先设定的网页。这样做能防止爬虫的人被卡在女巫攻击的子网路中。
同样的,在我们的用例中,可以事先设定可信任的身份;也可以从真实世界中已被验证的身份集合中选择。
(2)本地声誉
每个人都能在本地计算声誉。比如在借贷场景中,担保人只能从每个用户与自己和其他可信身份的交互,来评估借款人风险。
有意思的是,如果一个用户被网上大部分节点信任,全局视角的信任也会和本地视角靠拢。这类似于,在借贷理论中,信用良好的一方的欠条也能代表金钱。
(3)由稀缺资源创造的信任流通渠道
另一种在信任图谱中对抗女巫攻击的有效方法是,使用稀缺资源来建立信任流通渠道。可以是权益形式,或是 Proof-of-Work。以 Sourcecred 为例,它依靠 Git 代码提交与依赖性来建立信任图谱。在这样的信任图谱中,声誉的流向需要有实质工作量,因而能抵御女巫攻击(除非出现能自我编程的机器学习算法!)。
(4)模式匹配
我们也可以手动的分析信任图谱,并在分析后过滤掉一些结果。举例来说,一群相互信任的节点,却没有被群体之外的人信任,就很可能被视为有问题的而移除。
激励机制
在信任图谱中,使用者有什么动机去创建正确的信任流通渠道呢?
P2P 借贷和保险(如, TrustDavis)的运作也许可以给我们带来潜在的答案,就是节点为了获得渠道而提供抵押。如果他们提供的抵押物处于流通中,就能得到收益;反之如果他们作恶,就会失去抵押物。
另一个可能的答案是,基于现有行为创建另外的副产品作为信任流通渠道。比如出版商在自己的网站加上高质量的链接,以吸引用户,因此出版商为 PageRank 提供了所需的数据。同样的,一个开发者想创建好的代码库,并吸引更多贡献者的话,它就必须维护一个友好的开发环境;这样一来,他们就创建了 Sourcecred 需要的流通渠道(推荐各位看看 Dandelion )。
另一种声誉,是基于行为评价的。
基于行为评价的声誉
在这个方法中,我们不依靠图谱决定声誉,而是每个人依据对方历来的行为表现进行评价。举例来说,在 Dharma 借贷协议中,借款人的声誉能够以他们的支付记录及时间轴来计算;在 Truebit 中则是以过去成功解决过的任务作为声誉计算依据。
我们还能够将这类声誉评价融入到协议中;随着用户声誉提高,他们在网络中能获得更大的费用折扣或是更高的收入。
上述方法依赖于抗女巫攻击的身份体系才能运作。因为如果没有身份体系,任何人都能通过造假工作量提高自己的声誉。
另一个恼人的问题是,人们可以逐步建立起自己的声誉然后以一次骗局结束退出。之前交易所和比特币借贷平台已经发生过这种情况,因此这个声誉计划必须经过严格的分析,并考虑拜占庭行为的经济成本。
其他关于声誉计划的注意事项
声誉是具有环境限制的。一个好的借款人不见得会是个好的 Casper 权益相关者,也不意味着会是好的 Livepeer 译码者。就如 Stefan George 所说,在黑帮里有者好名声的人,你不见得就要相信他。
最后,我们还需要继续探索“负面声誉”的概念。如果一个身份可能获得低于零的声誉评价,他们可能倾向于抛弃现有身份,以新身份重新加入。
结论
身份和声誉是重要的研究课题。他们能将协议从单次博弈转变为重复博弈,并且是许多区块链应用的必要组成部分,如抽样,定价策略,治理,借贷,抵押物代币和空投等等。
致谢
感谢 Yondon Fu,Liam Horne,Robbie Bent 和 Melisa Smith 对此博客文章的反馈。感谢Ali Yahya,Nicola Greco,Dandelion Mane,Andy Bromberg,Faraaz Nishtar,Sunny Aggarwal,Sid Ramesh,Nadav Hollander,Dan Finlay,Ryan Sepassi,Ben Fisch,Dieter Shirley,MartinKöppelmann,Stefan George,Kei Kreutler,Fred Ehrsam, Bjorn Wagner,Yondon Fu,Robbie Bent 和其他人带来的讨论,这促成了上面这些想法。
END
(本文授权自:以太坊爱好者;作者: Sina Habibian;翻译&校对: IAN LIU & Elisa)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 观点 | Web 3 世界的身份及声誉,Part-1
- 人民日报批弹窗广告:有关平台应珍惜声誉
- Kubernetes 身份管理:身份验证
- 异构身份联盟统一身份标识模型研究
- 从身份证变革看现代身份信息认证技术发展
- 15位身份证补全为18位身份证算法
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Ajax设计模式
Michael Mahemoff / 杨仁和 / 电子工业出版社 / 2007-5 / 78.00元
★本书荣获LinuxWorld Linux Journal2006年Editors' Choice awards。 ★绝好的一本ajax 高级读物,建议 每个web 程序员都需要买一本,了解什么是真正的好的web设计--网友 [精彩试读一] [精彩试读二] 本书是一本关于复杂Ajax应用的整体架构设计......一起来看看 《Ajax设计模式》 这本书的介绍吧!