今日运势评分

4

本月运势

丙子月

伤官见官
己不破券二比并亡
未不服药毒气入肠

安床,祭祀,祈福,求嗣,冠笄,伐木,架马,动土,开池,开厕,结网,入殓,除服,成服

安门,栽种,作灶,治病

月相

渐亏凸

底部反弹

日冲

Powered by RitMEX

PEPE0.00 -8.03%

SUI4.46 -8.13%

TON5.32 -5.56%

TRX0.25 -3.45%

DOGE0.32 -8.96%

XRP2.23 -5.67%

SOL183.30 -7.77%

BNB659.58 -4.36%

ETH3341.62 -5.14%

BTC96661.57 -2.03%

ETH Gas5.07 Gwei

贪婪
73

Web2 的开发者,如何进入 Web3?

了解区块链基础、区块链使用探索、然后根据自己的兴趣选择一个方向精进。

撰文:Tiny 熊

AI 和 Web3 是当前为数不多认为有巨大潜力的两个方向,Web3 薪资相对较高、有很多远程岗位、可全球就业,因此很多 Web2 开发者想进入 Web3 。

学习 Web3 开发最难的估计是不知道从何处下手,Web3 经过 10 多年的发展,内容越来越广,很多内容还相互依赖,给想进入 Web3 的开发同学带来了困惑:从哪里开始学、应该学什么。

我自己 2017 年进入 Web3 ,从事合约开发、技术布道、并一直跟踪区块链技术的发展,根据我对整个 Web3 的理解,整理下面这个学习路线图,希望可以帮助大家在学习的时候有更清晰的路线。

本文算是对这个学习路线图的解读,路线图是可交互式的[1],遇到不理解的术语,可以点击术语右上角小箭头查看右侧说明。

在学习路线图中,我将学习 Web3 分为几个阶段:了解区块链基础、区块链使用探索、然后根据自己的兴趣选择一个方向精进。

刚进入 Web3 开发的同学,在选择方向上不能贪多,而是应该做一些取舍,聚焦一个点往深处扎根,这样不容易迷失方向,也更容易看到自己的成长。

了解区块链基础

区块链背后的技术,依旧是传统计算机技术的延伸,在 Web3 从事开发,掌握数据库、数据结构、计算机网络、编程语言依旧是必须的。

但区块链的去中心化运行方式,刚开始的时候不好理解,是因为它不单单是技术问题,还包含了一个社会化的思想。

纯从技术角度想,容易想不明白为什么 BTC 的数量会限制在 2100 万个?心想:程序不都是可以修改的么?

如果能回答这个问题,区块链基础(什么是区块链、是如何工作的)其实理解的差不多了。

区块链有什么用,为什么有用、什么场景需要区块链技术,是一个随着时间推移不断加深理解的过程。

当下区块链技术依旧有不少的问题,但总体上来讲,区块链是一个强化个人主权、同时让群体协作更透明的技术。

我遇到不少同学总是拿 Web2 的优点与 Web3 的不足比较,我们在学习一个新技术时,要尽量保持开放的心态、这样才能吸收更多。

区块链带来的改变没有 AI 那么直接,因此我们容易低估他的价值。

区块链使用探索

在对区块链有了基础的认识之后,可以上手体验真实的区块链应用,例如使用钱包[2]软件创建自己的账号,有条件的也可以持有一点加密货币(会有一点门槛,虽然也可以用测试币体验。但真金白银的体验会不太一样)。

感受发起交易时的签名,查看区块链浏览器,交易打包出块的过程。

在使用时,会感受到不同链的交易速度,可以借此了解不同的共识机制、尝试理解不同共识在去中心、安全及效率上的权衡。

如果觉得有趣,可以感受一下 DEX 资产兑换、 NFT 交易、DAO 治理。

对比 Web2 ,Web3 应用的关键不同是:你的资产只属于你(任何信息都可以看作是一种资产),只有自己私钥签名后才能支配资产,任何人都无法剥夺你的资产。另一个不同是:Web3 应用通常都是开源的,所有人都是平等的参与一个透明的规则。

如果你认可 Web3 的价值和意义,可以尝试加入 Web3 建设。

选择方向

