链资讯 链资讯
Ctrl+D收藏链资讯
首页 > 非小号 > 正文

ERK:以太坊颠覆了以太坊:引入密码学实现 2.0 性能突破_FABRIC

作者:

时间:

撰文:李画,安比实验室特约研究员

性能是阻碍公链发展的瓶颈,提升性能则是绝大多数希望超越以太坊的公链的主要设计目标,但当我们站在今天回望时,会发现这些公链选择的方法大多是通过机制的设计来增强一个分布式系统的性能,但受困于分布式系统CAP定理,改善性能是要付出代价的,当这个分布式系统的用途是账本时,这些代价甚至可能是难以被接受的。

以太坊也一直在尝试各种方法以提升性能,在2.0被推出的前夜,它「试」出了密码学。以太坊2.0将是一个以「分布式系统+密码学」为基础来运转的公链,这个密码学不是指被用于签名和隐私的那部分,而是指作为一个高性能系统的核心组件的那部分。

从这个角度而言,或许我们可以说颠覆以太坊的不是别人,而是它自己。它从分布式系统设计的单一思路中跳了出来,走上分布式系统+密码学组合设计的道路。

这篇文章将试着介绍在以太坊2.0中,分布式系统设计如何与密码学设计结合,实现公链在性能上突破。

状态分片:从单账本到多账本

区块链是一个分布式账本,出块节点是记账的矿工,它们负责把交易写入账本。除了竞争记账权,出块节点最重要的工作,或者说本职工作就是检查自己打包的这些交易是否合法。完成这个工作并不难,因为出块节点手中握有账本,它去查一下交易发送方有没有这笔钱即可。

对于未分片的公链,所有节点都持有一个相同的账本;而为了防止记账冲突,每次也只允许一个出块节点记账。以太坊提出状态分片,实际上就是把一个账本分成多个账本,这样一来,一些节点在1号账本记账,一些节点在2号账本记账……,多个节点同时记账,整个公链的性能就会得到质的提升。

摩根大通分析师:PayPal稳定币可能会让以太坊受益:金色财经报道,摩根大通分析师Nikolaos Panigirtzoglou表示,PayPal 稳定币可能会增加以太坊的锁仓总价值(TVL),从而使以太坊受益。他说:“这可能会促进以太坊活动,并增强以太坊作为稳定币 / DeFi 平台的网络效用。换句话来说,未来将鼓励更多的公司为他们的稳定币或去中心化项目选择以太坊区块链(或其第二层平台)。”

Panigirtzoglou 表示,以太坊可能会进一步受益于 PYUSD,因为该稳定币可以填补BUSD缩水 200 亿美元留下的空白,该稳定币今年早些时候被美国监管机构强制关闭。如果 PYUSD 填补这一空白,DeFi TVL 将从币安智能链转移到以太坊区块链(或其第 2 层平台)。[2023/8/9 21:32:48]

但如果我们把出块节点与账本/分片的关系固定,比如确定由a、b、c、d四个节点负责1号账本,那坏人只需收买a、b、c、d中的一部分就能破坏账本,公链在提升性能的同时,安全性同比例下降。

因此,出块节点需要被随机、动态地分配到不同账本,以此保证分片后的公链与未分片的公链具有相同的安全性。但动态分配会带来新的问题:节点手中该拿哪一个账本?它可能会被分配到64个账本中的任何一个去记账。

以太坊给出的方案是出块节点不拿任何一个账本,或者说,让出块节点不需要账本就能记账。

这会带来两大好处,一是不管节点被分配到哪个分片,它都可以立刻开始记账工作,几乎不用花费时间来获得以及同步该分片的账本,节点也因此可以在不同分片间轻松跳转;二是出块节点不需要存储账本,也就不需要高硬件配置,任何人抵押32ETH就能成为一个验证者,这非常有助于以太坊PoS的去中心化以及整个公链的安全。

以太坊侧链Gnosis Chain即将过渡到PoS:金色财经报道,以太坊侧链Gnosis Chain官方推文称,Gnosis合并预计在北京时间12月9日上午02:47左右进行。此次合并,Gnosis Chain的共识机制将从Proof-of-Authority过渡到PoS。[2022/12/7 21:28:05]

但新问题跃然纸上:如果出块节点手中没有账本,它怎么知道交易发送方的钱够不够?密码学就在这时候登场了。

