什么是 ZEXE?(第一部分)

为了欣赏 ZEXE 的设计,首先了解更多关于加密货币如何在幕后工作是至关重要的。

介绍

自加密货币出现以来,分布式账本系统已经变得流行起来。典型的分布式账本方案建立在一种称为区块链的技术之上,其特点是特定的数据结构以块的形式保存交易信息的记录。这些数据块通过称为散列的密码计算数字“链接”或链接在一起,并且该散列唯一地标识给定块。

尽管它们越来越受欢迎,但分布式账本系统方案通常只提供有限的隐私。此外,确实提供隐私的方案通常在其支持的程序方面的表现力受到限制。

正是这个问题促使隐私研究人员(包括几位 ZCash 创始科学家)提出了一个他们称为 ZEXE或零知识执行的方案。ZEXE 是第一个基于账本的方案,在该方案中应用程序可以在不信任、私密和可扩展的情况下执行。

虽然 Aleo 是由 ZEXE 的几位作者创立的,并且研​​究是其计算模型的关键部分,但 Aleo 不仅仅是 ZEXE。它超越了提供用于编写​​私有应用程序的完整堆栈方法。

尽管如此,ZEXE 是 Aleo 中的核心组件。然而,在研究圈之外,它仍然相对不为人知。因此,本系列文章的目的是提供 ZEXE 设计策略背后的额外背景、它支持的功能以及可以使用它构建的真实世界应用程序的描述。

预赛

为了欣赏 ZEXE 的设计,首先了解更多关于加密货币如何在幕后工作是至关重要的。因此,首先,我们从一些额外的上下文开始,并解释使 ZEXE 成为可能的底层密码原语。

因此,在下一节中,我们将讨论有关加密货币隐私的一些关键概念,以及作为 ZEXE 和其他隐私模型的关键部分的两个加密原语:承诺方案和零知识证明。

数据隐私和功能隐私

在加密货币中,交易是某种价值交换的记录,以数字资产的形式,从一个钱包地址到另一个钱包地址。例如,比特币交易由三部分组成;输入 , 输出 和发送的 数量 ,尽管 数量 实际上反映为 输出的一部分

因此,如果 Bob 向 Alice 发送 50 BTC,那么

  1. 输入是 Bob 最初从中收到 50 BTC的  旧 BTC 地址、上一笔交易的哈希值以及将这些硬币签名给 Bob 的人的签名

  2. 金额 是 Bob 发送的 50 BTC 

  3. 输出 通常包括上述 金额  Alice 的地址、当前交易的哈希值和 Bob 的签名。

任何查看比特币分类账的人都可以看到此交易信息。尽管没有明确记录比特币所有者的姓名,但对于具有适度计算能力的坚定攻击者来说,最终将地址与真实所有者相关联并不难。出于这个原因,比特币是匿名的,实际上并不提供真正的隐私。

为了解决这个问题,像门罗币这样的私人加密货币使用隐形地址。也就是说,对于每笔交易,硬币的发送者 A 为接收者 B 选择一个随机的一次性地址。通过使用隐形地址,只有发送者和接收者才能确定付款的发送地点。这是引入比比特币更好的隐私的一种方式。

以太坊等基于帐户的系统具有更差的隐私属性,因为每个公钥都被重复用作地址。然而,以太坊确实提供了其他隐私方案在很大程度上缺乏的额外可编程性。

承诺计划

承诺方案有以下三个步骤:

  1. 密钥生成:( pkvk )←key。密钥生成算法输出一对密钥,证明者的密钥 pk 和验证者的密钥 vk,分别发送给证明者 P 和验证者 V。

  2. 承诺阶段:( comd )←Com( pkm )。Com 算法将证明者的密钥和要提交的消息作为输入。然后它输出承诺 com 以及一个开放值 d,仅在验证阶段发送到 V。承诺 com 被发送到 V。

  3. 验证阶段:  b ←Ver( vkcommd )。算法 Ver 将验证密钥 vk、承诺 com、原始消息 m 和开放值 d 作为输入。它输出一个布尔值 b,即 成功 或 失败

零知识证明

零知识证明涉及两方,证明者 P 和验证者 V。验证者 V 挑战证明者 P 以解决给定的数学难题。然后,证明者 P 解决了这个难题,但她没有将解决方案w发送给 V,而是  创建了一个证明 π ,该证明 π 应该让 V 相信她已经正确地解决了这个难题,而没有透露任何关于她的解决方案的信息。

零知识证明的主要目的是使 V 能够轻松确定 P 的证明 π的真实性, 从而进行交易。

对于像比特币这样的支付用例,为了在两方之间发生任何交易,发送方需要承诺向接收方支付一定的价值。因此,需要一个承诺方案来做出应该对发送者具有约束力的承诺。但是该方案还需要对接收者隐藏,以便正确地实现零知识。也就是说,除非发送者公开它(即,向接收者发送密钥以显示金额),否则接收者应该无法确定所承诺价值的确切数量。

因此,为了让 Alice 私下向 Bob 发送硬币,她需要做两件事:

  • 首先,她使用承诺方案来“加密”她想要发送给 Bob 的硬币的价值。提交的值不仅是隐藏的,而且还绑定到 A。

  • 其次,爱丽丝创建了一个零知识证明 π,证明爱丽丝拥有她想发送给鲍勃的硬币这一事实,但没有透露任何有关交易的信息。

然后 Alice 将她的承诺连同相应的零知识证明 π一起发布。

请注意,通过实施如上所述的承诺方案和零知识证明,可以成功隐藏状态转换的输入和输出,但不能隐藏正在执行的转换函数。这实现了数据隐私,因为发送者、接收者和发送的金额都是隐藏的。

在第二部分中,我们将介绍 ZEXE 设计策略,以及该方案如何实现基本的零知识原语以启用强大的新范式:去中心化私有计算。