其他EVM链基础

很多 DApp 都是多链部署的,所以除了以太坊,也需要了解其他主流的 EVM 链,包括了解这些链和以太坊的一些差异性,以便 DApp 可以兼容部署到多个不同的 EVM 链。

 

首先,每一个区块链网络都有一个单独的 Chain ID,以太坊主网的 Chain ID 为 1,Goerli 测试网的 Chain ID 为 5,Sepolia 测试网的 Chain ID 为 11155111。不同的区块链网络有不同的 Chain ID,是为了确保在不同的网络中进行交互时可以准确地区分数据和交易,并且能够防止在不同的网络中发生混淆或错误。

 

从目前的生态规模上来说,BNB Chain 是仅次于以太坊的 EVM 公链了,其主网的 Chain ID 为 56。其实,币安先后发行了两条区块链,第一条链叫币安链(Binance Chain),只支持代币交易和转账,并没有智能合约功能,自然也不是 EVM 链。而另一条链叫币安智能链(Binance Smart Chain),简称 BSC,是建立在币安链之上的智能合约平台,也是 EVM 兼容链。而从 2022 年 2 月开始才更名为 BNB Chain,而更名后的 BNB Chain 其实也包含了之前的两条链,且这两条链也同样进行了更名。原本的币安链变成了 BNB 信标链(BNB Beacon Chain),主要用于 BNB Chain 的治理。币安智能链则改为了 BNB 智能链(BNB Smart Chain),主要作为智能合约平台。

 

BNB Chain 其实是基于以太坊的开源代码进行修改调整的,而最大的调整就是共识机制,采用的共识机制称为权威权益证明(Proof of Staked Authority),简称 PoSA,是结合了权威证明(PoA)和委托权益证明(DPoS)的一种共识机制。该机制下的验证者节点非常少,BNB Chain 改名之前只有 21 个验证者,改名之后扩展到 41 个,每个验证者需要运行一个 BNB Chain 节点并至少质押 1 万枚 BNB,质押的代币数量越多,参与共识的机会越大。因为验证者非常少,所以相比于以太坊,可以有更快的性能,以太坊的出块时间为 12 秒,而 BNB Chain 的出块时间为 3 秒,因此理论上的性能 BNB Chain 比以太坊快了 4 倍。但也因为验证者非常少,所以去中心化程度大大降低。要知道,以太坊的验证者可是有几十万之多。

 

在以太坊上需要支付的 gas 为以太币,而在 BNB Chain 上支付的 gas 则变成了 BNB。另外,因为 ETH 的价格相对较高,且以太坊平时的 gas 价格也比 BNB Chain 的高不少,所以,整体上在 BNB Chain 上执行交易的 gas 就比在以太坊上便宜很多,这也是很多用户倾向于在 BNB Chain 交易的其中一个原因。

 

除了 BNB Chain 之外,目前主流的 EVM 链当属几个扩展以太坊的 Layer2 链了,包括 Polygon、Optimism、Arbitrum。先说下 Optimism 和 Arbitrum,它们是 Optimistic Rollup 方案的代表,在这两条链上执行交易支付的 gas 费用也是以太币,但不是用 Layer1 的以太币直接支付 gas,而是需要先把以太币从 Layer1 跨链到 Layer2,映射成 Layer2 的以太币后才能使用。Polygon 则不太一样,需要使用其原生代币 MATIC 作为 gas 费用,之所以代币名称为 MATIC 是因为 Polygon 的前身其实是叫 Matic,是后来才改名为 Polygon 的。Polygon 的定位可以理解为一个可扩展的 Layer2 聚合器,它具有模块化、灵活的框架,架构上存在一个通用的 PoS 验证层,且与不同的运行环境分离,可兼容不同的 Layer2 链,包括 Plasma、Optimistic Rollup、ZK Rollup 等。这几条 Layer2 链的 gas 费也是非常低,对于相同的操作,Polygon 的 gas 费通常是最便宜的,然后是 Arbitrum,最后才是 Optimism。

 

Layer2 中,备受关注的还有 ZK Rollup 方案的代表。其实,使用 ZK Rollup 实现的 Layer2 有好多个,包括 zkSync、Polygon、Scroll、StarkNet 等。这些 ZK Rollup 的 Layer2 链,都在往兼容 EVM 的方向上发展,但具体的实现方案都不同。比如,StarkNet alpha 早在 2021 年 11 月就已经在以太坊主网上发布了,但因为其所使用的智能合约语言并不是 Solidity,而是 Cairo,因此 StarkNet 本身其实并不兼容 EVM。但该团队正在构建 Solidity - Cairo 的编译器,以求能将 Solidity 代码一键编译成 Cairo 代码,这也是 StarkNet 团队想兼容 EVM 的一种解决方案。而其他几个项目则都致力于研发各自的 zkEVM,以求能最大兼容 EVM,甚至与 EVM 具有完全等效性的兼容。截止撰文之日,只有 zkSync 2.0 已经上线了主网,据说与 EVM 兼容性可达到 99%,但还没经过充分测试。Polygon zkEVM 发布了测试网,但该项目 Github 代码库显示其暂时只测出了 97% 的兼容性。Scroll 也同样发布了测试网,但目前还没看到测试数据。