Rootstock(RSK)是一个基于比特币网络构建的开源智能合约平台,旨在通过支持智能合约、近即时支付和更高可扩展性,为比特币生态系统增添价值与功能。同时,Rootstock 与以太坊在虚拟机层面兼容,使开发者能够利用熟悉的工具和技能进行去中心化应用(dApp)开发。
本文将介绍 Rootstock 的核心概念、技术特点以及与以太坊的主要差异,帮助开发者快速上手这一强大的区块链平台。
什么是 Rootstock?
Rootstock 的技术栈完全构建于比特币网络之上,从智能合约到基础设施框架(RIF),旨在创建一个更加公平和包容的金融系统。
了解更多:Rootstock 技术栈详解
比特币是一种价值存储和转移工具,其区块链的安全性依赖于矿工通过高成本的基础设施和能源消耗,每10分钟生成一个新区块。提供的哈希算力越高,网络就越安全。
Rootstock 作为首个由比特币网络驱动的开源智能合约平台,不仅通过智能合约增强了比特币的功能,还实现了近即时支付和更高的可扩展性。RIF(Rootstock Infrastructure Framework)是一套开放且去中心化的基础设施应用与服务,旨在统一区块链环境中加速、简化分布式应用(dApp)的开发。
Rootstock 与比特币的连接体现在两个方面:区块挖矿机制和共同货币(比特币)。同时,它与以太坊兼容,包括虚拟机(用于执行智能合约)和暴露的 RPC(外部 API)。接下来,我们将详细探讨这些关键领域。
Powpeg:双向锚定机制
Powpeg 是连接比特币网络和 Rootstock 网络的核心组件,允许将比特币转移到 Rootstock 网络,使开发者能够与智能合约进行交互。Gas 费用使用相同的比特币(称为智能比特币)支付。
具体操作包括:
- Peg-in(转入):用户将比特币发送到一个特殊地址,比特币在比特币网络中被锁定,随后在 Rootstock 网络的同一地址释放给用户。
- Peg-out(转出):用户将比特币发送到 Rootstock 网络的特殊地址,然后在比特币网络中收回比特币。
这一机制确保了两种网络之间的资产无缝转移。
Rootstock 与以太坊的主要差异
尽管 Rootstock 与以太坊兼容,但并非100%一致。主要差异体现在校验和计算、派生路径和 Gas 计算方式上。
校验和差异
- 不同的以太坊兼容网络通过“链 ID”区分自己。
- 每个区块链网络都有唯一的链 ID。
- Rootstock 在计算地址校验和时使用链 ID,而以太坊则不考虑这一点。
- 两个网络的校验和都通过字母大小写表示,因此“相同”的地址无法同时在 Rootstock 和以太坊上通过校验和验证。
派生路径差异
记忆或存储加密货币钱包的私钥对于技术人员来说也非常具有挑战性,因为这些密钥本质上是极大的数字。为了简化这一过程,加密货币社区提出了“HD 钱包”技术,通过助记词(一组随机选择的词典单词)和“派生路径”生成密钥。Rootstock 和以太坊使用不同的派生路径,因此相同的助记词会在两个网络中生成不同的密钥和地址。
Gas 计算差异
EVM(以太坊虚拟机)和 RVM(Rootstock 虚拟机)在操作码支持上兼容,可以运行相同的智能合约。然而,每个操作码的价格(以 Gas 单位计量)在 EVM 和 RVM 中不同,导致交易的总 Gas 消耗量存在差异。此外,Gas 单位乘以 Gas 价格来计算交易成本。由于 Rootstock 的 Gas 价格以 RBTC 计价,而以太坊以 Ether 计价,这进一步加剧了 Gas 价格的差异。
Gas 成本差异更新
目前已识别出具有显著差异的操作码是 SLOAD 和 SSTORE。此外,某些调用(如 DELEGATECALL 和 STATICCALL)在内部调用中使用这些操作码时,会导致交易总 Gas 成本计算的不同。
这些差异主要源于 EIP-2929 在以太坊中已实施,但尚未在 Rootstock 中实现。开发团队已知悉这一差异,并计划在未来的版本中实施。
Rootstock 上的 eth_estimateGas 行为
当调用 eth_estimateGas 时,节点会模拟交易执行而不广播到网络。模拟过程包括检查余额是否充足、合约代码执行等,并计算交易在区块链上执行时将消耗的精确 Gas 量。返回的估计 Gas 量帮助用户为实际交易设置适当的 Gas 限制。
从 Arrowhead 6.5.0 开始:
- 在 Arrowhead 6.5.0 之前,Rootstock 与以太坊存在差异:如果模拟交易的某个步骤失败,节点会返回交易所需的 Gas 估计值;而在以太坊中,节点会返回错误。
- 从 Arrowhead 6.5.0 开始,Rootstock 的行为与以太坊一致:如果模拟交易步骤失败,节点将返回错误。
例如,当从一个余额不足的地址调用 eth_estimateGas 时,Rootstock 现在会返回错误响应,与以太坊保持一致。
EVM 兼容的智能合约
如果您熟悉使用 Solidity、Web3 和其他兼容技术进行智能合约或 dApp 开发,那么您会兴奋地发现 Rootstock 虚拟机(RVM)与以太坊虚拟机(EVM)兼容。这意味着您可以使用相同的代码、工具和库进行 Rootstock 开发,从而轻松转移您的智能合约和 dApp 开发技能。
查看支持的 Solidity 版本:开发要求
开发工具推荐
- Hardhat:一个专为专业人士设计的以太坊开发环境,主要用于以太坊区块链的智能合约开发。参考 Hardhat 指南 了解如何在 Rootstock 上使用 Hardhat。
- Metamask:一款浏览器扩展加密货币钱包或移动应用,使用户能够与 Rootstock 区块链交互,包括发送 RBTC、基于 Rootstock 的代币(如 RIF)以及与部署在 Rootstock 网络上的智能合约交互。了解如何 配置 MetaMask 连接至 Rootstock。
- Mocha:一个流行的 JavaScript 测试框架,运行于 Node.js。查看 测试智能合约 了解如何在 Rootstock 上使用它测试智能合约。
- Solidity:最流行的智能合约编程语言。由于 RVM 和 EVM 的兼容性,Solidity 编译器
solc输出的字节码和 ABI 可用于在 Rootstock 上部署和交互智能合约。
查看完整工具列表:开发工具 部分。
以太坊兼容的 JSON RPC
Rootstock 支持的远程过程调用(RPC)集与以太坊基本相同。这一兼容层加上虚拟机实现,使得相同的工具和库可以在 Rootstock 上使用。
合并挖矿机制
比特币矿工进行所谓的 合并挖矿,用相同的基础设施和能源消耗保护两个网络。他们每10分钟生成一个比特币区块,包括不同地址之间的比特币转移,并在此过程中创造新的比特币。在 Rootstock 上,每30秒生成一个区块,以保护智能合约的执行。这一过程不铸造新币,但通过合并挖矿获得奖励。了解更多:Rootstock 挖矿指南。
注意:上述每个网络的区块时间均为近似值。
常见问题
Rootstock 与比特币的关系是什么?
Rootstock 是构建在比特币网络上的智能合约平台,通过 Powpeg 机制实现比特币与 Rootstock 网络之间的资产转移,同时利用比特币的算力保障安全性。
Rootstock 是否完全兼容以太坊?
Rootstock 在虚拟机层面与以太坊兼容,支持相同的智能合约代码和开发工具。但在校验和、派生路径和 Gas 计算等方面存在细微差异,开发者需注意适配。
如何开始 Rootstock 智能合约开发?
如果您已有以太坊开发经验,可以直接使用熟悉的工具如 Hardhat、MetaMask 和 Solidity。👉 查看实时开发工具与资源 获取更多支持。
Rootstock 的 Gas 费用如何计算?
Gas 费用由操作码消耗的 Gas 单位乘以 Gas 价格计算。Rootstock 的 Gas 价格以 RBTC 计价,且部分操作码成本与以太坊不同,需在实际测试中调整预算。
什么是合并挖矿?
合并挖矿允许比特币矿工同时保护比特币和 Rootstock 网络,无需额外能源消耗。矿工通过生成比特币区块获得奖励,同时确保 Rootstock 网络的安全性和可靠性。
Rootstock 的主要应用场景有哪些?
Rootstock 适用于去中心化金融(DeFi)、代币发行、智能合约托管等场景,兼具比特币的安全性和以太坊的灵活性,为开发者提供高效的区块链解决方案。