为什么密码学的进步对于构建下一代数字身份基础设施至关重要 ?

37 阅读14分钟

大家好,欢迎来到链财Web3,我是链财君。这篇文章将作为区块链数字身份系列的第一部分,来解释“Why ?”由于我平时也要工作精力有限,下一篇如何建立的具体介绍我将放在明天编写发布,标题我都想好了,就叫“深入讲解--建立基于ZK概念验证的身份系统,需要开展哪些技术工作?”如果这篇文章对你有用,请关注我。(由于公众号政策,可能无法及时收到推送,麻烦将本号设为星标,谢谢)

1_n019i-Q4QEX3vqQ4wEZuUQ.jpg

过去几年,在线身份系统的设计一直是激烈争论的话题。现代数字身份系统已经实现了新型且复杂的在线互动和社区。不幸的是,许多这样的系统也有明显的弱点。

其中许多弱点可归因于集中式身份系统设计的固有局限性。首先,这些系统通常是围绕中心控制点构建的,因此也是围绕中心故障点构建的。现代电子商务、社交媒体和消息平台很容易受到强大行为者(如独裁政府)的压力或干扰,或受到恶意黑客的技术攻击;当中央运营商受到胁迫或黑客攻击时,除了中央运营商之外的许多各方都会面临风险。其次,这些系统依赖于权力集中在运营商手中,而运营商不可能与所有用户完全一致(在财务、社会或道德上)——例如,拥有不同全球受众的私人社交媒体公司必须经常做出决策关于什么构成不公正的审查行为和公共安全利益的行为,尽管他们往往没有能力这样做。

去中心化和加密机制并不是神奇的万能药,但它们确实提供了一些有用的工具,并且扩展了数字身份系统的设计空间。随着我们越来越多的社会和经济生活转向网上,设计安全、保护隐私和用户控制的身份系统将变得越来越重要。在这篇文章中,我们将讨论新的加密原语(例如 zkSNARK)对于构建具有这些属性的身份系统至关重要。

从本质上讲,zkSNARK 非常有用,因为它们使数字系统的用户能够生成任意复杂性的_可信声明_,而无需依赖可信方。所有身份系统都是围绕某种机制构建的,用于生成_可信的_身份和声誉声明,通常是相当复杂的声明,附加于受信任机构(如政府或公司)的证明。通过将 zkSNARK 结构应用于有关身份和声誉的声明,我们可以重新构建数字身份系统,并将控制权和数据托管权交给用户。

可信的说法

由于 zkSNARK 在精确的、数学定义的“声明”上运行,我们必须首先精确地分解身份系统中涉及的声明的性质。

与完全未知且不受信任的交易对手做生意是很困难的。常识告诉我们,随着交易对手之间的信任减少,合作的可能性也会减少;博弈论告诉我们,一次性囚徒困境中的最优策略总是背叛。你会更愿意从与你的社交圈关系密切的密友那里购买二手车,还是从从外地过来的卑鄙的 Craigslist 卖家那里购买二手车,他们甚至不告诉你他们的名字?

为了建立彼此的信任,我们需要能够做出_可信的声明_:与我们互动的人可以相信我们的身份和声誉的声明。如果上面的 Craigslist 卖家向你保证他“以前卖过很多辆车,每个人都喜欢我的车——相信我的话”,那么这并不是一个真正可信的说法。但如果这种说法与您所知道的热门网站上经过验证的买家的五星级评级集合相关,那么它肯定会感觉更可信。

可信声明的想法听起来很明显,但建立一个产生可信声明的机制并使其合法化(在本例中是一个流行的列表网站)并不是一件容易的事。在传统模型中,我们通常的解决方案是将记录保存管理委托给值得信赖的机构,以便他们可以证明我们关于身份和声誉的主张并赋予他们可信度。该权威机构必须随着时间的推移(通常在对抗环境中)证明其合法性和可信度,并维护用于大规模生成和分发证明的基础设施。

至关重要的是,在大多数模型中,中央机构的证明才是使主张可信的原因。_这_是有效的政府身份证件,所以我是公民;_这_是我的关注者的准确列表,所以我是一个社会影响者;_这些_是一组经过审查的评论和评级,因此我是值得信赖的在线零售商。

