Skip to content
On this page

启航区块链:Hello Ethernaut,你的第一个智能合约冒险!

欢迎来到 Ethernaut 的奇妙世界!如果你对区块链和智能合约充满好奇,那么“Hello Ethernaut”将是你探索这个激动人心领域的完美起点。这不仅仅是一个 CTF 题目,更是一场精心设计的入门教程,带你一步步领略智能合约的魅力。

准备启程:MetaMask 助你一臂之力

首先,你需要一位可靠的伙伴——MetaMask 钱包。把它添加到你的浏览器扩展中(Chrome、Firefox 等皆可)。创建钱包并设置好网络。别担心,即使你选择了不支持的网络,Ethernaut 也会友善地引导你到默认的 Sepolia 测试网。

洞察链上:浏览器控制台的秘密

接下来,打开你浏览器的开发者工具(通常是 F12 或右键选择“检查”)。这里将是你与 Ethernaut 互动的主要窗口。你会在控制台看到一些游戏信息,其中会显示你的玩家地址——这是你在链上的身份,至关重要!

小技巧:

  • 输入 player 命令,随时查看你的玩家地址。
  • 密切关注控制台的警告和错误信息,它们往往蕴含着通关的关键线索。

掌握利器:控制台辅助功能

Ethernaut 为你准备了一系列实用的控制台命令,让你的探索事半功倍:

  • 查看余额: 输入 getBalance(player),即可查询你的账户余额。
  • 异步查询: 如果你使用的是 Chrome v62 或更高版本,可以直接使用 await getBalance(player),让余额显示更直观。
  • 一览众功能: 输入 help(),你会惊讶于 Ethernaut 提供的丰富辅助函数。

探秘核心:Ethernaut 合约

现在,让我们直接与游戏的“大脑”——Ethernaut 合约——对话。在控制台中输入 ethernaut。虽然你不需要直接通过控制台与它交互(游戏界面会帮你处理),但尝试一下,你会发现这是学习如何与后续的合约进行交互的绝佳方式。展开 ethernaut 对象,看看里面藏着什么惊喜!

解读 ABI:合约的沟通语言

ethernaut 对象是一个 TruffleContract 对象,它封装了部署在区块链上的 Ethernaut.sol 合约。这意味着,你可以通过它的 ABI(应用程序二进制接口)来调用合约的公共方法。

例如,输入 ethernaut.owner()await ethernaut.owner(),你就能直接查询到 Ethernaut 合约的“主人”是谁。这就像在和合约直接对话,了解它的属性和功能。

充实钱包:获取测试以太币

要进行任何链上操作(比如请求新的关卡实例),都需要支付少量的“汽油费”。别担心,Ethernaut 为你准备了测试以太币。只需找到你所选网络的“水龙头”(Faucet),输入你的玩家地址,即可轻松获取。

获取关卡实例:挑战的起点

在 Ethernaut 中,你不会直接与 Ethernaut 合约互动来解决关卡,而是需要它为你“生成”一个专属的关卡实例。点击页面下方的“Get New Instance”按钮。MetaMask 会弹出提示,确认交易,然后等待片刻。这个过程会在区块链上部署一个新的合约,所以需要一些时间。

审视实例:理解关卡机制

一旦成功获取了关卡实例,你就可以像之前那样,通过控制台来审视它了。使用 contract 变量,就像你对待 ethernaut 合约一样,去探索这个新的合约实例的 ABI。

智取关卡:完成你的首次挑战

现在,你已经掌握了基础工具,是时候用智慧解决 Ethernaut 的第一个难题了。

  • 探索信息: 输入 contract.info()await contract.info(),仔细阅读关卡提供的信息。
  • 寻找线索: 所有的通关线索都隐藏在这个关卡合约的 ABI 中。通过调用不同的方法,理解它们的作用。
  • 提交胜利: 当你确信已经完成关卡时,点击页面下方的“Submit”按钮。Ethernaut 会验证你的成果,并为你颁发胜利的荣耀!

通关秘诀: 永远不要忘记,合约的 ABI 就是你最好的指南针!

“Hello Ethernaut”只是你区块链冒险的序章。每一次的成功都将为你解锁更深层次的智能合约知识。准备好,让我们一起开启这场精彩的链上探索之旅吧!

Built with AiAda