http://www.7klian.com

一文读懂以太坊匿名付出协议 Zether

https://crypto.stanford.edu/~buenz/papers/zether.pdf

重放进攻掩护(Replayprotection):

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

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

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

Front-running (非正常预先生意业务):

Zether 账户利用 ElGamal 加密举办标识,这些公钥存储在 ZSC 的内部状态傍边。用户通过 Fund transaction 存入以太币到指定一个 Elgamal 公钥,来建设一个 Zether 账户。譬喻:通过公钥 y,用户将 b ETH 发送到这个智能合约,可以得到 b ZTH 的账户。用户通过 Transfer transaction 将 ZTH 从 Zether 帐户转移到另一个帐户。用户通过 Burn transaction 将 Zether 帐户相关联的所有 ZTH 换成以太坊地点中的以太币。若干持续的区块构成一个 Zether 的 epoch,各项生意业务都需要在当前的 epoch 内完成。

Pendingtransfer (待处理惩罚生意业务):

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

一个根基的 Zether 成果:

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

Zether 的论文首发于斯坦福暗码应用小组,地点是:

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

3 https://blockonomi.com/privacy-protocol-zether-conceal-ethereum-transactions/

一、什么是 Zether?

斯坦福大学的博士生 Benedikt Bunz (Bulletproofs 防弹证明方案作者之一)、斯坦福大学传授 Dan Boneh 以及 Visa 研究部分,连系提出了一种针对以太坊智能合约平台的隐私协议:Zether。

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

三、Zether 方案概述

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

Zether 是一个以太坊上的匿名付出协议,以智能合约 Zether Smart Contract (ZSC)的形式陈设在以太坊上,而且具有称为 Zether 令牌(ZTH)的代币,其在作为 ElGamal 公钥的 Zether 账户之间传输的载体,并支持匿名的智能合约交互。

为了办理这个问题,协议作者将时间分为 epoch 时期,个中一个 epoch 由 k 个持续区块构成。k 的选择取决于两个因素:a)区块链最新状态与任何用户视图之间的隔断;b)将生意业务纳入区块链所需的时间。在每一个 epoch 周期竣事时,待处理惩罚的转账将转入相应的账户。用户需要在 epoch 周期开始时宣布他们的生意业务。因此,纵然他们没有看到区块链的最新状态,他们也不会进入下一个 epoch 周期。只要明智地选择 k,生意业务将在帐户变动状态之前处理惩罚。

3、网络忙碌大概会导致生意业务失败。对付传统以太坊生意业务,网络忙碌可以一直期待,直到网络不再拥堵来完成生意业务,但在 Zether 则不可,因为每个 epoch 都有本身对应的独一的证明荟萃,生意业务必需在本身的 epoch 完成,假如不能完成,则证明荟萃会产生变革导致生意业务失败。

我们通过引入锁定 / 解锁成果使 Zether 与其他智能合约互操纵。举个例子,假设 Alice 拥有一个帐户 acc。 她可以锁定本身的账户到到任意智能合约,好比说合约 SC。实际上,这会将 acc 的所有权转移给 SC。此刻,Zether 将仅处理惩罚来自 SC 的 acc 生意业务。Alice 和其他用户或其他条约发送的任何生意业务都将被拒绝。可是,假如需要,ZK 证明仍将由 Alice 生成,并通过 SC 转移到 Zether 智能合约 ,SC 最终可以解锁 acc 以将其节制权返回给 Alice。

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

与智能合约交互:

原文标题:《Zether:以太坊隐私智能合约层》

2 https://medium.com/coinmonks/notes-on-zether-towards-privacy-in-a-smart-contract-world-6c4333f975d

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

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

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!