http://www.7klian.com

以太坊颠覆了以太坊:引入暗码学实现 2.0 机能打破

第二个思路转变:把证明账本状态的方法改为证明生意业务行为的方法,实现无状态和无需账本的记账。这需要借助于暗码学来完成。

这个思路的转变至关重要,你必然要去领略它,这是「无状态」这件事的玄妙地址。不难发明,纵然是不拿账本的 SPV 节点,它在查询生意业务时实际上也是要用到账本,可能说状态的,只不外它不是本身存储状态,而是去找全节点要这个状态的证明;但在这个新思路下,状态的浸染可以彻底被「行为证明」代替,那么这条链就可以或许以无状态的方法去设计。(注:行为证明这个词并无出处,是作者为了易于领略这样描写的)

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

借助于拉格朗日插值法,可以把这一系列的点酿成一个多项式(该多项式代表的曲线颠末所有这些点),这意味着可以把对一系列点的理睬酿成对一个多项式的理睬;从 c 到新 c,也就等价于从理睬一个多项式到理睬另一个多项式。

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

但这只是对 aSVC 方案思路的一个简朴、单方面的先容,在该方案中还利用了诸多其他东西和要领,并且它依然在追求更好的设计。假如你想更多的相识它,可以去阅读原论文,个中的 3.1 节和 4.1 节是最有助于领略整篇论文的部门。

暗码学的东西有许多,当有了方针后,需要按照应用需求选择和组符合当的东西形成方案,并对方案举办优化。

在上述进程中,最焦点的事情是按照生意业务激发的变换把旧的 c 酿成新的 c,把旧的π(i) 酿成新的π(i)。不单要可以或许完成更新,且这种更新的开销是可以被接管的,这是 aSVC 要办理的要害问题。我们以 c 的更新为例来先容 aSVC 是如何做的。

是一个漫衍式账本,出块节点是记账的矿工,它们认真把生意业务写入账本。除了竞争记账权,出块节点最重要的事情,可能说本职事情就是查抄本身打包的这些生意业务是否正当。完成这个事情并不难,因为出块节点手中握有账本,它去查一下生意业务发送方有没有这笔钱即可。

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

此刻换一个思路:假设 A 在本日早上要给 B 转 5 块钱,村长知道 A 的账户在昨天早上有 10 块钱,那么假如 A 可以或许证明昨天的 3 笔生意业务都和他没有干系,是不是就意味着他的账户在本日早上依然有 10 块钱?这样一来,村长是不是不消查账本就能安心记下这笔新生意业务?谜底是必定的。

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

可出块节点为什么可以或许通过一个 proof 来判定某笔生意业务是否正当?这里涉及到两个暗码学的重要观念,第一个叫「成员证明」。它指的是通过某种要领,证明个别是群体的一部门。假如可以或许证明某个账户状态是整个账本状态的一部门,出块节点虽然就能相信这个账户状态,并以此为按照举办生意业务正当性的判定。

如前文所述,c 理睬的是 V,从 c 到新 c,实际上就是从理睬 V 到理睬一个新的 V。对 V 来说,它是由一系列的点组成的,(地点 1,余额 1)是一个点,(地点 2,余额 2)是另一个点……(地点 100,余额 100)是第 100 个点。

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

从这个角度而言,或者我们可以说颠覆以太坊的不是别人,而是它本身。它从漫衍式系统设计的单一思路中跳了出来,走上漫衍式系统+暗码学组合设计的阶梯。

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

相关文章阅读