什么是 EVM 兼容链?
程序员在为一个软件编写程序时,会使用到编程语言,例如 C++。但 C++ 是计算机的 CPU 无法理解的语言。程序员通过 C++ 编写好的程序需要通过编译器翻译成 CPU 可以理解的语言,即字节代码,从而对 CPU 发号施令让软件可以在计算机上顺利运行。
如果你觉得这段话难以理解,那来看个例子👇。
假设布噜是一个英语盲,但作为一名区块链从业者,它需要经常查看一些英语文章来及时掌握行业信息。为了解决语言障碍,它会把文章通过翻译软件转译成中文再阅读。
一篇用英语写成的文章被翻译为中文,变成布噜能看懂的语言,布噜能够掌握区块链行业信息。
一个用 C++ 编成的程序被编译为字节代码,变成 CPU 能看懂的语言,CPU 可以运行软件程序。
可这跟以太坊的 EVM 有什么关系?答案是,EVM 之于以太坊,就像 CPU 之于计算机。
以太坊是一台世界级计算机,但它毕竟不是实体电脑,也没有 CPU,那么智能合约要如何在以太坊上运行呢?
EVM 就是以太坊的 CPU,以太坊开发者们通过编程语言 Solidity 写好的程序,被编译为 EVM 可以理解的 EVM 字节代码,EVM 就可以运行智能合约的程序。
EVM 兼容链创造了一个类似 EVM 的代码执行环境,让以太坊上的开发者可以方便快捷地将智能合约部署到这条链上,而不必为了这条链再从头开始编写智能合约的代码。
与以太坊相比,EVM 兼容链的特点是矿工费更低,交易结算速度更快,且地址格式与以太坊相同,都是 0x 开头。
EVM 兼容链和公有链的关系
区块链可以分为三大类:公有链、私有链和联盟链。
- 公有链指所有人均可发送交易、读取链上信息的区块链,比特币、以太坊、BSC、HECO 都是公有链。
- 联盟链指有若干个机构共同参与管理的区块链,其数据只允许系统内的机构进行读写和发送。
- 私有链指仅单个机构拥有链上信息记录和读取权限的区块链。
BSC、HECO、OKEx Chain 分别是币安、火币和 OKEx 推出的公链,但同时也是 EVM 兼容链,EVM 兼容链是公链的子集。
由于交易所纷纷推出了自家的公链,用户在提币时有了更多选择,但同时也产生了一个问题:交易所公链的地址格式与以太坊相同,都是 0x 开头,因此提币时容易混淆,导致提币到 imToken 钱包后不到账。
不到账的原因其实是你没有将钱包资产界面从以太坊主网切换到对应的 EVM 兼容链,具体的解释和解决办法,大家可以查看这篇文章《为什么从交易所提币到钱包,一直没有到账?》,这里不再赘述。