架构设计

Canto 网络是使用 Cosmos SDK 和自定义模块构建的主权链。 Cosmos SDK 链可以使用 Ignite CLI 搭建、构建和交互。

Canto 支持 EVM,利用名为 Ethermint 的模块部署 EVM 执行环境,使 Solidity 代码可以直接从以太坊网络部署。 Canto 使用 ERC-20 模块在 CosmWasm 代币和 ERC-20 标准代币之间建立原生桥梁。

这就是它的工作原理:

  1. x/erc20 模块维护原生 Cosmos 币面额到 ERC20 代币合约地址(即 sdk.Coin ←→ ERC20)的规范一对一映射,称为 TokenPair。 可以通过治理启用或禁用给定对的 ERC20 代币 ←→ 代币的转换。

  2. 原生 Cosmos Coin 对应银行模块原生的 sdk.Coin(它控制 Cosmos SDK 中的账户余额和代币供应)。 它可以是原生质押/gas 面额(例如:EVMOS、ATOM 等)或 IBC 可替代代币凭证(即 ibc/{hash} 的 denom 格式)。 当针对现有原生 Cosmos 硬币发起提案时,erc20 模块将部署工厂 ERC20 合约,代表代币对的 ERC20 代币,赋予模块该合约的所有权。

  3. 在 Cosmos 币的注册过程中,以下银行元数据用于部署 ERC20 合约:

  4. Canto 链上原生 Cosmos 硬币和 IBC 凭证的持有者可以将他们的硬币转换为 ERC20 代币,然后可以通过创建一个 ConvertCoinTx 在 ethermint EVM 中使用。 反之亦然,ConverterERC20Tx 允许 Canto 链上的 ERC20 代币持有者将 ERC-20 代币转换回其原生 Cosmos 代币表示形式。

  5. EVM 挂钩允许用户通过向模块帐户地址发送以太坊 tx 转账,将 ERC20 转换为 Cosmos 币。 这允许通过 Metamask 和支持 EVM 的钱包对通过本地 Cosmos 硬币或 ERC20 令牌注册的两个令牌对进行令牌的本地转换。

要了解有关 Ethermint 模块的更多信息,请单击此处(感谢 Tharsis)。

最后更新于