2021-02-26 21:51 | 出处: Litentry
在这篇文章,我们将会基于W3C的标准提出一个跨系统的DID聚合(DID Aggregation)的概念,并且介绍一个可以给不同网络系统的DID数据提供互操作性和流动性的DID 聚合协议。
术语解释:
Decentralized Identifier(DID):Decentralized Identifier(去中心化身份识别),是一种全球独立的永久身份识别方法,由密码学技术生成或(和)见证,无需任何中心化见证机构。——万维网联盟W3C标准定义
Decentralized Identity:Decentralized Identity(去中心化身份)通过使用DID识别方法在网络中产生个人数据后所构成的数字身份。
然而不同去中心化系统会出现不同的DID标准,因为应用场景是差异化的,所以不同的应用会设计不同的DID识别方法。这样做的好处是能快速实现身份的去中心化,但坏处是导致了身份账户在不同的系统之间丧失了互操作性,身份数据不互通的问题,形成数据孤岛。同时,由于数据主权的保护,从一个去中心化系统中获取身份信息还涉及到用户授权的过程,使得身份数据更难在不同系统之间流动。当我们想在去中心化的系统中拓展更宽的应用场景时,比如在DeFi中引入信用借贷、在链上治理中引入声誉信息,在社交媒体中引入去中心化的个性化推荐算法等等,我们可能需要从不同的系统用引入身份信息,这时问题就会尤其突出,因为我们所需要的数据可能存在于另一个网络或者系统,而去读取这些数据涉及了DID验证、应用代码解析等复杂的工作,特别当所需数据源变成多个时,这会变成一个非常头疼的事情。
这个问题会随着去中心化应用的发展变得越来越明显。我们预估最先对解决方案产生需求的领域会在去中心化信用借贷、去中心化自治组织、去中心化个性化推荐当中。为了保持去中心化、避免单点故障,dApps在获取DID数据时,会需要数据源也保持去中心化,但是网络中并不存在现成的、去中心化的身份数据源。
具体来讲,当一个应用需要获取可靠的DID数据时,它们会面临以下问题:
缺乏数据源
在数据注册中心(Data Registry)中缺乏数据接口
需要解析每一种DID识别方法并且验证可信声明
需要对新对数据结构进行学习和适配
更糟糕的是,我们看到很多去中心化应用都会自己创建一套独立的DID机制,而大部分的这些机制所达到的效果是重复的。比如在证明一个人与某一个Twitter账户的控制权时,我们通常采取的方法是让这个人用Twitter账户发布一条指定的消息,但是同样的验证方法就在不同的去中心化网络比如Keybase和Polkadot Registrar上面被重复开发。如果我们能从一些已验证并且可信的数据源中取这些数据,是不是方便很多?
什么是DID数据?
Web3.0中所有的数据都将需要被索引和关联,而Litentry所提供的是其中一部分数据的索引和关联,这一部分数据就是DID数据。
在去中心化系统中,我们把可被证明属于某一个独立身份(Self-sovereign Identity)的所有数据称为DID数据。这些数据可能可以被直接理解为身份数据,也可能需要通过二次计算后才跟“身份”产生关联。比如,一些为提供DID服务的区块链应用所产生的就是直接的身份数据,像你的链上驾照、或你的链上COVID-19 核酸检测结果就是直接的DID数据;而潜在的身份数据,则源于我们在其他去中心化应用中产生的使用数据,这些数据将需要计算分析之后才会变成与“你”相关的身份信息,比如你在去中心化协作系统中的代码贡献量、在去中心化自治组织(DAO)中的投票积极度等等。
为了使用户在Web3.0网络中获得一个完整的身份,我们需要将不同系统中零散的身份信息关联起来,形成Web3.0身份的同一性。在身份关联的过程中,我们需要解析不同的DID识别方法。一个潜在的解决方案是制定标准化的通用数据交换语言,比如 Presentation Exchange,一个给不同系统交换可信凭证时提供标准数据格式的一个协议。Presentation Exchange的设计者提出,这个协议通过创造一种不同身份系统交换身份证明时的通用语言,从而使得一个第三方应用在从其他协议获取DID数据时懂得如何定义它的证明要求,同时另一方面证明的持有者知道如何提交这个数据。Presentation Exchange是一个能减少身份系统之间DID数据摩擦、帮助实现Web3身份同一性的一个办法。但是对于一门计算机语言来说,从创造、推广到成为通用需要经过很长一段时间,并且在这门语言还没有成为通用之前,身份数据在不同系统中都是不自由可流动的。如果我们拥有一个去中心化的数据中转站,能够一站式地解决获取任意DID数据的问题,是不是很理想?
接下来我们将要介绍一个兼容任何DID标准的,开放、且去中心化的聚合性DID解析(resolving)模型,这个模型由一个基于Substrate的区块链、一个分布式的DID验证网络、和一个模块化的DID数据交换协议组成,我们统称为一个DID聚合器。它将允许任何人上传新的DID身份证明算法并且共享到网络,并且提供DID数据索引、DID验证和关联、DID数据聚合的一站式服务,能够允许应用轻松地获取用户在Web3网络的整合身份数据,并且保证了数据的可靠性、安全性和完整性。
为了让协议开放给所有无论是否有技术背景的人去使用,让他们可以使用不同的DID或者让他们的应用可以认证任何未知的DID机制,我们需要引入一个中间人去接替身份验证的工作,但这很容易导致单点故障。
为了在DID验证的过程中排除中心化机构或者避免单点故障,我们会建造PoS区块链上一个去中心化的验证节点网络,同时这个区块链会管理DID验证需求请求者与验证者双方的交易模型。这个网络将会通过链上执行的合约保证验证节点的诚实。
需要验证可信声明当时候,我们只需要简单地验证可信声明文件中验证者的签名即可。所有合格的验证者身份都会注册在区块链上,并且受带有惩罚机制的PoS协议和一个社区选举的议会管治。
节点网络将能够识别区块链上的可信DID验证机制,并且将其他的机制定义为未知。除非服务需求者本身信任未知的机制,否则未知的DID验证机制默认是具有风险的。在这种情况下,节点会根据服务需求者选定的DID验证机制来计算结果。
我们需要所有的网络节点共同协作去产生可信的输出结果,使DID聚合的结果变得可信。由于验证节点是服务提供者,并且会得到工作奖励,它们有义务去提供更优的产品。而身份凭证的消耗者是服务请求者,服务请求者有权参与决定协议的迭代和更新。
Website: litentry.com
Medium: litentry.medium.com
Telegram: t.me/Litentry
Twitter: @litentry
Github: https://github.com/litentry