1. 智能合约的经典漏洞
  2. 智能合约的审计工具
  3. 智能合约安全学习路线
  4. 智能合约学习资源
  5. 区块链相关学习材料

这些资源主要来自笔者的经历和学习,也参考了许多人的总结,作为自己的系统作结,应该对大家有帮助。

帮助和交流平台

还有一些 discord 服务器,感兴趣可以加入。

优质社区

202203111813924

202203120032607

  • 登链社区,许多翻译的文章质量很高,并且有一些文档翻译。
  • 以太坊知识库,虽然许多东西没有更新,但是有些文章翻译的很好,例如 新手入门、以及它开发者提供的参考 都可以看出来是花了很长时间整理的,可以浏览,增长见识。比较可惜的是,后续没有继续更新,可能是小白成为大佬的过程常常写很多的文章,但是成为大佬后都应对复杂问题,就没有继续写下去了吧。

202203111845175

  • layer2 方案的备忘录,以后深入以太坊拓展方案后可以很快对 layer2 有大致的认识。
  • medium 虽然是英文社区,但是里面的优秀文章写的很好,建议翻译慢慢看。

202203111845710

202203111850716

入门参考

cover

智能合约合约教程

区块浏览器

一些特殊的浏览器

合约库

image-20220311114749585

!image-20220311114632238

  • HQ20 里提供里许多的合约和他们的测试脚本,可以作为自己开发的组件。

集成开发工具

Truffle+Ganache

使用开发环境可以加快重复性任务,例如 Truffle 主要完成以下工作:

  • 编制合同
  • 部署合约
  • 调试合约
  • 升级合约
  • 运行单元测试

松露框架

Ganache 最近升级后功能强大了许多,可以提供本地私链的测试环境,而且还支持其他功能。

您可以在本地运行 Ganache 以加快开发速度。

其次,truffle 有很多的插件,

官网中还介绍了其他的开发框架:

Hardhat

hardhat 的堆栈跟踪功能很强大,报错信息相对更具有可读性,而且主网分叉功能也很赞。

202203111538382

**Brownie - **基于 Python 的开发环境和测试框架。

Embark - 开发环境、测试框架以及与以太坊、IPFS 和 Whisper 集成的其他工具。

Embark

Epirus - 在 JVM 上开发区块链应用程序的平台。

OpenZeppelin SDK - 工具包:一套帮助您开发、编译、升级、部署智能合约并与之交互的工具。

The Graph - 链上信息查询的 API

Alchemy - layer2 平台提供的开发套件。

Dapptools - 一套专注于以太坊的 CLI 工具,遵循 Unix 设计理念,倾向于可组合、可配置和可扩展性。

202203111723295

看官网朴实的介绍,确实很符合 unix 极简主义的哲学

关于其他集成开发工具的介绍,可以见 2022 十大智能合约开发工具

与合约交互的库

Web3.js - 是使用的非常广泛的库,包含完整的合约交互和查询函数

Ethers.js - 现在的主流库,hardhat 框架也主要用到它。

Graph - 比较新的使用 GraphQL 的信息查询的库,配套有信息查询平台。

Alchemyweb3 - 封装后的 Web3.js 的库,Alchemy 的配套生态

Web3j - Java 的 API

202203111544404

Web3.py - 用于与以太坊交互的 Python 库

DApp 的前端库

前端链接钱包往往需要阅读不同的钱包的文档,然后针对性的写代码,这是重复性的工作,因此有相应的库完成了这个工作。

  • blocknative 不只提供了连接钱包的接口,而且还提供了监控内存池、交易池的接口。

202203111537392

  • web3modal 提供链接钱包的 UI 和封装。

202203121759262

  • web3-react 为前端 React 提供的 DAPP 开发组件。

  • 创建 Eth App - 一大量的创建 DApp 的模板

  • Scaffold-Eth - Ethers.js + Hardhat + React 的 DApp 模板

    image

  • Drizzle 擅长大量状态管理的前端库。

    202203111808462

安全审计

  • Mythril 是 EVM 字节码的安全分析工具。它使用符号执行、SMT 解决和污点分析来检测各种安全漏洞。
  • Slither 是一个用 Python 3 编写的 Solidity 静态分析框架。
  • Manticore 是用于分析智能合约和二进制文件的符号执行工具。
  • Echidna 是一个 Haskell 程序,旨在对以太坊智能合约进行模糊测试/基于属性的测试。
  • tenderly 是集成、开发、测试模拟的平台,主网分叉的功能很赞。

这方面的内容,我会在后续合约审计文章中详细说明各种工具的使用和原理。

漏洞分析博客

202203121801287

  • rekt 是分享漏洞和攻击事件的平台。

202203121801694

202203121733274

202203121733995

202203121735388

各语言的区块链开发

以下资源包来自以太坊官网,主要是各种语言参与区块链开发的指导,虽然许多没有翻译,但是仍然很有参考意义,因此搬运过来了:

根据您的语言选择项目资源和虚拟社区:

底层源码参考

参考资料