向量承诺:从查询到证明

不需要账本就能记账听上去不可思议,但其思路是简单的:在以前,节点有账本,一笔交易来后它翻看账本,查询交易是否合法;在以后,节点没有账本,交易发送方在提交交易的同时需要提交一个密码学证明,自己证明自己的这笔交易是合法的。

可出块节点为什么能够通过一个proof来判断某笔交易是否合法?这里涉及到两个密码学的重要概念,第一个叫「成员证明」。它指的是通过某种方法,证明个体是群体的一部分。如果能够证明某个账户状态是整个账本状态的一部分,出块节点当然就能相信这个账户状态,并以此为根据进行交易合法性的判断。

第二个叫「向量承诺」,它可以将群体,不管这个群体有多庞大,压缩成仅仅一个数,然后给出成员证明,该成员证明表明的是某个个体是属于这个数背后所关联的群体的,且能证明个体在群体中的位置,以及进行证明的更新。

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

下图是一棵Merkle树,最下一层的叶子节点存储的是应用数据,其他非叶节点存储的是其子节点的哈希值。如果知道绿色节点和所有黄色节点的值,就可以从下至上进行三次哈希运算,得到该Merkle树根的值,也就是6c0a。

Loot项目创始人计划对所有以太坊地址推出合成Loot:9月2日消息,Twitter旗下短视频共享应用Vine的联合创始人Dom Hofmann发推表示,将对所有以太坊地址推出合成Loot代币(Synthetic Loot),具体而言,将根据给定的钱包地址返还合成Loot代币的“虚拟NFT”,且每个钱包只有一个,同时因为它不是真正的NFT,所以不可铸造、转移、销售等。此外建立在Loot代币之上的创作者可以选择将合成Loot代币作为一种允许更广泛的冒险家参与生态系统的方式,同时仍然能够轻松区分初始Loot和合成Loot代币。[2021/9/2 22:54:09]

那么,如果验证方手中有树根的值,证明提供方把绿色节点的值和所有黄色节点的值作为一个proof给验证方,验证方是不是就能通过计算三次哈希的值是否等于6c0a来判断绿色节点的值是否在这棵Merkle树中?答案是可以。这就是对绿色节点属于Merkle树的成员证明,它是以向量承诺的方式完成的,而这也几乎就是比特币SPV节点的工作方式。

如下图所示,SPV节点不存储完整的区块/账本,但存储了每个区块中Merkle树的树根,当它需要查询一笔交易是否存在时,会找全节点要一个该交易的proof,该proof类似于上文中绿色节点和黄色节点值的一个打包,然后SPV节点会计算这些值的总的哈希值是否等于自己手中Merkle树根的值,如果相等,则说明这笔交易是该Merkle树的一个成员,即这笔交易是存在的。

声音 | 经济学家:以太坊2.0将驱动2020成为「Staking之年」:经济学家、加密货币分析师Alex Kruger表示,以太坊2.0将驱动2020成为Staking之年,因为虽然抵押在加密货币领域里并不是什么新鲜事,但以太坊2.0可提供更好基础架构和更可靠项目。Alex Kruger以目前Tezos(XTZ)取得成功为例,他表示自从Coinbase本月推出加密抵押业务之后,Tezos vs. BTC上涨73%,Tezos vs. USD上涨44%。此外,ETH被动收入可能用于诸如Maker,Compound之类抵押项目,以及币安提供的基于交易所加密回报计划。[2019/12/2]

SPV节点只存储区块头,区块头中包含Merkle树根

SPV节点通过成员证明判断交易是否存在,该证明系统包含三个部分:节点手中有一个简短的摘要;证明提供方给出一个proof;节点计算此proof,看是否与自己手中的摘要相符合。

到此,我们就完成了「不需要账本就能查账」,它是把查询思路改为了证明思路;接下来我们要实现的是「不需要账本就能记账」。

对于以太坊2.0分片上的出块节点而言,它的证明系统同样是由摘要、证明、验证这三部分构成,但它要做到是使用交易发送方给出的proof来判断一笔新交易是否合法,并以此判断为基础记账。

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

想象有一个很小的村庄,这个村庄每天只有3笔村民间的交易,村长拿着账本负责记账。A现在要给B转5块钱,传统的思路很简单:村长看A的账户上是否有5块钱,如果有,就记下这笔新交易。

