Ethernaut 是一个由 OpenZeppelin 推出的基于 Solidity 编程语言的一个 Web3 对抗类游戏,玩家可以 Hack 每个关卡智能合约来达到通关的效果。
Web3 开发入门
对区块链有一个大概的认知
了解开发需要的各种工具、平台
编程手艺+N
Solidity 入门起步、也许直接放弃
学会把趁手的高级编程语言NodeJS、Go、Python、Rust 接入 Web3
秃头面积+1
Solidity by Example - 各种 Solidity Code 案例
WTF Academy - Solidity 基础知识【中文】
OpenZeppelin - 通用Solidity基础库、行业标准
HardHat - Solidity 开发框架,基于NodeJS
Foundry - Solidity 开发框架,基本Rust 编写、可以使用Solidity 写测试用例
Soldity Docs - Solidity 官方开发文档
YouTube
Bilibili
https://ethernaut.openzeppelin.com/level/0x7E0f53981657345B31C59aC44e9c21631Ce710c7
源码
题目大意:
链上交互入门介绍
将合约中 cleared 变量修改为true
修改时会验证合约的一个密码,此密码在创建时存储在合约里。可以直接把这个密码读出来
await contract.password();
resp: 'ethernaut0'
await contract.authenticate("ethernaut0");
区块链上的数据对所有人都是可见的,所以像密码这种核心数据不应存储在链上【就算加密了也不行】。如需身份认证、应使用链上原生的签名验证,这个至少现在是非常难破解的。
PS: 区块链不能限制某本书只有你可以看,但是可以 证明 这本书? 是你的。
…

