7月20日,Ethereum9?创始人WanseobLim在太坊技术论坛ethresear.ch上正式发布了Zkopru,这是一种二层私人交易扩容解决方案,同时使用了zk-SNARK和Optimisticrollup技术。它能够以很低的成本支持ETH,ERC20,ERC721代币在二层网络内进行私人转移和原子交换。此外,借助预付款功能,用户可以在交易确认之前从二层提取资产。
非常高兴分享以太坊二层隐私技术Zkopru的实现。从去年11月开始,我和
4.使用chacha20算法对数据进行加密,并使用临时公共密钥创建备忘录数据:
ephemeral=random.new()
public_ephemeral=generator.multiply(ephemeral)
shared_key=recipient_jubjub.multiply(ephemeral)
ciphertext=chacha20.encrypt(data,shared_key)
memo=public_ephemeral+ciphertext
解密
使用Diffie-Hellman密钥交换协议,接收者还使用公共临时密钥和私有密钥创建共享密钥。
1.解析备注并获取共享密钥:
public_ephemeral,ciphertext=parse(memo)
shared_key=public_ephemeral.multiply(private_key)
2.使用共享密钥解密ciphertext:
decrypted=ciphertext.decrypt(shared_key)
声音 | ConsenSys:以太坊矿池正在日益中心化:金色财经报道,ConsenSys研究团队近日发布了题为《衡量区块链去中心化》的报告。报告表示,随着时间的流逝,四个矿池开始占主导地位,这些矿池合计产量占季度区块产量的72%以上,并支付了所有矿工的83%以上。该报告称,以太坊矿池是一个日益中心化的领域,更低的ETH价格、降低的区块奖励、以及相当停滞的哈希率都促使更少的矿工加入该网络。根据ConsenSys的说法,以太坊网络切换到权益证明共识机制将重新定义这一中心化领域,并得出结论称,功能调用多样性、DeFi增长和代币分布表明总体以太坊去中心化有所增加。该报告还指出,各层的复杂性和网络上活动的复杂性不断增加,将来使衡量权力下放变得更加困难。[2019/11/22]
3.接收者使用解密结果尝试生成各种可能的UTXO。这是因为加密的数据只有49个字节以最小化调用数据的大小。因此,接收者应尝试各种组合以检查交易是否包括被恢复的UTXO哈希。如果未能在TX中找到已恢复的UTXO,则认为TX没有接收方的输出。
压缩数据
为了最大程度地减少调用数据,Zkopru将原始数据压缩为49字节数据。首先,它摆脱了加密候选者的公钥,因为接收者将使用自己的公钥来推断出。并且,它使用TokenID,该TokenID将支持的token地址和索引从0映射到255。然后,由于value可以是ether,erc20Amount或nftId,因此接收者针对这3种情况创建了三种类型的UTXO。最后,如果在交易的输出列表中存在任何推断出的UTXO,则接收者成功接收了UTXO。
局限性
Zkopru不会强制回路检查加密协议。因此,如果发送者未使用适当的共享密钥或数据,则接受者将不会收到备注。
分析 | 以太坊对比特币汇率创年内新低 基本面状况保持稳定:据 TokenGazer 数据分析显示,截止至 9?月 4日 11 时,以太坊价格为$177.59,总市值为$19,119.73M,主流交易所交易量约为$161.37M,环比昨日增量18.45%;以太坊对比特币汇率再创年内新低;基本面方面,以太坊链上交易量、、链上DApp交易量算力保持稳定,活跃地址数持续下滑;以太坊 30 天开发者指数约为 2.30;与 BTC 180 天关联度平稳波动,目前约为0.79;以太坊 30 天 ROI 有一定回升;ERC20 代币总市值约为以太坊总市值的 70.03%,保持稳定。[2019/9/4]
原子交换
Zkopru以直接方式支持原子交换。如果A和B想要交换其资产,则它们会彼此创建备注并将所需的备注公开在交易数据上。然后,协调者应对相反的交易进行配对或被削减。
例如,爱丽丝想用天的50ETH交换鲍勃的1000DAI。
爱丽丝支出她的60ETHnote,并为自己创建了10ETHnote,并为鲍勃创建了50ETHnote。
爱丽丝还计算她未来的1000DAInote的哈希值,并将该哈希值暴露给她交易的swap字段。
鲍勃则支出他的3000DAInote,并为自己创建了2000DAInote,为爱丽丝创建了1000DAInote。
鲍勃还计算他未来的50ETHnote的哈希值,并将该哈希值暴露给他的交易的swap字段。
一旦协调者匹配了交易池中成对的交易集,它将把交易对包括在一个新区块中。
如果一个区块仅包含其中一个,则协调者将被削减。
声音 | Bitfinex CTO:昨日创建的1亿枚USDT仅是为了将Tether从OMNI迁移至以太坊:7月5日讯,此前消息,昨日16点07分Tether创建(Mint)了1亿枚USDT。对此Bitfinex CTO Paolo Ardoino发推表示,很多人要求将Tether从OMNI迁移到以太坊的ERC-20,这就是为什么USDT会被创建(Mint)的原因,一旦交易流量稳定,我们将销毁多余的稳定币。尽管如此,有关Tether对比特币价格走势操纵的怀疑似乎仍在继续。[2019/7/5]
Zkopru正在使用一种简单版本的原子互换。然而如果你想要检验一种基于MPC的zk原子互换模型,你可以在这里看到详细信息。
Merkle树结构
UTXO树和withdrawal树中的备注在下一个版本将有64深度。将只有一个单一的UTXO树和一个提取树。
Zkopru的树林由UTXO树,nullifier树和withdrawal树组成。
UTXO树是仅追加用法,包含UTXO的Merkle树。通过提交包含Merkle证明,用户可以将UTXO用作交易的流入。并将交易的输出结果附加回最新的UTXO树中。
另外,如果zk-transaction创建withdrawal输出,则Zkopru会将它们附加到最新的withdrawal树中。将树的根被标记为已完成后,所有者可以通过证明所有权来提取资产。
然后,通过commitment-nullifier方案,将用过的UTXO的nullifier标记为在nullifier树中使用。如果交易试图使用已经无效的叶子,它将变为无效,并且挑战者系统会大幅削减区块提议者。
动态 | BCH雪崩交易显示 最终速度比以太坊快10倍:过去几周,比特币现金(Bitcoin Cash, BCH)的开发者和社区成员一直在讨论一种名为雪崩的预先达成共识的方法。现在BCH的支持者已经开始注意到该协议已经应用于Bchd的全节点实现,以及在BCH主网上正式运行的概念证明。 BCH的支持者们还讨论了交易最终速度如何比以太坊网络快6-10倍。BCH开发者和Bitbox创始人Gabriel Cardona在Twitter上解释到:“交易在1.559723305秒内完成——比ETH快10倍——这是一个强大的游戏改变者。”[2019/2/11]
Merkle树规范
{%hintstyle=“warning”%}
UTXO树&withdrawal树在Burrito版本上有64深度https://github.com/zkopru-network/zkopru/issues/35
{%endhint%}
如何管理UTXO树
单个UTXO树是用于成员资格证明的稀疏Merkle树。它使用Poseidon哈希生成zkSNARK证明以隐藏支出哈希及其路径。
要将新树叶追加到UTXO树,协调者将执行以下步骤。1.准备一个阵列。2.协调者选择要包括的MassDeposits,并将MassDeposits中的每笔存款附加到阵列中。3.二层交易生成新的UTXO。将新生成的UTXO附加到阵列。4.以区块大小为32对准备好的数组进行分割。5.构造子树(sub-tree)并执行子树rollup。
假设UTXO树已被个事项完全填充,系统将被填充的树进行存档并启动一个新树。也允许使用归档树来引用交易的包含证明。
Nullifier树
每次转账,提款和迁移交易都支出带有包含证明的UTXO,并标记在nullifier树上使用的派生nullifier。因此,nullifier树是一个很大的稀疏Merkle树,它记录了深度为254的稀疏Merkle树中每一个用过的UTXO。因此,Zkopru使用最便宜的哈希函数keccak256作为nullifier树的哈希函数。
要更新nullifier树,协调者执行以下步骤:
选择交易并从交易中收集所有nullifier。
检查是否存在任何已使用的nullifier。
将每个nullifier标记为已使用。在更新过程中,如果所有nullifier都没有更改nullifier树的根,请丢弃该交易,因为它会尝试进行双花。
就像UTXO树一样,Zkopru乐观地更新了nullifier树的根。如果有任何问题,我们可以通过生成防欺诈链上证明一个nullifier被使用了不止一次。要查看工作原理,请参阅
RollUpChallenge.sol和
SMT.sol。
提款树
与withdrawal树和UTXO树的唯一区别在于,withdrawal树使用keccak256作为哈希函数。之所以使用keccak256,是因为Zkopru在智能合约上需要提取树的Merkle证明,而在SNARK回路中则需要UTXO树的Merkle证明。在树的根定型后,withdrawal树中的叶子在1层智能合约中便是可以提取的。
要更新提款树,协调者执行以下步骤:
收集已选择交易的所有withdrawal叶子。
拆分出区块大小为32的withdrawal数组。
构造子树并执行子树rollup。
大量存款
当用户将资产存入Zkropu时会发生什么:
Zkopru合约将给定数量的资产从用户帐户转移到自身。
验证note是否带有给定信息的一个有效哈希。
将note合并到MassDeposit列表的最后一项。
什么是MassDeposit?
MassDeposit是用于rollup证明的单个mergedLeavesbytes32值。可在此处检查什么是rollup证明mergedLeaves。如果协调员提出一个包含MassDeposits的区块,则该区块会将MassDeposit中的所有note追加到其UTXOMerkle树。
协调员如何处理MassDeposits?
协调员只能包括不再更改的“已承诺”MassDeposit。为了包含MassDeposit,协调员将监视Zkopru合约中的存款事件。
MassDeposit什么时候变成“已承诺”?
尽快将存款推到二层网络。因此,当协调员提出每个新区块时,它将冻结最新的MassDeposit。
协调员可以包含多个MassDeposit吗?
是的,可以在最大挑战成本范围内一次包含多个MassDeposit。
大规模迁移
大规模迁移的基本思想非常简单。虽然1层合约上的存款交易创建了MassDeposit对象,但是交易的“迁移”类型输出可以创建MassMigration,该MassMigration为其目的地网络构造MassDeposit。
交易可以具有UTXO,迁移或取款类型的输出。
在Zkopru中,要进行迁移,就会涉及到源网络和目标网络。一旦完成源网络上的大规模迁移,就可以执行源网络上的migrationTo函数。该函数可以移动资产,同时为目标网络创建MassDeposit对象。
因此,目标网络应实现acceptMigration函数。更多信息在这里
rollup之间的迁移标准将通过EIP进行标准化。
即时取款
在Zkopru中,提取者可以通过设置每个提取note的即时提取费用来请求即时提取。然后,任何人都可以提前为未完成的提款付款并收取费用。
为了请求即时提款,所有者为她的note生成ECDSA签名并进行广播。拥有足够资产且可支付的任何人都可以使用签名提前支付取款。一旦Zkopru成功包含该交易,智能合约便将提款note的所有权转移给付款人。最后,预付款人在完成交易后将其提取。
我们可以有一个分散的公开市场来收取即时取款费。要跟进最新进展,请订阅此github:?https://github.com/zkopru-network/zkopru/issues/333
结论
根据此规范,我们已成功使用Circom,Solidity,Typescript等构建了测试网。
使用zk-SNARK和Optimisticrollup的以太坊二层私人交易扩展解决方案。-zkopru-network/zkopru
首先,我们可以实现了一种每笔zk交易可承受的gas成本。平均值约为8800gas,当gas限制为1,150,000且区块时间为13.2秒时,理论上最大的TPS为105。在Zkopru中,交易数据消耗约534个字节。由于证明数据为256字节,因此如果将来应用证明聚合,我们可以减少大约两倍的交易成本。否则,每个区块提出和最终确定的存储成本分别约为168kgas和55kgas。当我们包括350笔交易时,此成本约为区块生成成本的6.7%。
此外,我们可以利用OptimisticRollup的灵活性来实现许多功能。首先,Zkopru通过多个SNARK验证密钥支持各种类型的交易。您甚至可以使用1个输入和4个输出,或4个输入和1个输出完成一笔交易。通过OptimisticRollup的灵活性,使其支持多种类型的交易非常简单。其次,Zkopru实现了精确类型的挑战案例。这意味着,如果区块的第n个交易有问题,则质询仅检查该特定交易。
另外,Zkopru需要您在计算机上运行节点,这一点也很重要。因此,SNARK高效率性和轻节点是软件实现要考虑的重要因素。因此,我们将使用Typescript和NodeJS构建该项目,以供将来在基于本机的移动应用程序中使用。预计轻型节点将仅消耗约50?100MB的存储空间用于树管理。
总结一下工作,我们希望Zkopru可以用于以太坊的隐私交易层。它既快速,便宜,又可移植到升级版本。欢迎感兴趣的人为该项目进行捐款。您可以通过Zkopru的文档页面查看一个已经组织过的版本。
感谢你阅读本文。
参考文献:
Ethereum93/4:Optimisticrollupforzk-Mimblewimble1
BarryWhitehat’szk-rollup1
JohnAdler’sMinimalViableMergedConsensus1
Plasma-group’sOptimisticRollup
BatchDepositsforrollup/mixers/MACI
Massmigrationtopreventuserlockininrollup
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。