Web3 一定是未来,对于 Web2 开发者,探索 Web3 这个领域时,无论是客户端,前端还是后端,都能发挥现有的技术优势,还能扩展职业视野,提升自身工作的创造性。如果决心要成为 Web3 的开发者一定要有意识地屏蔽一些干扰信息,专注于技术本身,做一些长期有价值的事,能更好地帮助自己成长。
2014 年,以太坊联合创始人 Gavin Wood 首次提出 “Web3” 的概念,给互联网需要过多信任的问题提供了一种解决方案。
不可否认,中心化网络已经帮助数十亿人融入了互联网,并在其上创建了稳定、可靠的基础设施。但与此同时,少数中心化巨头几乎垄断了互联网,甚至可以为所欲为。而 Web3 通过区块链、加密货币和 NFT 将权力以所有权的形式归还用户。
Web3 如今已成为一个包罗万象的术语,代表了一个更新更好的互联网愿景。尽管很难对 Web3 做出严格的定义,但它通常有如下特征:
《吕氏春秋》 有一句话:“君子谋时而动,顺势而为”。意思是说,聪明有远见的人会做好准备,在合适的时候迅速行动,顺着当时的形势,做出判断,再有所作为。
我认为 Web3 毫无疑问是趋势,但具体从何时开始成为趋势,有人说是比特币的出现,有人说是以太坊的出现。我其实并不完全同意,比特币的出现是整个 Web3 行业的开始,以太坊的出现则是 Web3 行业的基石,但真正让 Web3 成为“势”,我觉得还是 2020 年 DeFi 行业的大规模爆发,让区块链有了金融场景的落地应用。
Web3 整个行业的用户量从 2020 年开始迎来了爆发式扩张,除了 2022 年因为熊市的原因导致发展变缓,其他年份用户数量都是不断上涨,相信 2024 年随着比特币减半和牛市到来,用户数量也会继续上涨,向上趋势势不可挡。
其实从中国香港对 Web3 的态度也可以见微知著,从 2023 年起,中国香港就频繁对 Web3 释放友好信号:
既然 Web3 从 2020 年就开始成为趋势,那加入 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 以后无法运行了,打不过还能加入。
Web3 技术栈目前还没有一个统一定义,我采用的是 Alchemy 的 Web3 技术栈全景图,从下往上依次是:
当你选择成为一名 Web3 开发者时,需要了解你技术服务于 Web3 技术栈的哪一层。
如果是服务网络层,意味着需要开发 Layer1 或 Layer2,一般是对应的实验室或基金会,需要的技能差异很大,底层技术包括密码学,共识算法,存储,网络,语言及虚拟机等,工程上的技术则根据链的架构和性能决定,也有一些链是通过 Cosmos SDK 或 OpStack 快速搭建的;
如果是服务区块链交互层,一般是去一些基础设施服务商,例如节点服务,数据分析服务,索引服务,这一层其实跟 Web2 的基础设施服务商(例如云服务)差不多,角色也都是前端,后端,数据,测试,运维等,因此要求的技能也大致相同,可能额外了解下区块链网络的接口;
如果是服务表示层,就是给开发者开发工具和类库,俗称“卖铲子”,具体开发技能会根据产品形态和服务的开发者类型决定,例如开发一个 IDE 就会涉及用户界面,本地网络搭建,合约编译,合约部署等;
如果是服务 DApps,其实绝大多数的 Web3 开发的需求都集中在 DApp 的开发,所以我们一般说的 Web3 开发主要是指 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 一定是未来,对于 Web2 开发者,探索 Web3 这个领域时,无论是客户端,前端还是后端,都能发挥现有的技术优势,还能扩展职业视野,提升自身工作的创造性。
但目前的 Web3 行业还是很浮躁的,很多人都在疯狂的追逐,激进的投资,很多时候会让人感到焦虑。如果决心要成为 Web3 的开发者一定要有意识地屏蔽一些干扰信息,专注于技术本身,做一些长期有价值的事,能更好地帮助自己成长。
笔者来自蚂蚁链,也是一名以太坊上的开发者(最近也在学习 Solana 开发和 Sui 开发),熟悉主流公链技术和 Web3 项目,拉了一个学习交流群,二维码放到了下方,欢迎对 Web3 有兴趣的同学加入。
(我的微信号在我公众号的签名里面,如果群二维码过期可以加我本人微信联系加群)
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!