# Web3 技术初体验以及相关学习资料

By [fengxuan](https://paragraph.com/@fengxuan) · 2022-05-28

---

Web3 技术初体验以及相关学习资料
==================

一. 前言
-----

作为一名技术博主，经常会关注一些推特，油管这样的社交平台，了解最新发生的技术。之前还不在意，但是今年以来，区块链相关的整个信息流是扑面而来，元宇宙，Web3，NFT相关新名词接踵而至，让我这个门外汉应接不暇。个人特别是3月份之后，几乎每次刷twitter都会看到区块链相关的推文，以至于我不得不开始学习和了解区块链相关的技术了。

非常可惜的是，目前区块链行业对简中互联网支持并不友好，几乎所有的文档都是英文的，所以如果想在加密行业有所成果，那么英语的水平还是至关重要的，值得一提的是，我去年终于通过了**英语三级**(是的，没打错，就是**英语三级**) 的英语考试，😄，此处应该有掌声。

目前区块链整体的技术发展都非常迅速，行业现在也迫切需要更多的Web3工程师，这不仅是一个有经济利益的领域，而且也是一个令人着迷的富有创造性的领域。

我会用我目前学习到的经验和能力来帮助大家了解区块链行业，如果我总结的不对，那么也请大家指正。

二、需求
----

根据之前的经验，我们还是以搜索数据为主要参考点，首先我付出一张谷歌搜索趋势图，这是Web3的搜索趋势图

![](https://storage.googleapis.com/papyrus_images/25c656d377530c39b62cd8f775bf39e084e5523ca0c5647ff5bde7a1d41556f9.png)

这是NFT的近两年的搜索趋势图。

![](https://storage.googleapis.com/papyrus_images/7889537c19f993c194a08a31c569a4d5cd30483b47309e2389924b8c2c53d527.png)

可以看到，在国外，目前这些领域都是比较火的。而且很多资本也开始在Web3领域投资一些新的初创公司。

三. 技术栈和学习资料
-----------

我在这里并不想长篇大论的介绍区块链的底层技术原理，相关的技术文档可以看廖雪峰的[https://www.liaoxuefeng.com/wiki/1207298049439968这篇文章的介绍，相信你就会对区块链有一个大致的了解了。如果我尝试用一句话来总结一下，我肤浅的比喻一下：\*\*区块链是一个基于P2P网络不可篡改、分布式的数据库，而智能合约是指数据库上的存储过程](https://www.liaoxuefeng.com/wiki/1207298049439968%E8%BF%99%E7%AF%87%E6%96%87%E7%AB%A0%E7%9A%84%E4%BB%8B%E7%BB%8D%EF%BC%8C%E7%9B%B8%E4%BF%A1%E4%BD%A0%E5%B0%B1%E4%BC%9A%E5%AF%B9%E5%8C%BA%E5%9D%97%E9%93%BE%E6%9C%89%E4%B8%80%E4%B8%AA%E5%A4%A7%E8%87%B4%E7%9A%84%E4%BA%86%E8%A7%A3%E4%BA%86%E3%80%82%E5%A6%82%E6%9E%9C%E6%88%91%E5%B0%9D%E8%AF%95%E7%94%A8%E4%B8%80%E5%8F%A5%E8%AF%9D%E6%9D%A5%E6%80%BB%E7%BB%93%E4%B8%80%E4%B8%8B%EF%BC%8C%E6%88%91%E8%82%A4%E6%B5%85%E7%9A%84%E6%AF%94%E5%96%BB%E4%B8%80%E4%B8%8B%EF%BC%9A**%E5%8C%BA%E5%9D%97%E9%93%BE%E6%98%AF%E4%B8%80%E4%B8%AA%E5%9F%BA%E4%BA%8EP2P%E7%BD%91%E7%BB%9C%E4%B8%8D%E5%8F%AF%E7%AF%A1%E6%94%B9%E3%80%81%E5%88%86%E5%B8%83%E5%BC%8F%E7%9A%84%E6%95%B0%E6%8D%AE%E5%BA%93%EF%BC%8C%E8%80%8C%E6%99%BA%E8%83%BD%E5%90%88%E7%BA%A6%E6%98%AF%E6%8C%87%E6%95%B0%E6%8D%AE%E5%BA%93%E4%B8%8A%E7%9A%84%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B)\*\*

下面我来介绍一些学习资料

### 2.1 基础知识

区块链是不同交易的数字存证，分布式的存储在区块链的完整计算机系统网络中。区块链是一项了不起的技术，但它们并不容易理解。要理解这些随后将要构建的内容，你需要花一些时间来了解它。我也是推荐大家先学习区块链相关知识，这块了解一下就可以。

1.  B站上北京大学肖臻老师《区块链技术与应用》公开课 [https://www.bilibili.com/video/BV1Vt411X7JF](https://www.bilibili.com/video/BV1Vt411X7JF)
    
2.  youtube上的区块链学习路线路 [https://www.youtube.com/watch?v=ci\_AIMCF-HA](https://www.youtube.com/watch?v=ci_AIMCF-HA)
    

### 2.2 以太坊

我知道提到区块链大家都会提到比特币，但是遗憾的是，虽然比特币目前是行业价值最高的数字货币，也是绝大多数人入行第一个听到的名词，但其实比特币所用的区块链技术是比较落后的，基于比特币开发的应用只有简单的转账功能，所以，目前行业内主流都是以基于以太坊(Ethereum)的技术和平台做开发，以太坊（Ethereum）是一个去中心化的开源的有智能合约功能的公共区块链平台，它的官方网站是[https://ethereum.org/](https://ethereum.org/) 。

#### 学习资料：

    1. 基础课程：学习以太坊可以参考Youtube上这个up主的课程，还是比较详细的https://www.youtube.com/watch?v=itUrxH-rksc
    1. 以太坊开发的官方文档 https://ethereum.org/zh/developers/docs/
    1. 网易公开课的尚硅谷最新区块链全套教程完整版 https://open.163.com/newview/movie/free?pid=UFVPHIG9E
    

### 2.3 Solidity

以太坊相比比特币的一个重大创新就是它支持智能合约（Smart Contract）。

> 所谓智能合约，就是一种运行在区块链上的程序。和普通程序不同的是，智能合约要保证在区块链网络的每一个节点中运行的结果完全相同，这样才能使任何一个节点都可以验证挖矿产出节点生成的区块里，智能合约执行的结果对不对。
> 
> 因此，以太坊提供了一个EVM（Ethereum Virtual Machine）虚拟机来执行智能合约的字节码，并且，和普通程序相比，为了消除程序运行的不确定性，智能合约有很多限制，例如，不支持浮点运算（因为浮点数有不同的表示方法，不同架构的CPU运行的浮点计算精度都不同），不支持随机数，不支持从外部读取输入等等。

在以太坊，智能合约的开发语言目前主流的是

*   Solidity
    
*   Vyper
    
*   Yul
    

但是当前边写智能合约最常用的高级语言就是Solidity，包括我自己学习的也是Solidity。这个语言语法有点类似JavaScript。但是智能合约编写思路和我们传统开发差别很大，智能合约是基于以太坊账户的。

目前各大主流IDE也集成了Solidity的开发插件，但是我个人是推荐初学者在 [https://remix.ethereum.org/](https://remix.ethereum.org/) 这个网站上进行编写智能合约代码，我自己本人也是这个IDE上面进行开发。

露一张我正在开发的代码截图

![](https://storage.googleapis.com/papyrus_images/6b18e577f6e53eea9f8eb0ea112a4bc53672e7f895a060ee895e059aeb59dc9b.png)

因为部署智能合约需要一定的gas费用，所以我目前编写智能合约应用，也只是Rinkeby测试网发布，没有发布在主网。

![](https://storage.googleapis.com/papyrus_images/7de28dfa13e31529a4b651d71e062fb81cd1f78ddf007037a154347e60a55aa5.png)

当支付gas费用成果部署后，就可以在以太坊的网络上看到这一区块了。

![](https://storage.googleapis.com/papyrus_images/bd196ecdb30914b9099db21f0f0d492cf44443e689bd8aa1d8eeabdd341bc258.png)

这里就可以看到区块已经打包成功。

#### 学习资料

1.  登链社区翻译的智能合约中文版本[https://learnblockchain.cn/docs/solidity/，已经更新到0.8.13，截止发稿时间，是相当新的。](https://learnblockchain.cn/docs/solidity/%EF%BC%8C%E5%B7%B2%E7%BB%8F%E6%9B%B4%E6%96%B0%E5%88%B00.8.13%EF%BC%8C%E6%88%AA%E6%AD%A2%E5%8F%91%E7%A8%BF%E6%97%B6%E9%97%B4%EF%BC%8C%E6%98%AF%E7%9B%B8%E5%BD%93%E6%96%B0%E7%9A%84%E3%80%82)
    
2.  youtube大叔的Solidity, Blockchain, and Smart Contract Course – Beginner to Expert Python Tutorial (学习 Solidity、区块链和智能合约)[https://youtu.be/M576WGiDBdQ](https://youtu.be/M576WGiDBdQ)
    
3.  [Solidity 实例](https://solidity-by-example.org/) [https://solidity-by-example.org/](https://solidity-by-example.org/)
    
4.  solodity的开发是有一个开发框架Truffle，官方文档：[https://trufflesuite.com/](https://trufflesuite.com/)
    

### 2.4 以太坊API

为了方便软件或者应用程序方便与以太坊区块链进行交互，那么以太坊官方提供了一些接口来完善这方面的能力。那么比较著名的就是

#### Web3.js

javascript的web3接口实现

文档地址：[https://learnblockchain.cn/docs/web3.js/](https://learnblockchain.cn/docs/web3.js/)

#### [web3.py](http://web3.py)

python的web3接口实现

文档地址：[https://web3py.readthedocs.io/en/stable/](https://web3py.readthedocs.io/en/stable/)

### 2.5 NFT

NFT的全称是Non Fungible Token,也就是非同质化代币，非同质化代币是相对于同质化代币而言的，同质化代币就是我们常见的比特币、以太坊这些可以相互交换，可以分割的代币。那么非同质化代币指的就是每一个都具有唯一性而且不可分割的代币。那么NFT在这个世界上都是独一无二的，很多人在讲NFT的时候，往往要先提到这个同质化代币，这个其实是没有必要的。NFT是透过上传一个文件，如艺术品，到非同质化代币拍卖市场\[[8\]](https://zh.wikipedia.org/wiki/NFT#cite_note-8)，此举将创建一个记录在数字账本上的文件副本，以作为非同质化代币，可以透过加密货币来购买和转售。这其实是智能合约运用在艺术品上的体现，这后期我会专门写文章讲解如何制作并使用NFT。

目前70%的NFT交易是在[https://opensea.io/](https://opensea.io/) opensea上进行的。

**因为NFT是类似Defi这种区块链金融服务交易平台，所以我只是纯粹介绍技术，需求以及应用，不会给大家带来任何投资建议 。**

### 2.6 安全

我的本职工作是和网络安全密切相关的，区块链安全也是值得一提，因为几乎每月都在发生区块链安全事件，这些事件是直接影响交易所，或者散户的资产的。目前个人感觉大陆做的最好的是余弦的慢雾科技，官方网站[https://www.slowmist.com/。在技术上已经有较多的沉淀，可以多关注和参考此公司的相关动态和文章。](https://www.slowmist.com/%E3%80%82%E5%9C%A8%E6%8A%80%E6%9C%AF%E4%B8%8A%E5%B7%B2%E7%BB%8F%E6%9C%89%E8%BE%83%E5%A4%9A%E7%9A%84%E6%B2%89%E6%B7%80%EF%BC%8C%E5%8F%AF%E4%BB%A5%E5%A4%9A%E5%85%B3%E6%B3%A8%E5%92%8C%E5%8F%82%E8%80%83%E6%AD%A4%E5%85%AC%E5%8F%B8%E7%9A%84%E7%9B%B8%E5%85%B3%E5%8A%A8%E6%80%81%E5%92%8C%E6%96%87%E7%AB%A0%E3%80%82)

#### 学习资料

1.  [https://github.com/slowmist/papers](https://github.com/slowmist/papers) 慢雾科技区块链安全研究报告
    
2.  [https://github.com/slowmist/Knowledge-Base](https://github.com/slowmist/Knowledge-Base) 慢雾安全团队知识库
    
3.  [https://github.com/slowmist/Blockchain-dark-forest-selfguard-handbook](https://github.com/slowmist/Blockchain-dark-forest-selfguard-handbook) 余弦写的《区块链黑暗森林自救手册》
    
4.  [https://solidity-cn.readthedocs.io/zh/develop/security-considerations.html](https://solidity-cn.readthedocs.io/zh/develop/security-considerations.html) 智能合约安全考量
    

### 2.7 其他

Web3 还有很多应用和插件，如果写在这里我是写不完的，但是还是必须要提到一个插件叫做MetaMask小狐狸錢包，是一个钱包浏览器插件，可以很方便的去和区块链应用进行交互和交易，这款插件应用是非常广泛的，所以还是额外提出大家下载这个插件，如果在谷歌商店下载不了的同学，可以私信公号：“风炫安全”，回复“metamask”，我把打包好的插件提供给你下载。

![](https://storage.googleapis.com/papyrus_images/19d0990f9d07dd92dc256be11b67ee7d365372dabc642b2a644adf8db6df0e3d.png)

总结
--

我个人也是刚刚学习研究Web3 不到2个月，所以还有一些知识并没有研究清楚，在后续的研究中，我会把我最新的知识写下来，为简中互联网的Web3行业添砖加瓦。大家现在对Web3可能还没啥感觉，但其实在国外已经非常火了。整个行业都是很缺技术和人才的，所以如果在今年互联网毕业季中有毕业的同学，可以考虑一下Web3行业。

最后从这篇文章开始，我会将今后的文章都同步在区块链网络上发布。

---

*Originally published on [fengxuan](https://paragraph.com/@fengxuan/web3)*
