全方位解析波卡与以太坊 2.0 之间的不同之处。

封面:Polkadot

“波卡知识图谱”是我们针对波卡从零到一的入门级文章,我们尝试从波卡最基础的部分讲起,为大家提供全方位了解波卡的内容,当然这是一项巨大的工程,也充满了挑战,然而我们希望通过这样的努力让大家能够正确认知波卡,也让不了解波卡的人方便快速掌握波卡相关知识,今天是该栏目的第 41 期,为大家全方位介绍波卡与以太坊 2.0 所具备的特点都有哪些。

自 2016 年波卡白皮书正式发布,经历了几年低调的测试与开发,波卡的核心功能开发以及生态发展都取得了显著的进展,平行链插槽 Auction 也成为了常态化。

而 2014 年问世的以太坊,可以说是公链的龙头代表,在 8 年的发展历程中,以太坊正在发生快速的变化。

目前以太坊正在致力于完成以太坊 2.0 的升级,在上个月中用一周的时间就做好了升级准备,而以太坊也将从工作量证明(PoW)共识机制过渡到权益证明(PoS)。

一直以来公链的竞争常常受到诸多关注,在过去,由于 Gavin 博士曾是以太坊的联合创始人,后来又创建了波卡,因此波卡与以太坊被看作是彼此强劲的对手。

那么目前的波卡与以太坊 2.0 分别有怎样的特点呢?

波卡和 Ethereum 2.0 都是分片区块链协议。因此,它们通过在单独的分片中执行事务和提供在分片之间发送消息的协议来提供可扩展性。

模型

以太坊 2.0 中的分片都具有相同的状态转换函数(STF),就像管理区块链如何随每个块改变状态的规则一样。

这个 STF 为智能合约的执行提供了一个接口。合约存在于单个分片上,并且可以在分片之间发送异步消息。

同样,在波卡中,每个分片都承载核心逻辑,分片并行执行,波卡可以发送跨分片异步消息。

但是,每个波卡分片(即平行链)都有一个独特的 STF。应用程序既可以存在于单个分片中,也可以通过组合逻辑存在于多个分片中。

波卡使用 WebAssembly(Wasm)作为 “元协议”。只要波卡上的验证者可以在 Wasm 环境中执行,分片的 STF 就可以是抽象的。波卡将通过平行链支持智能合约。

从某种角度来看,在以太坊上,智能合约可以在同一个分片中同步调用对方,也可以在分片之间异步调用对方。

在波卡上,智能合约将能够在同一个平行链中同步调用对方,并在平行链之间异步调用对方。

架构

以太坊 2.0

以太坊 2.0 的主链称为 Beacon Chain(信标链)。信标链上的主要负载是证明,即对分片数据可用性和信标链有效性的投票。

以太坊 2.0 中的每个分片只是一个带有以太坊 Wasm (eWasm) 接口的区块链。

以太坊 2.0 于 2020 年 12 月启动了多阶段部署的第 0 阶段,与传统的以太坊 1.0 链并行运行:

阶段 0 提供了信标链,接受验证者的存款并实现了权益证明共识,最终在许多分片之间实现。

第一阶段以简单链的形式启动 64 个分片,以测试信标链的最终确定性。每个分片向信标链提交 “交联(crosslink)”,信标链包含最终确定分片数据的信息。

阶段 1.5 将 Eth 1 集成为一个分片,最终完成工作量证明链的块。

阶段 2 实现 eWasm 接口,逐步淘汰工作量证明,最终使系统对最终用户。

在阶段 0 启动信标链后,路线图发生了变化,优先考虑将传统的以太坊 1.0 链从工作量证明过渡到以太坊 2.0 的权益证明共识,然后在网络上推出分片。

该网络还将有 “侧链”,与不属于以太坊 2.0 最终协议的链进行交互。

Polkadot

与以太坊 2.0 一样,Polkadot 也有一条主链,称为中继链,带有多个分片,称为平行链。平行链并不局限于像 eWasm 这样的单一接口。

相反,他们可以定义自己的逻辑和接口,只要他们向中继链验证器提供 STF,以便执行它。

Polkadot 现在以中继链的形式存在,只计划推出每个区块验证 20 个分片的能力,逐渐扩展到每个块 100 个分片。

除了计划在每个区块执行的平行链之外,Polkadot 还有计划在动态基础上执行的平行线程。

这允许各条链共享分片的插槽,就像多家小型航空公司能在机场共享一个登机口一样。

为了与想要使用自己的最终确定过程(例如比特币)的链进行交互,波卡具有提供双向兼容性的桥链。

共识

以太坊 2.0 和波卡都使用混合共识模型,其中区块生产和最终确定性都有自己的协议。

最终性协议——以太坊 2.0 的 Casper FFG 和波卡的 GRANDPA——都是基于 GHOST 的,并且都可以在一轮中完成批量的块。

对于区块生产,两种协议都使用基于插槽的协议,随机分配验证者到插槽,并为未最终确定的区块提供分叉选择规则——以太坊 2.0 的 RandDAO/LMD 和波卡的 BABE。

以太坊 2.0 和波卡共识有两个主要区别:

以太坊 2.0 根据被称为 “epoch” 的时间周期完成批量块。目前的计划是每个 epoch 有 32 个区块,并在一轮中完成所有区块。由于预计出块时间为 12 秒,这意味着预计完成时间为 6 分钟(最长 12 分钟)。

