学术向丨智能合约世界的隐私方案,Zether将为以太坊带来什么

尚力财经 346 0

前言:

目前,像以太坊这样的区块链智能合约平台已经非常流行。尽管在这样的平台上可以很容易地构建不同类型的去中心化应用程序,但目前似乎没有简单的方法来为它们添加一个有意义的隐私层。

来自斯坦福大学的博士生bene dikt Bunz(《Bullet proof防弹证明方案》的作者之一)、斯坦福大学教授Dan Boneh、Visa研究部的Shashank Agrawal和Mahdi Zamani共同提出了一个以太坊智能合约平台的隐私方案:Zether。兼容以太坊等智能合约平台。在效率和可用性方面,协议采用了类似以太坊的基于账户的方法。本文的作者描述了保护Zether免受重放攻击和异常抢先运行的技术。此外,他们还开发了一种机制来实现与任何智能合约的互操作性。这有助于一些流行的去中心化应用,如拍卖、支付通道、投票等。

而这个方案也得到了智能合约之父Nick Szabo的转发和支持。

学术向丨智能合约世界的隐私方案,Zether将为以太坊带来什么-第1张图片-欧交易所

作为协议的一部分,作者还提出了-Bullets,它是现有零知识证明系统防弹的改进版本。-Bullets使防弹和适马协议更具互操作性。研究人员已经将Zether实现为以太坊的智能契约,并通过测量Zether契约中使用的气体量来展示这种设计的实用性。在2019年2月初的实验中,一次泽瑟保密交易的成本约为0.014 ETH(约1.51美元)。目前,研究人员正在讨论对以太坊虚拟机(独立于Zether)进行一个小的改动,这将大大降低Zether保密交易的成本。

学术向丨智能合约世界的隐私方案,Zether将为以太坊带来什么-第2张图片-欧交易所

(图片来自:pxehere.com)

在进一步了解Zether的隐私解决方案之前,让我们快速回顾一下市场上已经存在的隐私技术解决方案:

用于比特币的保密交易(

他使用Pedersencommitments和OR-proof建立了一个支付机制,其中隐藏了交易金额,但可以验证一个交易的输出之和是否超过输入之和。Monero更进一步,使用一种特殊类型的签名方案来隐藏发送者选择的UTXO set交易的来源和目的地(匿名set)。然而,门罗的签名大小随着匿名集的大小线性增加。Zether扩展的匿名属性类似于Monroe(但他们的模型不同)。

ZCash基于Zerocash协议,该协议使用更复杂的零知识证明系统zkSNARKs,以亚线性成本提供匿名性。发送者和接收者隐藏在使用屏蔽地址的人中间。使用SNARKs的一个缺点是需要预先生成一个很大的公共引用字符串(CRS),没有人知道这种方式的陷门,这是一个具有挑战性的任务。发送方需要下载这个公共引用字符串(CRS)并生成一个大循环的证书,非常耗时。

还有其他几种方法可以使区块链交易匿名。CoinJoin为一组用户提供了一种共同创建比特币交易的方式。(MimbleWimble/Grin)结合了机密事务(CT)和CoinJoin技术,以非交互方式聚合事务。CoinShuffle和Mixcoin可以是比特币混合协议。TumbleBit使用不受信任的媒介(称为Tumbler)使事务不可链接。M obius通过以太坊智能合约取代了tumbler media。

Zether的匿名方式与上述方案不同,不依赖于其他用户的积极参与。Zether用户可以选择自己的匿名集(类似Monroe)。另一方面,如果用户积极使用混合服务,它也可以提供更好的匿名性。

Hawk是一个以保护隐私的方式建立任意智能契约的框架。特别是可以完全隐藏拍卖中的出价,但也需要付出巨大的代价。 在Hawk框架中,契约的隐私部分被转化为一个回路。受参与者私有输入委托的管理器在循环上生成zkSNARK证书,以表明它已被正确执行。SNARKs不仅依赖于可信设置,还依赖于循环,因此需要为每个契约生成不同的字符串。此外,循环模型限制了可以参与的用户数量,因此虽然Hawk功能强大,可以提供更好的隐私,但它不是完全去中心化的,对于简单的合同来说,它太昂贵了。

Ekiden,另一种通用框架,通过智能合约平台兼顾性能和保密性,但它依赖于可信执行环境(如英特尔SGX),所以不是完全去中心化的。

RS coin、Solidus、zkLedger等方案的运营模式。介于比特币/以太坊等完全去中心化的设置和现代金融系统的中心化设置之间。

在这种模式中,银行控制货币供应,但他们会使用区块链进行交易。这里使用的技术与zkLedger有一些相似之处,在ZK ledger中,每个银行都有一个帐户。zkLedger中的发送方银行a创建多个任务,并向接收方银行B发送一些钱x.B对应的任务是什么?X,B对应的任务是X,其他所有任务都等于0。然后有证据表明这些任务是良构的,A的量超过了x,当我们在Zether协议中使用类似的思想时,Zether要处理更多的异常前置、重放、兼容性等问题。与开放平台上智能合约的建立上述文章内容就是。

并行工作:Zexe是最近提出的Zerocash类型货币的私有脚本语言。它提供了与比特币脚本类似的功能,同时隐藏了脚本的输入和脚本本身。但是,它不支持像智能契约那样的有状态计算。

Quisque是一个新的匿名系统,旨在解决一些类似Monroe Coin和Zcash的问题(例如,日益严重的未使用事务输出(UTXO)集问题)。它的模型是UTXO和account的有趣混合。并且基本单位是一个账户(由公钥和承诺组成),只能使用一次:在一次交易中,旧账户会被销毁,新账户会被创建。虽然Quisques提供了一种新的匿名方法,但是它也面临着异常前端运行攻击的问题(匿名集合中的公钥可能在事务处理之前被更新)。更重要的是,Quisques是一种独立的加密货币,而Zether的目标是建立一个部署到任何智能合约平台的系统,该系统可以被其他智能合约使用,以实现更多的隐私。泽瑟隐私方案的特点

好了,说了这么多隐私方案以及和泽瑟的对比,我想大家对这个方案已经有了初步的了解。这个方案有什么特点?

首先我们要知道Zether不需要对以太坊等底层智能合约平台的设计做任何改动。作为一个智能合约,Zether可以独立执行或通过其他智能合约来交换一个ZTH令牌的机密数字。Zether使用的技术可以应用于其他基于账户的加密货币,并且完全独立于它们的共识机制。

其特点如下:泽瑟隐私方案的一些重要条款Zether的隐私方案概述

在这一节中,我们将首先讨论带有核心功能的Zether的简单版本,然后描述它的一些缺点以及如何克服这些缺点。

一个简单的Zether契约:Zether智能契约(ZSC)需要一个Zether令牌(ZTH),Zether账户由ElGamal公钥标识,存储在ZSC内部州。通过公钥Y在b ZTH创建一个账户,用户可以发送b ETH到这个智能合约。ZSC合约生成B的ElGamal加密,随机性为0(因为B无论如何都是交易的一部分),并将其添加到与Y相关的加密余额中,有人可以通过显示当前余额b*将ZTH转换回ETH,并提供Y的密文的零知识证明(即智能合约中的密文与Y相关)。

为了在不暴露B本身的情况下将B数的某些ZTH转移到公钥Y’上,有人可以在Y和Y’的条件下加密B。在实现过程中,作者使用了一种新的零知识证明机制,即上面提到的-Bullets,来有效地证明加密传输平衡和新发送者平衡的陈述。

前置:

Zether简化版的第一个问题是零知识证明是在契约的某个状态下生成的。比如转账交易中的零知识证明,需要显示余额为正。Alice将生成一个与她当前帐户余额相关的证书,并以加密形式存储在合同中。但是,如果另一个用户将一些ZTH传输给Alice,并且Bob的事务被首先处理,Alice的事务将被拒绝,因为证明将不再有效。请注意,鲍勃可能是一个非常好的用户,但在这种情况下,爱丽丝失去了她为处理这笔交易支付的费用。我们称这种情况为反常的抢跑。Burn交易也有类似的问题:如果密文发生变化,加密某个值的密文证明将失效。

为了解决这个问题,我们可以引入一种新的交易类型,这种交易类型只锁定账户以防止转入。Alice可以等到事务进入区块链后再开始传出传输(或烧录事务)。虽然这似乎解决了问题(以两步过程为代价),但它给像鲍勃这样想要将ZTH发送给爱丽丝的用户带来了新的问题。 Bob发布传输交易Tx时,Alice的账户可能没有被锁定,但可能在Tx进入前被锁定,导致Tx被拒绝。

当我们匿名时,任何锁定方式都变得更加不可靠。如果爱丽丝想隐藏自己,为了确保她的交易通过,她必须锁定匿名集中的所有帐户。显然,这是不允许的:爱丽丝不得锁定其他用户的帐户。此外,Alice只能将锁定的帐户放在自己的匿名收藏中。但是,如果有人在爱丽丝的交易进入之前解锁了他们的账户,爱丽丝的匿名性就会降低。

挂起的传输:

为了解决抢先运行问题,作者将所有传入的传输保持在等待状态。这些转账会不定期的转入账户,以便可以使用流入的资金。这种滚动方法任何时候都不能发生,否则证明又会失效。为了解决这个问题,协议作者将时间分成几个时期,其中一个时期由k个连续的块组成。

k的选择取决于两个因素:a)区块链的最新状态和任何用户的视图之间的间隔;b)将交易纳入区块链所需的时间。

