http://www.www.tnmanning.com

以太坊隐私智能合约层Zether概述


一、什么是Zether?
不幸的是,刷新智能合约并不像看起来那么简朴,因为除非向其发送生意业务,不然智能合约不会做任何工作。人们不能指望每个用户都为每个epoch发送刷新动静,并且他们也无法在符合的时间得到这样的信息。
三、Zether方案概述



https://github.com/bbuenz/BulletProofLib/tree/master/src/main/java/edu/stanford/cs/crypto/efficientct/zetherprover


重放进攻掩护(Replay protection):
一个根基的Zether成果:
为了办理这一问题,论文可引入一种新的生意业务范例,它只锁定账户,以防任何传入的转账。Alice可比及本身的生意业务写入大发3d后,再开始其他生意业务。固然这好像办理了问题(需两步流程为价钱),但它为像Bob这样但愿将ZTH发送给Alice的用户,带来了新的问题。当Bob宣布传输生意业务Tx时,Alice的帐户大概不会被锁定,但它大概在Tx进入之前被锁定,从而导致Tx被拒绝。
Pending transfer(待处理惩罚生意业务):


Zether账户利用ElGamal加密举办标识,这些公钥存储在ZSC的内部状态傍边。用户通过Fund transaction存入以太币到指定一个Elgamal公钥,来建设一个Zether账户。譬喻:通过公钥y,用户将b ETH发送到这个智能合约,可以得到b ZTH的账户。用户通过Transfer transaction将ZTH从Zether帐户转移到另一个帐户。用户通过Burn transaction将Zether帐户相关联的所有ZTH换成以太坊地点中的以太币。若干持续的区块构成一个Zether的epoch,各项生意业务都需要在当前的epoch内完成。
在论文中,开拓人员总结了他们的孝敬,同时结相助者本身领略,总结Zether的特点如下(需要留意隐私和匿名是差异的两个观念,该项目均能实现,为了利便阅读,统一称为隐私):
6、基于账户模式:今朝门罗、Zcash等各类隐私币都是基于UTXO的,而Zether是基于账户模子的,有大概是第一个。


Zether简化版本的第一个问题,就是零常识证明需要担保合约和账户状态稳定,譬喻,转账生意业务中的零常识证明,需显示剩余余额为正。用户Alice将生成与其当前账户余额相关的证明,以加密形式存储在合约傍边。然而,假如另一个用户Bob将一些ZTH传输给Alice,而且Bob的生意业务首先得处处理惩罚,则Alice本身的生意业务将被拒绝,因为余额证明将不再有效。请留意,Bob大概是一个厚道用户,但在这种环境下,Alice因为处理惩罚本身生意业务失败而失去其付出的用度。论文将这种环境称为非正常预先生意业务(Front-running)。Burn transactions也有雷同的问题:假如密文产生变革,加密某个值的密文证明将会失效。
本文不组成任何投资发起,投资有风险,入市需审慎!




https://crypto.stanford.edu/~buenz/papers/zether.pdf
同样的,该技能由于刚起步,也面对许多挑战。



3、网络忙碌大概会导致生意业务失败。对付传统以太坊生意业务,网络忙碌可以一直期待,直到网络不再拥堵来完成生意业务,但在Zether则不可,因为每个epoch都有本身对应的独一的证明荟萃,生意业务必需在本身的epoch完成,假如不能完成,则证明荟萃会产生变革导致生意业务失败。
Zether是一个以太坊上的匿名付出协议,以智能合约Zether Smart Contract(ZSC)的形式陈设在以太坊上,而且具有称为Zether令牌(ZTH)的代币,其在作为ElGamal公钥的Zether账户之间传输的载体,并支持匿名的智能合约交互。
为了办理非正常预先生意业务(Front-running)问题,论文把所有的传入传输保存在一个期待状态中。这些转账会不时地转入账户,以便转入的资金可被利用。这种转动法不能在任意时间产生,不然证明将会再次失效。

2、具备隐私性:Zether的生意业务是保密的,账户余额和生意业务地点始终是加密的。

斯坦福大学的博士生Benedikt Bunz(Bulletproofs防弹证明方案作者之一)、斯坦福大学传授Dan Boneh以及Visa研究部分,连系提出了一种针对以太坊智能合约平台的隐私协议:Zether。
与智能合约交互:
3、新的隐私算法:为了让Zether变得更有效,研究者提出了一种新的零常识证明机制,称为Σ-Bullets,团结了Bulletproofs(防弹协议)与Σ协议特性,以此为基本建设了其隐私账户体系,而且不需要Zcash的可信启动。
Rolling over on a smart contract(智能合约刷新):
1、GAS耗损量过大,本钱过于奋发。今朝一笔最简朴的转账需要0.014ETH的手续费,假如举办智能合约的交互,则手续费会成为天价。幸运的是,跟着算法改造和以太坊进级,手续费大概会大幅下降。
第一个想法是在收到epoch中的第一条动静时翻转所有帐户的待处理惩罚转帐。 然而,这给该动静的发送者带来了不公道的承担:它将不得不付出刷新其不拥有的帐户的本钱,这大概很是多的GAS。 另外,用户无法知道他们的生意业务是否是一个epoch的第一个,因此他们无法预计符合的GAS。




以下部门略显枯燥,假如纯投资思量的话,可以直接看第四部门:Zether面对的挑战。

与任何其他付出机制一样,Zether需要处理惩罚重放进攻。 以太坊通过将nonce与每个帐户相关联来提供本身的重放掩护,这需要在每个事务中签名。 不幸的是,由于两个原因,Zether的这种掩护程度是不足的:(1)Zether帐户有本身的公钥; 它们与以太坊地点无关。 (2)Zether事务包括非交互式ZK证明。 恶意行为者可以窃取这些证据并将其置于新的生意业务中。 假如帐户的状态没有改变,那么新的生意业务也将乐成处理惩罚,导致资金损失。