以太坊网络再次出现拥堵 有用户表示交易等待15小时:以太坊网络再次出现拥堵的情况,今日早间微博有用户反映一笔交易等待了15个小时还没有成功。该用户该称,“区块链技术层面存在的问题真不是一般的大。和winds95一样,慢就算了,还卡。”以太坊网络拥堵情况等待解决中。[2018/1/9]

现在换一个思路:假设A在今天早上要给B转5块钱,村长知道A的账户在昨天早上有10块钱,那么如果A能够证明昨天的3笔交易都和他没有关系,是不是就意味着他的账户在今天早上依然有10块钱?这样一来,村长是不是不用查账本就能放心记下这笔新交易?答案是肯定的。

如果A昨天有一笔交易怎么办?很简单,A这时不是证明自己没交易,而是证明自己昨天只有一笔交易,且那笔交易用掉了3块钱;村长就知道他还有7块钱,可以记下新交易。

这个思路的转变至关重要,你一定要去理解它,这是「无状态」这件事的奥妙所在。不难发现,即使是不拿账本的SPV节点,它在查询交易时实际上也是要用到账本,或者说状态的,只不过它不是自己存储状态,而是去找全节点要这个状态的证明;但在这个新思路下,状态的作用可以彻底被「行为证明」取代,那么这条链就能够以无状态的方式去设计。

如何实现无状态?如何借助于行为证明完成记账?依然是成员证明的方法。能够利用Merkle树来完成这种成员证明吗?理论上可以,但对于「无状态」这个应用场景来说,用它的开销过大。在本文中,我们将介绍通过「可聚合子向量承诺」来进行成员证明,以实现无账本记账。

可聚合子向量承诺是一个最新的研究成果,来自于论文《无状态密码货币的可聚合子向量承诺》,作者是AlinTomescu、IttaiAbraham、VitalikButerin、JustinDrake、DankradFeist、DmitryKhovratovich。其工作过程是这样的:

1.初始化分片,即在账本建立时确定账户的初始情况。假设某个分片建立时有100个账户,这些账户都有初始的余额,我们需要用v(i)代表第i个账户,它是这样的一对值;用V代表全部账户,它是……这样的一组值。

同时需要生成两个值,第一个叫c,它是对V的承诺,代表的是此时该分片所有账户和账户里的余额。出块节点手中都握有c,,它是将来用于验证的摘要。

第二个叫π(i),它是对v(i)是V的成员的证明,代表第i个账户及该账户的余额是在总账本V中。每个账户都握有且只握有自己的π(i),它是将来发送交易时提交给出块节点的proof。

在初始化阶段,承诺和证明的生成是需要初始「状态」的。

2.第一笔交易。账户i发起整个分片的第一笔交易,此时它需要把π(i)和交易一起提交给出块节点,出块节点对π(i)进行计算,看结果是否与自己手中的c相符合,如果一致就可以相信发送方账户确实有多少余额,并以此判断它提交的交易是否合法。

3.接下来是关键之处:对c和π(i)进行更新。

c不再是根据状态生成,它是用第一笔交易发生之前的c,以及第一笔交易引起的余额变动生成的;π(i)也不是根据状态生成,它是用第一笔交易发生之前的π(i),以及第一笔交易对该账户的改变生成的。

在完成c和π(i)的更新之后,出块节点手中便有了可以承诺所有用户新余额的新承诺,账户手中也有了可以证明自己新余额的新proof。

以此类推,每笔交易都会改变一次c,改变一次全部π(i),但这种改变不再依赖于状态数据,它取决于旧的c和π(i),以及上一笔交易;当需要验证一笔新交易时,出块节点手中总有最新的c,它通过c和账户提供的π(i)就能判断某笔交易是否合法,是否可被打包进区块。

那么到这一步,就终于实现了「不需要账本就能记账」,不管对于出块节点,还是对于账户,它们手中握着的都是某种密码学的证明,而不是账本的状态。另需一提的是,无状态与分片似乎是绝配,但无状态并不是针对分片的一种设计,它是针对公链的一种设计。