这个文章主要以技术的角度讨论,大家可以选择研究方向和开发方向(Web3 项目里还有社区运营的事情也很有意思,这里不讨论)。

如果有比较好的理论或学术背景,或者更喜欢探索新事物,想走研究方向,比如研究密码学、共识算法、扩容方案、代币经济学等,通常需要阅读大量的英文论文。

开发方向分两大类:链开发和应用开发

链开发

链开发对开发者的技能要求会高一些,薪资也会高一些,不过市场需求比应用开发会少。随着时间推移,应用逐步拓圈,应用开发需求会越来越多,链开发会逐步稳定,新链的机会并不多,链开发比较适合喜欢钻研底层的同学。

从事链开发,可以选择开发新链、或者是做二层、三层扩容链:

开发新链,通常指 Layer1, 需要了解这些内容:

  • Geth:是 Go 语言实现的以太坊节点软件,广泛用于 EVM 兼容链的开发与定制。

  • Reth:Rust 语言的以太坊实现,提供了一种高性能的以太坊客户端选择。

  • Substrate:Rust 语言实现,用于构建定制区块链的框架,由 Parity 开发,除在 Polkadot 生态大量采用外,也有很多独立链基于 Substrate 进行定制。

  • Cosmos SDK:Go 语言开发的,模块化区块链开发框架,Cosmos 网络兼容的新链基本都是基于 Cosmos SDK 开发。

  • 另外还有部分使用 Move 虚拟机和 Solana VM 虚拟机开发的链。

Layer2 扩容或 layer3 应用链

由主链的交易容量有限,尤其是以太坊及比特币,无法承载大规模的用户使用,Layer2 的思路是,将部分交易转移到主链外(Layer2)执行, Layer1 仅负责验证 Layer2 的执行,三层则通常是针对特定应用场景进行定制的区块链。链开发者需要了解的内容有:

  • OP Stack:Optimism 开发的 Layer2 框架,实在以太坊 Layer2 链中使用最多的框架。

  • Polygon CDK:是 Polygon 开发的链开发工具包,支持更灵活的扩展:如 Validium、zkRollup 等。

  • StarkEx:StarkWare 开发的利用 ZKStark 技术来实现二层扩展的方案。类似的 ZK 方案还有 Matter Labs( zkSync 背后的团队) 的 ZK Stack。

  • Arbitrum Stylus(Arbitrum Nitro 的迭代) 和 Arbitrum Orbit:Arbitrum 团队开发的 Layer2 及 Layer3 扩容方案,Stylus 提供支持多语言编程的执行层扩展。

想做链开发,模块化区块链也需要了解一下,模块化的思想是将之前一个整体的区块链分成多个层,不同的层解决不同的问题,甚至由不同的链来承担, 4 个层分别是:

  • 执行层:负责处理智能合约的执行,类似于以太坊的 EVM 模块,Layer2 在一定程度上就是一个执行层。

  • 结算层:用于结算交易,确保链上的资产安全和交易的有效性。

  • 共识层:保证节点之间对交易达成共识的模块。

  • 数据可用性(DA):确保链上数据能够被正确存储和访问的层,二层扩展方案中用来验证二层交易的有效性。不同的 DA 方案有:EIP4844 用 Blob 作为 DA,AnyTrust、 EigenDA 、Avail DA、Celestia、NearDA 等。

还有一个趋势是,区块链上逐步集成 零知识证明(ZKP) 能力,例如使用 ZKP 来做交易执行的证明(zkRollup 也在 Layer2 层的应用,在 Layer1 层上也可以采用),用 ZKP 做存储状态的证明,实现轻客户端、无状态客户端来实现更好的去中心化。还有链通过 ZKP 来实现隐私交易。

如果你选择链开发,给初学者的建议是学习 Go ,探究 Geth 和 Op Stack,其他的框架根据需要和兴趣研究。

上面 Layer2 扩容更多是以太坊的视角,最近比特币上扩容方案也有不少团队在做,关注度挺大,大体上有(状态)通道类扩容和侧链类扩容方式,前者继承比特币安全性较高,但在编程能力扩展上较差。典型的代表有闪电网络、以及与 RGB、RGB++ 客户端验证方案的组合。后者继承比特币安全性较差,例如采用 MPC 的方式跨链,但可以做到更好的编程能力扩展。也有一些结合两者的方案。

