ETH 交易树和收据树学习笔记1. 交易树和收据树在区块中的位置ETH 交易树和收据树示意图 1ETH 交易树和收据树示意图 2以太坊每个区块可以分为区块头和区块体。区块头中保存若干个根哈希,其中和本节内容相关的主要有:
123stateRoottransactionsRootreceiptsRoot
它们分别对应:
123stateRoot → 状态树根,表示当前区块执行完成后的全局状态transactionsRoot → 交易树根,表示当前区块包含的所有交易receiptsRoot ...
ETH-状态树ETH 状态树示意图
以太坊用 State Trie 记录所有账户的当前状态。每个账户状态包含 nonce、balance、storageRoot 和 codeHash。普通用户账户主要记录 ETH 余额和 nonce;合约账户还通过 storageRoot 连接到自己的 Storage Trie,用来保存合约变量,例如 ERC-20 余额。每次交易执行后,相关账户或合约存储发生变化,树上相关节点哈希逐层更新,最终生成新的 stateRoot,并写入新区块头。
1交易执行→ 账户状态变化→ ...
这是我的 Ethernaut 靶场个人学习笔记,用来记录每一关的题目目标、漏洞原理、利用过程和复盘要点,方便后续按关卡重新练习和查漏补缺。
关卡:Level 9 - King
本关目标成为 King 后,让关卡合约无法重新夺回王位。
考察知识点
拒收 ETH
外部转账阻塞状态机
push payment 风险
题目源码1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0...
这是我的 Ethernaut 靶场个人学习笔记,用来记录每一关的题目目标、漏洞原理、利用过程和复盘要点,方便后续按关卡重新练习和查漏补缺。
关卡:Level 8 - Vault
本关目标读取 Vault 的私有 password,调用 unlock 解锁。
考察知识点
链上 storage 可读
private 不是加密
slot 编号
题目源码123456789101112131415161718// SPDX-License-Identifier: MITpragma solidity ^0.8...
这是我的 Ethernaut 靶场个人学习笔记,用来记录每一关的题目目标、漏洞原理、利用过程和复盘要点,方便后续按关卡重新练习和查漏补缺。
关卡:Level 7 - Force
本关目标让 Force 合约余额大于 0。
考察知识点
强制转 ETH
selfdestruct 余额转移
不要依赖合约余额为 0
题目源码123456789101112// SPDX-License-Identifier: MITpragma solidity ^0.8.0;contract Force {/* ...
这是我的 Ethernaut 靶场个人学习笔记,用来记录每一关的题目目标、漏洞原理、利用过程和复盘要点,方便后续按关卡重新练习和查漏补缺。
关卡:Level 6 - Delegation
本关目标通过 Delegation 的 fallback + delegatecall 执行 Delegate.pwn,接管 owner。
考察知识点
delegatecall
函数选择器
存储上下文复用
题目源码123456789101112131415161718192021222324252627282930...
这是我的 Ethernaut 靶场个人学习笔记,用来记录每一关的题目目标、漏洞原理、利用过程和复盘要点,方便后续按关卡重新练习和查漏补缺。
关卡:Level 5 - Token
本关目标让玩家持有的 Token 数量超过初始 20。
考察知识点
无符号整数下溢
Solidity 0.6 算术行为
余额检查顺序
题目源码1234567891011121314151617181920212223// SPDX-License-Identifier: MITpragma solidity ^0.6.0;c...