已知限制
对 Rome 协议当前限制及其影响的如实说明。
执行限制
Modexp 预编译已禁用。 模幂运算预编译(0x05)默认处于禁用状态。依赖 RSA 验证或其他 modexp 操作的合约将失败。可通过功能标志启用。
SELFDESTRUCT 已移除。 根据以太坊 Dencun 的弃用安排,SELFDESTRUCT 操作码不受支持。使用 SELFDESTRUCT 的合约将回滚。
每个存储账户拥有 256 个存储槽。 合约存储分布在各个 Solana 账户中,每个账户包含 256 个槽。存储占用较大的合约会使用多个账户,这会影响 CU 成本。
CPI 深度上限为 4。 层级过深的 CPI 调用将失败。设计合约时应采用较浅的调用树。
代币限制
转账钩子仅在以下情况下触发: transfer_checked. 普通 transfer 调用会完全绕过钩子。所有 Rome 桥操作都使用 transfer_checked,但第三方集成必须注意这一点。
铸造和销毁操作不受钩子影响。 Token-2022 转账钩子不会在铸造/销毁时触发。它们由铸币权限控制,而非钩子。
代币包装绕过。 用户可能将 Token-2022 代币包装为标准 SPL 代币,以绕过转账钩子。虽然可通过包装器黑名单和 PermanentDelegate 扩展加以缓解,但并未完全消除。
预言机限制
无历史轮次数据。 Oracle Gateway 适配器仅支持 latestRoundData()。通过 getRoundData(roundId) 发出的历史价格查询将回滚。
解析器偏移量已通过实证验证。 Pyth 和 Switchboard 的账户数据使用硬编码字节偏移进行解析。如果 Pyth 或 Switchboard 更改其账户布局,适配器将在偏移量重新验证之前返回错误数据。
基础设施限制
单运营方模式。 每个 Rome 部署由单一实体(payer pool 运营方)运营,不存在去中心化的运营方集合。
迭代模式锁定。 在迭代执行期间,账户会被锁定 3 至 4 秒。这可能导致高频使用账户的争用。
OP-Geth 分歧风险。 Rome EVM 与 OP-Geth 之间的状态分歧仍然是持续存在的工程挑战。足迹验证可以缓解这一风险,但无法完全消除。
下一步
负责任披露 — 如何报告问题
最后更新于
这有帮助吗?