当前位置:首页区块链以太坊颠覆以太坊:引入密码技术实现2.0性能突破

以太坊颠覆以太坊:引入密码技术实现2.0性能突破

2020年,市场似乎和以前一样古老,但区块链技术正在悄然进行颠覆性升级。

谢谢:郭宇

作者:安比实验室特约研究员李华

性能是阻碍公链发展的瓶颈,提高性能是大多数公链企业超越以太坊的希望,回顾今天,我们会发现,这些公链选择的方法大多是通过机制设计来提高分布式系统的性能。然而,我们被困在分布式系统的cap定理(不可能三角形)中,提高性能的代价是要付出代价的。当分布式系统的目的是记账时,这些成本甚至可能难以接受。

火币网也一直在尝试各种方法来提高其性能。在2.0发布前夕,它“尝试”了加密技术。以太坊.0将是一个基于“分布式系统+加密”的公链。这种密码不是指用于签名和隐私的部分,而是指作为高性能系统核心组件的部分。

从这个角度来说,也许我们可以说,颠覆火币网的不是别人,而是自己。它跳出了分布式系统设计的单一思想,走上了分布式系统与密码学相结合的设计之路。

本文将介绍在以太坊.0中如何将分布式系统的设计与密码学的设计结合起来,实现公链在性能上的突破。

状态分段:从单分类账到多分类账

区块链是分布式账本,出站节点是记账员,负责将交易写入账本。出站节点除了争夺记账权外,最重要的工作就是检查自己打包的交易是否合法。完成这项工作并不难,因为出站节点手里有一个账簿。它可以检查交易发送者是否有钱。

对于不分段的公链,所有节点都持有同一台账,为了防止记账冲突,一次只允许一个出站节点记账。火币网提出状态分割实际上是将一个账簿划分为多个账簿。这样,一些节点在1号账簿中记账,一些节点在2号账簿AMPLhellipAMPL(相当于7-11从一个收银机到多个收银机)中记账。当多个节点同时记账时,整个公链的性能将得到质的提高。

但是,如果我们修复了封锁节点和账簿/段之间的关系,例如,确定a、B、C和D四个节点负责第一个账簿,那么坏人只需要购买a、B、C和D的一部分就可以销毁账簿,而公链提高了性能,安全减少的比例相同。

因此,块外节点需要随机动态地分配给不同的分类账,以保证分段公链和非分段公链的安全性。但是动态分配会带来新的问题:一个节点应该持有哪一个账簿?它可以分配给64个分类账中的任何火币网(火币网计划推出64个分类账)进行记账。

火币网给出的方案是封锁节点不取火币网的任何账簿,或者封锁节点可以无账簿记账。

这将带来两大好处:一是无论节点被分配到哪个分区,都可以立即开始记账(出站)工作,几乎不用花时间获取和同步该分区的分类账,节点可以方便地在不同分区之间跳转;二是出站节点不需要存储账本,也不需要高硬件配置,任何抵押32 火币4的节点都可以成为验证器,这对火币网 POS的去中心化和整个公链的安全非常有帮助。

但新问题浮出水面:如果出站节点没有账簿,怎么知道交易的发送者有足够的钱?当时密码学出现了。

向量承诺:从查询到证明

听起来不可思议的是,记账不需要一个账簿,但想法很简单:以前节点有一个账簿,交易来了之后,它会查看账簿,询问交易是否合法;将来节点没有账簿,所以交易发送方需要在提交交易的同时提交一份加密证书(为了区别,下面的文字特指加密证书,用证明的方式表示),我证明我的交易是合法的。

为什么传出块节点可以通过证明来判断事务是否合法?这里涉及到密码学的两个重要概念。第一种称为“会员资格证明”它的意思是通过某种方式证明个体是群体的一部分。如果能够证明某个账户状态是整个账户状态的一部分,那么出站节点当然可以相信该账户状态,并以此判断交易的合法性。

第二种被称为“媒介承诺”它可以将一个组压缩成一个数字,不管这个组有多大,然后给出一个成员证明。成员证明表明一个人属于数字后面的组,并且可以证明该个人在组中的位置,并更新证明。

Merkle树是一种可用于向量承诺的方法。让我们以它为例来看看如何实现成员证明。

下图显示了一棵梅克尔树。底层的叶节点存储应用程序数据,非叶节点存储其子节点的哈希值。如果知道绿色节点和所有黄色节点的值,可以从下到上散列三次,得到Merkle树根的值,即6c0a。

以太坊颠覆以太坊:引入密码技术实现2.0性能突破

然后,如果验证者手里有一个树根值(6c0a),并且证明提供者将绿色节点的值和所有黄色节点的值作为验证者的证明,那么验证者是否可以通过计算三个散列的值是否等于6c0a来确定绿色节点的值是否在这个Merkle树中?答案是肯定的。这是绿色节点属于Merkle树的成员证明,通过向量承诺完成,这几乎是a601 SPV节点(简单支付验证)的工作模式。

