Web3 的信任问题
Web3 需要信任吗?单从区块链技术的角度看,似乎并不需要。因为区块链的特点之一就是 “trustless”:通过密码学与共识机制的巧妙结合,即使没有可信第三方作为中介,也可以让两个互不认识的人完成一笔交易。但是放眼整个区块链行业,对信任的需求似乎又无处不在。一个审慎的用户打开钱包,点击确认交互之前,一定会问:我能够相信这个项目方吗?我能够相信他们的合约和前端代码吗?我能够相信这个链接吗?我能够相信这个 NFT 的地址吗……所有这些,都是信任的问题。
要解决 Web3 世界的信任问题,首先得解决“谁是谁”的问题。我们经常会问,这个 NFT 的合约是谁部署的?这份数字文件是谁签名的?这个 Discord 的链接是谁转发的?即使是基于零知识证明技术的隐私身份凭证,我们也得问问原始数据的公证是谁做的。可见,解决了“谁是谁”的问题,绝大部分的信任问题都会迎刃而解。这里的前一个“谁”,一般指的是链上常见的身份标识符,例如钱包地址、DID、去中心化域名等。后一个“谁”,指的是现实世界的真实身份。前者是赛博空间,后者是现实世界,二者怎么形成关联呢?
现有解决方案的问题
在传统互联网行业,证明“谁是谁”有两种主要的方法。第一种是基于证书发放机构(CA)的公钥基础设施(PKI)体系。通过中心化的数字证书发放机构,对主体的真实身份进行审核,然后签发数字证书,以证明该机构的真实身份。我们常见的使用了 HTTPS 连接技术的网站,就是用了这种证书进行网站身份验证。
虽然已经在网站加密通信领域得到了广泛应用,CA 与 PKI 的方案仍然有有几个明显的问题:
▲ 一、该方案是彻底的中心化方法,并不符合 Web3 去中心化的理念。
▲ 二、CA 证书的申请虽然面向所有机构和组织以及个人,但是目前的身份认证机制并不完善。事实上,如果你仔细查看,你会发现目前广大中小网站广泛使用的 DV 证书根本没有任何身份认证机制。
▲ 三、应用范围比较有限,一般只用在网站的 SSL/TLS 加密通信上。
图 1:中大型机构才有组织名称认证
图 2:很多网站的证书里组织名称为空
互联网行业的第二种身份认证方式,是基于菲尔·齐默尔曼开发的 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 的基本设计理念包括:
简单易用。尽量把使用门槛降至最低。用户只要会使用普通的加密钱包,就可以使用 Valid ID 平台的所有服务。
安全可靠。使用简单、成熟、经过时间检验的密码学原语,如 Keccak 哈希,secp256k1 曲线上的 ECDSA 签名算法等。直接支持在主流加密钱包 APP 与硬件钱包内进行访问。
标准化。在身份标识方面,使用已有的 W3C 的 DID 和 VC 行业标准,基于 zCloak 的 DID 实现方法“did:zk:”,将可验证数字凭证(VC)应用于机构和个人的身份认证过程,尽最大努力兼容已有加密生态。
去中心化。在 Web of Trust 互验证理念的基础上,提出了基于多方认证的信任网络架构(Multi-party attestation based Web of Trust),以此有效消除了单点信任的问题。zCloak Network 只是入驻主体信息的认证方之一,任何有能力对其它主体进行身份认证的机构,都可以按照自己的标准对其它主体进行身份认证,并在 Valid ID 平台发放数字凭证。
数据自主可验证。每个入驻主体的相关信息只能靠注册时的根密钥进行修改,除了入驻方自己,没有人有能力对其展示的相关信息进行修改。信息更新使用基于数字签名的自验证数据结构,平台的所有的事件与日志在 Arweave、EVM 公链进行留存。任何人都可以独立对平台上的相关信息进行独立审核和验证。
(https://github.com/zCloak-Network/vips)
基于以上设计理念,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 的使用场景和可落地应用远远超出了数字凭证的范畴。举两个例子:
1. Valid Sign 签名工具。使用 Valid ID 平台对机构身份进行认证与锚定之后,机构可以使用自己的 DID 对任何文本、图片、文档甚至是可执行文件进行签名。任何第三方都可以对这个签名的结果进行验证。这样,现实世界中所有需要使用纸笔签字或者公章盖章的场合,立即就可以被数字化的方法取代。整个使用过程既不需要代币,也无需与区块链进行交互,但这却是不折不扣的 Web3 应用——因为它保障了用户数据自主权。
图 3:Valid Sign 的验证结果展示签名机构的身份信息
我们将上述签名工具命名为 Valid Sign,并在 Valid ID 网站开放使用。除此之外,我们还提供了 Valid ID 机器人,目前已经与 Telegram 和 Discord 软件进行了集成。用户可以在这些社交软件之内直接对任何 Valid Sign 的消息进行验证。这样,即使某些项目方的社交账号被盗取,黑客在频道内发布诈骗和钓鱼链接,频道内成员也可以一键对项目发发布的任何声明和链接进行签名验证,从而有效避免 Web3 行业层出不穷的欺诈事件。
图 4:Telegram 与 Discord 内集成的
Valid Sign 验证机器人
2. 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 信任网络。
上一篇:zCloak Whiteboard — zCloak:基于 ZKP 的 DID+VC 身份系统
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。