区块链网站|NFTS Zcash(ZEC) 趋势|关于Zcash在以太坊的整合(ZOE)

趋势|关于Zcash在以太坊的整合(ZOE)

广告位

动向|关于将 Zcash 集成在以太坊 (ZOE) 中

我们说

以太坊和Zcash公司的R&D团队成员正在合作一个研究项目,以解决区块链的可编程性和隐私的结合问题。这篇联名博客也已经发表在Zcash的博客网站上,并得到了Zcash的Ariel Gabizon和以太坊的Christian Reitwiessner的联合授权。

以太坊灵活的智能合约接口可以实现大量的应用,其中大部分可能还没有想出来。当以太坊加入隐私的能力后,基于智能合约的应用的可能性会大大增加。例如,想象一下在区块链通过智能合同实施的选举或拍卖过程。区块链的观察员可以核实结果,但个人的投票或拍卖将不会被披露。另一种可能的情况是,用户选择性地披露一些事实,这些事实可以证明他们确实在某个特定的城市,而不披露他们的确切地理位置。以太坊中加入这种能力的关键是简洁的零知识成功的知识非交互论证(ZK-斯纳克),这是Zcash使用的加密引擎。

代号为Project Alchemy的Zcash公司的目的之一是使以太坊和Zcash之间的直接去中心化交换成为可能。连接这两种区块链和技术,一种是为了可编程性,另一种是为了隐私,是促进需要这两种特性的应用程序开发的自然方法。

作为Zcash/以太坊技术合作的一部分,来自Zcash的Ariel Gabizon几周前拜访了来自柏林以太坊中心的Christian Reitwiessner。此次参观的亮点是用Solidity语言编写的zk-SNARK验证器实现的概念证明,以及基于以太坊C客户端预编译的以太坊智能合约。这项工作是对Baby ZoE的补充,其中实现了一个基于奇偶校验的zk-SNARK预编译契约(以太坊的Rust client)。我们的更新包括添加最少的加密原语(椭圆曲线乘法、加法、配对)和用Solidity实现其余部分,所有这些都允许更大的灵活性,并使在没有硬分叉的情况下使用各种zk-SNARK构造方法成为可能。随着它们的发布,我们将分享更多的细节。我们测试了最新的代码,并在区块链以太坊的测试网络上成功验证了一个真实的隐私保护Zcash交易。

验证过程仅用了42毫秒,这表明可以添加这样的预编译合同,并且使用它们的燃气成本可以变得可以承受。

“这样的系统能做什么?』

Zcash系统可以在以太网上重用,以创建受保护的自定义令牌。这种令牌已经使大量的应用成为可能,例如投票(见下文)或简单和隐藏的拍卖(参与者在不知道他人出价金额的情况下出价)。

如果您想尝试编译概念证明,可以使用以下命令。如果你需要帮助,请找https://gitter.im/ethereum/privacy-tech.

我们还讨论了将zk-SNARK集成到以太坊区块链的各个方面。现在让我们展开它。

\”决定要定义哪个预编译协定\”

回忆一个SNARK是一些特征的简短证据。为以太坊区块链添加隐私功能所需要的是一个能够验证此类证据的客户端。

在所有最近的想法中,验证过程完全由基于椭圆曲线的运算组成。具体来说,验证者需要在一个椭圆曲线群上进行标量乘和加,还需要一个耗时的运算,这就是所谓的双线性配对。

正如这里提到的,在以太坊虚拟机(EVM)中直接实现这些操作太过昂贵。因此,我们希望实现预编译的契约来执行这些操作。现在,值得讨论的问题是:这些预编译契约的目标是什么级别的普遍性?

SNARK的安全级别对应于椭圆曲线的参数。粗略来说,曲线阶数越大,代表曲线的多项式的嵌入度越大,基于曲线的SNARK就越安全。另一方面,数字越大,对应曲线上的运算自然会越耗时。因此,使用SNARKs的合同设计人员可能希望根据自己所需的效率/安全权衡来选择这些参数。这种权衡也是实现相应的具有高级通用性的预编译契约的一个原因。合同设计者可以从一大群曲线族中选择他们想要的。我们确实从一个高层次的通用目标开始,其中曲线的描述可以作为契约输入的一部分。在这种情况下,智能合约将能够在任何椭圆曲线组中执行加法运算。