如下图所示,SPV节点不存储完整的块/分类账,而是在每个块中存储Merkle树的根(Merkle树的叶节点存储块中的所有事务)。当需要查询一个事务是否存在时,它会找到整个节点作为该事务的证明,这类似于一个由绿色节点和黄色节点值(Merkle Path)组成的包,然后SPV节点会计算这些值的总哈希值是否等于自己手中的Merkle树根的值。如果相等,则事务是Merkle树的成员,即事务存在。

以太坊颠覆以太坊:引入密码技术实现2.0性能突破1

SPV节点只存储块头(绿色框),其中包含Merkle树根(红色框)

SPV节点通过成员证明判断事务是否存在。证明系统由三部分组成:节点有一个简短的摘要(树根);证明提供者给出一个证明;节点计算证明,看它是否与自己手中的摘要一致。

此时,我们已经完成了“不需要核算账簿就可以结账”的工作,即把查询思维改为求证思维。下一步,我们要认识到“不需要记账”

对于以太坊.0的出站节点,其证明系统也由总结、证明和验证三部分组成。但是,它需要使用交易发送方(而不是整个节点)提供的证据来判断新交易是否合法(而不是旧交易是否存在),并根据这一判断记账。

无状态:从证明账簿到证明行为

想象一下一个非常小的村庄。村民之间每天只有三笔交易。村长负责用帐簿记帐。A现在想把5元钱转到B。传统的想法很简单:村长检查A的账户上是否有5元钱,如果有,写下新的交易。

现在让我们换个思路:假设a今天早上想把5元钱转到B,村长知道a的账户昨天早上有10元钱,那么如果a能证明昨天的3笔交易与他无关,这是否意味着他的账户今天早上还有10元钱?这样,村长能不查账本就写下新政吗?答案是肯定的。

如果a昨天有交易怎么办?很简单,a不能证明他这个时候没有交易,但他昨天只做了一笔交易,那笔交易花了3元钱;村长知道他还有7元钱,所以他可以记下新的交易。

