World ID的基本原理

  • maodaishan
  • 更新于 2024-03-13 14:40
  • 阅读 388

主要来自官方文档的翻译和摘录 WorldCoin由基于人格证明的ID系统,和WLD代币构成。它在保护隐私的同时,区分人类和人工智能。每个人都因为是”人“而可以分享WLD。 WorldCoin需要把人和AI区分开,并且人和人之间也要区分开。它通过定制的Orb生物识别设备来识别人,通过ZK完成隐私保护。

<!--StartFragment-->

https://whitepaper.worldcoin.org/\

  1. 概述

WorldCoin由基于人格证明的ID系统,和WLD代币构成。它在保护隐私的同时,区分人类和人工智能。每个人都因为是”人“而可以分享WLD。\ WorldCoin需要把人和AI区分开,并且人和人之间也要区分开。它通过定制的Orb生物识别设备来识别人,通过ZK完成隐私保护。\ World ID 是在 Worldcoin 协议上发布的,它允许个人向任何验证者(包括 web2 应用程序)证明他们是人类,同时通过零知识证明维护他们的隐私。World ID 旨在实现个人绑定,这意味着 World ID 只能由其颁发对象的个人使用。窃取或获取 World ID 凭证的欺诈者应该很难使用它。此外,个人应该始终能够重新获得丢失或被盗的世界 ID。\ 可以有很多不同的issuer,发行各种不同的身份凭证。例如:World ID依据生物验证发行,证明持有者是一个人类;Phone Nr由运营商发行,证明是客户;Gov ID由政府发行,证明是公民...\ WorldCoin整体上非常像W3C的DID协议。\

\

  1. 身份证明 PoP (Proof Of Personhood)

基本要求:\

  • 每个人只能验证一次,重复数据会被删除
  • 身份验证:只有合法owner才能使用身份
  • 身份恢复:身份证明受损后,可以自己恢复。

下面图表达了身份发行,验证的关系,非常像W3C的DID\

\ 恢复可以有多种方法:\

  • 额外备份的凭据
  • 社交恢复
  • 恢复密钥,用户向issuer重新证明自己的身份,获得具有相同信息的新ID(有些情况下不可行,如用户自己生成私钥,而私钥丢了)
  • 重新颁发:如身份盗窃发生时,可以废弃旧id,颁发一张新id,这让身份转让在经济上不可行。

其他措施:\

  • 撤销:issuer可以撤销颁发的凭据,例如大学颁发毕业证,但是发现学术舞弊后,可以吊销毕业证
  • 到期:很多凭证有时限,如护照。

\ \ POP机制设计:生物识别技术可以满足各种关于PoP的要求:\

  • 有包容性,每个人都能用
  • 防欺诈:不能重复注册
  • PersonBound:不能转让

\ 生物识别是在录入特征后,后续验证时与之前录入的特征进行对比,是1:N的验证。\ 下图是多种生物识别技术与当前目标的对比,虹膜是可行的。WorldID定制了Orb设备来进行虹膜验证。\

\ 一旦通过Orb验证,用户就可以获得一个World ID,可以定期申请一定的WLD,将来其他凭证也可以基于世界币协议发行。\

\ 虹膜代码是在设备本地计算的,但唯一性识别是在服务器进行的,即与已经注册过的所有代码进行比较。随着注册人数越来越多,这个计算量是越来越大的。\ WorldCoin一开始在polygon上部署,后来迁移到了以太坊的RollUp (基于OP Stack)。\ 用户在手机上生成密钥对,Orb将虹膜和公钥配对,然后公钥(地址)被在以太坊上链注册。会被跨链到polygon POS和Optimism。因此 World ID 可以在这些链上本地使用。\ 注册后,用户可以以不信任和私密的方式向第三方证明他们拥有WorldID,从而证明他们的独特人格。由于很多内容是private的,因此通常需要将证明与特定的操作联系起来(例如投票)。我感觉它跟W3C DID一样。\ \ \ 下图高度概括了注册和使用的基本流程。可以看出来,大部分处理是依赖于链下预言机的。\

\ 用户使用:\ 用户本地生成的sk是随机串,pk是sk的hash,用一个从sk到pk的ZKP作为签名。除了注册外,公钥在日常使用中不会被用到,而是使用一个普通的以太坊密钥对进行日常的链上交互。用户可以直接从WorldApp通过扫描二维码或者用深链接来发起验证,验证通过后,会在本地直接生成一个ZyKP(应该是merkle proof),通过World ID SDK直接发送给发起验证请求的DApp.\ 开发者使用:\ 开发者可以使用链上的验证合约来验证用户提供的ZKP,从而与WorldID集成。开发者至少提供app id和action(也这两个合起来就是context,用来生成无效器-nullifier),无效器用来对抗女巫攻击,因为对一个WorldID来说,一个context是唯一的,只会生成一个无效器。用户的WorldID跟无效器hash在一起,生成无效器hash。对同一个用户来说,无论他开多少个context,只要context一样,就会生成一样的无效器hash,从而对抗女巫攻击。例如对于投票来说,用投票提案的id作为上下文,对空投来说,用用户的钱包地址作为上下文,这样就可以防止重复投票或薅羊毛了。\ 同样的流程也可以用在链外身份验证上,只不过proof的验证要通过rpc服务发送至区块链节点来验证。其他都一样。\ \ \ 链上验证流程(比较简单,就不额外解释了):\

\ 多链支持(非常通用的方法,跟ENS的多链支持类似)

\ WorldID被设计为在一处注册(以太坊),可以在各处使用。\

  1. 注册发生在以太坊上;每次注册都会触发root改变,root的改变会触发一次复制过程
  2. 复制可能由WorldID合约触发(2a),也可能由三方合约触发(2b),无论哪种,最新的root都被通过跨链桥发送到三方链上
  3. root发送到目标链后,会由WorldID Proxy 合约验证,验证之后会更新为新的root,然后三方合约就可以用它来完成验证了。

通过以上内容,基本了解其技术方案了。其他一些经济学,治理等就不再赘述了。

<!--EndFragment-->

点赞 1
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
maodaishan
maodaishan
0xee37...1912
江湖只有他的大名,没有他的介绍。