目前比特币上扩容方案行业依旧处在探索阶段,如果你是比特币信仰者,可以多多关注。

应用开发

如果想做应用开发,链的底层实现并不需要很深的理解,但我们需要了解各链的特点,如区块链性能、去中心化程度。

例如想开发社交或游戏类应用,对底层链的性能较高,而开发高价值的 DEFI 类型应用,对去中心化可能有更多的要求。

另外,底层链支持的开发语言以及生态的活跃度及对应用扶持力度等,也要考量的,这些关系到应用实现的工作量以及获取的用户的成本。

对于找工作的朋友也是类似,生态活跃度越高,工作机会越多,竞争也会大一些。

选择一个适合的底层链对应用的成功相当重要,多数通常是选择基于一个或一类链开发,也有一些应用需要支持很多的链,尤其是基础设施类应用, 例如,钱包、跨链桥、喂价预言机等,通常要支持很多个链。

选择适合自己的生态

简单对比一下各个生态,供大家参考:

比特币 :有最大的共识与资金体量,但是脚本能力有限,基于比特币链上能做的应用较少,很多应用需要结合索引器或者客户端验证方案来实现,生态还不够成熟,不过从发展的角度看,可能有更多的机会。

EVM 生态:包含了以太坊、以及众多的 EVM 兼容链(包括波场 Tron 也算 ),一部分 BTC Layer2 也是 EVM 兼容链,这些兼容链编程模型相同,都使用 Solidity 开发智能合约(及链上运行的程序),应用生态丰富,开发工具完善、开发资源比较丰富。

Solana:过去一年发展很强劲,生态体量上是老二,比 EVM 生态差距依旧比较大,Solana 的优势是吞吐量大,交易块,Solana 合约使用 Rust 开发,入门门槛较高。

TON:背靠有大量用户的 Telegram ,近期热度很不错, TON 同样具备高性能特点,智能合约主要使用 Func,但 TON 生态发展时间较短、工具库不完善,开发资源较少。

还有一些其他的区块链生态,如:Move 生态(包括 Sui / Aptos)、Starknet 生态、ICP 生态、AO/AR 生态等,都有各自的优点,但目前关注度更小。

这里描述的是当前的生态情况,各个生态的发展都是动态的,不同的生态也有不同的文化特点,大家可以根据自己的偏好选择。

给初学者的建议是从 EVM 生态入手,资料丰富、生态也比较稳。

合约开发

Web3 应用开发和互联网应用开发相比,很大的变化是大量后端逻辑转为智能合约在链上运行(也有一部分后端逻辑转移到前端,参考下一小节),以此来去除对中心化服务端的依赖。

也有很多 Web3 应用不涉及合约开发,例如:钱包、交易所、链上数据服务等,开发这些应用时,需要了解如何与合约交互。参考下一小节。

EVM 生态开发合约最常见的以太坊智能合约语言是 Solidity,一定要学习,Yul 是开发合约的汇编语言,如学有余力,可以研究一下。

Solana、TON、Move 等生态链,有各自的开发语言,我们以后有机会单独介绍。

Solidity 开发 IDE,入门推荐使用在线 Remix IDE, 一般在项目开发中是使用 VS Code + 开发框架, 开发框架帮助我们编译、部署及测试智能合约,开发框架首选 Foundry ,测试更方便,其次是 Hardhat 。

开发智能合约时,需要理解常见的 Token / NFT 标准并会使用,如 ERC20 、ERC2612、ERC721、ERC1155 , 使用轮子也是一个很好的习惯,OpenZeppelin 是一个智能合约库,实现了各种标准,使用库可以减少自己的工作量,提升程序安全性。

开发合约程序时,要尽量遵循标准。这一点与 Web2 开发也是不同, Web2 程序通常是自己在调用,智能合约通常是公开给任何人调用,而且他人调用越多,程序价值越大。遵循标准可以让他人更方便的调用自己的程序。

合约开发进阶

