The Web3 是一个专注 Web3 技术解决方案设计与开发、技术教程设计与开发、Web3 项目投研分析和 Web3 项目孵化,旨在将开发者,创业者,投资者和项目方联系在一起的社区;其前身是 Savour Labs,目前已孵化出 Layer3 AppChain 项目 DappLink。
为了帮助更多的 Web2 开发者迅速进入 Web3,让已经处于 Web3 开发者深入了解区块链知识,让更多开发者更好的设计开发自己的产品; The Web3 社区计划开发一系列 Web3 教程, 从编程语言到项目实战,包括已有项目设计理念分析,产品设计,项目架构设计等,全方位帮助 Web3 开发者成长。
本教程将从合约,钱包和公链项目设计,产品设计和项目开发等多角度出发打造,当然整个教程是综合性的,里面也会含有前后端和运维层面的一些知识。在整个课程体系中,我们会穿插很多实战项目设计与开发,并且尽可能的将这些实战项目孵化成功之后去融资;同时,对于那些学完本教程之后,变得很优秀的开发者,我们将毫不吝啬的给大家推荐工作。
那么,学完本教程,你能获得什么?获得进入 Web3 开发的入场劵,获得远程工作的机会,获得高薪工作的机会。
学完本教程之后,将有以下这些开发岗位适合你:
智能合约开发工程师
钱包产品经理
交易所钱包开发工程师
去中心化钱包开发工程师
硬件钱包开发工程师
公链 (L1/L2/L3) 开发工程师
投研分析师
公链研究员
区块链密码学研究员
主流的智能合约编程语言有 Solidity, Rust 和 Move 等, Solidity 是 EVM 系列公链的合约开发语言;Rust 是当前大火的 Sonala 公链智能合约开发语言,同时一些用 Rust 编写的 EVM 公链也支持 Rust 做为智能合约开发语言,例如 Zksync-rea;Move 语言是 Aptos 和 Sui 等次主流公链的智能合约开发语言。除了 Solidity, Rust 和 Move 等主流的合约开发语言之外,Python, Node 等编程语言在一些名气不大的公链里面也做为智能合约开发语言,例如 Tezos 可以使用 Python(SamrtPy),Michelson 等做为合约开发语言,Stacks 使用 Clarity 做为智能合约开发语言。
针对智能合约开发语言,本文主要针对 Solidity, Rust 和 Move,其他编程语言由于是非主流智能合约开发语言,这里不做过多的探讨。
Solidity 基本语法
Solidity 编码规范
Solidity 高级特性
实际编码中如何选用 Solidity 数据结构
合约与合约之间的调用方式
合约 ABI
ERC 协议
ERC20
ERC721 和 ERC1155
ERC1967
ERC2535
ERC4337
合约开发工具
Hardhat
Foundry
合约审计工具
Slither
Mythril
Oyente
Securify
SmartCheck
Manticore
Echidna
Teether
商用合约审计工具
合约升级的方式以及实际操作
将合约编译成其他语言方便调用
常见的合约攻击方式以及如何避免
Rust 基本语法
理解 Rust 所有权
Rust 枚举和模式匹配
Rust 包管理
Rust 高级特性
集合、错误处理和自动化测试
Rust I/O 项目
Rust 智能指针
Rust 并发编程
Rust 的面向对象编程特性
模式与匹配
rust 实现主流的数据结构与算法
rust web 框架介绍
rust web 框架之 Poem
rust web 框架之 Actix-web
rust web 框架之 Hyper
rust web 框架之 Rocket
rust web 框架之 Warp
rust web 框架之 Nickel
rust web 框架之 Tide
rust Orm
rust 实现 Grpc server 和 Client
Zengo MPC 代码实现
Move 基本语法
Move 编码规范
Move 合约审计
Sui 和 Aptos Move 合约开发
发行代币开发实战
发行 NFT 集开发实战
Dex 和质押协议开发实战
跨链互操作协议开发 ( 针对 EVM 链 ) 实战
ZKP Verifier 合约开发实战
GameFi, SocialFi 开发实战
合约事件监听器开发实战
钱包是区块链的入口,不管是交易所,还是去中心化的应用,钱包都做为一个基础的功能而存在;我们都知道,钱包分为中心化钱包,去中心化钱包 ( 含 AA 钱包和社交恢复钱包 ),硬件钱包和托管钱包 ( 包含多签钱包和 MPC 钱包 );四种钱包的区别主要是私钥的管理方式不一样。
中心化钱包钱包一般供给交易所使用,将完整的私钥加密之后管理在中心化的环境中,常见的管理方式有 TEE, KMS 和 CloadHSM。
去中心化钱包私钥加密之后存储在用户设备中,一般钱包私钥丢失无法找回。社交恢复钱包分为两种,密钥分片备份和守护者恢复,密钥分片技术是将用户的私钥使用门限共享秘密算法将私钥分成 N 片加密之后分发给不同的朋友存储到设备中,一旦密钥丢失,通过社交加验证的方式从朋友哪里获取 M 个密钥分片,使用 N-M( 密钥拆分成 N 分,拿大其中 M 份可以恢复出完整的密钥 ) 逆门限共享秘密算法恢复出完整的私钥。守护者社交恢复主要是针对 EVM 系列的社交恢复钱包,由一个合约来管理整个钱包,一旦密钥丢失,发起社交恢复,由多个守护者签名一笔交易进行钱包合约的私钥替换,完成恢复的过程。
硬件钱包主要是把私钥管理在离线的硬件设备中,在硬件设备中集成钱包签名算法。
托管钱包有两种,团队资金共管钱包,一般使用多签钱包;EVM 链比较成熟的方案是 gnosis 多签,其他链还是使用多签算法实现;企业资管一般使用 MPC 钱包,MPC 是资管解决方案里面用得最多的密码学算法,运行 N 个 MPC 节点,节点之间通过多轮交互之后生成密钥片,节点与节点之间互相不知道对方生成的密钥片是什么,当需要发交易时,只需要其中 M 个节点签名交易就有效。
上面说了这么多,如果想找一份还不错的钱包开发的工作,您应该掌握哪些知识呢?我们将在下面做详细的探讨
公钥密码学基础
DES 算法深入
RSA, GPG, ECDSA 和 EDDSA 算法深入
BLS 算法深入
单向函数算法深入
门限共享密码算法深入
MPC 算法深入
蓝牙通信协议
串口通信协议
NFC 通信协议
P2P 通信协议
主流公链的交易签名前后数据组织编码细节与代码实现
Tee, Kms 和 CloadHSM 等集成环境的密钥对生成和签名调度
通过各种通信协议调度硬件生成密钥对和交易签名等
主流公链 RPC 接口,能快速组织接口扫链支持钱包出入金
熟悉充值,提现,归集,热转冷,冷转热和链路风控等钱包业务流程
熟悉 BIP 协议簇
能快速组织主流公链 RPC 接口支持钱包转账,交易记录等
钱包和主流 Dapp 交互过程开发 (Dapp 浏览器 )
Gnosis Safe 多签钱包流程
MPC 底层算法实现机制
使用 MPC 开发托管钱包
Top40 主链扫链出入金
Top40 离线签名
通过 Tee, Kms 和 CloadHSM 等集成环境实现钱包离线签名
通信协议实战
开发一个 MPC 网络
开发一个完整的 HD 钱包
公链是 Web3 项目的基础,构建 Web3 项目就必然得有公链的支撑,我们都知道,目前主流的公链包含: Bitcoin, Ethereum, Bitcoin-Layer2,Ethereum-Layer2, Cosmos, Solana 和 各种 AppChain 等项目。
一层公链最有价值且最值得学习的有 Bitcoin,Ethereum,Cosmos 和 Solana 等;如果能完全掌握 Bitcoin,Ethereum, Cosmos 和 Solana 底层设计原理及源码,就已经超越绝大多数做公链开发的工程师了。
Bitcoin Layer2 本身并不是太成熟,资本的炒作可能会导致 Bitcoin Layer2 最后是一地鸡毛,故而二层公链目前最值得学习的还是 Ethereum Layer2,。模块化的 Ethereum Layer2 公链有以下基础设施需要学习掌握:
数据可用层 (DA 层 )
去中心化排序器 (de sequencer)
Rollup 模块 (Rollup Services)
欺诈证明 (Fraud Proof)
Zk Proof(Zk Prove & Verifer)
在所有公链项目中,Bitcoin 是初学者入门必须学习的项目,然而 Bitcoin 整体开发者生态并不强大,开发者生态最强大的必然是 Ethereum 和 Cosmos。因此,如果想学习区块链,建议从 Bitcoin 入手学习,进而深入学习 Ethereum 和 Cosmos。
公链项目包罗万象,涵盖的知识点也特别多,做为公链开发者,必然要学习下面的知识点。
Pow: 工作量证明,主要在 Bitcoin, Ethereum(1.0), Litecoin, Conflux, Dogecoin 等项目中使用。
dPow: 延迟工作量证明,主要在 Komodo 项目中使用
Pos:权益证明,主要在 Ethereum(2.0), Peercoin 等项目中使用。
Poa:权威证明,主要在 Ethereum Kovan Testnet, xDai, VeChain 等项目中使用
Poh:历史证明,Solana 共识算法
Dpos:委托权益证明,主要在 BitShares, Steemit, EOS , Lisk 和 Ark 等项目中使用
Paxos: Paxos 算法,ZooKeeper 使用,ZooKeeper 用于联盟链场景
Raft:Raft 算法,在联盟链中用得比较多
PBFT:拜占庭容错算法,在 HyperLedger Fabric(<1.0 版本 ), Stellar, Ripple 和 Dispatch 等项目中使用
dPBFT:授权拜占庭容错,NEO 项目中使用
rBPFT:轮流拜占庭容错
Tendermint-BFT:Tendermint-BFT 算法,使用 cosmos sdk 的很多项目都使用该共识算法
Avalanche-BFT:Avalanche-BFT 算法,主要在 Avalanche 中使用
HotStuff-BFT:HotStuff-BFT 算法,Aptos-BFT 算法基于 HotStuff
Aptos-BFT:Aptos-BFT 算法,主要在 Aptos 项目中使用
公钥密码学基础
DES 算法深入
RSA, GPG, ECDSA 和 EDDSA 算法深入
BLS 算法深入
单向函数算法深入
PKI 公钥体系
门限共享密码算法深入
MPC 算法深入
ZKP 算法深入
STARK 与 SNARK
Kzg
Groth16
Sonic
Fractal
Halo2
SuperSonic
Marlin
Plonk
中国国家密码学算法 ( 国密 )
LevelDB
RocksDB
MongoDB
TCP/UDP/IP 协议
P2P 通信信息协议
RPC 和 gRPC 通信协议
JSON-RPC 通信协议
HTTP/HTTPS 通信协议
随着 Bitcoin Layer2 的发展,Bitcoin 生态也越来越受大家的关注,深入学习 Bitcoin 的运行机制也变得越来越重要,对于公链开发者来说,需要掌握 Bitcoin 以下知识点:
搭建比特币矿工节点和钱包节点
比特币 UTXO 模型
比特币 POW 共识算法原理和代码分析
比特币底层数据结构和算法
比特币的区块组织形式
比特币各种地址的生成原理以及使用场景
Taproot 如何让比特币受益
比特币在什么条件下会产生回滚
比特币 RPC 接口的作用
ElectrumX 和比特币如何协作为去中心化钱包服务
比特币状态通道和闪电网络的原理
RGB 和 RGB++ 协议
Stacks
Nervos
上面两个项目是目前技术解决方案比较好的 Bitcoin Layer2 (Bitocin 侧链 ) 项目,其他几乎都是抄 ETH Layer2 的实现方案,而且大多做得四不像,的这里不做探讨。
Ethereum RPC 服务节点搭建
Ethereum 使用的签名算法
Ethereum 各套带前缀 RPC 接口的作用
Ethereum 信标链的共识机制
如何质押 ETH 给信标节点
Ethereum 底层数据结构和算法
EVM 原理及源码
EVM 各 op-code 的作用
Ethereum 区块重组和回滚机制
Ethereum 分片链 (EIP4844) 的原理和实现方式
Ethereum 重要的 EIP 协议分析
Ethereum 有哪些客户端,各客户端能实现什么功能
EigenDA
Celestia
NearDA
Anytrust
Eip4844
DA 的实现原理及其类似,使用的技术也是类似的,例如都用到 BLS 签名算法,KZG 零知识证明算法, 纠栅码编解码。只是安全保障源不一样,Eip4844 有 Ethereum 链保证安全性,EigenDA 由 EigenLayer 重新质押协议保证安全性,安全性继承自以太坊;Celestia 和 Anytrust 的安全性由 DAC 委员会来保证。
Arbitrum
Optimistim
Scroll
ZksyncEra
PolygonZkEvm
Linea
Starknet
以上这些项目都是以太坊 Layer2 中的原创项目,吃透这些 L2 项目,绝对是 L2 界的大牛,L2 的学习要点都类似, 主要从以下这些角度去进行学习
Rollup 模块: 数据 rollup 和证明 rollup, 数据一般 rollup 到以太坊或者其他第三方 DA,证明 rollup 到以太坊上,由以太坊上的合约进行验证。
Sequencer: 基于 geth 改进的适配 L2 的 EVM 客户端,有的项目是单 Sequencer,有的项目是去中心化 Sequencer。
验证和证明系统:证明系统分为 Zk proof 和 Fraud proof
ZK proof: 链下 Zk Prove 生成证明,链上 Verifier 合约验证
Fraud proof:链下 rollup 关键交易数据,一旦发生欺诈,链下执行找到不同的 op-code, 链上合约进行验证。
跨链桥:承载 L1<->L2 的资产和消息的跨链
Cosmos 的 SDK X 目录下的各原生模块的功能和源码
IBC 跨链通信协议
Tendermint 项目实现原理和源码
CosmWarsm 实现细节
interchain-security 原理以及实现细节
Cosmos 和 EVM 模块结合实现细节 (Ethermint 项目 )
如何基于 Cosmos 开发自己的公链项目
如何基于 Cosmos 开发 AppChain 项目
什么是 Layer3
市场主流的 Layer3 AppChain 是怎么做的
如何设计开发一条 Layer3 AppChain
DappLink L3 AppChain 是如何实现的
跨链互操作协议解决方案
多重质押协议解决方案
AppChain 解决方案
学会以上公链项目相关的知识,足以在币圈立足,如果觉得不够,推荐学习的项目还有 Solana, Sui 和 Aptos。
以上是从合约,公链,钱包角度出发学习需要掌握的知识,在我们整个课程体系中,我们还会做以下项目实战
基于 DappLink Layer3 的治理和托管模块开发保险产品
基于 DappLink Layer3 的交易模块开发体验和中心化交易所一致的去中心化交易所
基于 LinkLayer 安全质押模型的应用开发
基于 DappLink Layer3 游戏模块开发一道两个小游戏
基于 DappLink Layer3 社交模块和 Parapack 钱包开发社交应用
线上课程:3000USDT/ 人
线下课程:3800USDT/ 人
满 30 人即开班
4.5 个月
天津市西青区
Seek: 10 年区块链开发经验,目前为 DappLink 的 CTO,前 mantle 架构师,The Web3 社区核心贡献者;曾就职于 bybit, 币信, chainup, achain 等知名区块链企业项目, 熟悉以 bitcoin, ethereum, cosmos, op-stack, arbitrum, polygon 和 eigenda 等项目底层实现机制和项目源码。
Wennie: 5 年区块链经验, 曾就职于区块链独角兽企业和 mantle; 参与了知名联盟链和 Mantle 设计,开发和上线,有数据库内核开发经验等。
LiuTian: MPC 技术专家,曾就职于知名 web3 企业, 从 0 到 1 带领团队完成了去中心化基金带单和 MPC 托管钱开发上线, DappLink 跨链互操作协议核心开发者。
Ron: 智能合约开发专家, 拥有 10+ 年的开发经验,5 年的 web3 开发经验,带领团队从 0 到 1 开发了多款 web3 链游项目,DappLink 多重质押协议核心开发者。
八. 报名链接
如果大家感兴趣,请点击报名:
https://docs.google.com/forms/d/e/1FAIpQLSeyuqz0TCig8zHm45tNRt_lo6faxHqNDYVmKEC9DKjX5AXkoQ/viewform
附:The Web3 社区
github: https://github.com/the-web3
x: https://twitter.com/0xtheweb3cn
telegram: https://https://t.me/+pmoh3D4uTAFjNWM1
discord: https://discord.gg/muhuXRsK
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。