Web3的信任问题
Web3需要信任吗?单从区块链技术的角度看,似乎并不需要。因为区块链的特点之一就是“trustless”:通过密码学与共识机制的巧妙结合,即使没有可信第三方作为中介,也可以让两个互不认识的人完成一笔交易。但是放眼整个区块链行业,对信任的需求似乎又无处不在。一个审慎的用户打开钱包,点击确认交互之前,一定会问:我能够相信这个项目方吗?我能够相信他们的合约和前端代码吗?我能够相信这个链接吗?我能够相信这个NFT的地址吗……所有这些,都是信任的问题。
要解决Web3世界的信任问题,首先得解决“谁是谁”的问题。我们经常会问,这个NFT的合约是谁部署的?这份数字文件是谁签名的?这个Discord的链接是谁转发的?即使是基于零知识证明技术的隐私身份凭证,我们也得问问原始数据的公证是谁做的。可见,解决了“谁是谁”的问题,绝大部分的信任问题都会迎刃而解。这里的前一个“谁”,一般指的是链上常见的身份标识符,例如钱包地址、DID、去中心化域名等。后一个“谁”,指的是现实世界的真实身份。前者是赛博空间,后者是现实世界,二者怎么形成关联呢?
现有解决方案的问题
在传统互联网行业,证明“谁是谁”有两种主要的方法。第一种是基于证书发放机构(CA)的公钥基础设施(PKI)体系。通过中心化的数字证书发放机构,对主体的真实身份进行审核,然后签发数字证书,以证明该机构的真实身份。我们常见的使用了HTTPS连接技术的网站,就是用了这种证书进行网站身份验证。
虽然已经在网站加密通信领域得到了广泛应用,CA与PKI的方案仍然有有几个明显的问题:
第一,该方案是彻底的中心化方法,并不符合Web3去中心化的理念。
第二,CA证书的申请虽然面向所有机构和组织以及个人,但是目前的身份认证机制并不完善。事实上,如果你仔细查看,你会发现目前广大中小网站广泛使用的DV证书根本没有任何身份认证机制。
第三,应用范围比较有限,一般只用在网站的SSL/TLS加密通信上。
互联网行业的第二种身份认证方式,是基于菲尔·齐默尔曼开发的PGP与Web of Trust个人密钥系统。PGP通过给用户提供一系列密钥实现消息加密解密、签名验证等常见操作。技术层面上,PGP是很好的密码学工具,但在实践层面,它依然很难解决“谁是谁”的问题:只有当你明确知道你的交互对象的PGP公钥时,PGP系统才能发挥作用。某些自由软件开发者会把自己的PGP公钥公开发布在社交媒体或者自己运营的网站上,但是其安全性和可扩展性并不理想。为了解决此问题,PGP 2.0使用手册里提出的Web of Trust(信任网络)概念旨在通过熟人关系对其他人的PGP身份及公钥进行签名和互相验证,把我们对熟人的信任转移到对PGP公钥的认证上。此时,Web of Trust 其实已经有了去中心化社交认证的影子。但是该方案仍然存在不少问题:
第一,技术领域熟人圈子的建立并不容易,人与人的信任很多时候都依赖于线下的聚会和会议活动。新人很难融入已有的信任圈子。
第二,信任的建立基本依赖于口口相传,并没有明确的真实性、有效性的检查方法,对于错误的认证也没有惩罚机制。基本还停留在“君子协定”的阶段。
第三,PGP技术本身的基础设施虽然强大,但是也相当复杂。它涉及密码学基本原理及命令行操作,普通用户几乎寸步难行,很难形成网络效应。
Valid ID 的设计理念
为了克服以上两种互联网身份认证协议的种种问题,zCloak Network提出了一种适用于Web3时代的公钥基础设施:Valid ID(valid3.id),用来回答前面提出的“Web3谁是谁”的问题。
Valid ID的基本设计理念包括:
1.简单易用,尽量把使用门槛降至最低。用户只要会使用普通的加密钱包,就可以使用Valid ID平台的所有服务。
2.安全可靠,使用简单、成熟、经过时间检验的密码学原语,如Keccak哈希,secp256k1曲线上的ECDSA签名算法等。直接支持在主流加密钱包APP与硬件钱包内进行访问。
3.标准化,在身份标识方面,使用已有的W3C的DID和VC行业标准,基于zCloak的DID实现方法“did:zk:”,将可验证数字凭证(VC)应用于机构和个人的身份认证过程,尽最大努力兼容已有加密生态。
4.去中心化,在 Web of Trust 互验证理念的基础上,提出了基于多方认证的信任网络架构(Multi-party attestation based Web of Trust),以此有效消除了单点信任的问题。zCloak Network只是入驻主体信息的认证方之一,任何有能力对其它主体进行身份认证的机构,都可以按照自己的标准对其它主体进行身份认证,并在Valid ID平台发放数字凭证。
5.数据自主可验证,每个入驻主体的相关信息只能靠注册时的根密钥进行修改,除了入驻方自己,没有人有能力对其展示的相关信息进行修改。信息更新使用基于数字签名的自验证数据结构,平台的所有的事件与日志在Arweave、EVM公链进行留存。任何人都可以独立对平台上的相关信息进行独立审核和验证。
6.易于扩展,系统架构参考Nostr协议进行了相应的密码学改造(https://github.com/zCloak-Network/vips),简单灵活且易于扩展。天然辐射多链,相关数据可以辐射至所有公链,直接被智能合约所调用(项目早期阶段以EVM公链为主)。
基于以上设计理念,Valid ID平台形成了属于自己的独特优势,也与Web3行业已有的身份类项目形成了明显的差别。典型的例子如下。
首先,Valid ID与ENS等域名类项目存在区别。Web3域名类项目的本质是链上地址的聚合表达,所以通过域名的文字本身,并不能传递真实的身份信息。例如,timcook.eth不一定可以代表Apple公司的CEO;openai.eth也不一定能代表OpenAI公司。此外,用户在ENS profile内写入的网站、email等信息,并没有任何检查机制,也就无从判断其真实性。而Valid ID内主体profile的所有信息,都会经过多个包括律师事务所、安全审计公司和会计师事务所等等在内的第三方的独立检查。多方独立认证的结果会以不可篡改的可验证数字凭证的形式在Arweave、EVM公链进行存储,以保证信息的真实性和可验证性。
其次,与专注于链上交易信息的Web3身份聚合展示的profile类项目不同,Valid ID侧重于机构真实链下身份的认证与锚定。通过密码学与法律声明双重保障,不但能在机构承认自己的链上身份时证明其身份,还能在机构否认自己链上身份时反证其身份。Valid ID内的机构身份信息既包括官方网站、twitter账户、email等常见信息,也可以包含注册国家和地址等工商注册信息、链上链下的信用积分、审计公司安全报告、投研机构的评级报告等等。得益于可验证数字凭证的多方认证架构,所有的认证信息都可以在机构的profile内进行无缝的传递与表达。相关机构无需与zCloak Network团队进行沟通,就可以自行发布符合自家标准的机构认证信息。而用户也可以根据发布认证信息机构的口碑与信誉,对其发布的内容的价值和真实性自主进行判断。
Valid ID在zCloak的生态定位
zCloak Network 是基于零知识证明技术的隐私DID协议和基础设施,zCloak提出了一种新型的计算范式,通过把数据的存储和计算从中心化服务器迁移到用户本地设备,从根本上保证用户的身份和数据主权。在zCloak生态内,Valid ID将作为用户数据的信任原点发挥巨大作用,相关技术原理如下。
众所周知,零知识证明技术的主要用途,是用来证明计算过程的正确性。用户在自己本地,对自己的数据运行特定算法的零知识证明计算,就可以证明自己的数据具有某些属性、满足某些条件。这样,用户只需要对第三方验证者出示计算结果和零知识证明,而不必出示自己的原始数据,就可以证明自己的身份、资产等数据的情况。
但是,一个完整的计算包含输入数据和算法两部分。而零知识证明技术本身只能保证计算过程的正确性,至于参与计算的输入数据的正确性,是无法用零知识证明技术来保证的。换句话说,如果用户用错误的数据参与了零知识证明计算,那即使最终的证明验证无误,计算结果也还是错误的。这样的计算,是毫无意义的。我们知道,用户端零知识证明计算的核心优势,是可以在验证者看不到用户输入数据的情况下证明用户端计算的正确性。但是这样的模式也带来了一个问题:验证者可以验证零知识证明的正确性,但是怎么验证自己没有看到的输入数据的正确性呢?或者再进一步,什么是正确的输入数据,什么是错误的输入数据?界定的标准和依据又是什么呢?对这些问题的圆满回答,是在用户端进行保护隐私的零知识证明计算的前提条件。
zCloak Network通过灵活地使用可验证数字凭证技术,成功回答了“怎么验证用户端数据正确性”这个问题。基本的做法很简单,事先选择某些有公信力的第三方机构,对用户端数据进行认证,使用可验证数字凭证技术对认证的结果进行承诺,并在零知识证明计算的过程中对其进行检查。完整的计算过程可以概括为:可信机构A认证过的用户B的个人数据,在经过C这种零知识证明算法的计算之后,得到了D这样一个结果,以及E这个零知识证明。最终的验证者V只需要验证E的正确性,并相信A的权威性,就可以接受D的正确性。这其中,E的正确性是可以通过零知识证明计算来保证的。那么A的权威性就成为了整个链条的关键。要说服V接受A认证结果的权威性,首先需要知道A这个标识符(区块链地址、DID)背后到底是谁。问题至此闭环,A是谁,就是Valid ID要解决的问题。
Valid ID 的应用场景
zCloak团队设计Valid ID项目的初衷,是为了与zkID可验证数字凭证平台进行联动,为zCloak生态内的用户凭证提供权威性保证。随着时间的推移和越来越多的曝光和讨论,我们发现Valid ID的使用场景和可落地应用远远超出了数字凭证的范畴。举两个例子:
第一个例子,Valid Sign签名工具。使用Valid ID平台对机构身份进行认证与锚定之后,机构可以使用自己的DID对任何文本、图片、文档甚至是可执行文件进行签名。任何第三方都可以对这个签名的结果进行验证。这样,现实世界中所有需要使用纸笔签字或者公章盖章的场合,立即就可以被数字化的方法取代。整个使用过程既不需要代币,也无需与区块链进行交互,但这却是不折不扣的Web3应用——因为它保障了用户数据自主权。
我们将上述签名工具命名为Valid Sign,并在Valid ID网站开放使用。除此之外,我们还提供了Valid ID机器人,目前已经与Telegram和Discord软件进行了集成。用户可以在这些社交软件之内直接对任何Valid Sign的消息进行验证。这样,即使某些项目方的社交账号被盗取,黑客在频道内发布诈骗和钓鱼链接,频道内成员也可以一键对项目发发布的任何声明和链接进行签名验证,从而有效避免Web3行业层出不穷的欺诈事件。
第二个例子,Web3机构网络。无论是Web3的原生组织形态DAO,还是现实世界的公司、机构甚至政府部门,都可以将自己的组织架构在Valid ID平台进行映射。机构与子机构的层级关系,不同人员的角色与职权,机构的收款地址与NFT合约,甚至各种AI驱动的无人设备,都可以在机构页面进行注册,并以Trust Tree的形式公布于众。借助类Nostr的消息协议,机构、组织以及其下属的人员,可以展开种类丰富的社交互动和社交证明。相关的事件数据,既可以保存在Nostr relay当中,也可以存储于Arweave和区块链公链网络,Valid ID平台很快还会推出与机构法定名称直接绑定的Valid Name功能,以及对机构间社交认证结果进行定量评价的Valid Score功能,努力成为Web3机构网络的信任基石。
为了配合各类应用场景,zCloak Network的各种基础设施正在紧锣密鼓的建设之中。目前已上线无需安装就可以使用的手机版数字身份钱包 zkID Wallet(wallet.zkid.app)只需要将该网页“添加到主屏幕”,就可以获得全功能的数字身份钱包APP,并在移动端使用Valid Sign和零知识证明虚拟机功能。zkID Credential 平台(cred.zkid.app)可以承载各类可验证数字凭证的制备、认证和验证任务。无代码版零知识证明生成器将在Credential平台进行集成,方便各类验证机构定制满足自己需求的零知识证明程序。多链attestation合约将把zCloak生态内的数字凭证与“谁是谁”的信任关系映射到主流区块链公链,供智能合约直接调用。
Valid ID 开启公测
2023年3月,Valid ID平台已经开启内部测试,经过数十家Web3机构的测试与检验,于今日正式开启公测。我们知道,Web3信任基础设施的建设需要全行业的共同努力。Valid ID去中心化的架构设计就是为了把身份的控制权交到每个机构自己手中。zCloak Network诚挚邀请各路机构与项目方,共同参与Valid ID网络的建设,在Valid ID主页(valid3.id)点击 Request Onboard,其商务团队会尽快与您联系。早鸟入驻机构可以免费获得专属的Valid Name等福利。尤其欢迎有能力进行安全审计、机构评级、具有工商与法律数据积累的机构进驻,共建Web3信任网络。