Initia:一个好的模块化 EVM 该是什么样?
原文作者:Initia
原文编译:Alex Liu,Foresight News
Initia 是一条模块化 L1 公链,在其上能部署并垂直整合许多「交织起来」( interwoven )的 Rollups ,官方称之为「 Minitias 」(概念类似于 Dymension 与它的 RollApps )。
Initia 基于 Cosmos SDK 构建,在 Cosmos 生态已有 Evmos 等 EVM 解决方案的情况下, Initia 为何选择构建自己的 Initia EVM ,它有何特别之处?
VM 级互操作性
Initia 致力于让 Minitia s 成为构建高速、灵活、可互操作应用链的最简方式,而虚拟机只是 Minitia 工具包中的工具,应根据团队追求的特定用例或语言偏好来选择 —— 多种选项带来的灵活性正是模块化设计的好处。 Minitia s 可以自由选择 Initia EVM 、 Initia MVM ( Move VM ) 和 Wasm VM 作为 VM 。
在以 Rollup 为中心的未来中,数千个 Rollups 需要无缝交互,它们应具有与生俱来的互操作性,而不是在之后追加 —— 即使跨虚拟机也一样。这种理念促使 Initia 对 InitiaEVM 进行了针对性优化, InitiaEVM 、 InitiaMVM 和 WasmVM 之间具有跨虚拟机的互操作性。
EVM Cosmos 双兼容
Initia EVM 被设计为一个 Cosmos SDK 的模块,在支持 Solidity 智能合约和 EVM 操作的同时增加了 Cosmos 和 IBC 的互操作性。
凭借完全的 EVM 兼容性, Solidity 合约无需修改即可部署、迁移至 Initia EVM 。
更重要的是, Initia EVM 通过自定义的 Bank Interface ( BI ) 将 EVM 和 Cosmos 层绑定在一起,用 ERC20 取代了负责 Native Coin (原生代币)账户的标准 Cosmos x / Bank 模块。
Cosmos Bank == ERC20 。
Initia 的 MoveVM 也使用了类似的模型。
于是 EVM Minitias 尽管是 Cosmos 链,但只有 1 个代币标准: ERC20 。
人们根本不必考虑 Cosmos 代币、接口或代币转换等概念。 Solidity 项目可以毫无负担地迁移,并且可以选择接入 Cosmos 。
IBC 优先
IBC 是 Cosmos 系最引以为豪的跨链协议,使不同的 Cosmos 链间能方便得传输资产。在 InitiaEVM 中:
- 迁出:在 Solidity 智能合约中创建的 ERC20 可以立即通过 IBC 传输到其他链,无需任何花哨的操作。
- 迁入:原生 Cosmos 资产可以通过 IBC 传输至 EVM Minitia ,并生成 ERC20 。
这让 Minitias 间的资产转移变得简单容易。
简化的预编译
Initia EVM 可以直接从 Solidity 合约执行任何 Cosmos 消息或查询 Cosmos 链状态。链间账户、 ICQ 、 Slinky 查询,应有尽有。开发体验与 EVM 链开发并无二致,这拥抱了广大的 Solidity 生态开发群体,降低了开发负担。
跨 EVM 间交互
InitiaEVM 已经集成 IBC 钩子( Hook ),支持多链、跨虚拟机、合约交互,这对于新的多链世界秩序至关重要。
总结
在 Initia 看来,一个好的模块化 EVM ,首先,「就是一个 EVM 。」开发者可以不用学习任何新概念、修改任何的源代码,就能在新应用链上运行过去的 Solidity 程序,实现 0 成本迁移。其次,它需要具有跨 Rollups 、跨不同虚拟机的互操作性,代币标准、资产转移功能和底层链整合,才能在未来的多链世界提供良好的用户体验。