风险提示:请理性看待区块链,树立正确的货币观念和投资理念,不要盲目跟风投资,本站内容不构成投资建议,请谨慎对待。 免责声明:本站所发布文章仅代表个人观点,与CoinVoice官方立场无关

深度 | 一文概览加密经济隐私协议机制

加密谷Live
2019年10月22日

深度 | 一文概览加密经济隐私协议机制

深度 | 一文概览加密经济隐私协议机制

当前,类似以太坊这样的区块链智能合约平台已经变得非常流行。虽然不同类别的去中心化应用可以很容易地构建在这样的平台上,但目前似乎没有为它们增加一个有意义的隐私层的简单方法。
来自斯坦福大学的博士生 Benedikt Bunz (Bulletproofs 防弹证明方案的作者之一)、斯坦福大学教授 Dan Boneh 以及来自 Visa 研究部门的 Shashank Agrawal 和 Mahdi Zamani 联合提出了一种针对以太坊智能合约平台的隐私方案:Zether。 它与以太坊和其他智能合约平台兼容。在效率和可用性方面,该协议采用了类似于以太坊的基于账户的方法。 论文的作者们描述了保护 Zether 免受重放攻击和非正常预先交易(front-running)的技术。此外,他们还开发了一种机制来实现与任意智能合约的互操作性。这有助于推行一些流行的去中心化应用,比如拍卖、支付通道和投票等。 该方案也得到了智能合约之父尼克 . 萨博(Nick Szabo)的大力支持。 作为协议的一部分,作者们还提出了Σ-Bullets,这是现有零知识证明系统 Bulletproofs (防弹证明)的改进版本,Σ-Bullets 使得 Bulletproofs 与 Sigma 协议变得更具互操作性。 研究者们将 Zether 作为以太坊智能合约实施,并通过测量 Zether 合约使用的 gas 量,来展示设计的实用性。在 2019 年 2 月初的实验中,一笔 Zether 保密交易的成本大约是 0.014 ETH (大约 1.51 美元)。目前研究者们正在讨论对以太坊虚拟机的一种小更改(独立于 Zether),这将极大地降低 Zether 保密交易的成本。
深度 | 一文概览加密经济隐私协议机制

