隐私交易的实现:Aztec 隐私架构介绍_ETH:SNO

Aztec 是以太坊上一个旨在解决隐私问题的 zk-rollup:也就是说它是唯一一个从头开始构建的完全保护用户隐私的 Layer 2。

为了理解隐私交易这种范式改变以及直接在网络架构中建立隐私的重要性,我们得先讨论“为什么说以太坊不是一条隐私的链”。

以太坊:一条公共区块链

大家可能已经听说过公共账本这个词,它由两个部分组成:账户和余额。

以太坊上最原始的交易是将 ETH 从一个账户 (地址) 发送到另一个账户。网络通过增加某个账户的余额和减少另一个账户的余额来记录这些交易 —— 换句话说,ETH 实际上并没有”转移“。

让我们详细看看一个例子:snoopdogg.eth 想发送一笔交易给 cozomomedici.eth。

只是两个商人

以下是交易的经过:Snoop 一开始有 100 个 ETH,然后他的账户扣了 20 个 ETH。而 Cozomo 一开始有 0 个 ETH,然后他的账户被计入 20 个 ETH。Snoop 的最终账户余额为 80 ETH,Cozomo 则为 20 ETH。转账完成。

ETH 转账交易的账本示意图

加密经纪商Hidden Road与隐私交易平台Enclave达成合作:7月27日消息,面向机构的加密货币经纪和信贷网络 Hidden Road 宣布与 Enclave Markets 建立合作伙伴关系。

Enclave Markets 是一家完全加密的交易平台(Fully Encrypted Exchange),允许参与者秘密交易数字资产。该平台通过使用定价预言机创建一个交叉网络,以建立资产的中点价格,在各个交易场所进行平均交易,从而实现一个保密的交易环境。[2023/7/27 16:02:50]

我们可以在 etherscan.io 上看到每个账户计入和扣除的交易款项,下图中显示的 ”ins“(转入) 和 "outs"(转出) 记录是公开的,所有人可见。下面是一个 ENS 名为 twinkienft.eth 的近期交易历史记录。

在这里记录了 ta 所有的光辉事迹:twinkienft.eth 的公共交易!

你可能会问:”谁是 twinkienft.eth 啊?” 我也没有头绪,但我可以看到 ta 所有的交易记录!你去 etherscan.io 上看看,你也可以观察所有被记录在区块链的交易。

就在 etherscan.io 的首页!

以太坊隐私交易平台Tornado.Cash计划上线以太坊侧链xDai:以太坊隐私交易平台Tornado.Cash计划上线以太坊侧链xDAI上。其中Tornado.Cash将创建新的池来扩大其使用范围,使得xDai持有人可通过访问100 xDai pool、1000 xDai pool、10000 xDai pool、100000 xDai pool以实现隐私交易。[2021/8/26 22:38:15]

大家可以看到这里明显有问题:我们不仅可以看到所有的账户交易,还可以看到它们的金额、资产和交易方。

这其实就是公共区块链带来的作用。由于其公开属性,公共区块链具有可审计性和可验证性。

但这也意味着,如果某人的隐私泄露了 (无论是有意还是无意的) —— 我们可以查看他们的完整交易历史。

跟踪公共交易数据是一项大生意:像 Chainalysis 和 Nansen 这样的公司会做一些复杂的分析来关联各种钱包并监控其交易活动,并对谁持有着什么资产做出概率假设。

大家想象一下,如果你每次刷卡买羊角包时,都得向全世界展示你的银行账单。这真的很傻,对吧?

这就是以太坊的现状。

解决方案:账户加密?

"呃,好吧," 你可能会说,"这很容易解决,只要将账户、余额和持有者加密就可以了。" 咄,白痴!我怎么会这么蠢。

以太坊隐私交易平台Tornado.cash完全去信任化,智能合约将不可再被修改:以太坊隐私交易平台Tornado.cash今日发布博客宣布已完成去信任化操作。该平台已将操作符地址设置为0x000000000000000000000000000000000000(0.1 ETH, 1 ETH, 10 ETH 以及 100 ETH),因此从现在开始所有的Tornado.cash合约均已无法变更。

团队表示,这也意味着对于Tornado.cash 来说,将很大程度开始遵循代码即法律的戒律。Tornado.cash智能合约在以太坊上运行,社区可以决定是否使用其工具。只要以太坊本身没有被更改或者消失,那么就没有人可以修改Tornado.cash的智能合约。而团队也提到,完全去信任化之后,Tornado.cash 团队也不能再像以前那样保护用户免受bug的侵害。除了从智能合约端完成了去中心化操作之外,Tornado.cash还对用户界面和站点进行了去中心化,他们使用了IPFS部署UI。[2020/5/21]