另一个可信声明的应用程序位于堆栈的更低级别。首先,您如何知道与您互动的个人或企业正在向您展示有关他们自己而不是其他人的主张?在依赖于可信权威的系统中,这些权威承担着证明身份本身的更基本的功能。API访问令牌、政府颁发的护照或您访问网站时由证书颁发机构生成的一系列签名都是有关身份声明的证明。

有用的身份系统允许参与者提出各种复杂的可信声明:

  • (数字)当您通过 Doordash 订购外卖时,Doordash 网络服务器会向您发出可信的声明(通过 DNS 签名链“我是 Doordash 网络服务器”);您通过第三方身份提供商向 Doordash 提出关于您身份的可信声明(通过“使用 Google 登录”“我是 Doordash 用户,应该被允许访问此帐户已保存的信用卡”);您通过各种金融机构对未来向 Doordash 付款做出可信的声明(“我有钱向您支付我的订单,这笔付款很快就会到达”,通过不拒绝交易的信用卡提供商)。

  • (实际)当您申请抵押贷款购买房屋时,您就隐含地向银行、房地产经纪人、卖家和政府提出了大量关于您的身份和声誉的可信声明。

  • (混合)当您申请工作时,您通过利用许多不同的证明系统向潜在雇主提出可信的主张。您声称您接受过足够的培训并具有适合该工作的气质,并引用了教育机构或专业认证机构、与您共事的其他同事以及之前公司的证明(学位、证书)。社交媒体和其他在线帐户提供商为您的隐含主张提供了进一步的证明。


隐私

几乎所有身份系统本质上都需要_隐私_才能按预期发挥作用,这一事实进一步使情况变得更加复杂。

出于道德和意识形态原因,隐私很重要,但有时会引起争议;但更根本的是,作为一个简单的系统设计问题,它通常是必要的。例如,几乎所有身份系统都依赖秘密数据的概念来生成有关身份的可信声明 - 密码、社会安全号码、私钥、信用卡 PIN、帐户恢复问题等。这些数据必须保密,因为显而易见原因。此外,用完全透明的数据产生可信主张的过程可能会产生负外部性,或者至少是难以推理的外部性;隐私保证可以防止这些情况发生。例如,如果您必须提供您的整个财务历史记录才能在在线市场上购买或出售商品(银行对账单、信用卡交易、贷款支付和工程),交易对手可能会使用此信息发起非公开交易。与原始交易无关的范围互动(负面例子包括广告,甚至骚扰和勒索)。隐私“沙箱”一次性交互,清晰地定义和限制其范围,以便我们可以从简单且易于理解的构建块构建更复杂的系统。

在需要隐私的传统系统中,我们必须将更多的权力委托给中央机构——在这样的系统中,中央机构存储私人数据并证明有关这些数据的可信声明,而这些声明几乎_无法_ 验证

密码学的作用

到目前为止,我们讨论的所有可信声明生成和身份系统模型都涉及中心化参与者。正如我们所讨论的,我们有很多理由想要探索不依赖强大的记录保存者或管理者的系统。

我们立即遇到了明显的问题:当我没有您的数据时,我如何相信您的说法?如果您将数据发送给我,我如何知道该数据有效?如果您试图提出有关私人数据的声明,我们该怎么办?这正是密码学发挥作用的地方。

从我们的角度来看,过去五十年中的大部分应用密码学(和共识)都是一个逐渐扩大可信声明范围的项目,在没有可信权威的情况下,在各种资源限制和隐私条件下,可以做出可信的声明:

  • 数字签名方案允许我通过使用相同的私钥签署一系列消息,在一系列多个不同的操作中对我的在线身份的一致性做出可信的声明。“我有权从爱丽丝的信用卡上扣款。”

  • 群签名方案使我能够对身份做出更复杂的隐私保护声明。“我是这个校友组织的成员,但我不会告诉你是哪个成员。”

  • 签名聚合、多重签名和门限签名方案使我能够在各种不同的资源限制下对群体行为做出声明。“这个大型集体机构——不仅仅是一个流氓员工——已经授权从我们的金融账户进行货币转账。”

  • 共识方案和可编程智能合约使我能够对未来的行动做出可信且不可逆转的承诺。“如果你给我发送数字资产A,我会立即给你发送数字资产B作为回报。”

