织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 竞争币 > 以太坊

硬核 | 深入理解 Optimistic Rollup 执行环境 OVM (3)

时间:2020-11-05 12:09来源:未知 作者:admin 点击:
SafetyChecker 检查 OVM 的指令合约中的指令集是否正常,有没有超过目前可以执行的范围。安全性检查通过 OVM_SafetyChecker.sol 的 isBytecodeSafe 函数实现。 functi

SafetyChecker 检查 OVM 的指令合约中的指令集是否正常,有没有超过目前可以执行的范围。安全性检查通过 OVM_SafetyChecker.sol 的 isBytecodeSafe 函数实现。

function isBytecodeSafe( bytes memory_bytecode ) override external pure returns (bool) {

OVM/verification

verification 是 OVM 调用的业务逻辑。在 Layer 1,只是在验证的时候才需要通过 OVM 执行判断某个交易执行是否正确。verification 逻辑中包括了 BondManager (抵押管理),StateTransitioner (状态转换管理)和 FraudVerifier (错误状态验证逻辑)。FraudVerifier 逻辑是最核心的逻辑。整个验证过程的逻辑调用关系如下:

硬核 | 深入理解 Optimistic Rollup 执行环境 OVM

通过调用 initializeFraudVerification 函数,开始让 Layer 1 开始验证某个交易执行后的状态是否正确。StateTransitioner 准备交易之前的世界状态以及交易执行的中间状态存储。在世界状态准备就绪后(proveContractState/proveStorageSlot),通过调用 ExecutionManager 的 run 函数执行交易并更新状态。更新后的状态通过 StateTransitioner 的 completeTransition 函数生成世界状态。生成的世界状态和提交的世界状态进行对比,如果不一致,之前提交世界状态的节点通过 BondManager 进行惩罚。

仔细的分析一下 FraudVerifier 的 initializeFraudVerification 和 finalizeFraudVerification 函数。先从 initializeFraudVerification 函数开始:

function initializeFraudVerification( bytes32_preStateRoot, Lib_OVMCodec.ChainBatchHeader memory_preStateRootBatchHeader, Lib_OVMCodec.ChainInclusionProof memory_preStateRootProof, Lib_OVMCodec.Transaction memory_transaction, Lib_OVMCodec.TransactionChainElement memory_txChainElement, Lib_OVMCodec.ChainBatchHeader memory_transactionBatchHeader, Lib_OVMCodec.ChainInclusionProof memory_transactionProof )

_preStateRoot 是之前的世界状态的 Merkle 树根。通过 _preStateRootBatchHeader 和 _preStateRootProof 可以验证某个状态是在 StateCommitmentChain 上。

require( ovmStateCommitmentChain.verifyStateCommitment( _preStateRoot, _preStateRootBatchHeader, _preStateRootProof ), "Invalid pre-state root inclusion proof." );

_transction 信息是需要验证的交易信息。通过 _txChainElement,_transactionBatchHeader 以及 _transactionProof 可以验证某个交易是否在 CanonicalTransactionChain 上。 (责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容