这就是我每天的感受...

除了讨论一下加密账户如何实现之外:

请回忆一下之前所讲的账本。经过对账户和交易加密之后,我们会得到:

似乎行得通

那么加密之后,网络应该如何检查账户,确保没有双花或者共谋的作恶行为。事实证明,要解决这个问题是非常困难的。

回到刚才那个例子。如果 Snoop 和 Cozomo 需要进行交易,那么他们必须要交互,因为网络不能帮助检查他们是否进行了有效的交易。

动态 | 隐私交易平台 Quras 与尼日利亚区块链组织 BNUG 合作扩展非洲社区:总部位于马来西亚的隐私交易平台 Quras 与尼日利亚非营利性区块链组织 BNUG 合作将其社区和开发者基础扩展非洲地区。BNUG 总部位于尼日利亚海港城市拉各斯,成立于 2016 年,是一个旨在改善尼日利亚和整个非洲的区块链教育和应用的非营利性组织,目前该协会拥有 500 多名区块链工程师,其目标为 1000 名工程师。BNUG 发言人表示,区块链技术为改善非洲命运的推动者,计划建立使非洲人民有能力发展区块链编程技能的基础设施。[2020/2/6]

1. Snoop 请求 Cozomo 的加密账户状态

2. Cozomo 向 Snoop 发送已加密的状态

3.?Snoop 对 Cozomo 的状态进行解密,确认交易前的余额

4.?Snoop 向 Cozomo 发送一笔加密支付

5.?Cozomo 向 Snoop 发送他最新的加密状态

6. Snoop 解密 Cozomo 的最新状态,确认交易后的余额 (并且 Cozomo 确实获得了他被承诺的金额)

这种精心设计的流程有很严重的缺点:很昂贵、很耗时,并且你每次只能和一个人进行交互 —— 双方还必须同时在线。

更糟糕的是,当他们结束了一场双方对话之后,任何一方都没有办法说服世界上的其他人,他们只是互相验证了他们的一笔交易。

使用票据 (note) 记账不香吗?

但是,如果我们把归属结构颠倒过来呢?以太坊默认使用账户模式,其中账户中包含余额。换句话说,查一下账户,你就会得到它的余额信息。

动态 | 以太坊隐私交易方案Hopper开源代码 发布移动应用内测版:以太坊隐私交易方案Hopper宣布完全开源代码,并发布iOS端移动应用内测版。Hopper使用零知识证明(ZKP)技术“混合”用户交易,用户可将ETH存入Hopper智能合约,而从另一个账户提取资金。目前用户一次仅可存入1枚ETH以保持匿名,Hopper还提醒由于应用尚处于内测阶段,没有进行完全审计,因而资金有丢失的风险。[2019/6/24]

那如果我们换一种思维方式呢?比如说某笔资产 (用 note 来表示) 的持有者是某人。

账户里包含余额信息 vs. 资产票据推导出持有者

Bitcoin 就是使用这种模式,叫做 UTXO (unspent transaction output, 未使用的交易输出)。但是不用纠结这个术语是什么意思了,把 UTXO 当作现金 (银行票据) 就好。

让我们先思考一下,为什么使用现金记账会更安全、更隐私 —— 或者更准确地说,比基于账户的系统更安全、更隐私。

它之所以安全,是因为只有交易现金的双方知道其所有权已经易手!而全宇宙的其他人都不会知道。

你可以把现金交易模式想象成某件物品 (note) 的所有权的变更,而账户交易模式则是两个账户的状态的变更。

图示:某张加密票据的所有权变更

当一笔 Aztec 交易在进行时,网络只需简单地为给定的票据重新分配所有权,而不是更新账户余额 (增加或减少余额)。

为什么这个模式这么有用?事实证明,加密一张票据要简单得多,因为只需在上面写两个东西:这个票据值多少钱以及它的所有者是谁。那么当它转手时,只需涂掉旧的所有者的名字,然后写上新的所有者的名字。

在 Aztec 上进行简单转账

那么,在一笔简单的票据交易中,到底会发生什么呢?

假设 Snoop 有两张面值为 50 ETH 的票据 (总额为 100 ETH),而 Cozomo 手上没有任何票据。

Snoop 手上的那两张票据需要销毁掉,并且要创建两张新票据:面值为 80 ETH 的票据分给 Snoop,面值为 20 ETH 的票据则分给其新的所有者 Cozomo。

但是,如果必须披露这些票据的价值,如何保护隐私呢?