Solidity 的入门简单,但要成为一名优秀的合约工程师有很多东西要学(练)习,例如掌握优化合约技巧来降低 Gas 费用、使用 Create2 创建及预测合约地址、理解底层 Call 调用和委托调用的机制、理解如何对合约进行升级、如何灵活应用离线签名减少用户费用、使用 Merkel 树降低链上存储成本、熟悉常见的安全漏洞、理解 DAO 治理方式及实现、理解账户抽象、了解如何利用预言机来获取链外数据等等。

另外,DEFI 去中心化金融是目前 Web3 最重要的一个应用场景,了解常见金融概念、熟悉常用 DEFI 的运行、理解闪电贷的运行,会让我们有更多的机会。

Web3 应用的前后端

合约扮演的是后端程序的, 一个体验好的 Web3 应用同样需要少不了前端、 Web3 应用是由用户自己托管资产的,因此前端需要和钱包链接一起完成交互。

Web3 应用后端更多的是当做一个缓存层,因为链上的数据不是类似数据库的结构化数据,对查询不够友好,加一个后端作为数据缓存层,可以优化用户体验。

现在也有很多专门的链上数据服务商,链上有大量开放的数据,是一个数据宝库, 如果你对大数据感兴趣,这也是一个很好的方向。

开发 Web3 前端时,需要了解常用的钱包接入方法,如会接入 MetaMask 、 WalletConnect 、Web3 Model 等前端钱包组件,前端与链交互通常是通过 Vim.sh 、 Ethers.js、Web3.js 等交互库来完成,这些交互库其实是链节点提供 RPC 服务的包装。在调用时,前端通过 RPC 节点的 URL 来确定和哪一个链交互,通过 ABI 及合约地址来确定和哪个具体的函数交互。

Web3 后端主要处理数据,例如扫码区块,获取指定合约的指定事件的的数据,和链交互使用的方法与前端类似, 但根据后端语言不同,会使用不同的包装库与 Web3 RPC 节点通信,使用比较多的是 Go 后端使用 go-ethereum 库、Node.js 后端使用 Vim.sh 、 Ethers.js 等库,这几个库可以多熟悉一下。

欢迎加入深潮TechFlow官方社群

Telegram订阅群:https://t.me/TechFlowDaily
Twitter官方账号:https://x.com/TechFlowPost
Twitter英文账号:https://x.com/TechFlow_Intern
作者登链社区@UpchainDAO
相关文章
2024.12.20 - 前天
2024 链上用户报告:月度新增用户数最高达 1940 万,Base 链贡献近 7 成增量
大多数区块链在将普通用户转化为高价值贡献者方面仍处于起步阶段。
2024.12.20 - 前天
市场恐慌升级,关注转向 DeFi 与 AI Agent 赛道
临近圣诞假期,市场流动性预计将有所下降,建议投资者采取防御性配置策略。
2024.12.20 - 前天
加密创始人必读:风投在意的不仅是你的项目, 更重要的是你自己
展示你自己,而不仅仅是你的公司。
2024.12.20 - 前天
Coinbase 2025 展望:新技术、新格局、新机遇,加密市场将迎来变革性增长
涵盖加密领域的深度研究,从山寨币到 ETF、从质押到游戏等。
2024.12.20 - 前天
国际清算银行最新提出的央行数字货币框架究竟是什么?
‍中央银行保留对 CBDC 发行和基础管理,将面向用户的职责下放给私营中介机构。
2024.12.20 - 前天
加密企业影响力扩圈三板斧:上市、纳指 100 与标普 500?
从纳斯达克上市再到入选指数 100,加密企业正不断扩圈影响力。
2024.12.20 - 前天
Hashed 2025 投资展望:以亚洲为核心,引领区块链应用全球化
亚洲凭借其高度数字化的社会、快速发展的经济以及对新技术的开放态度,将在这一变革中发挥核心作用。
2024.12.20 - 前天
Union Square Ventures:一张图,纵览 AI 技术未来可能的 4 种走向
未来的方向以及最大的机会,取决于技术进步的速度和前沿模型的开放程度。
AI
2024.12.20 - 前天
2025 加密狂想曲:BTC 冲刺 50 万,DePIN 引领新革命
《时代》杂志年度人物可能是个机器人。
2024.12.20 - 前天
加密早报:Doodles NFT 创始人发文暗示将发币,Binance Alpha 公布第三批项目
日本央行维持利率不变,连续第三次暂停加息。