深度 | 一文概览加密经济隐私协议机制数字资产的隐私技术方案
在详细了解 Zether 之前,我们先回顾一下市场上已经存在的隐私技术方案。 用于 BTC 的保密交易(CT)首先是由 Maxwell 提出的,他用佩德森承诺(Pedersen commitments)和 OR-proofs 建立了一个支付机制,其中的交易金额是隐藏的,可验证一笔交易的输出之和是否超过输入的总和。 门罗币(Monero)则更进一步。它使用了一种特殊类别的签名方案,以隐藏由传送方(匿名集)选择的 UTXO 集交易的起源地及目的地。然而,门罗的签名大小是随匿名集的大小而线性增加的(Zether 扩充套件的匿名属性类似于门罗,但它们的模型不同)。 ZCash 基于 Zerocash 协议,它使用了一种称为 zkSNARKs 的更为复杂的零知识证明系统,以次线性成本提供了匿名性,使得传送者和接受者隐藏在使用遮蔽地址的人群当中。使用 SNARKs 的一个缺点是,需要预先生成一个大的公共引用字符串(CRS)。传送方需要下载这个字符串,并为一个大型回路生成证明,这非常耗时。 还有其他几种方法可以使区块链交易实现匿名。 CoinJoin 为一组使用者提供了一种共同建立 BTC 交易的方法。MimbleWimble/Grin 结合了保密交易(CT)和 CoinJoin 等技术,以非互动方式聚合交易。CoinShuffle 和 Mixcoin 可为 BTC 混合协议。TumbleBit 使用了一种不受信任的媒介(称为 Tumbler),使得交易不可链接。M¨obius 则通过一个以太坊智能合约取代了 tumbler 媒介。 Zether 的匿名方式不同于以上的方案,它不依赖其他使用者的参与。Zether 使用者可选择他们自己的匿名集。但如果使用者主动使用混合服务,它的确可以提供更好的匿名性。 Hawk 是一个以隐私保留方式建立任意智能合约的框架。它可以完全隐藏拍卖中的出价,但这也需要付出巨大的代价。在 Hawk 框架当中,合约的隐私部分被转换成一个回路(circuit)。管理者受参与者的私人委托进行输入,在回路上生成一个 zkSNARK 证明,以表明它已被正确地执行。SNARKs 除了依赖可信设定之外,引用字符串(reference string)还依赖于回路,因此,需要为每个合约生成不同的字符串。 回路模型对可参与的用户数量进行了限制,因此,Hawk 尽管很强大,可以提供更好的隐私性,但它并不是完全去中心化的。对于简单的合约而言,这一框架的运行成本也过于昂贵。 另一个通用框架 Ekiden 通过智能合约平台兼顾了效能和保密性,但它依赖于可信执行环境(例如英特尔 SGX),所以它也不是完全去中心化的。 RSCoin、Solidus、 zkLedger 等方案的运作模式则介于 BTC/ 以太坊等完全去中心化的设定和现代金融系统的中心化设定之间。 在这类模型中,银行控制货币供应,但会使用区块链进行交易。这里所使用的技术和 zkLedger 有一些相似之处,其中每个银行都有一个账户。 具体来讲,zkLedger 中的传送方银行 A 建立多个任务,将一些钱 x 传送给接收银行 B。对应于 A 的任务是−x,对应于 B 的任务则是 x,所有其他任务则等于 0。 当我们在 Zether 协议中使用类似的想法时,Zether 需处理非正常预先交易(front-running)、重放、兼容性等更多的问题,这与在开放平台上建立智能合约有关。 并行工作:Zexe 是最近针对 Zerocash 类别货币的一种私有脚本语言提案,它提供与 BTC 脚本类似的功能,同时隐藏脚本和脚本本身的输入。但是,它并不支持像智能合约那样的有状态计算。 Quisquis 是一种新的匿名系统,旨在解决门罗币和 Zcash 所存在的一些问题(例如,未使用交易输出(UTXO)集的不断增长问题)。该模型是一种有趣的 UTXO 和账户混合体,基本单位是一个账户(由公钥和 commitment 承诺组成),它们只能一次性使用:在一笔交易中,旧帐户会被销毁,而新账户会被建立。 尽管 Quisquis 提供了一种新的匿名方法,但它也面临非正常预先交易(front-running)攻击的问题,即:匿名集中的公钥可能会在交易被处理之前进行更新。值得指出的是,Quisquis 是一个独立的数字资产,而 Zether 的目标则是建立一个可以部署到任何智能合约平台的系统。它可供其他智能合约使用,以实现更多的隐私性。

深度 | 一文概览加密经济隐私协议机制

*Zether 隐私方案的特点*

以上是各种隐私方案的概述以及它们和 Zether 之间的比较。那么,这种方案具有哪些特点呢? 首先,Zether 不需要对以太坊这类底层智能合约平台的设计进行任何更改。Zether 作为一个智能合约,可以单独执行,也可通过其他智能合约执行,以交换保密数量的 ZTH token。Zether 使用的技术可应用于其他基于账户的数字资产,并完全独立于它们的共识机制。其特性如下:

  • 保密:Zether 的交易是保密的,账户余额始终是加密的,用户需提供密码证明来使用 ZTH。

  • 零知识证明:Zether 使用零知识证明技术作为重要基础。为了让 Zether 变得更有效,研究者提出了一种新的零知识证明机制,称为Σ-Bullets,旨在实现 Bulletproofs (防弹协议)与 Sigma 协议之间的互操作性。这使我们能够有效地结合基于 Bulletproofs (防弹协议)的范围证明以及 ElGamal 加密(Σ-Bullets 也可以在其他设定中进行应用)。

  • 实施方式:我们将 Zether 作为一种以太坊智能合约进行实施,并测量执行所需的 gas 量。在实现对以太坊的增强改进后,这种实施将变得更为有效。作为实施策略的一部分,协议作者们在以太坊上提供了一个高效的 Bulletproofs 实现。

  • 互操作性:Zether 提供了一种将资金锁定在智能合约账户中的方法,这可以更容易的为几个重要的去中心化应用新增保密性。在论文当中,作者们展示了 Zether 可构建的四种应用,它们分别是:保密竞拍应用、保密支付通道、保密权益投票、以及私密权益证明(private proof-of-stake)。

  • 匿名性:论文作者们描述了 Zether 的一个扩充套件,它还可隐藏一笔交易中的传送者和接收者,虽然与匿名性相关的开销与群体大小成线性关系,但它不需要可信设定,也不需要更改基础智能合约平台。因此,Zether 的匿名保证与门罗币更相似,不同之处在于,Zether 是基于账户模型的。