这种思维转变是至关重要的。你必须明白。这就是“无国籍”的秘密。不难发现,即使SPV节点不取账簿,它在查询交易时实际使用的是账簿或状态,但它不是自己的存储状态,而是为整个节点找到状态的证明。但在这种新的思维中,状态的角色完全可以被“行为证明”所取代,因此可以以无状态的方式设置链表计数。(注意:行为证明这个词没有来源。为了便于理解,作者对其进行了描述

如何实现无国籍?如何使用行为证明完成记账?这仍然是会员证明的方式。可以用Merkle树来完成这个成员资格认证吗?理论上,它可以,但是对于无状态应用程序场景,使用它的成本太高。在本文中,我们将通过集合向量承诺引入成员证明,实现无账簿记账。

聚合向量承诺(ascc)是在无状态加密货币的聚合向量承诺(Aggregator ector commitment,Aggregator ector commitment)的基础上提出的一项新的研究成果。作者是Alin tomescu、Ittai Abraham、italik buterin(火币网)、Justin Drake(火币网)、dankrad Feist(火币网)、Dmitry khoratoich(火币网)。其工作过程如下:

一。初始化碎片,即在建立账簿时确定科目的初始情况。假设在建立分区时有100个帐户,并且这些帐户有初始余额。我们需要对第I个帐户使用V(I),这是一对值,比如(address I,balance I);对所有帐户使用V,这是一组值,比如(address 1,balance 1)(address 2,balance 2)AMPL(address 100,balance 100)。

同时,需要生成两个值。第一个称为C。它是对V的承诺,代表此时该分部账户中的所有账户和余额。传出节点保存C(为了便于理解,可以将其与Merkle树根进行比较),这是将来用于验证的摘要。

第二个称为AMPLPI;(I),这是V(I)是V的成员的证明,表示第I个帐户,该帐户的余额在总分类帐V中。每个帐户都有自己的AMPLPI;(I),这是将来发送交易时给定块节点的证明。

在初始化阶段,承诺和证明的生成需要一个初始的“状态”

二。第一笔交易。账户I发起整个部门的第一笔交易。此时,它需要将AMPLPI;(I)与事务一起提交给给定的块节点,该节点计算AMPLPI;(I)以查看结果是否与自己手中的C一致。如果一致,可以认为发送者的账户有一定的余额,然后判断其提交的交易是否合法。

接下来是关键点:更新CPI

C(对整个账簿的承诺)不再基于状态生成,而是基于第一笔交易前的C和第一笔交易引起的余额变化而生成;AMPLPI;(I)(账户自身证明)不是基于状态生成,而是基于AMPLPI生成;(一) 第一笔交易前及第一笔交易引起的账户变更。

更新C和PI;(I)后,出站节点有一个新的承诺(newc),可以承诺所有用户的新余额,帐户有一个新的证明(newpi;(I))可以证明其新余额。

类似地,每个事务都会改变C once and allAMPLPI;(I)一次,但这种改变不再依赖于状态数据,而是依赖于旧的C和PI;(I)和最后一个事务;当需要验证新事务时,传出节点总是有最新的C,这是由C和accountAMPLPI提供的;(I)我们可以判断交易是合法的,或者可以打包成块。

现阶段,我们终于实现了“无账簿记账”无论是出站节点还是帐户,它们所持有的都是某些加密技术的证明,而不是账簿的状态。还有一点要提的是,无状态和分片看起来很完美,但无状态不是分片的设计,而是公链的设计。

asVC的设计目标是成为一个有效的成员证明,减少上述过程中的通信和计算开销,从而使该方案可以用于无状态区块链的实现。本文中,C和PI的大小(I)只有几十个字节,PI的更新时间(I)为O(1),验证时间为O(1)。该方案还支持将多个证明聚合为一个o(1)大小的证明,这是低开销的重要意义。然而,正如italik在火币网研究者论坛上所讨论的,asVC需要进一步优化。

论文的最后一部分是对全文的简要总结:将分布式系统的状态切片设计与密码学的成员证明设计相结合,实现了以太坊2.0的性能突破。

一。为了安全起见,以太坊.0的状态分区需要随机分配块节点。

二。如果出块节点需要账簿,账簿同步将成为新的性能瓶颈,而账簿存储也会影响POS的去中心化。

3有没有办法在没有帐簿的情况下核实余额?

四。第一个思想转变:从寻找帐簿的方式转变为证明帐簿的方式。这需要借助密码学来完成。

五。第二个思路转变:从证明账簿状态的方式转变为证明交易行为的方式,从而实现无状态无账簿的会计核算。这需要借助密码学来完成。

六。密码学中有许多工具。当有目标时,需要根据应用需求选择并组合合适的工具形成方案,并对方案进行优化。

聚合向量承诺

本文用自然语言描述了asVC的工作。如果您感兴趣,可以通过asVC的API定义更清楚地理解它。如下图所示:第一个红框是初始化时生成承诺C,第二个红框是根据事务更新C,第一个绿框是生成证明AMPLPI;(I)初始化时,第二个绿框是根据事务更新AMPLPI;(I)蓝框是使用C和AMPLPI;(I)以验证传出节点。

以太坊颠覆以太坊:引入密码技术实现2.0性能突破2

在上述过程中,核心工作是将旧的c转换成新的c,并将旧的AMPLPI;(I)转换成新的AMPLPI;(I)根据事务引起的变化。不仅能够完成更新,而且此更新的成本是可以接受的,这是asVC需要解决的关键问题。我们以C的更新为例来说明ascc是如何完成的。

如上所述,C承诺。从C到新C,实际上,它意味着从到新。对于,它由一系列点组成,(地址1,余额1)是一个点,(地址2,余额2)是另一个点AMPLAMPL(地址100,余额100)是第100个点。

借助拉格朗日插值,该级数中的点可以转化为多项式(多项式所表示的曲线通过所有这些点),这意味着对一系列点的承诺可以转化为对多项式的承诺;从C到新C,等价于对一个点的承诺多项式到另一个。

多项式有各种神奇的性质。对多项式及其变换的承诺可以是小而快的。然后通过点到多项式的转换,可以接受C的更新代价。

但这只是对asVC计划理念的简单和片面介绍。该方案采用了许多其他的工具和方法,目前仍在进行更好的设计。如果你想了解更多,你可以阅读原稿。第3.1节和第4.1节是理解整篇论文最有帮助的部分。

论文下载地址为:https://eprint.iacr.org/2020/527.pdf。

上一次审查

探索零知识证明系列(1)AMPL对“零知识”与“证明”的初步认识

探索零知识证明系列(2):从“模拟”看零知识证明

探索零知识证明系列(3):读心术:从零知识证明中提取“知识”

探索零知识证明系列(4):亚瑟的“随机”挑战:从互动到非互动的零知识证明

探索零知识证明系列(5):云中的秘密:构建非交互式零知识证明

零知识证明学习资源概述

通过编码学习:libsnark初级水平

富人在链条中寻找“隐私”的故事(1:混音章)

论零知识证明(1):背景与渊源

关于零知识证明(2):短无交互证明(snark)

从零学习ZK snark(I)AMPLmdash;AMPLmdash;多项式的性质与证明

从零学习ZK snark(2)AMPLmdash;AMPLmdash;多项式的非交互式零知识证明

从零ZK snark学习(3)AMPLmdash;AMPLmdash;从程序到多项式构造

从零学习ZK snark(4)AMPLmdash;AMPLmdash;多项式约束

从零开始学习ZK snark(5)AMPLmdash;AMPLmdash;匹诺曹协议

Zkpod:区块链,零知识证明和形式验证,实现无中介、零信任的公平交易

Pod tinyAMPLmdash;零信任事务的最简单协议

如果量子计算的时代来临,我们的币安位会完成吗?

温馨提示:

文章标题:以太坊颠覆以太坊:引入密码技术实现2.0性能突破

文章链接:https://www.btchangqing.cn/38750.html

更新时间:2020年06月15日

本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。

以太坊颠覆以太坊:引入密码技术实现2.0性能突破3
区块链

灰度基金-疯狂的btc扩张之路仍在继续

2020-6-15 13:48:08

区块链

有人花了2000多美元买下了grayscale以太坊信托基金

2020-6-15 13:53:04

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索