在每个历元周期结束时,未决转账将转入相应的账户。

用户希望在纪元周期开始时发布他们的传输事务(或烧录事务)。因此,即使他们没有看到区块链的最新状态,并且需要一些时间来融入他们的交易,他们也不会进入下一个纪元周期。

只要明智地选择了K,交易就会在帐户改变状态之前得到处理。

在智能合约上滚动:

不幸的是,滚动帐户并不像看起来那么简单,因为只有在交易发送到智能合约后,合约才会做任何事情。

不能期望每个用户在每个时期都发送滚动消息。此外,他们也不可能在正确的时间收到这些信息。第一个想法是当在一个历元周期中接收到第一个消息时,滚动并等待所有账户的传输事务。

然而,这给消息发送者带来了不合理的巨大负担:它将不得不支付一大笔滚动成本。此外,用户无法知道他们的交易是否将是一个纪元周期中的第一次,因此他们无法估计正确的供气量。

在收到该帐户的第一条消息时,我们在一个纪元周期中滚动一个帐户。

因此,一封邮件将只覆盖一个帐户。为了实现这一点,协议作者定义了一个单独的(内部的)滚动方法,其他方法做的第一件事就是调用这个方法。

可能会出现这样的情况,一些账户由于没有启动交易,已经连续几个纪元周期没有滚动。这不是问题,因为账户持有人(比如Alice)也没有想要使用她的钱。而当Alice想要操作她的账户时,她将发布一笔交易。自上次滚动后转入她账户的所有资金,将立即进行滚动,并可被使用。

重放攻击保护(Replay protection):

像其他支付机制一样,Zether需要处理重放攻击问题,以太坊通过将nonce与每个账户关联,提供了自己的重放攻击保护措施。不幸的是,这一程度的保护对于Zether而言是不够的,这是因为两个原因: (1) Zether账户拥有自己的公钥,它们与以太坊地址并不关联,(2) Zether交易包含非交互式零知识证明。

一个恶意的行动者可窃取这些证明,并将它们放进新的交易。如果账户的状态没有更改,则新的交易也将处理成功,这会导致资金损失。一个敌对的实体可通过重放请求再次锁定账户。

为防止此类问尚力财经小编2022题,我们将nonce与每个zether帐户关联起来。当交易被处理时,nonce将递增。来自帐户的新交易必须在与帐户关联的nonce的最新值和交易记录上签名数据,包括任何零知识证明。此方法将交易的所有组件绑定在一起,并确保新鲜性。零知识证明不能被导入恶意交易,而有效交易也无法被重放。

可探讨的是,是否存在一种方法,可使用以太坊地址本身作为Zether账户的身份。然后,这些账户将使用与地址对应的密钥进行操作,那么,我们就可免费获得重放攻击保护和签名验证。然而,这将迫使用户从固定的以太坊地址操作Zether帐户。他们将无法将帐户委托给其他地址,例如将帐户锁定到一个智能合约。

此外,以太坊地址只是公钥的哈希结果,在零知识条件下证明哈希声明是非常昂贵的。最后,为Zether帐户提供单独的公钥,也有助于使设计更模块化和独立化。

匿名性:

Zether可扩展到匿名传输,Zether的匿名版本,需要一个更为复杂的零知识证明,其也需要一个新的重放攻击和双花保护机制,以及一个将账户锁定到智能合约的不同机制,关于这部分内容,方案作者们在论文的附录D.1部分有进行详细的探讨。关于Σ-Bullets

在文章的开头部分,我们谈到Zether使用了一种称为Σ-Bullets的零知识证明系统,实际上它是将Bulletproofs(防弹协议)与Σ-protocols集成到了一起,以便对代数编码值(例如?x:g^x =y ∧ h^x = u ∈ G. (格式编辑问题,建议看论文原文))进行有效证明。另一方面,Bulletproofs(防弹协议)是一种回路证明系统,它非常适合范围证明和其他更复杂的算术语句。如果所有值都使用相同的承诺密钥,则bulletproof(防弹协议)确实可对Pedersen承诺值进行证明。而使用Σ-Bullets,我们可关于代数编码数据,证明更复杂的语句。

例如,我们可有效地证尚力财经小编2022明一组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字节)。

学术向丨智能合约世界的隐私方案,Zether将为以太坊带来什么-第3张图片-欧交易所

(图:ZSC合约Gas成本)

目前,论文的其中一位作者Benedikt Bunz,已开源了Zether协议的部分代码及测试代码,有兴趣的读者可以了解一下。[x]

标签: 2022

抱歉,评论功能暂时关闭!

微信号已复制,请打开微信添加咨询详情!