这种方法的复杂之处在于,每个操作都有相应的气体成本。你必须估计在最坏的情况下,那条曲线上的群运算的代价有多大,仅仅从曲线的描述,你无法知道一个具体的实现。一个不太通用的解决方案是允许来自给定族的曲线。我们注意到,当使用Barreto-Naehrig (BN)族的曲线时,给定曲线参数,我们可以粗略地估计配对运算有多昂贵,并且所有这样的曲线都支持特定类型的优化配对运算。以下是这种预编译合同如何工作以及如何计算天然气成本的概述。

我们从这次讨论中学到了很多,但最终,我们决定对这个概念证明“保持简单”:我们选择根据Zcash目前使用的特定曲线来实现契约。我们通过使用libsnark库中相应函数的封装来实现这一点,Zcash也使用libsnark库。

注意,我们可以简单地使用整个验证函数的封装(目前由Zcash使用),在上面提到的宝贝ZoE项目中已经完成。然而,明确定义椭圆曲线运算的优点在于,它使得通过前面提到的三种椭圆曲线运算的某种组合来使用各种SNARK构建成为可能,所有这些构建都有验证者的工作。

「将Zcash的设置阶段重新用于全新的匿名令牌和其他应用程序」

你可能听说过,使用SNARKs需要一个复杂的构造阶段,这个阶段被称为系统的一个公共参数。每当我们想要将SNARK用于特定电路时,需要以安全的方式产生公共参数的事实会极大地阻碍SNARK的可用性。简化建造阶段是我们考虑的一个重要目标,但到目前为止,还没有成功。

好消息是,如果您想发布一个支持隐私保护事务的令牌,您可以简单地重用已经由Zcash安全生成的公共参数。它可以被重复使用,因为用于验证隐私保护交易的电路并不固有地绑定到加密货币或区块链。相反,它的显示输入之一是包含所有有效加密货币纸币的Merkle树的根。因此,可以根据所需的加密货币来改变该输入。还有,如果很容易启动一个全新的匿名令牌,可以先完成大部分看起来不像令牌的任务。例如,假设我们要进行一次匿名选举,并在两个选项中选择我们更喜欢的一个。我们可以为投票发布一个匿名自定义令牌,并向每个投票实体发送一枚硬币。由于没有挖掘的概念,所以不可能使用任何其他方式来生成token。现在每个实体根据他们的投票把他们的钱送到两个地址中的一个。差额较大的地址将赢得选举。

\”其他应用\”

基于非令牌的系统构建起来相对简单,并且允许“选择性披露”。例如,你可以定期向区块链发送一条包含你的物理位置的加密信息(也许还加上其他人的签名以防止作弊)。如果您对每封邮件使用不同的密钥,您只能在特定时间通过发布您的密钥来公开您的位置。但是,有了zk-SNARKs,你可以额外证明你在一个特定的区域,而不用透露你的具体位置。在zk-SNARK里面,你可以解密你的位置,检查它是否真的在这个区域。因为零知识的特性,每个人都可以验证检查,但是没有人可以得到你的真实位置。

“未来的工作”

上面提到的功能——在区块链以太坊上创建匿名令牌和验证Zcash交易——将需要可靠性来实现Zcash使用的其他元素。

对于第一个功能,我们必须有一些任务的实现,这些任务由Zcash网络中的节点来执行,比如更新笔记承诺树(在Zcash中,note代表匿名币,commitment代表匿名币的唯一标识)。

对于第二个函数,我们需要equi hash(Zcash使用的工作量证明算法)的可靠实现。否则,可以自行验证交易有效,但我们不知道交易是否真的整合在Zcash的区块链中。

幸运的是;已经编写了这样的实现。但其有效性有待提高,以满足实际应用的需要。

鸣谢:我们感谢Sean Bowe的技术帮助。我们也感谢Sean和Vitalik Buterin提供的有益建议,以及Ming Chan的编辑。

参考:3359 blog . ether eum . org/2017/01/19/update-integrating-zcash-ether eum/

翻译:灯光-李

关于EthFans,建立以太坊最好的中文技术社区,不断推广和普及以太坊的技术,帮助以太坊释放区块链和智能合约的潜力,为开发者提供更好的平台和机会。我们相信,区块链和智能合约将在未来继续证明其巨大潜力,并将在创新、社会效率和新机遇方面对世界产生巨大影响。

广告位
本文来自网络,不代表区块链网站|NFTS立场,转载请注明出处:https://www.qklwz.com/jzb/zec/4045.html
上一篇
下一篇

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

返回顶部