如需了解更多差异与相似之处,请参阅 Aptos Learn
| 功能 | Ethereum | Aptos |
|---|
| 智能合约 | Solidity, EVM | Move, MoveVM |
| 优势 | 成熟,广泛采用 | 可扩展性,高吞吐量,低延迟,可预测费用 |
| 交易手续费 | 变化大,可能很高 | 更低且更可预测 |
| 账户地址 | 160 位 | 256 位 |
| 账户结构 | 余额存储于单一字段,使用 nonce | 模块与资源,使用序列号 |
| 数据存储 | Patricia Merkle 树 | 通过资源和模块实现的全局存储 |
| 存储思路 | 基于合约的存储 | 以账户为中心的代码与数据管理 |
| 示例代码 | ERC-20 | Fungible Asset |
| 调用者 ID | msg.sender | &signer reference |
| 可升级性 | 代理模式 | 直接模块升级 |
| 安全性 | 易受重入等攻击 | 缓解常见漏洞 |
| 调度类型 | 动态调度 | 静态调度 |
| FT 标准 | ERC-20 | Coin(传统)与 Fungible Asset |
| NFT 标准 | ERC-721, ERC-1155 | Digital Asset |
| 区块链交互 | Ethers.js library | Aptos Typescript SDK |
| Solidity | Move (Aptos) |
|---|
| 代币结构 | 每个代币是独立的合约. | 每个代币是单一,可复用合约下的类型化 Coin 或 FungibleAsset. |
| 代币标准 | 必须符合如 ERC20 等标准,具体实现可变. | 所有代币采用统一接口和实现. |
| 余额存储 | 余额通过合约内的 mapping 结构存储. | 资源导向余额:余额作为资源存储在用户账户中.资源不可随意创建,确保代币价值的完整性. |
| 转账机制 | 可在未获接收方明确授权的情况下转账. | 除特定情况(如 AptosCoin)外,代币通常需要接收方 signer 权限进行转账. |
- EVM:以灵活性和动态调度著称,支持多样化的智能合约行为.但这种灵活性会导致并行执行和网络操作的复杂性提升.
- Move VM:注重安全与高效,虚拟机与编程语言深度集成.其数据存储模型有助于更好地并行化,静态调度提升了安全性和可预测性.
| EVM (Ethereum Virtual Machine) | Move VM (Move Virtual Machine) |
|---|
| 数据存储 | 数据存储于智能合约的存储空间. | 数据分布于智能合约,用户账户和对象. |
| 并行化 | 由于存储空间共享,并行执行受限. | 灵活的分离式存储设计带来更强的并行执行能力. |
| 虚拟机与语言集成 | EVM 与智能合约语言(如 Solidity)为分层结构. | 虚拟机层与 Move 语言无缝集成,原生函数以 Rust 可执行文件形式在 Move 中实现. |
| 关键网络操作 | 网络操作实现复杂且不够直接. | 关键操作如验证者集管理在 Move 中原生实现,可直接执行. |
| 函数调用 | 动态调度支持任意智能合约调用. | 静态调度更注重安全性和可预测性. |
| 类型安全 | 合约类型提供一定的类型安全. | Move 的模块结构体与泛型提供更强的类型安全. |
| 交易安全 | 通过 nonce 实现交易排序与安全. | 通过序列号实现交易排序与安全. |
| 认证存储 | 支持,基于智能合约存储. | 支持,基于 Move 的资源模型. |
| 对象可访问性 | 对象不具备全局可访问性,仅限于智能合约作用域. | 对象保证全局可访问性. |