今年1月,我们启动了?0xPARC零知识身份(ZK-Identity)工作小组:一个尝试使用?zkSNARKs来构建数字身份工具的工作小组。在解释为什么密码学的进展对实现新的身份原语很重要的系列文章中,本文系第一篇。第一篇文章解释了“为什么”;而在之后的文章中会解释“怎么做”。
近几年里,线上身份系统设计的话题一直得到激烈的讨论。现代数字身份系统令新型、复杂的线上交互和社区得以实现。但不幸的的是,这些系统有许多都存在明显的弱点。
在这些弱点里,有许多可以归因于中心化身份系统设计的固有限制。首先,这些系统通常会围绕中央控制点来构建——也就是中心点故障。现代电子商务、社交媒体、消息传递平台在受到强大行动者的施压与干涉、或来自恶意黑客的技术攻击;当中央运营商受到胁迫或黑客攻击时,中央运营商以外的各方会也会处于危险之中。其次,这些系统依赖掌握在运营商手中的集中权力,它不可能与所有用户完全站在同一阵线上——比如,一个拥有多元全球受众的私营社交媒体公司必须经常决定什么构成不正当的审查行为,什么是符合公共安全利益的行为,虽然在这一点上,他们经常心有余而力不足。
去中心化与加密机制虽然不是神奇的万能药,但它们确实提供了一些有用的工具,以及拓宽了数字身份系统的设计空间。随着我们越来越多的社会与经济生活转移到线上,设计安全的、保护隐私的、以及由用户控制的身份系统将变得越来越重要。在本文,我们将论证像zkSNARKs这样的新型密码原语对于构建含有以上属性的身份系统来说是至关重要的。
Polygonzk EVM日交易数超10万笔:8月1日消息,Polygon创始人Sandeep Nailwal发推称,Polygonzk EVM日交易数量达115144笔,首次超过10万笔。另据L2Beat数据显示,当前Polygonzk EVM锁仓量达5437万美元。[2023/8/1 16:10:49]
就其核心而言,zkSNARKs之所以有用是因为zkSNARKs可以让数字系统的用户毋须依靠受信任方就能生成任意复杂度的可信声明(credibleclaims)。所有身份系统都是围绕某种机制来构建的,这些机制可以生成身份与声誉的可信声明——通常来说,相当复杂的证明附属于像政府或公司这样受信任机构出具的证明之中。通过把zkSNARK构造应用到关于身份与声誉的声明,我们可以重新构建数字身份系统,将控制权与数据托管权交还到用户手中。
可信声明
由于zkSNARKs需要在精准、数学定义的“声明”上运行,因此我们必须首先需要准确地分解身份系统所涉及的声明本质。
与完全不认识且不信任的人做交易是很难的。常识告诉我们:双方的信任度越低,合作的可能性也越低;博弈论告诉我们:在一次性的囚徒困境中,最佳策略永远是背叛对方。你会更愿意在谁那里购买一辆二手车,是与你社交圈紧密联系的密友?还是一位甚至不会告诉你姓名、从外地来的Craigslist(译者注:一个美国分类广告网站)卖家呢?
为了互相建立信任,我们需要能够做出可信声明:让与我们交互的人认为我们关于身份与声誉的声明是可信的。即便上述的Craigslist卖家对你保证他“之前卖过很多车,且所有客户都很满意——我向你保证。”这也不算是可信声明。但如果此声明与你了解的热门网站,以及其上经过验证的买家给出的五星评级相关联,那么该声明绝对给人感觉可信得多。
Polymer Labs推出Optimistic ZK IBC Connections,可降低延迟与成本:6月16日消息,专注于IBC协议的基础设施提供商Polymer Labs推出Optimistic ZK IBC Connections。该模型受到OSI模型启发,包含应用层、传输层与状态层。结合Optimistic与零知识证明验证两种技术可以提供具有理想特性的动态延迟:延迟的上限;当中继者受到适当激励时,可能会降低延迟;降低连接维护成本。[2023/6/16 21:42:32]
可信声明的想法听起来很好理解,但要构建一个用于产生可信证明机制且使之为大众所接受的机制(在这个例子中,是受欢迎的排行网站)不是一件容易的事。在传统模式中,我们常用的解决方案是将记录管理授权给受信任的权威机构,那么他们就可以对我们的身份与声誉声明做证明,并为声明赋予可信度。此权威机构必须随着时间的推移证明它们自身的认受性与可信赖性,同时维护大规模的证明生成与分发基础设施。
最为关键的是,在大部分模型中,是中央权威机构的证明才使得声明具有可信度。因为这是有效政府的身份证,所以我是公民;这是我的关注者的准确名单,所以证明我是有社会影响力的;这些是经审核的评论与评级,因此我是一个值得信赖的网上零售商。
可信声明的另一种应用在堆栈的更底层。首先,你怎么知道跟你交互的人或公司出示的声明是他们自己的,而不是其他人的?在依靠受信任权威机构的系统中,这些机构承担了更为基础的功能——身份本身的证实。当你访问网站时,API访问令牌、政府颁发的护照、或由证书颁发机构生成的一条签名链都是对身份声明的证明。
CertiK:Zk Secure (ZK)遭遇闪电贷款攻击:金色财经报道,据CertiK监测,Zk Secure (ZK)遭遇闪电贷款攻击,目前共有7千美元被盗。请保持警惕。[2023/6/3 11:55:33]
实用的身份系统可以让参与者做出各种类型的复杂可信声明:
(数字世界)当你通过Doordash订外卖时,Doordash的网站服务器会制造一个可信声明给你;通过一个第三方身份提供商,你向Doordash对自己的身份做出可信声明;你通过各种金融机构对Doordash做出关于未来会支付款项的可信声明。
(物理世界)当你抵押贷款来购买房屋时,你已经以不明显的方式对银行、房地产中介、卖家、政府做出大量关于身份与声誉的可信声明。
(两个世界混合)当你申请工作时,通过利用许多不同证明系统,向潜在雇主做出可信声明。通过引用来自教育机构或专业证书权威组织、曾与你共事过的其他同事、前公司的证明(学位证书、证书),你声称自己具有足够的培训与素质来胜任这份工作。社交媒体与其他线上账户提供商其实对关于你是一个什么样的人的声明做进一步的证明。
隐私
几乎所有的身份系统本质上都需要隐私信息才能实现预期功能,这一事实使得情况更加复杂。
出于道德和意识形态的原因,隐私是重要的,它有时会引发争议;但更为根本的是,隐私是系统设计的一个简单问题,但往往是必要的。例如,几乎所有的身份系统都依赖于秘密数据的概念,以生成关于身份的可信声明——密码、社保号码、私钥、信用卡的PIN码、账号恢复问题等。显然,这些数据需要保密。另外,使用完全透明的数据生成可信声明的过程中可能会有负面的外部效应,或至少是难以推理的外部效应;隐私数据可以防止以上情况。举个例子,如果你只是想在线上市场购买或出售商品,但你需要出示整个财务历史——银行对账单、信用卡交易、还贷情况等,那么对手方有可能使用这个信息来发起与原交易无关的超出原定范围交互。隐私对一次性交互”进行沙盒测试“,明确定义与限制了交互范围,这样我们就可以从简单又易于理解的构件开始构建更加复杂的系统。
ZK Rollup 订单簿 DEX ZigZag 已在 GitHub 上提交代币源代码:6月14日消息,以太坊二层 ZK Rollup 订单簿 DEX ZigZag Exchange 已在 GitHub 上提交代币源代码。[2022/6/14 4:24:25]
在需要隐私信息的传统系统中,我们必须将更多权力委托给中央权威机构——在这样的系统中,中央机构存储私人数据,以及对这些数据的可信证明做证明,这些私人数据几乎不可能被验证。
密码学的作用
到目前为止,我们对可信声明的生成和身份系统所讨论过的所有模型,都涉及到一个中心化角色。就如同我们探讨过的一样,有很多理由让我们想要探索一个不依赖于强大的记录保存者或管理者的系统。
这时我们立刻就面临一个显而易见的问题:当我没有你的数据时,我怎样相信你的声明?如果你向我发送属于你的数据,我怎么知道这些数据是有效的?如果你想要生成隐私数据的声明,那我们应该怎么做?这正是密码学发挥作用的地方。
从我们的角度来看,在各种的资源限制和隐私条件下,大部分应用密码学(和共识)在过去五十年里都在不断地扩展这个范围:即在没有可信的权威的情况下,可以做出何种可信声明。
数字签名方案允许用户使用同一个私钥来签署一系列消息,经过一系列的不同操作,用户可以对自己线上身份的一致性做出可信声明。“我被授权向Alice的信用卡收费。”
小组签名方案可以让用户生成关于身份的更复杂的隐私保护声明。“我是该校友会的成员,但我不会告诉你我的确切身份。”
V神:ZK rollups是目前为止最好的解决方案:推特网友Toast Of Crypto提问称,为什么要推动或强迫人们远离理想的Layer 2扩容协议?以太坊创始人V神对此回复称,因为ZK rollups是最好的解决方案,直到今年晚些时候与EVM兼容的Optimistic rollups出现,eth2将花费更长的时间。(注:ZK rollups是一种混合扩展方法,通过智能合约和零知识方法将链上安全性和第二层网络结合在一起。)[2020/7/28]
签名聚合、多签、门限签名(thresholdsignature)方案在多种不同资源限制下让用户对小组行为生成声明。“这个庞大的集体——不只是单个离群的雇员,已经授权从我们的金融账户中转移货币。”
共识机制与可编程的智能合约允许用户对未来的行为做出可信且不可逆转的承诺。”如果你对我发送了数字资产A,那么我会立即向你发送数字资产B作为交换。”
在过去,这些进程发展缓慢——这些加密原语中的每一个都定义了一个全新且范围严格的声明类型,其结构都是高度明确的。然而,在过去几年里,这种情况已经发生了改变。
时至今日,令人感到兴奋的是,我们目前已经有一种机制可以让我们有效地生成任意可信证明,这要归功于SNARKs。通过借助zkSNARKs的零知识特性,我们能够根据自己的意愿来调整声明的隐私保证。
以下是你可以利用zkSNARK生成的一些声明类型例子,这在过去是不可能做到的:
“我是一个值得信赖的债务人:我已经准时地还清了在三个银行处借贷的大额贷款,虽然我没有透露具体是哪几间银行以及借款用途。”
“我是一名备受尊敬的社区成员:虽然我以匿名的方式写的这篇帖子,但在我的命名账户下,我在这个论坛上已经累积收到超过1万记选票。”
“我是一个长期持有加密货币的收藏者:我控制的以太坊地址共持有至少两个DarkForestValhalla系列的NFT,与至少100枚ETH。”
这些声明可以以任意复杂的方式来连接、组合、甚至是编程。
当这在理论上是可行的时候,我们依然还有很长的路要走。为下一代应用制作一套强健的ZK身份工具,需要在性能、可靠性、开发者体验、应用设计模式上进行实质性提高。在下篇文章中,我们将讨论到对未来路线的理解。
附录:在身份中有什么?
要理解密码学可以在构建身份系统中的哪处发挥作用,那么就要将身份系统的概念分解到其关键组成部分,这将有助于我们的理解。
在分析一个特定的身份系统时,我们可能会问出以下几个问题:
什么是身份的原子单位(atomicunit)?
物理世界:身份经常与法律人格(legalpersonhood)相联系。换句话说,身份的原子单位就是一个独立的个人,或法人。
网络空间:身份可以是一个谷歌/脸书/推特账号;与某认证中心相关联的公/私钥对;一些基于以太坊的代币持有者(可能与特定地址无关);或其他。
身份的有效证明是由什么组成的?谁可以分发身份的证明?谁可以撤销与身份证明有关的特权?
物理世界:一个有效的证明也许是国家颁发的ID或EIN信(雇主识别号EmployerIdentificationNumber,由美国国税局分配给在美国经营的商业实体的唯一的九位数字,用于识别身份)。对于一个有效的身份证明,政府拥有最终权限:例如,政府可以吊销你的护照。
网络空间:一个有效证明可以是脸书提供的OAuth令牌,或者是一个有效的数字签名(或一串签名链)。各种不同的服务提供商对各种证明拥有控制权:比如,推特可以封禁用户账号。
是谁在保管用户身份相关的辅助数据?谁能访问这些数据,谁又能控制访问这些数据的权限?
物理世界:辅助数据由政府机构与官僚组织、私营服务提供商(银行、信用评分机构)、个人共同持有。
网络世界:在中心化模型中,辅助数据由大型科技公司掌管。在去中心化模型中,辅助数据由用户自己控制的客户端软件(浏览器、个人网络服务器)、去中心化存储网络(例如,区块链上的历史交易数据或智能合约状态)共同保存。
哪些记录、数字工件(artifacts)、或证明能够表示身份的声誉或可信度呢?是谁来决定这些信号,以及这些信号要怎样被解译?谁有权访问这些决定声誉的底层输入数据呢?谁能访问这些信号?
物理世界:信用评分报告、背景调查、社会推荐信、聘用信、证书及荣誉称号。
网络空间:NFT所有权、账龄(accountage)、历史活动、证明网络、karma(Reddit的信用评分机制)/论坛点赞。
在以上概念里,有一些互相融合:身份、声誉、身份证明紧密相连,彼此之间不易分割。例如,在某些系统里,身份的原子单位甚至可以定义成"中心机构可以为其提供有效证明的对象"——从来没有不储存在脸书数据库的脸书账号这样的说法。
然而,一般来说,我们在这个系列的文章里使用身份一词来表示一个实体的长期标签(个人、组织、机器人程序),这个标签随着时间的推移而保持稳定状态、并代表这个实体——法律人格、公钥、账号ID等。我们采用声誉一词来表示关于该主体过去所做行为的声明。
链接与致谢
感谢YiSun与DavidSchwartz对本文的反馈及校对。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。