编译:alex liu,foresight news
initia 是一条模块化 l1 公链,在其上能部署并垂直整合许多「交织起来」(interwoven)的 rollups,官方称之为「minitias」(概念类似于 dymension 与它的 rollapps )。
initia 基于 cosmos sdk 构建,在 cosmos 生态已有 evmos 等 evm 解决方案的情况下,initia 为何选择构建自己的 initiaevm,它有何特别之处?
vm 级互操作性
initia 致力于让 minitias 成为构建高速、灵活、可互操作应用链的最简方式,而虚拟机只是 minitia 工具包中的工具,应根据团队追求的特定用例或语言偏好来选择 —— 多种选项带来的灵活性正是模块化设计的好处。minitias 可以自由选择 initiaevm、initiamvm(movevm) 和 wasmvm 作为 vm。
在以 rollup 为中心的未来中,数千个 rollups 需要无缝交互,它们应具有与生俱来的互操作性,而不是在之后追加 —— 即使跨虚拟机也一样。这种理念促使 initia 对 initiaevm 进行了针对性优化,initiaevm、initiamvm 和 wasmvm 之间具有跨虚拟机的互操作性。
evm cosmos 双兼容
initiaevm 被设计为一个 cosmos sdk 的模块,在支持 solidity 智能合约和 evm 操作的同时增加了 cosmos 和 ibc 的互操作性。
凭借完全的 evm 兼容性,solidity 合约无需修改即可部署、迁移至 initiaevm。
更重要的是,initiaevm 通过自定义的 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 间的资产转移变得简单容易。
简化的预编译
initiaevm 可以直接从 solidity 合约执行任何 cosmos 消息或查询 cosmos 链状态。链间账户、icq、slinky 查询,应有尽有。开发体验与 evm 链开发并无二致,这拥抱了广大的 solidity 生态开发群体,降低了开发负担。
跨 evm 间交互
initiaevm 已经集成 ibc 钩子(hook),支持多链、跨虚拟机、合约交互,这对于新的多链世界秩序至关重要。
总结
在 initia 看来,一个好的模块化 evm ,首先,「就是一个 evm。」开发者可以不用学习任何新概念、修改任何的源代码,就能在新应用链上运行过去的 solidity 程序,实现 0 成本迁移。其次,它需要具有跨 rollups、跨不同虚拟机的互操作性,代币标准、资产转移功能和底层链整合,才能在未来的多链世界提供良好的用户体验。
发表评论