aSVC的设计目标是要成为一个高效的成员证明,降低上述过程中的通信开销和计算开销,使得这种方案可用于无状态区块链的实现。从论文来看,使用aSVC方案,c和π(i)的大小仅为几十个字节,π(i)的更新时间为O(1),验证时间也为O(1),该方案还支持把多个proof聚合为一个O(1)大小的proof,这种低开销的实现正是aSVC的意义所在。不过就像Vitalik在以太坊研究者论坛中展开的相关讨论,aSVC还需要做进一步的优化。

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

为了安全,以太坊2.0的状态分片需要随机分配出块节点。

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

是否有不需要账本就能验证余额的方式?

第一个思路转变:把查找账本的方式改为证明账本的方式。这需要借助于密码学来完成。

第二个思路转变:把证明账本状态的方式改为证明交易行为的方式,实现无状态和无需账本的记账。这需要借助于密码学来完成。

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

附:可聚合子向量承诺

在文章中我们用自然语言描述了aSVC的工作,如果你感兴趣,可以通过aSVC的API定义来更清晰地了解它。如下图所示:第一个红框是初始化时生成承诺c,第二个红框是根据交易更新c;第一个绿框是初始化时生成证明π(i),第二个绿框是根据交易更新π(i);蓝框是出块节点用c和π(i)做验证。

在上述过程中,最核心的工作是根据交易引发的变动把旧的c变成新的c,把旧的π(i)变成新的π(i)。不但要能够完成更新,且这种更新的开销是可以被接受的,这是aSVC要解决的关键问题。我们以c的更新为例来介绍aSVC是如何做的。

如前文所述,c承诺的是V,从c到新c,实际上就是从承诺V到承诺一个新的V。对V来说,它是由一系列的点构成的,是一个点,是另一个点……是第100个点。

借助于拉格朗日插值法,可以把这一系列的点变成一个多项式,这意味着可以把对一系列点的承诺变成对一个多项式的承诺;从c到新c,也就等价于从承诺一个多项式到承诺另一个多项式。

而多项式有着各种神奇的属性,对多项式及多项式变换的承诺可以是小的、快速的。那么通过这种从点到多项式的转化,就可以把c的更新开销变为可接受的。

但这只是对aSVC方案思路的一个简单、片面的介绍,在该方案中还使用了诸多其他工具和方法,而且它依然在追求更好的设计。如果你想更多的了解它,可以去阅读原论文,其中的3.1节和4.1节是最有助于理解整篇论文的部分。

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

标签:ERKEECFABRIC区块链ERK币freecoin币路线图FABRIC价格区块链适合什么人做

非小号热门资讯
DOT:SheKnows大辩论丨高盛报告再掀波澜,你还敢投资比特币吗?_TON

5月27日晚间,投行巨头高盛举行电话会议,就比特币的资产类别、与黄金的对比、价格趋势的底层逻辑,以及对世界经济金融的可能性影响等方面发表了看法.

区块链:产业最前线丨腾讯至信链:打造智慧司法领域的基础设施_数字资产

随着互联网在生活、生产中快速普及,围绕互联网的诉讼纠纷日益增长,诉讼中的大量证据以电子数据存证的形式呈现,电子证据在司法实践中的具体表现形式日益多样化,电子数据存证的使用频次和数据量都显著增长.

区块链:让区块链说普通话,一种面向异构的跨链数据认证及通讯协议_BarnBridge

编者按:2019年9月5日,全球最大的专业技术组织、有着130余年历史的IEEE设立IEEE计算机协会区块链和分布式记账委员会,旨在推动区块链与分布式记账技术的标准化及其应用实践.

ETH2.0:ETH2.0测试网Onyx启动,以太坊距离真正的2.0还有多远?_propy币怎么样

昨天,作为全球第二大区块链项目的以太坊,正式启动了ETH2.0的最新版的测试网——Onyx,读音。曾经一度备受期待但又遥遥无期甚至近于难产的ETH2.0,似乎终于迎来了最后临门一脚的时刻.

SDT:中概股危机来袭,中国矿机巨头赴美上市之路或受阻_MNI

本文来自CoinGeek,原文作者:JacobRozen译者:Odaily星球日报余顺遂对于上市公司来说,以报告的形式保持透明度极其重要.

SDT:一文回顾Filecoin矿工大会重点内容_OMNIA价格

作者:IPFS原力区 编者注:原标题为《原力回顾|Filecoin矿工大会重点内容解析》2020年5月29日,Filecoin官方组织第二届矿工大会.