该怎么学习区块链技术?

1. 入圈之前

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

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

2. 正式入圈

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

刚开始学习区块链,当然首推比特币和以太坊。着两条链经受的考验最多,承载的资产也是最多的。可以看一下阮一峰老师的这篇文章,对区块链的基本概念有所理解。

然后就可以看一下比特币和以太坊的白皮书,如果英文版看起来困难,也可以先看中文版。这个地一次看肯定很困难,会有很多的新名词。但是没关系,第一次看就是留个印象。

在看完了之后,推荐看北大肖臻老师的课程,在 B 站上。这个课程真非常好,内容深入浅出,有基本的计算机基础的人就可以听懂。

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

3. 应用开发

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

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

学习在区块链上开发之前,需要学习一门语言,在以太坊上,这门语言就是 solidity,可以根据这个文档来学习,里面都是一个个实际的例子,语法不复杂,一个礼拜的时间就可以过完。

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

合约开发完成之后,可以直接使用 hardhat 进行部署,但更常用的一个工具是 remix。这是一个网页版本的 IDE,可以用来部署和访问合约。

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

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

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

4. 深入学习

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

比特币原理学习,比特币的技术审计迭代很慢,但也是目前最有价值的区块链网络,这个小众的网站(BTC Study)资源很棒,可以用来深入学习比特币。

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

如果对以太坊的升级和扩容方案很感兴趣,可以跟踪这个视频,讲的很不错,有细节,有深度。另外如果想跟踪以太坊技术的进展,V 神的博客 是一定要关注的。里面有很多 V 神关于技术的思考,值得深入研究。

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

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

最后,虽然区块链的技术很多,但是毕竟都是基于分布式技术来实现的,如果想更进一步,就可以去研究分布式技术了,这也是很大的领域,一起探索吧。

5. 总结

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

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

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

参考链接

[1]https://darkhandbook.io/index.html

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

[3]https://bitcoin.org/bitcoin.pdf

[4]https://ethereum.org/en/whitepaper/

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

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

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

[8]https://hardhat.org/

[9]https://remix-project.org/

[10]https://github.com/web3/web3.js

[11]https://eips.ethereum.org/erc

[12]https://www.btcstudy.org/

[13]https://ethereum.org/en/

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

[15]https://geth.ethereum.org/

[16]https://github.com/prysmaticlabs/prysm