为了防备此类问题,我们将nonce与每个Zether帐户相关联。跟着事务的处理惩罚,随机数增加。来自帐户的新生意业务必需与生意业务数据一起签署与该帐户相关联的随机数的最新值,该生意业务数据包罗任何ZK证明。此要领将事务的所有组件绑定在一起并确保最新。 ZK证明无法导入恶意事务,无法重播有效事务。


Front-running(非正常预先生意业务):
Zether的主要设计方针是与任意智能合约互操纵,这些智能合约大概包括错误甚至是恶意设计。与通例智能合约之间的一个重要区别是普通合约无法生成ZK证明,因为它们没有任何奥秘状态,无法启动ZTH转移。

1、代币属于刚需:代币ZTH不是ERC20的代币,是其内生代币,假如没有的话,技能上其隐私成果无法实现,属于刚性需求。



二、Zether的特点
所有的生意业务通过Σ-Bullets来有效地证明各方生意业务余额。

https://github.com/bbuenz/BulletProofLib/tree/master/src/test/java/edu/stanford/cs/crypto/efficientct/zether
Zether的论文首发于斯坦福暗码应用小组,地点是:


2、以太坊的GAS机制大概会导致隐私泄露。因为陈设在以太坊上的智能合约需要付出GAS来运行,一旦一个地点转移ZTH代币,他就需要同时向矿工付出GAS,这个时候他的以太坊地点就袒露了。有两种大概的办理要领,一个是用户不断的改换地点来保持匿名,但这样很贫苦,另一个是让矿工吸收ZTH作为手续费。最后如何办理,还要看团队的思路。

我们通过引入锁定/解锁成果使Zether与其他智能合约互操纵。举个例子,假设Alice拥有一个帐户acc。 她可以锁定本身的账户到到任意智能合约,好比说合约SC。实际上,这会将acc的所有权转移给SC。此刻,Zether将仅处理惩罚来自SC的acc生意业务。 Alice和其他用户或其他条约发送的任何生意业务都将被拒绝。可是,假如需要,ZK证明仍将由Alice生成,并通过SC转移到Zether智能合约,SC最终可以解锁acc以将其节制权返回给Alice。
有一种方法正实验是否有步伐利用以太坊自身作为Zether帐户。然后,帐户将利用与地点对应的密钥举办操纵,这样将免费得到重放掩护和签名验证。可是,这会强制用户从牢靠的以太坊地点操纵Zether帐户。他们无法将帐户委托给差异的地点,譬喻将帐户锁定到智能合约时。另外,以太坊地点只是公钥的哈希,而不是完整形式,零常识中哈希的证明很是昂贵。最后,为Zether帐户提供单独的公钥也有助于使设计越发模块化和独立于平台。


当收到来自此帐户的第一条动静时,我们在一个eopch中刷新一个帐户; 因此,一条动静仅包围一个帐户。 为了实现这一点,论订亲义了一个单独的(内部)要领来举办刷新,而每个其他要领所做的第一件事就是挪用这个要领。 由于没有从它们提倡任何生意业务,因此大概存在几个持续时期没有刷新的帐户。 这不是问题,因为帐户持有人,好比Alice,并不是想用她的钱。 在稍后的某个时间点,当Alice想要对她的帐户举办操纵时,她将宣布生意业务。 自上次滚存以来转入其帐户的所有资金将当即转入并可用于支出。 实际上,当Alice建设一个ZK证明时,她会假设她的帐户状态是当所有待处理惩罚的转移都转入个中时的状态。
4、易于实现:理论上,支持智能合约的链均可以实现该项目,今朝团队已经在以太坊长举办了劈头实现和测试。


5、互操纵性:Zether支持智能合约的交互。在论文傍边,作者们展示了Zether可构建的四种应用,别离是:保密竞拍应用、保密付出通道、保密权益投票、以及私密权益证明(private proof-of-stake)。

4、同样的,为担保乐成,发送账户需要担保在当前epoch内,所对应的匿名集不能先于他吸收新的生意业务之前举办更新,不然会导致失败。


为了办理这个问题,协议作者将时间分为epoch时期,个中一个epoch由k个持续区块构成。k的选择取决于两个因素:a)大发3d最新状态与任何用户视图之间的隔断;b)将生意业务纳入大发3d所需的时间。在每一个epoch周期竣事时,待处理惩罚的转账将转入相应的账户。用户需要在epoch周期开始时宣布他们的生意业务。因此,纵然他们没有看到大发3d的最新状态,他们也不会进入下一个epoch周期。只要明智地选择k,生意业务将在帐户变动状态之前处理惩罚。
四、Zether面对的挑战
作者简介:北京之东,公家号:bjzdblockchain。微信号:beijingzhidong。资深大发3d投资者,从事技能研究事情,多家基金参谋。

当引入匿名机制后,任何一种锁定要领都变得越发不行靠。假如Alice想埋没本身,为了确保她的生意业务通过,她必需锁定匿名会合的所有帐户。显然,这是不答允的:Alice不能有权利锁定其他用户的帐户。别的,Alice只能将锁定的帐户放在她本身的匿名会合。可是,假如有人在Alice的生意业务完成之前,解锁了他们的帐户,那么Alice的匿名水平就会低落了。

论文的个中一位作者Benedikt Bunz,已开源了Zether协议的部门代码及测试代码,有乐趣的读者可以相识一下,地点如下:


转载须保存以上信息。

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