历史上进展缓慢——每一个密码原语都定义了一种新的、范围严格的声明,其结构是高度指定的。然而,这种情况在过去几年中发生了变化。

_今天令人兴奋的是,多亏了 SNARK,我们现在拥有了有效地提出任意可信主张的_机制。借助 zkSNARKs 的零知识特性,我们还可以根据自己的喜好调整声明的隐私保证。

以下是您可以使用 zkSNARK 做出的声明类型的一些示例,这在以前是不可能的:

  • “我是一个值得信赖的债务人:我已经及时从三个值得信赖的银行还清了大笔贷款,但我不会透露银行或贷款的用途。”

  • “我是一位受人尊敬的社区成员:虽然我是匿名写这篇文章的,但在我的指定帐户下,我已经在这个论坛上积累了超过 10000 个点赞。”

  • “我是一名长期的加密代币收藏家:我控制的以太坊地址总共持有至少 2 个来自黑暗森林 Valhalla 收藏的 NFT,以及至少 100ETH。”

这些声明可以以任意复杂的方式组合、组成,甚至编程。

尽管这一切在理论上都是可能的,但我们还有很长的路要走。为下一代应用程序生产一套强大的 ZK 身份工具需要在性能、可靠性、开发人员体验和应用程序设计模式方面进行重大改进。在下一篇文章中,我们将讨论我们对未来道路的理解。

附录:身份包含什么?

要了解密码学在构建身份系统方面的作用,将身份系统的概念分解为其关键组件是很有用的。

在分析特定的身份系统时,我们可能会问以下一些问题:

  • 身份的原子单位是什么?

  • 物理世界:身份通常与法人资格相关联。换句话说,身份的原子单位是个人或公司。

  • 网络空间:身份可以是Google/Facebook/Twitter帐户;与证书颁发机构关联的公钥/私钥对;某些基于以太坊的代币的持有者(可能不绑定到特定地址!);或其他。

  • 什么构成有效的身份证明或证明?谁可以出具身份证明?谁可以撤销与身份证明相关的特权?

  • 物理世界:有效的证明可能看起来像国家颁发的身份证件或 EIN 信件。政府最终拥有持有有效身份证明所带来的特权:例如,政府可以吊销您的护照。

  • 网络空间:有效的证明可能是 FB 提供的 OAuth 令牌,或有效的数字签名(或签名链)。各种服务提供商拥有各种证明的权力:例如,Twitter 可以禁止您的帐户。

  • 谁保管与您身份相关的辅助数据?谁可以访问这些数据,谁控制这种访问?

  • 物理世界:辅助数据由政府机构和官僚机构、私人服务提供商(银行、信用评分机构)和私人(您的个人网络)共同持有。

  • 网络空间:在中心化模型中,辅助数据由大型科技公司持有。在去中心化模型中,辅助数据由您控制的客户端软件(浏览器、个人网络服务器)以及去中心化存储网络(例如,历史交易数据或区块链中的智能合约状态)的组合保存。

  • 哪些记录、文物或证明表明了声誉和可信度?谁决定这些信号以及如何解释它们?谁有权访问决定声誉的底层输入数据?谁可以访问这些信号?

  • 现实世界:信用评分报告、背景调查、社会推荐、雇佣信、证书、荣誉和头衔。

  • 网络空间:NFT 所有权、账户年龄和之前的活动、证明网络、业力/论坛点赞。

其中一些概念相互融合:身份、声誉和身份证明密切相关,且不易分割。例如,在某些系统中,身份的原子单位甚至被定义为“中央机构可以为其提供有效证明的单位”——Facebook 帐户的概念不存储在 Facebook 的数据库中。

然而,总的来说,我们在这一系列文章中使用_身份_来指代实体(人、组织、机器人)的持久标签,该标签随着时间的推移保持不变并代表该实体——法律人格、公钥、帐户 ID 等。我们使用_声誉_来指代可以对实体做出的有关过去行为的声明(例如“张三 始终遵守诺言”、“李四 始终按时支付信用卡账单”、“贝壳找房一直在其房源中使用准确的图片”)。

我目前的工作是在位于深圳滨海之窗的一家区块链互联网公司打螺丝,如果你对区块链项目有兴趣可以电联一哈~

转载自 链财Web3