why:为什么要成为 Web3 开发者
首先介绍一下什么是 Web3。
2014 年,以太坊联合创始人 Gavin Wood 首次提出「Web3」的概念,给互联网需要过多信任的问题提供了一种解决方案。
不可否认,中心化网络已经帮助数十亿人融入了互联网,并在其上创建了稳定、可靠的基础设施。但与此同时,少数中心化巨头几乎垄断了互联网,甚至可以为所欲为。而 Web3 通过区块链、加密货币和 NFT 将权力以所有权的形式归还用户。
Web3 如今已成为一个包罗万象的术语,代表了一个更新更好的互联网愿景。尽管很难对 Web3 做出严格的定义,但它通常有如下特征:
1. 去中心化:不由中心化实体控制,而是由构建者和用户分配所有权;
2. 无需许可:每个人都有参与 Web3 的平等权利,没有人被排除在外;
3. 去信任:通过经济激励(代币)机制运转,而不依赖受信任的第三方。
Web3 的时与势
《吕氏春秋》有一句话:「君子谋时而动,顺势而为」。意思是说,聪明有远见的人会做好准备,在合适的时候迅速行动,顺着当时的形势,做出判断,再有所作为。
我认为 Web3 毫无疑问是趋势,但具体从何时开始成为趋势,有人说是比特币的出现,有人说是以太坊的出现。我其实并不完全同意,比特币的出现是整个 Web3 行业的开始,以太坊的出现则是 Web3 行业的基石,但真正让 Web3 成为「势」,我觉得还是 2020 年 DeFi 行业的大规模爆发,让区块链有了金融场景的落地应用。
关于 DeFi 的介绍,可以参考我之前的文章《MakerDAO & Uniswap:去中心化金融进化史》。
Web3 整个行业的用户量从 2020 年开始迎来了爆发式扩张,除了 2022 年因为熊市的原因导致发展变缓,其他年份用户数量都是不断上涨,相信 2024 年随着比特币减半和牛市到来,用户数量也会继续上涨,向上趋势势不可挡。
其实从中国香港对 Web3 的态度也可以见微知著,从 2023 年起,中国香港就频繁对 Web3 释放友好信号:
· 2023 年 4 月,成立香港 Web3 协会,旨在促进 Web3 生态发展;
· 2023 年 8 月,发布《有关香港虚拟资产发展的政策宣言》,明确支持 Web3 发展;
· 2023 年 10 月,证监会更新加密货币市场监管政策,为虚拟资产交易所提供合规指引;
· 2024 年 1 月,香港首批虚拟资产交易所获得牌照;
· 2024 年 4 月,Web3 嘉年华在香港举办,同月港府推出数字资产 ETF。
既然 Web3 从 2020 年就开始成为趋势,那加入 Web3 最好的时机就是四年前,其次就是现在!!!
Web2 开发者更应该学习 Web3
笔者作为一个 2020 年接触 Web3,并且 2022 年从 Web2 转型 Web3 的开发者,关于「为什么 Web2 开发者更应该学习 Web3」提供一些个人体验。
其实这个问题跟「为什么非 AI 的开发者要学习 AI」没有什么不同,我认为作为开发者,首先一定是个持续学习者,因为技术行业更新换代很快,需要持续学习来跟上变化,保持自己的竞争力。
学习分深度和广度,两者同样重要,深度通过深耕技术细节会帮助你成为领域内的专家,广度则通过跟踪技术趋势,学习相邻领域的知识,可以将新的思想引入你的专业领域中,让工作更具创造性。
现在学习 AI 和 Web3 就是这个道理,可以通过学习最前沿的技术增加自己的技术广度,就跟早年间学习移动端开发一样,但 Web3 又和这两者不一样的是,缺少一个「奇点时刻」。
iPhone 的出现,引领了移动端的变革,iPhone 是移动端的「奇点时刻」;ChatGPT 的出现,打开了 AI 的想象力,ChatGPT 是 AI 的「奇点时刻」;而 Web3 目前还没有这样革命性的创新出现,但这也意味着 Web3 是一个更有潜力更具创新的行业,如果一个 Web2 开发者能结合原有的技术和经验来到 Web3 上 Build,可能就能孕育出伟大的创新。
Web2 学习 Web3 还有一个好处,万一 Web2 以后无法运行了,打不过还能加入。
how:如何成为 Web3 开发者
Web3 技术栈目前还没有一个统一定义,我采用的是 Alchemy 的 Web3 技术栈全景图,从下往上依次是:
1. 网络层:也就是我们所熟知的链,包括 Layer1 和 Layer2,例如比特币,以太坊,Solana,Sui,Starknet 等;
2. 区块链交互层:该层允许开发人员和用户在区块链中读取和写入数据,包括节点服务,水龙头,索引服务和区块链浏览器;
3. 表示层:该层主要面向开发者,反映了 Web2 开发的许多方面,例如面向区块链开发者特定的工具和类库,区块链上的数据存储;
4. 分布式应用(DApps):该层主要面向用户,涵盖 DeFi、NFT、身份和认证、数据和分析以及许多其他 DApp 类别。
当你选择成为一名 Web3 开发者时,需要了解你技术服务于 Web3 技术栈的哪一层。
如果是服务网络层,意味着需要开发 Layer1 或 Layer2,一般是对应的实验室或基金会,需要的技能差异很大,底层技术包括密码学,共识算法,存储,网络,语言及虚拟机等,工程上的技术则根据链的架构和性能决定,也有一些链是通过 Cosmos SDK 或 OpStack 快速搭建的;
如果是服务区块链交互层,一般是去一些基础设施服务商,例如节点服务,数据分析服务,索引服务,这一层其实跟 Web2 的基础设施服务商(例如云服务)差不多,角色也都是前端,后端,数据,测试,运维等,因此要求的技能也大致相同,可能额外了解下区块链网络的接口;
如果是服务表示层,就是给开发者开发工具和类库,俗称「卖铲子」,具体开发技能会根据产品形态和服务的开发者类型决定,例如开发一个 IDE 就会涉及用户界面,本地网络搭建,合约编译,合约部署等;
如果是服务 DApps,其实绝大多数的 Web3 开发的需求都集中在 DApp 的开发,所以我们一般说的 Web3 开发主要是指 DApp 开发。下一节展开这个内容。
DApp 开发需要掌握的技能
传统的互联网应用架构想必大家应该很熟悉,包括前端,后端和数据库。以一个在线购物网站为例,用户首先通过浏览器访问前端提供的界面进行购物的相关操作,如果用户搜索了某个商品关键词,后端就会负责处理相应的逻辑,即响应来自前端的请求,检索数据库后向前端返回必要的数据。数据库则为应用提供了稳定的存储,包含商品的全部信息以及用户的相关信息(如购物车内容)。
在区块链上构建的 DApp 与传统应用最大的区别在于后端和数据库的角色变化。智能合约起到了传统后端的作用,区块链则替代了传统数据库,提供去中心化的数据存储。智能合约与区块链的密切协作,使得数据的存储和检索变得透明且难以篡改。
因此 DApp 开发的技能主要在于前端和智能合约的开发,需要掌握的技能如下:
前端
界面开发。对于有网页开发经验的前端工程师而言,界面开发技能是可以迁移的,HTML、CSS 和 JavaScript 这些基本技能,以及现代前端框架如 React 和 Vue 的掌握;
身份验证机制和数据读写。在 DApp 中,用户的身份认证和管理方式是通过区块链钱包(例如 MetaMask)来实现的,因此需要学习如何集成钱包接口,并且数据读写也是通过链上 API,通过使用 Ethers.js 这样的 JavaScript 库,可以轻松地实现身份验证机制和数据读写。
后端
由于现在很多 DApp 都是半中心化的,因此也有不少后端的需求,虽然后端工程师的技能也可以迁移,但由于涉及链上数据读写,需要集成区块链 SDK,开发语言最好是 Go/Rust/NodeJS;
智能合约
对于 EVM 链的合约开发,主要学习 Solidity 语言,新手推荐去 WTF Academy 上学习;对于非 EVM 链的合约开发需要根据具体的链,例如开发 Solana 上的智能合约需要学习 Rust,开发 Sui 上的智能合约需要学习 Sui Move,但目前学习资料都比较少,需要去对应的官网。
学习 Web3 的几点建议
· 日常刷刷 Web3 媒体获取行业新闻:推荐 律动 欧意交易所,Panews,Foresight,金色财经,ODaily;
· 偶尔混混 Web3 开发者社区,推荐登链,TinTinland,WTF Academy,BuilderDAO,OpenBuild;
· 学习一个新项目,先阅读官方文档,再关注官方 Twitter/Discord,有余力再大致看一下代码库;
· 一定要做项目,有渠道的直接实战做项目,没渠道的也可以参加 Hackthon 积累项目经验;
· 英语非常重要(后悔没有好好学习英语 °(°ˊДˋ°) °)。
总结
Web3 一定是未来,对于 Web2 开发者,探索 Web3 这个领域时,无论是客户端,前端还是后端,都能发挥现有的技术优势,还能扩展职业视野,提升自身工作的创造性。
但目前的 Web3 行业还是很浮躁的,很多人都在疯狂的追逐,激进的投资,很多时候会让人感到焦虑。如果决心要成为 Web3 的开发者一定要有意识地屏蔽一些干扰信息,专注于技术本身,做一些长期有价值的事,能更好地帮助自己成长。