织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 竞争币 > 以太坊

硬核讲解以太坊 2.0 如何结合分布式系统与密码学提升性能 (3)

时间:2020-06-16 08:47来源:未知 作者:admin 点击:
SPV 节点只存储区块头(绿框),区块头中包含 Merkle 树根(红框) SPV 节点通过成员证明判断交易是否存在,该证明系统包含三个部分:节点手中有一个简

硬核讲解以太坊 2.0 如何结合分布式系统与密码学提升性能SPV 节点只存储区块头(绿框),区块头中包含 Merkle 树根(红框)

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

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

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

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

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

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

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

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

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

可聚合子向量承诺(aSVC)是一个最新的研究成果,来自于论文《无状态密码货币的可聚合子向量承诺》,作者是 Alin Tomescu、Ittai Abraham、Vitalik Buterin (以太坊)、Justin Drake (以太坊)、Dankrad Feist (以太坊)、 Dmitry Khovratovich (以太坊)。其工作过程是这样的: (责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容