原文作者:PaperMoon 团队
PolkaVM 智能合约(具备以太坊兼容性)目前仍处于早期开发阶段,可能存在不稳定或功能不完整的情况。
引言
Polkadot 的设计理念是支持由多个平行链(parachains)组成的生态系统,而不是在主链上直接运行智能合约。
因此,希望在 Polkadot 上构建智能合约应用的开发者,通常会依赖生态中提供智能合约能力的平行链。
本指南将概述 Polkadot 生态中开发智能合约的三种主要路径:
• 兼容 PolkaVM 的合约:支持 Solidity 以及任何可编译为 RISC-V 的语言,同时保持对以太坊工具链的兼容性
• EVM 兼容合约:支持 Solidity、Vyper 等语言,可直接使用主流以太坊工具与钱包
• 基于 Wasm 的智能合约:使用 ink!(基于 Rust 的嵌入式领域专用语言 eDSL),充分利用
Rust 的安全性与工具生态
你将了解这些开发路径之间的关键差异,以及平行链开发者在集成智能合约功能时需要考虑的因素。
EVM 合约
Frontier 项目提供了一组模块,使基于 Polkadot SDK 的区块链能够运行一个以太坊模拟层(Ethereum emulation layer),从而以原生方式执行 EVM 智能合约,并保持与以太坊完全一致的 API / RPC 接口。
以太坊地址(ECDSA)也可以与 Polkadot SDK 使用的 SS58 地址格式进行双向映射,直接复用现有账户。
此外,你还可以修改 Polkadot SDK,使其直接使用 ECDSA 签名方案,从而避免地址映射这一中间步骤。
从整体架构上看,Frontier 主要由三个核心组件组成:
• Ethereum Client
一个符合以太坊 JSON-RPC 标准的客户端,允许来自以太坊开发工具(如 Remix、Hardhat、Foundry)的请求被网络直接接收和处理。
• Pallet Ethereum
区块模拟与以太坊交易验证层,与 Ethereum Client 协同工作,以确保对以太坊工具链的兼容性。
• Pallet EVM
基于 Rust 实现的 EVM 的访问层,负责原生执行 EVM 智能合约逻辑。

你是平行链开发者吗?
如果你是希望为自己的平行链添加智能合约能力的开发者,请参考 Add Smart Contract Functionality 页面,其中涵盖了 Wasm 与 EVM 两种合约实现方式。
智能合约 vs 平行链
智能合约是运行在某条链之上的程序,其逻辑执行被限制在该链的状态转换规则之内,并由底层虚拟机(VM)决定执行模型。
因此,智能合约具有以下优势:
• 开发流程相对简化
• 合约之间可以通过统一接口进行交互
• 不需要关心底层共识机制
智能合约执行模型示意:
• 链上状态
• 智能合约(程序逻辑 + 存储)
• 交易相关存储
• 虚拟机
• 交易
• 新状态
• 执行日志
智能合约的局限性
这些优势也伴随着一些限制:
1. 升级受限
许多智能合约环境(如 EVM)默认是不可变的。
为了实现可升级性,开发者通常采用代理合约(Proxy)模式:
• Proxy 合约持有存储
• 实现合约负责执行逻辑
• 升级时替换实现合约,但必须保持存储结构兼容
• 这对合约设计提出了较高要求
2. Gas 计费模型僵硬
智能合约执行通常采用 Gas 计费机制:
• 每一步执行都有明确成本
• 费用市场相对刚性
• 一些复杂交互(如账户抽象)需要通过额外设计来绕过限制
平行链的优势
与之相比,平行链可以:
• 使用 Polkadot SDK 构建自定义逻辑(称为 Pallets / Modules)
• 将多个 Pallet 组合为链的状态转换函数(STF / Runtime)
• 在运行时层面实现更高的灵活性
平行链原生支持:
• 逻辑可升级
• 灵活的交易费机制
• 链级抽象能力

同时,借助 Polkadot 的共享安全模型,平行链可以在极低工程成本下获得强一致性的共识保障。
原文链接:https://docs.polkadot.com/polkadot-protocol/smart-contract-basics/overview/
663

被折叠的 条评论
为什么被折叠?