深度 | 一文概览加密经济隐私协议机制

*Zether 隐私方案的部分重要术语*

  • Fund transaction (资助交易):通过存入以太币和指定一个 Zether 账户(Elgamal 公钥),来资助一个 Zether 账户。任何人都可资助一个 Zether 账户。

  • 转让交易(Transfer transaction):用于将 ZTH 从 Zether 账户转移到另一个账户。

  • 燃烧交易(Burn transaction):用于将与 Zether 账户相关联的所有 ZTH 换回以太坊地址中的以太币。

  • Elgamal 加密(Elgamal encryption):一种非对称加密方案。密钥 sk,公钥 pk =gˢᵏ。要加密讯息 m,选择一个 nonce r,密文为 (gʳ, m.pkʳ)。而要解密,计算 (gʳ)ˢᵏ,并除以 m.pkʳ得到讯息 m。然而,在 Zether 当中,为了使这种加密具有额外的同态性,讯息被制成指数,制造密文为 (gʳ, gᵐ.pkʳ);

  • Epoch 周期:具有时间概念的设定自变量,指 k 个连续区块的时间。

深度 | 一文概览加密经济隐私协议机制

Zether 隐私方案概述

在这一节,我们首先会讨论具有核心功能的简单版 Zether,然后描述一些它的缺点,以及如何克服它们。 一个简单的 Zether 合约:Zether 智能合约(ZSC)需要一种 Zether token (ZTH),Zether 账户使用 ElGamal 公钥进行标识,这些公钥储存在 ZSC 的内部状态当中。通过公钥 y,使用 b ZTH 创立一个账户,使用者可将 b ETH 传送到这个智能合约。ZSC 合约生成随机性为 0 的 b 的 ElGamal 加密(因为 b 无论如何都是交易的一部分),并将其新增到与 y 相关的加密余额中。某人可通过显示当前的余额 b*,将 ZTH 转换回 ETH,并提供 y 的密文的零知识证明(即该密文与智能合约中的 y 相关)。 为了将一些 b 数量的 ZTH 转移到公共密钥 y',而不会暴露 b 本身,某人可在 y 和 y' 的条件下加密 b。在实现当中,作者们使用了一个新的零知识证明机制,也就是上面提到的Σ-Bullets,有效地实现了证明加密传输余额和新发送方余额的宣告。 Front-running (非正常预先交易):Zether 简化版本的第一个问题,就是零知识证明是在合约的某种状态下生成的,例如,转账交易中的零知识证明,需显示剩余余额为正。使用者 Alice 将生成与其当前账户余额相关的证明,以加密形式储存在合约当中。然而,如果另一个使用者将一些 ZTH 传输给 Alice,并且 Bob 的交易首先得到处理,则 Alice 的交易将被拒绝,因为证明将不再有效。请注意,Bob 可能是一个非常好的使用者,但在这种情况下,Alice 因为处理这笔交易将失去其支付的费用。我们将这种情况称为非正常预先交易(Front-running)。燃烧交易(Burn transactions)也有类似的问题:如果密文发生变化,加密某个值的密文证明将会失效。 为了解决这一问题,我们可以引入一种新的交易类别,它只锁定账户,以防传入的转账。Alice 可等到该交易进入区块链后,再启动传出传输(或进行燃烧交易)。虽然这似乎解决了问题,但它为像 Bob 这样希望将 ZTH 传送给 Alice 的使用者带来了新的问题。当 Bob 释出传输交易 Tx 时,Alice 的账户可能不会被锁定,但它可能在 Tx 进入之前被锁定,从而导致 Tx 被拒绝。 当我们匿名的时候,任何一种锁定方法都变得不可靠。如果 Alice 想隐藏自己,为了确保她的交易通过,她必须锁定匿名集中的所有账户。显然,这是不允许的。另外,Alice 只能将锁定的账户放在她自己的匿名集中。但是,如果有人在 Alice 的交易进入之前解锁了他们的账户,那么 Alice 的匿名程度就会降低了。 等待传输(Pending transfer):为了解决非正常预先交易(Front-running)问题,作者们把所有的传入传输保留在一个等待状态中。这些转账会不时地转入账户,以便流入的资金可被使用。这种滚动法不能在任意时间发生,否则证明将会再次失效。为了解决这个问题,协议作者将时间分为几个 epoch 时期,其中一个 epoch 由 k 个连续区块组成。 k 的选择取决于两个因素:a)区块链最新状态与任何使用者 view 之间的间隔,;b)将交易纳入区块链所需的时间。 在每一个 epoch 周期结束时,待处理的转账将转入相应的账户。用户会希望在 epoch 周期开始时释出他们的传输交易(或燃烧交易)。因此,即使他们没有看到区块链的最新状态,并且这需要一些时间来纳入他们的交易,他们也不会进入下一个 epoch 周期。只要明智地选择 k,交易将在帐户更改状态之前处理。 智能合约滚动(Rolling over on a smart contract):不幸的是,滚动账户并不像看起来那么简单,因为只有在交易传送给智能合约之后,合约才会做任何事情。 不能指望每个使用者都为每个 epoch 周期传送一则滚动讯息。此外,他们不可能在正确的时间收到这样的信息。第一个想法,是在一个 epoch 周期中收到第一则讯息时,为所有账户滚动等待传输交易。然而,这为讯息传送者带来了不合理的巨大负担:他将不得不支付很大的滚动成本。此外,用户也无法得知,他们的交易在一个 epoch 周期当中是否会是第一笔,因此,他们无法估计正确的 gas 供应量。 在收到该账户的第一则讯息时,我们在一个 epoch 周期滚动一个账户。因此,一则讯息只会覆盖一个账户。为了实现这一点,协议作者们定义了一个单独的(内部的)滚动方法,其他方法所做的第一件事就是呼叫这一方法。 可能会出现一些账户连续几个 epoch 周期都没有被滚动的情况,原因在于它们没有发起交易。这不是问题,因为账户持有人(比如 Alice)也没有想要使用她的钱。而当 Alice 想要操作她的账户时,她将释出一笔交易。自上次滚动后转入她账户的所有资金,将立即进行滚动,并可被使用。 重放攻击保护(Replay protection):像其他支付机制一样,Zether 需要处理重放攻击问题,以太坊通过将 nonce 与每个账户关联,提供了自己的重放攻击保护措施。不幸的是,这一程度的保护对于 Zether 而言是不够的,这是因为两个原因: (1) Zether 账户拥有自己的公钥,它们与以太坊地址并不关联,(2) Zether 交易包含非交互式零知识证明。一个恶意的行动者可窃取这些证明,并将它们放进新的交易。如果账户的状态没有更改,则新的交易也将处理成功,这会导致资金损失。一个敌对的实体可通过重放请求再次锁定账户。 为防止此类问题,我们将 nonce 与每个 zether 账户关联起来。当交易被处理时,nonce 将递增。来自帐户的新交易必须在与帐户关联的 nonce 的最新值和事务历史记录上签名。此方法将交易的所有组件集结在一起,确保了数据最新。零知识证明不能被汇入恶意交易,而有效交易也无法被重放。 可探讨的是,是否存在一种方法,可使用以太坊地址本身作为 Zether 账户的身份。然后,这些账户将使用与地址对应的密钥进行操作,那么,我们就可免费获得重放攻击保护和签名验证。然而,这将迫使使用者从固定的以太坊地址操作 Zether 帐户。他们将无法将帐户委托给其他地址,例如将帐户锁定到一个智能合约。 此外,以太坊地址只是公钥的哈希结果,在零知识条件下证明哈希宣告是非常昂贵的。最后,为 Zether 账户提供单独的公钥,也有助于使设计更模块化和独立化。 匿名性:Zether 可扩充套件到匿名传输,Zether 的匿名版本,需要一个更为复杂的零知识证明,也需要一个新的重放攻击和双花保护机制。