嗯..他们并没有披露这些信息,至少没有公开。当然,Snoop 和 Cozomo 知道他们交易的资产价值,就像一笔现金交易一样,但他们不需要向全世界公开。

为了保护他们相互的隐私,Snoop 发布了一笔带锁的交易,他知道只有 Cozomo 的私钥才能解开这把锁。类比一下,这有点像将这张票据放进一个小小的保险箱中。当然,他们都知道箱子里有什么 (20 ETH),所以 Snoop 必须要相信 Cozomo 不会在屋顶上大喊:“有人刚给我转了 20 个 ETH!”

但除此之外,所有权被重新分配的票据会返回到一个数据结构中,这个数据结构包含了所有曾经创建的票据 —— 这是一个默克尔树哈希,我将在下文简要地介绍一下它。

在网络观察者看来,系统的状态会是什么样子的 —— 每张票据的面值和所有者都是完全加密的。

好管家

我们知道 Snoop 销毁了两张票据,创建了两张新的票据,然后把其中一张新票据转给了他的朋友 Cozomo。那么我们如何确保他们不会共谋作恶,比如双花?如果 Snoop 销毁了总值为 100 ETH 的两张票据,然后创建了总值为 200 ETH 的两张新票据,那怎么办?或者,他们直接创建任意数额大小的票据呢?

回想一下这两个步骤:

1.?Snoop 销毁了两张面值为 50 ETH 的票据并分别创建了面值为 20 ETH 和 80 ETH 的票据

2.?Snoop 将面值为 20 ETH 的票据转给 Cozomo

为了确保第一步没有发生可疑的行为,Snoop 需要做的就是向系统 (Aztec) 证明他打算创建的两张票据和他准备销毁的两张票据是等值的。

这被称为连接-分割交易,这种交易符合这条简单的等式:A + B = C + D

下面是烧脑部分,跟上了!

为了证明转出票据 (C + D) 等值于转入票据 (A + B, 或者说 100 ETH),Snoop 在他的浏览器中本地生成了一个零知识证明 (zero-knowledge proof,ZKP)。

利用零知识证明,他能够证明出这条等式 A + B = C + D,而无需揭露他们的任意资产价值。

然后 Aztec 验证了这一证明,并表示:”由于这是零知识证明,那么这一定是有效的。“ 此时,智能合约销毁这两个转入票据,然后生成两个转出票据,并将新的转出票据作为加密承诺记录在票据登记表中。

所有权证明

值得讨论的是,如何在 Aztec 中证明票据的所有权,这和在以太坊中证明类似。你如何证明你控制了某个以太坊地址的访问权 —— 通过使用你的钱包对一个信息进行签名。

那么你如何证明你能够访问 Aztec 的某张票据?一个非常非常奇特的加密签名叫做零知识证明。

这个证明说,”在 Aztec 状态中,a) 存在着一张特定价值的票据,b) 我拥有这张票据的所有权。“

那么 Aztec 系统的状态怎么存储?它存储在两个默克尔树中:

一颗是票据树,包含着所有曾经创建的票据;

一颗是无效树,包含着所有曾经被销毁的票据

如果你在 Aztec 中拥有一张票据,这意味着这张票据存在于”票据树“中,并且在”无效树“中不存在对应的无效票据。

左边这棵”票据树“生气勃勃,而右边这个”无效树“则伤心欲绝。如果右边的树会说话,它可能会说”我讨厌死你了“之类的话。

当我们说到”销毁“一张票据,这实际上意味着添加一张无效票据到”无效树“中,而不是删掉”票据树“中的一张票据。

默克尔树简图

为了发送那些已证明为我所有的票据,将需要创建一个全新的默克尔树 (和默克尔根)。一旦”票据树“和”无效树“的默克尔根移动到新的值中 (换句话说,系统的状态已更新),这些默克尔根就会被发布到以太坊的主链上,且交易就会被视为已记录。

写在最后

我希望本文能让读者深刻地理解到为什么隐私如此具有挑战性:我们需要在不违反或暴露用户数据的情况下,验证交易是合法且正确执行的。

这些独特的限制意味着隐私保护架构必须从头开始架构。Aztec 是唯一一个以这种方式构建的 L2 —— 用户的隐私通过其核心架构受到保护,并利用零知识证明来维护网络运作。

来源 |? Aztec Network

作者 |?Jon Wu

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

水星链

XMRCrypto预言家的2022新年箴言_CRY:CRYP

拍断大腿 2021,再接再厉 2022。2021 即将结束,2022 即刻开启。在 2021 年,Crypto 行业一如既往得周期剧烈、行情跌宕,多个热点涌现、各类板块轮动.

[0:0ms0-1:20ms