# 如何学习区块链-技术版

By [rayjun.eth](https://paragraph.com/@rayjun-2) · 2022-10-09

---

1\. 入圈之前
--------

出来学习的第一步是出来。在区块链的世界里面，链上的数据都是资产，所以骗子多，入圈的第一步当然是要保护好自己。建议在正式入圈前，先完整的阅读这个[文档](https://darkhandbook.io/index.html)，这是安全大牛余弦出品，必属精品。看完这个文档之后，对于常见的概念以及对 Metamask 使用就需要很熟悉了。

这一点很重要，如果你不了解里面的基本概念和一些坑，可能入圈的第一天资产就被骗光了，安全意识非常重要，尽早培养安全意识。

2\. 正式入圈
--------

区块链分为公链和联盟链，如果在工作中不会用到联盟链，就不推荐话时间去学习了。只要能够将公链学透，联盟链将不再是障碍，所以这里主要推荐的就是公链的资料。

刚开始学习区块链，当然首推比特币和以太坊。着两条链经受的考验最多，承载的资产也最多。可以看一下阮一峰老师的这篇[文章](https://www.ruanyifeng.com/blog/2017/12/blockchain-tutorial.html)，对区块链的基本概念有所理解。

然后就可以看一下[比特币](https://bitcoin.org/bitcoin.pdf)和[以太坊](https://ethereum.org/en/whitepaper/)的白皮书，如果英文版看起来困难，也可以先看中文版。这个第一次看肯定很困难，会有很多的新名词，但是没关系，第一次看就是留个印象。

在看完了之后，推荐看北大肖臻老师的[课程](https://www.bilibili.com/video/BV1Vt411X7JF)，在 B 站上。这个课程非常好，内容深入浅出，有基本的计算机基础的人就可以听懂，对于没有计算机基础，也可以了解到很多的概念。

在完成这些课程的学习之后，你对区块链的认识肯定就超过了大多数人，但是作为一个开发者，重要是能动手做事情。

3\. 应用开发
--------

在进入到应用之前，需要对区块链里面的基本应用类型有了解，去中心化应用（DAPP）是什么，还有需要对 Defi、GameFi、NFT 这些热门的应用类型有了解。这里推荐这个[视频](https://www.youtube.com/c/Finematics)进行学习，里面对于这些常见类型应用的介绍非常全面，而且通俗易懂，虽然是英文，但是配上字幕，看起来应该不困难。

同时，这些应用（DAPP）在以太坊上都有相应的标准，这些标准叫做 ERC，对以太坊上常用的 ERC 标准也需要有所了解。

学习在区块链上开发之前，需要学习一门语言，在以太坊上，这门语言就是 solidity，可以根据这个[文档](https://solidity-by-example.org/)来学习，里面都是一个个实际的例子，语法不复杂，一个礼拜的时间就可以过完。

因为 solidity 的代码涉及的都是资产，一个小 bug 就有可能导致大量的资产损失，所以代码的测试就非常重要了。[hardhat](https://hardhat.org/) 就是这样的一个框架，可以帮助我们写出更高质量的代码，而且 hardhat 可以帮助我们在本地构建更加复杂的测试环境，还可以直接用来部署合约。建议和 soldity 配套学习。

合约开发完成之后，可以直接使用 hardhat 进行部署，但更常用的一个工具是 [remix](https://remix-project.org/)。这是一个网页版本的 IDE，可以用来部署和访问合约。

合约部署上线之后，还需要与合约进行交互，如果你是一个开发者，当然可以通过代码去访问合约，对于普通用户来说，这样做就很困难了。所以一般用户使用合约的时候还有一个前端的页面，然后通过 Metamask 之类的钱包来与合约进行交互。开发这样的一个网页就需要用到 [web3js](https://github.com/web3/web3.js)，用这个库来连接钱包、网页和合约。

面向用户的网页+链上的合约就可以称之为是一个 DAPP 了，这些网页可以找一台服务器进行部署，但是大多数人会将网页部署到 [IPFS](https://ipfs.tech/) 上，这是一个去中心化的文件系统，也需要有所了解。

如果能把上面的这些内容掌握，你应该就有能力开发一个 DAPP。

4\. 深入学习
--------

在学习了应用开发之后，就需要深入的学习底层链了。如果不深入的研究底层链，就相当于错过了区块链技术中最有趣的部分。

比特币原理学习，比特币的技术审计迭代很慢，但也是目前最有价值的区块链网络，这个小众的[网站](https://www.btcstudy.org/)（BTC Study）资源很棒，可以用来深入学习比特币。

以太坊的技术发展的速度很快，在过去的 9 月份，以太坊就发生了一次大的升级。对于以太坊来说，[官网](https://ethereum.org/en/)就是很好的学习资料，里面总是会更新以太坊当前的最新进展，没事多上去逛逛，总能遇到新的惊喜。

如果对以太坊的升级和扩容方案很感兴趣，可以跟踪这个[视频](https://www.youtube.com/c/biquanlibai)，讲的很不错，有细节，有深度。另外如果想跟踪以太坊技术的进展，V 神的[博客](https://vitalik.ca/)是一定要关注的。里面有很多 V 神关于技术的思考，值得深入研究。

除了上面的那些资料之外，还有一种很值得的学习方式就是去看源码，毕竟理论的知识最终是要落实成源码的，如果觉的理论的内容已经很枯燥了，可以开始看源码，当前以太坊执行层和共识层的比较流行的实现是 [geth](https://geth.ethereum.org/) 和 [prysm](https://github.com/prysmaticlabs/prysm)，可以从这两个库开始。

如果觉得以太坊和 BTC 掌握的差不多了，就可以去看看其他的公链了，比如 SOL、Sui、Aptos 等等公链，这样对比起来的学习效果说不定更好。

最后，虽然区块链的技术很多，但万变不离其宗，底层都是基于分布式技术来实现的，如果想更进一步，就可以去研究分布式技术了，这也是很大的领域，一起探索吧。

5\. 总结
------

区块链技术出现的时间补过 10 多年的时间，很多技术都在快速不断的发展中，所以不要盲目的去追求新的技术，目前比特币和以太坊是两条经受了大量考验的链，从这两条链开始学习是比较合适的，

等这两条链吃透了之后，就可以开始关注其他的项目了。等到了那个时候，也可以很轻松的分辨那些项目有价值，哪些项目是在瞎扯淡。

上面涉及到的连接也都整理在下面了，如果有什么问题，欢迎联系我交流。

**参考链接**

\[1\][https://darkhandbook.io/index.html](https://darkhandbook.io/index.html)

\[2\][https://www.ruanyifeng.com/blog/2017/12/blockchain-tutorial.html](https://www.ruanyifeng.com/blog/2017/12/blockchain-tutorial.html)

\[3\][https://bitcoin.org/bitcoin.pdf](https://bitcoin.org/bitcoin.pdf)

\[4\][https://ethereum.org/en/whitepaper/](https://ethereum.org/en/whitepaper/)

\[5\][https://www.bilibili.com/video/BV1Vt411X7JF](https://www.bilibili.com/video/BV1Vt411X7JF)

\[6\][https://www.youtube.com/c/Finematics](https://www.youtube.com/c/Finematics)

\[7\][https://solidity-by-example.org/](https://solidity-by-example.org/)

\[8\][https://hardhat.org/](https://hardhat.org/)

\[9\][https://remix-project.org/](https://remix-project.org/)

\[10\][https://github.com/web3/web3.js](https://github.com/web3/web3.js)

\[11\][https://eips.ethereum.org/erc](https://eips.ethereum.org/erc)

\[12\][https://www.btcstudy.org/](https://www.btcstudy.org/)

\[13\][https://ethereum.org/en/](https://ethereum.org/en/)

\[14\][https://www.youtube.com/c/biquanlibai](https://www.youtube.com/c/biquanlibai)

\[15\][https://geth.ethereum.org/](https://geth.ethereum.org/)

\[16\][https://github.com/prysmaticlabs/prysm](https://github.com/prysmaticlabs/prysm)

\[17\][https://aptoslabs.com/](https://aptoslabs.com/)

\[18\][https://sui.io/](https://sui.io/)

\[19\][https://solana.com/](https://solana.com/)

\[20\][https://vitalik.ca/](https://vitalik.ca/)

---

*Originally published on [rayjun.eth](https://paragraph.com/@rayjun-2/mrWyYWXVCVZkXiNLNISA)*
