18

全方位对比「波卡」和「以太坊 2.0」

 3 years ago
source link: https://www.tuoluocaijing.cn/article/detail-10016441.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

FBviyqQ.png!web

图片来源:PureStake

Polkadot 和以太坊 2.0 都是分片式区块链协议。即它们通过在单独的分片中执行交易,并提供在分片之间发送消息的协议来提供可扩展性(scalability)。

模型

以太坊 2.0 中的分片都具有相同的状态转换函数(STF),即管理着区块链如何更改每个区块状态的规则。该 STF 提供了智能合约执行的界面。合约存在于单个分片上(并且可以在分片之间发送异步消息),因此可以通过并行执行分片来进行扩展。

同样,在 Polkadot 中,每个分片都承载核心逻辑,这些分片并行执行,并且 Polkadot 可以发送跨分片的异步消息。但是,协议中的每个分片都有唯一的 STF。通过组合逻辑,应用程序可以存在于单个分片中,也可以存在于多个分片中。Polkadot 使用 WebAssembly(Wasm)作为 “元协议”。分片的 STF 可以是抽象的,只要 Polkadot 上的验证人可以在 Wasm 环境中执行即可。

架构以太坊 2.0

以太坊 2.0 的主链称为信标链(Beacon Chain)。信标链的主要负载是见证消息(attestations),这是对分片数据可用性和信标链有效性的投票。以太坊 2.0中的每个分片都是具有 Ethereum Wasm(eWasm)接口的区块链。

以太坊 2.0 将仅通过信标链启动阶段 0。在第 1 阶段,它将以简单链的形式启动 64 个分片,以测试信标链的最终性。每个分片都向 “信标链” 提交 “交联(crosslinks)”,其中包含确定分片数据的信息。稍后,在阶段 2 中,分片将实现 eWasm 接口,最终使系统可用。[1]

该网络还将具有 “侧链” ,来与不在以太坊 2.0 最终性协议下的链进行交互。Polkadot

像以太坊 2.0 一样,Polkadot 也有一个主链,称为中继链,带有许多分片,叫作 “平行链”。平行链不限于单个界面,例如 eWasm。取而代之的是,它们可以定义自己的逻辑和接口,只要将其 STF 提供给中继链验证人即可执行。

Polkadot 计划在启动时每个区块最多能够验证 100 个分片。除了计划在每个块中执行的平行链以外,Polkadot 还具有动态调度的平行线程。这让多条链可以共享分片插槽,就像多家小型航空公司可能在机场共享一个登机口一样。

为了与想要使用自己的最终过程的链进行交互(例如比特币),Polkadot 拥有转接桥平行链来提供双向兼容性。

共识

以太坊 2.0 和 Polkadot 都使用混合共识模型,其中出块和最终性都有各自的协议。最终性协议(以太坊 2.0 的 Casper FFG 和 Polkadot 的 GRANDPA)基于 GHOST,并且都可以在一轮中最终确定一批区块。对于出块,这两种协议都使用基于插槽的协议,该协议将验证人随机分配给插槽,并为未最终确定的区块提供分叉选择规则(以太坊 2.0 的 RandDAO/LMD 和 Polkadot 的 BABE)。

以太坊 2.0 和 Polkadot 的共识有两个主要区别:

以太坊 2.0 根据称为 “epochs” 的时间段来最终确定一批区块。当前的计划是每个时期有 64 个块,并在一轮中全部完成。预计的区块时间为 12 秒,这意味着最终确定的预期时间为 6 分钟(最多 12 分钟)。[2] Polkadot 的最终协议 GRANDPA 根据可用性和有效性检查来最终确定一批区块,这些检查随着被提议的链增多而发生的。最终确定的时间随需要执行的检查次数而变化(无效性报告会导致协议要求额外的检查)。预期的最终确定时间为 12-60 秒。

以太坊 2.0 每个分片需要大量验证人以提供强大的有效性保证。Polkadot 能够通过每个分片更少的验证人来提供更强大的保证。Polkadot 通过让验证人向系统中的所有验证人分发纠删码来实现此目的,从而使任何人(不仅是分片的验证人)都可以重建平行链的区块并测试其有效性。随机的平行链验证人分配算法,和由随机选出的验证人进行的二次检查,让每个平行链上的一小组验证人无法串通。

Staking 机制

以太坊 2.0 将是一个权益证明(PoS)网络,每个验证人需要 32 ETH 来进行抵押。验证人将运行一个主要的 “信标链” 节点和多个验证人客户端(每个 32 ETH 一个客户端)。这些验证人被分配给 “委员会(committees)”,“委员会” 是随机选择的组,以验证网络中的分片。以太坊 2.0 依靠大型验证人集合来提供可用性和有效性保证:每个分片至少需要 111 个验证人才能运行网络,每个分片至少需要 256 个验证人才能一个 epoch 之内未最终确定所有分片。而 64 个分片就是 16,384 个验证人(每个分片提供 256 个验证人)。[3]

