本文介绍了Decipher EVM Puzzles游戏,这是一个基于Franco的EVM puzzles的扩展版本,旨在帮助Web3开发者通过解决谜题和CTF挑战来掌握EVM opcodes。该游戏提供不同难度级别和提示,覆盖多种操作码,并推荐使用EVM Codes Playground和ETHERVM's list of Opcodes等工具辅助解谜。文章还提供了EVM和操作码的学习资源链接。
在 web3 开发者领域,解决 puzzles、CTF 挑战、游戏等显然是牢固掌握任何特定主题的最有效方式之一。
无论是像 Cryptozombies 这样有趣的初学者互动游戏,还是像 Ethernaut 或 Damn Vulnerable Defi 这样严肃的 web3 安全相关的 CTF 挑战,它们都有助于我们围绕特定的复杂主题建立强大的心智模型,并通过实践来学习(而不是仅仅阅读)。
我个人一直是这些挑战和 puzzles 的忠实粉丝。我喜欢它们。❤️
在开始我的 EVM 文章系列 之前,我花了很多时间解决 Franco 创建的 EVM puzzles,并且 学到了很多东西。
因此,我决定自己制作一个 EVM puzzle 游戏,其中包含一些更有趣的 puzzles,即 Decipher EVM Puzzles。
Decipher EVM Puzzles 游戏是 Franco 的 EVM puzzles 的扩展版本,但具有 更高的复杂度,一个 难度级别选择器,不仅可以帮助资深开发者,还可以帮助初学者尝试,以及 更多有趣的 puzzles,涵盖了范围广泛的 opcodes(以及破解这些 puzzles 的有趣方法)。
git clone https://github.com/zaryab2000/decipher_EVM_Puzzles.git
npm install
npx hardhat play
就是这样。
完成后,系统应该会提示你执行以下操作 👇
然后,只需选择难度级别并开始游戏。
Decipher EVM puzzles 基本上是 puzzles 的集合,其中包括一系列不同的 opcodes,只有当玩家提供正确的输入时才能成功执行。
什么是输入?
每个 puzzle 都可能需要玩家输入以下内容之一:
你作为玩家的主要目标是提供正确的输入集,以便交易不会回滚。
如果它回滚,你就失败了...❌
如果它成功执行,你就解决了那个 puzzle。✅
处理 EVM opcodes 可能有点吓人。但是,你需要在某个地方开始。
因此,这些 puzzles 不仅适用于资深的智能合约开发人员,也适用于最近开始探索 EVM 和 opcodes 的初学者。
只需根据你对 opcodes 的专业知识选择难度级别,然后立即开始游戏
有些 puzzles 可能有点复杂难以解决。 对于困难的 puzzles,玩家可以选择获得一些 提示并再次尝试解决。
不要作弊——仅在绝对必要时才使用提示。 😁
一些 puzzles 的解决方案可能更像是一个公式,而不是一个特定的值。
例如,一些 puzzles 可能需要一种输入类型,其中 Calldata 大小必须为 n 且 CallValue 必须为 n+4,你才能正确解决它。
对于这种情况,CallData 大小可以是 4 或 5 或 6,CallValue 可以分别是 8 或 9 或 10
对于这样的 puzzle,必须理解公式,而不是追逐 1 个特定的 calldata 大小或 callvalue 作为正确答案
同一 puzzle 的解决方案也可能不止 1 个特定输入。
Decipher EVM puzzle 包含更多 opcodes,并尝试使开发人员熟悉尽可能多的 opcodes。
在解决这些 puzzles 时,你会遇到一堆有趣的 opcodes 以及 位移位、掩码、逻辑运算(与、或)、SSTORE、SLOAD、MSTORE、使用 CREATE Opcode 创建合约等概念,以及更多。
虽然你可以随意进行游戏,但我还是想推荐两个工具,它们无疑会让你的生活更轻松。
2. ETHERVM 的 Opcodes 列表
这两个工具足以让你快速理解和解决 puzzles。
解决这些 puzzles 基本上意味着你需要不断检查、理解和试验不同的 opcodes。
这是为了理解 opcode 的工作方式,这将从根本上帮助你获得 puzzles 的正确解决方案。
虽然你最终将不得不处理大量的 opcodes,但有 3 个 opcodes 你必须非常了解,JUMP、JUMPI 和 JUMPDEST。
为什么是这 3 个?
从本质上讲,每个 puzzle 基本上都是一个挑战,你需要弄清楚如何使执行流程从一个特定的位置 JUMP 到另一个具有 JUMPDEST opcode 的位置。
如果你还不明白,请不要担心。 当你开始探索这些 opcodes 或解决 puzzles 时,你会了解更多。
或者,你也可以单击下面的切换栏,快速了解这 3 个 opcodes 👇
如果你还不了解这 3 个 opcodes,最好快速记下它们是什么以及它们的作用。
顾名思义,这些 opcodes 主要帮助跳转并将执行流程移动到特定位置。
什么条件?
JUMPI 仅在以下情况下跳转:
a. 如果堆栈的第二个位置是 NON-ZERO 值,则 JUMP
b. 如果堆栈的第二个位置是 ZERO 值,则 DO NOT JUMP
虽然这是 Decipher EVM puzzle 游戏的第一个版本,但我将在下一个版本中添加更多具有挑战性和难度的 puzzles。
在开始 puzzle 之前,最好对以太坊虚拟机以及 opcodes 有一个很好的了解。
如果你是完全的初学者,你可以从本 文章系列 开始,了解 EVM 和 Opcodes 的基础知识。
EVM 第一部分:以太坊虚拟机的 ABC - 以太坊虚拟机及其工作机制的初学者友好快速入门指南。 EVM 第二部分:智能合约从 Solidity 代码到 Bytecode 的历程
- 原文链接: decipherclub.com/deciphe...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!