波卡的终结性协议 GRANDPA 根据可用性和有效性检查来最终确定一批块,这些检查是随着提议链的增长而发生的。

最终确定的时间因需要执行的检查数量而异(无效报告导致协议需要额外的检查)。预计完成时间为 12-60 秒。

以太坊 2.0 要求每个分片有大量验证者来提供强大的有效性保证。波卡可以通过每个分片使用更少的验证者来提供更强的保证。

波卡通过让验证者向系统中的所有验证者分发擦除代码来实现这一点,这样任何人——不仅是分片的验证者——都可以重构平行链的块并测试其有效性。

随机选择的验证者分配和由随机选择的验证者执行的二次检查使得每个平行链上的小组验证者不可能相互勾结。

Staking 机制

以太坊 2.0 是一个权益证明网络,每个验证者实例需要 32 个 ETH 进行权益证明。验证者运行一个主信标链节点和多个验证者客户端——每 32 个 ETH 对应一个验证者。

这些验证者被分配到 “委员会” 中,它们是随机选择的组,用于验证网络中的分片。

以太坊 2.0 依赖于大型验证者池来提供可用性和有效性保证:每个分片至少需要 111 个验证者来运行网络,每个分片需要 256 个验证者在一个 epoch 内完成所有分片。对于 64 个分片,即 16384 个验证者(每个分片有 256 个验证者)。

波卡可以用更少的验证者提供强大的确定性和可用性保证。波卡使用提名权益证明(NPoS)从较小的集合中选择验证者,让较小的持有者提名验证者来运行基础设施,同时还能获得系统的奖励,而无需运行自己的节点。

波卡计划在其第一年运营结束时拥有 1000 个验证者,并且网络中每个平行链需要大约 10 个验证者。

分片

以太坊 2.0 中的每个分片都具有相同的 STF。每个分片将提交 “交联” 到信标链,并实现一个 eWasm 执行环境。

EWasm 是 Wasm 用于以太坊合约的一个受限子集。eWasm 接口提供了一种可用于合约的方法。应该有一套类似的开发工具,比如 Truffle 和 Ganache 来为 eWasm 开发。

波卡中的每个分片都有一个基于 Wasm 的抽象 STF。每个分片都可以公开一个自定义接口,只要逻辑编译为 Wasm 并且分片为波卡验证者提供 “执行块” 函数。

波卡拥有 Substrate 开发框架,该框架允许使用一套模块进行全谱可配置、组合和扩展这些模块来开发链的 STF。

消息传递

以太坊 2.0 中的分片可以通过它们的交联和状态证明访问彼此的状态。

在有 64 个分片的以太坊 2.0 模型中,每个分片在信标链中为每个区块发布一个交联,这意味着分片可以包含基于另一个分片上的一些轻客户端交易证明执行的逻辑。以太坊 2.0 尚未发布节点在分片之间传递消息的规范。

波卡使用跨共识消息传递格式(XCM)让平行链相互发送任意消息。平行链彼此打开连接,并可以通过其已建立的通道发送消息。

鉴于收集者也需要成为中继链的完整节点,他们将被连接并能够将消息从平行链 A 中继到平行链 B。

消息不通过中继链传递,只有发帖和通道操作的证明(打开、关闭等)进入中继链。这通过将数据保留在系统边缘来增强可扩展性。

波卡将添加一个名为 SPREE 的协议,该协议为跨链消息提供共享逻辑。通过 SPREE 发送的消息携带了关于来源和接收链解释的额外保证。

治理

以太坊 2.0 治理仍未解决。以太坊目前使用 GitHub 讨论、所有核心开发者调用和 Ethereum Magicians 等链下治理程序来决定协议。

波卡使用链上治理和多机构系统。有多种途径可以发布提案,例如链上理事会、技术委员会或公众。所有提案最终都会通过公投,其中大多数通证始终可以控制结果。

对于低投票率的公投,波卡使用自适应法定人数偏差来设置通过门槛。全民公投可以涵盖各种主题,包括从链上国库的资金分配或修改链的底层 Runtime 代码。

决策在链上制定,具有约束力和自主性。

升级

以太坊 2.0 的升级将遵循正常的硬分叉过程,要求验证者升级其节点以实施协议更改。

使用 Wasm 元协议,波卡可以在没有硬分叉的情况下制定链升级和成功的提案。STF、交易队列或链下工作机中的任何内容都可以在不分叉链的情况下进行升级。

结论

以太坊 2.0 和波卡都使用分片模型,其中分片链(以太坊 2.0 中的 “分片” 和波卡中的 “平行链/平行线程”)由主链保护。通过将分片状态连接到主链的区块中。这两个协议在几个主要领域有所不同。

首先,以太坊 2.0 中的所有分片都具有相同的 STF,而 Polkadot 让分片具有抽象的 STF。

其次,以太坊 2.0 中的治理过程计划在链下进行,因此需要协调硬分叉来制定治理决策,而在波卡中,决策是在链上并自主制定的。

第三,验证者选择机制不同,因为波卡可以通过每个分片较少数量的验证者来提供强大的可用性和有效性保证。

(本文摘自:波卡官方 Wiki,成文时间为 2021 年 10 月 23 日)

免责声明:作为区块链信息平台,本站所发布文章仅代表作者及嘉宾个人观点,与 Web3Caff 立场无关。本文内容仅用于信息分享,均不构成任何投资建议及要约,并请您遵守所在国家或地区的相关法律法规。