深度 | 一文概览加密经济隐私协议机制

关于Σ-Bullets

如前所述,Zether 使用了一种称为Σ-Bullets 的零知识证明系统,实际上它是将 Bulletproofs (防弹协议)与Σ-protocols 整合到了一起,以便对代数编码值(例如 ∃x:g^x =y ∧ h^x = u ∈ G . (格式编辑问题,建议看论文原文))进行有效证明。另一方面,Bulletproofs (防弹协议)是一种回路证明系统,它非常适合范围证明和其他更复杂的算术语句。 如果所有值都使用相同的承诺密钥,则 bulletproof (防弹协议)确实可对 Pedersen 承诺值进行证明。而使用Σ-Bullets,我们可以应用代数编码数据证明更复杂的语句。 例如,我们可有效地证明一组 Elgamal 加密值在一定范围内。此外,我们可将 one-out-of-many 证明(又称环签名)与范围证明结合起来,以允许匿名传输。one-out-of-many 证明是一种Σ-protocol ,它隐藏了正在被使用的账户。然后使用 Bulletproof (防弹证明)表明该账户有足够的资金用于转账。关于Σ-Bullets 的详细介绍,读者可在原论文的附录 G 中找到。

深度 | 一文概览加密经济隐私协议机制

实施与评估

为了正确评估 Zether 协议并证明其可行性,研究者们将基础版 Zether 作为以太坊智能合约进行实施。实践表明 Zether 是可行的,它目前可在以太坊虚拟机上进行执行。此外,研究者们还讨论了为改进合约效能而进行的一些优化工作。一些改进已经被单独讨论,并且已被提交到以太坊改进提议(EIP)队列。 在测试中,研究者们测量了总的 gas 成本,包括发送交易的基本成本、储存成本以及证明 / 签名验证成本。进行该项研究时,一笔基础 Zether 交易的成本约为 0.014 ETH (1.51 美元)。测试表明,大部分的成本是由椭圆曲线操作产生的,对于一笔转移交易,椭圆曲线操作占总成本的 90%。而对于一笔 fund 交易,大部分的费用来自于初始化一个新账户,而将资金新增到现有账户的成本则要低得多。最后,研究者给出了事务数据的大小,注意,这并不包括基本的以太坊事务数据(大约 110 字节)。 目前,论文的其中一位作者 Benedikt Bunz 已开源了 Zether 协议的部分代码。

深度 | 一文概览加密经济隐私协议机制

加密谷编辑部 作者

Sonny Sun 编辑

   Roy   **排版******

内容仅供参考 不作为投资建议 风险自担

版权所有 未经允许 严禁转载

深度 | 一文概览加密经济隐私协议机制

深度 | 一文概览加密经济隐私协议机制

深度 | 一文概览加密经济隐私协议机制

深度 | 一文概览加密经济隐私协议机制

深度 | 一文概览加密经济隐私协议机制

深度 | 一文概览加密经济隐私协议机制

☟☟☟


声明:本内容为作者独立观点,不代表 CoinVoice 立场,且不构成投资建议,请谨慎对待,如需报道或加入交流群,请联系微信:VOICE-V。

评论0条

加密谷Live

简介:分享区块链领域专业、前沿、有趣的内容

专栏

更多>>