LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资产 > 论轻节点在 Vitalik 的《终局》理论中的重要性

论轻节点在 Vitalik 的《终局》理论中的重要性

2021-12-19 Status 来源:区块链网络

图片由Vitalik 的《终局》帖子提供

前言

以太坊可以支持全节点和轻客户端,它包含一个点对点层,允许节点相互发送消息。虽然以太坊当前的架构不是特别适合轻客户端,但信标链架构是非常适合的。这意味着合并后,他们将扮演重要的角色。轻客户端是全节点的更便宜的替代方案(从带宽和资源消耗的角度来看),因为它只从每个区块下载区块头并信任全节点来检查状态转换是否正确(换句话说,轻客户端信任与其对等的全节点,来验证区块生产者没有试图铸造新硬币,从他们没有私钥的地址花费虚拟币,或制作比共识规则允许的更大的区块)。然而,这确实回避了一个问题:在什么假设条件下,轻客户端能够保护自己免受恶意区块制作者的攻击?

放宽假设条件

在终局阶段,我们预计大多数人会在不知情的情况下使用轻客户端在以太坊上进行交易。例如,我们的计划一直是将 Status 移动应用程序与 Nimbus 的轻版本集成在一起。

由于轻客户端通常只下载区块头,而不自己验证交易,我们习惯于认为它们与全节点相比具有较弱的安全保证:在传统模型下,它们被迫依赖诚实多数假设(这意味着他们必须假设该链默认有效)。

然而,事实证明,我们可以做得比这好得多。

多亏了《欺诈和数据可用性证明》的魔力,我们可以放宽诚实多数假设,而采用 1/N 诚实假设替代。实事求是地讲,这意味着轻客户端只需要与一个诚实全节点对等就可以继承几乎相同的安全保障。在本文的其余部分,我们将这种类型的轻客户端称为轻节点。

简化版草图

虽然我们不会在这里讨论残酷的细节,但这里有一个简单的草图,说明它是如何工作的。

当一个轻节点收到一个区块头时,它从默克尔树中概率抽样足够多默克尔根代表的份额来说服自己整个树确实可供全节点验证(换句话说,轻节点能够验证区块生产者没有从网络中隐瞒任何数据)。

同时,它会从与之对等的节点中侦听欺诈证明——一种小型且可快速验证的证据,证明区块中的特定交易是无效的。有效的欺诈证明使轻节点相信区块头中的 Merkle 根实际上是不正确的。在没有有效的欺诈证明的情况下,它会继续前进并接受区块头是真实的。

这意味着什么?

这里的关键要点是,只要一个轻节点与至少一个诚实全节点对等,它实际上具有与该全节点相同的安全保证(因为如果它接收到的区块头是不正确,可以预期将从它那里接收到欺诈证明)。

这里收集到的一个更巧妙的机制如下:只有当足够多的人同时运行轻节点和全节点时,轻节点才能提供与全节点相同的保护。这是真的,因为你需要网络中足够多的轻节点来共同恢复区块,以及足够多的诚实全节点让每个轻客户端都有机会连接到至少一个。

因此,为了确保有弹性的网络,在以太坊上进行交易的个人可以检测出区块生产者是否/何时试图更改其规则,我们需要做两件事:

让在移动设备(和其他资源受限的设备)上运行轻节点变得非常简单。

让在低功耗商用硬件(尤其是包含 Raspberry Pi 和日常笔记本电脑)上运行全节点变得非常简单。

在区块生产集中化的世界中,这两件事变得尤为重要(这很可能是我们即将走向的终局阶段)。

实现自我主权的手段

引用John Adler的话:多亏了欺诈证明和数据可用性抽样,我们可以将去中心化视为运行全节点的成本和运行轻节点的成本的某种函数。不是因为运行其一有什么特别之处,而是因为它们是达到目的的一种手段:自我主权。

在这种情况下,自我主权意味着我们社区能够检测出区块生产者何时试图改变我们都同意的规则。

参考文献:

运行 Nimbus 信标节点:https://nimbus.guide/quick-start.html

信标链轻客户端分类:https://ethresear.ch/t/beacon-chain-light-client-classification/11061

信标链轻客户端网络:https://ethresear.ch/t/beacon-chain-light-client-networking/11063

信标链轻客户端设计文档:https://notes.ethereum.org/@ralexstokes/S1RSe1JlF

引导信标链轻客户端生态系统:https://notes.ethereum.org/@ralexstokes/S1RSe1JlF

Altair:最低轻客户端规格:https://github.com/ethereum/consensus-specs/blob/dev/specs/altair/sync-protocol.md

Lodestar 轻客户端演示:https://github.com/ChainSafe/eth2-light-client-demo/tree/dapplion/update-to-prater

Nimbus 轻客户端同步实现:https://github.com/status-im/nimbus-eth2/issues/2337

实验性 Nimbus 轻客户端服务器
(扩展提交描述...了解如何使用它的说明):https://github.com/etan-status/nimbus-eth2/compare/merkle-multiproof...etan-status:lightclient-api

—-

编译者/作者:Status

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...