Polkadot 能够以更少的验证人来提供强大的确定性和可用性保证。因此,Polkadot 使用提名权益证明(NPoS)从较小的集合中选择验证人,从而使较小的持有者可以提名验证人来运行基础结构,同时仍然可以获得系统的收益,而无需运行自己的节点。Polkadot 计划在第一年拥有 1,000 个验证人,并且网络中每个平行链大约需要 10 个验证人。

分片

以太坊 2.0 中的每个分片都具有相同的 STF。在阶段 1(预计 2021 [5])中,分片将是简单的数据容器,提供与信标链的交联。在阶段 2(预计 2023 年)中,他们将实现 eWasm 执行环境。EWasm 是 Wasm 的有限子集,用于以太坊中的合约。eWasm 界面提供了一组可用于合约的方法。eWasm 开发应该有类似的开发工具集,例如 Truffle 和 Ganache。[6]

Polkadot 中的每个分片都有一个基于 Wasm 的抽象 STF。只要逻辑编译为 Wasm,并且每个分片为 Polkadot 验证人提供 “执行区块” 功能,每个分片都可以公开自定义接口。Polkadot 具有 Substrate 开发框架,该框架拥有可配置、组合和扩展的模块,可以进行全方位的组合来开发链的 STF。

消息传递

以太坊 2.0 中的分片可以通过对方的交联和状态证明访问彼此的状态。在具有 64 个分片的 以太坊 2.0 模型中,每个分片在信标链中为每个块发布一个交联[4] ,意味着分片可以包含一些逻辑,来执行基于另一个分片上的一笔交易的轻客户端证明。[7] 以太坊 2.0 尚未发布节点在分片之间传递消息的规范。

Polkadot 使用跨链消息传递 (XCMP) 来让平行链间相互发送任意消息。平行链彼此之间建立了开放的连接,并可以通过其建立的通道发送消息。如果两个平行链具有相同的全节点,则它们可以通过全节点 “八卦” 消息。否则,中继链验证人将处理消息传递。消息不通过中继链,只有发布和通道操作(打开,关闭等)的证明进入中继链。这一特性通过将数据保留在系统边缘来增强可扩展性。

Polkadot 具有称为 SPREE 的附加协议,该协议为跨链消息提供共享逻辑。使用 SPREE 发送的消息为接收链提供了关于来源和解释的其他保证。

治理

以太坊 2.0 治理仍未解决。以太坊目前使用链下治理程序,例如 Github 讨论、All Core Devs call 和 Ethereum Magicians 来制定有关该协议的决策。[8]

Polkadot 将链上治理与多系统一起使用。有几种途径可以通过议案,例如来自链上的理事会、技术委员会或公众。所有议案最终都要经过公投,公投的结果始终由多数代币控制。对于低投票率公投,Polkadot 使用自适应投票偏见设置通过阈值。公民投票可以包含各种议案,包括从链上财政库中分配资金。决策是在链上制定的,具有约束力和自主性。

升级

以太坊 2.0 的升级将遵循常规的硬分叉流程,要求验证人升级其节点以实现协议更改。

Polkadot 使用 Wasm 元协议,无需硬分叉就可以实施链升级和成功的提案。STF、交易队列或链下工作机中的所有对象都可以升级,而无需分叉。

结论

以太坊 2.0 和 Polkadot 都使用分片模型,其中分片链(以太坊 2.0 中的 “分片” 和 Polkadot 中的 “平行链/平行线程”)通过在主链区块中链接分片状态而受主链保护。这两个协议在几个主要方面有所不同。首先,以太坊 2.0 中的所有分片都具有相同的 STF,而 Polkadot 让分片具有抽象的 STF。其次,以太坊中的治理流程是链下的,需要协调和硬分叉才能执行治理决策,而在 Polkadot 中,决策是在链上自主颁布和执行的。第三,验证人选择机制不同,因为 Polkadot 可以在每个分片的验证人数量较少的情况下,提供强大的可用性和有效性保证。

参考资料

[1]

以太坊 2.0 各阶段: https://docs.ethhub.io/ethereum-roadmap/ethereum-2.0/eth-2.0-phases/[2]

以太坊 2 区块时间: https://github.com/ethereum/eth2.0-specs/blob/676e216/specs/phase0/beacon-chain.md#time-parameters[3]

以太坊 2.0 经济学: https://docs.ethhub.io/ethereum-roadmap/ethereum-2.0/eth-2.0-economics/[4]

Buterin, Eth2 分片链简化议案: https://notes.ethereum.org/@vbuterin/HkiULaluS[5]

Messari Crypto Theses for 2020: https://messari.io/report/crypto-theses-for-2020[6]

eWasm 设计: https://github.com/ewasm/design[7]

分片 FAQ: https://github.com/ethereum/wiki/wiki/Sharding-FAQ#how-would-synchronous-cross-shard-messages-work[8]

以太坊治理纲要: https://github.com/ethereum/wiki/wiki/Governance-compendium

原文:https://wiki.polkadot.network/docs/en/learn-comparisons-ethereum-2

翻译:PolkaWorld 社区


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK