什么是web3?从状态机到去中心化金融,带你认识最清晰的Web3本质

Chongxi admin

0. 引

Web3这个词已经被市场营销号嚼烂了。本文旨在向你系统拆解下被营销号包裹的Web3本质。我们抹去黄金之上的泡沫,带你认识计算机科学历史上最激进的一次架构迁移:信任从中心化的人类机构,转移到去中心化的数学协议之上


1 节点如何互联

Web3 没有中心服务器,只有对等节点。
问题是:在没有 DNS 服务器的情况下,我的电脑怎么知道你在哪里?

1.1 节点发现协议 Discovery Protocol

这完全不同于 HTTP。它使用的是基于 Kademlia 算法的 DHT分布式哈希表

  • Enode ID: 每个节点的身份证

    • 格式:enode://<128位公钥>@<IP地址>:<端口>
    • 当你启动一个 Geth 客户端,它会生成这个唯一的 URL
  • 引导节点 (Bootnodes):

    • 这是代码里写死的种子节点列表
    • 新节点上线时,先去,质询 Bootnodes 在线节点
    • Bootnodes 返回一堆它知道的 IP。你的节点再去连这些 IP,像病毒扩散一样Gossip找到整个网络

1.2 通信协议 RLPx

一旦找到了对方,怎么发数据?不可能是http
以太坊使用的是 RLPx (Recursive Length Prefix Transport Protocol)

  • 握手 (Handshake):

    1. A 发送 Auth 消息(用对方公钥加密的 ECDH 密钥交换)
    2. B 返回 Ack
    3. 建立加密通道(TCP 长连接)
  • 多路复用 (Multiplexing):

    • 在这个 TCP 连接里,同时跑着不同的子协议:
    • eth/66: 交换区块头、交易数据
    • snap/1: 快速同步快照数据

2. 数据结构

区块链并不是一个巨大的 Excel
如果用 Excel,当你只修改一行数据,整个文件的哈希值都会变,你需要重算 1TB 数据的哈希,这很显然不显示

Web3 使用的是 Merkle Patricia Trie (MPT) 默克尔压缩前缀树

2.1 什么是树

这是一种结合了哈希树Merkle Tree和前缀树Radix Trie的变态结构

  • Key: 账户地址的哈希(Keccak256(Address)
  • Value: 账户内容的 RLP 编码([Nonce, Balance, StorageRoot, CodeHash]

2.2 节点的四种形态

在数据库底层,MPT 树由四种节点拼凑而成:

  1. Leaf Node (叶子节点): [Key, Value]。这是真正存数据的地方(比如你的余额)

  2. Extension Node (扩展节点): [Shared Key, Next Node Hash]

    • 如果一堆地址都是 0xabc... 开头,我们不需要存一万次 0xabc,只存一次,下面挂一个指针。这叫路径压缩
  3. Branch Node (分支节点): 一个长度为 17 的数组

    • 前 16 个对应十六进制的 0-f
    • 决定了路径是往 0 走还是往 f
  4. Null Node: 空节点

2.3 状态更新

当你修改余额时:

  1. 我们不复制整棵树。
  2. 我们只修改受影响的叶子节点
  3. 然后重新计算这条路径上所有父节点的 Hash,直到根节点
  4. 旧的节点依然存在(这就实现了历史回溯),但生成了一个新的 Root Hash
  5. 这个新的 Root Hash 被放进了新的区块头里

3.EVM 的微观执行

EVM 是如何把字节码变成转账的?

3.1 内存模型详解

EVM 运行时有三块区域,性质完全不同:

  1. Stack (堆栈):

    • 结构: LIFO (后进先出),最大深度 1024
    • 作用: 所有的计算(加减乘除)都在这里发生
    • 指令: ADD 从栈顶拿两个数,相加,结果推回栈顶
    • 特性: 几乎免费(Gas 极低),但随着函数结束消失
  2. Memory (内存):

    • 结构: 线性字节数组
    • 作用: 临时存放字符串、数组、返回值
    • 成本: 它是按平方计费的,你申请的内存越大,Gas 呈指数级上涨(防止你把节点的 RAM 撑爆)
    • 特性: 交易结束后数据清零
  3. Storage (存储):

    • 结构: 键值对映射 (Key-Value Map)
    • 作用: 永久写入区块链状态(MPT 树)
    • 指令: SSTORE (写), SLOAD (读)
    • 成本: 天价。写一个非零值会需要 20000 Gas
    • 特性: 永久保存,全网同步

3.2 具体指令的执行流

假设代码是 a = b + c。在 EVM 字节码里是这样的:

  1. PUSH1 0x05 (把数值 5 推入栈) -> Stack: [5]
  2. PUSH1 0x03 (把数值 3 推入栈) -> Stack: [3, 5]
  3. ADD (加法操作)
    • CPU 弹出 3 和 5。
    • 计算 3+5=8。
    • 把 8 推入栈。
    • Stack: [8]
  4. PUSH1 0x00 (准备存到 Slot 0) -> Stack: [0, 8]
  5. SSTORE (存储指令)
    • CPU 弹出 0 (Key) 和 8 (Value)。
    • 物理动作: 在 LevelDB 里写入 MPT_Update(Key=0, Value=8)
    • 扣费: 扣除用户 20000 点Gas

4. 交易层

一笔交易在网线上传输时,不是 JSON,而是一串被序列化的二进制流

4.1 Recursive Length Prefix)

这是以太坊发明的一种极简序列化格式。
如果是一个字节,直接存。如果是一串字节,前面加一个前缀表示长度,这极致压缩了空间

4.2 交易结构

一笔 Raw Transaction 包含以下字段(按顺序 RLP 编码):

  1. nonce: 计数器(防重放)
  2. gasPrice: 你愿意为每单位 Gas 出多少钱
  3. gasLimit: 你最多愿意花多少 Gas
  4. to: 目标地址(如果是空,表示创建新合约
  5. value: 转账金额(Wei)
  6. data: 这就是智能合约的函数调用数据(比如 0xa9059cbb...
  7. v, r, s: ECDSA 数字签名

4.3 签名原理

当你点击 发送交易 时,你的钱包在做什么?

  1. 哈希: 计算 h = Keccak256(RLP(nonce, gasPrice, ... data))
  2. 签名: 使用你的私钥 和随机数 ,根据椭圆曲线公式计算出
  3. 打包: 把 v, r, s 附在交易末尾

节点端验证:
节点收到交易,不需要知道你的私钥。它通过 v, r, sh,利用椭圆曲线逆运算,可以算出一个公钥
如果 Address(Q) == From_Address,则签名有效,交易合法

5. 共识层

为什么几万个节点能达成一致?

5.1 验证者工作流

现在可不再是挖矿算Hash,而是在场证明Attestation

  1. 质押 Staking: 你必须把 32 ETH 锁进存款合约。这笔钱是你的人质
  2. 随机抽签 Randao: 系统每 12 秒随机选出一个 提议者 Proposer 又称矿工
  3. 提议: 被选中的人打包交易,广播新区块
  4. 见证 Attestation: 其他几千个验证者组成委员会,对这个区块进行签名投票,同意这个块合法

5.2 惩罚机制

  • 双签 Double Signing: 如果你在同一个高度签署了两个不同的区块(试图让区块链分叉)
    • 你的 32 ETH 会被瞬间扣除 1 ETH 甚至更多,并被踢出网络
  • 离线惩罚 Inactivity Leak: 如果你掉线了,未能参与投票
    • 你的余额会像漏水一样慢慢减少,直到你修好服务器或钱被扣光

6. 智能合约

在此之前,我们补一些技术术语

1. 预言机 Oracle

  • 区块链是封闭的,它不知道现在 ETH 的美元价格是多少,也不知道今天气温多少
  • 这就产生了一个把现实世界数据(价格、天气)写入区块链的桥梁服务
  • 在杠杆中,它是裁判。它说降价了,合约会就执行清算

2. Gas

  • 为什么我在链上点一下就要花几十块钱?
  • 因为执行智能合约需要消耗全网节点的算力。Gas 就是你付给矿工的计算服务费
  • 代码越复杂(循环越多、存数据越多),Gas 越贵

3. DApp 去中心化应用

  • 定义:Frontend (网页/APP) + Smart Contract (后端)
  • 你看到的漂亮网页(比如 Uniswap 的界面)只是一个壳,它负责把你的点击转化为交易指令发送给区块链

4. DAO 去中心化自治组织

  • Aave 借贷协议里的 利息 是谁定的?
  • 是持有治理代币Token的人投票决定的,这就像公司的股东大会,但是投票权是根据你手里币的多少来由代码自动统计的

6.1 定义

这玩意既不智能,也不合约

在计算机科学中,智能合约的准确定义是:

存储在区块链上的、地址唯一的、不可篡改的、确定性执行的字节码

  • 它没有 AI,不会思考。它只是一个死板的 If-This-Then-That的脚本
  • 它没有法律效力(目前大多数国家),它更像是一个自动贩卖机的机械装置,算不上合约

6.2 贩卖机模型

这是理解智能合约最经典的教科书模型(由尼克·萨博提出):

  1. 传统交易(Web2/柜台):你把钱给售货员 售货员确认金额 售货员拿可乐给你 找零。
    • 风险:售货员可能拿钱跑路,可能算错账,可能不想卖给你
  2. 智能合约(Web3/贩卖机):你把钱投入机器槽口 齿轮转动 此时如果金额足够,可乐必须掉下来
    • 没有中间人。一旦你投币,结果是物理/数学上确定的

6.3 代码解析

我们用最通用的语言 Solidity(以太坊的编程语言,长得像 JavaScript/C++)写一个最简单的存钱罐合约

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// 1. 声明版本
pragma solidity ^0.8.0;

// 2. 定义合约(就像定义一个 Class 类)
contract PiggyBank {

// --- 状态变量 (写在区块链硬盘上的数据) ---
address public owner; // 存钱罐的主人是谁?
uint256 public balance; // 里面有多少钱?(uint256 是正整数)

// --- 构造函数 (部署时只运行一次) ---
constructor() {
owner = msg.sender; // 谁把这个合约部署上链,谁就是主人
balance = 0;
}

// --- 函数:存钱 ---
// payable 关键字表示这个函数能接收真金白银(ETH)
function deposit() public payable {
balance += msg.value; // 余额增加
}

// --- 函数:取钱 ---
function withdraw(uint256 amount) public {
// A. 身份验证
require(msg.sender == owner, "你是所有者吗你就整,滚出去");

// B. 余额检查
require(amount <= balance, "bro没钱了");

// C. 转账操作
balance -= amount;
payable(msg.sender).transfer(amount);
}
}
  1. 部署
    当你把这段代码通过钱包发送到区块链时,它会被编译成字节码 (Bytecode)(一堆机器才看得懂的 60806040...),并分配到一个以 0x 开头的合约地址

    • 从此,这段代码无法修改,无法删除
  2. 调用
    当你在这个合约上点击 存钱 按钮时,其实是向这个合约地址发送了一笔交易

    • EVM会被唤醒
    • 它加载这个合约的代码
    • 它执行 deposit 函数
    • 它修改 balance 变量的状态
    • 全网所有节点同步更新这个变量
  3. 不可篡改
    注意 withdraw 函数里的 require(msg.sender == owner)

    • 在现实银行,如果有人拿着枪指着柜员,柜员可以把你的钱转走
    • 在智能合约里,如果私钥签名不对,莱斯特来了也转不走这笔钱。代码逻辑是绝对的铁律

7. DeFi 去中心化金融

7.1 Web3杠杆

  • 传统金融(信用贷)
    你想借100万炒股。券商/银行看你的工资流水、房产证、信用分。如果觉得你靠谱,就借给你

    • 这基于人的信用
  • Web3 金融(抵押贷)
    区块链不知道你是谁,也没法法院起诉你。它怎么敢借钱给你?
    答案是:超额抵押 噔 噔 咚

7.2 杠杆运作

假设你手上有 1 个 ETH(价值 5000,你想加杠杆赚更多

第一步:抵押
你把 1 个 ETH 存入 Aave 的智能合约

  • 你的资产:$3000 (ETH)
  • 合约给你一个健康因子

第二步:借贷
合约允许你借出相当于抵押物价值 80% 的稳定币(USDC)
你借出 2400 USDC

  • 现在你手里有:1 ETH (在合约里) + 2400 USDC (在钱包里)
  • 注意: 这时候还没有杠杆

第三步:循环 这才是真正的杠杆
你拿着借来的 2400 USDC,去交易所再买入 0.8 个 ETH
然后,你把这 0.8 个 ETH 再次存入 合约

  • 现在合约里有:1.8 ETH
  • 合约发现你抵押物变多了,允许你再借 0.8 ETH 对应的 80% 资金,如此循环

最终
你本金只有 5000 甚至更多的 ETH

  • ETH 涨 10%:你赚的是 3000 的 10%。这就是杠杆

7.3 清 算

既然是借钱,合约必须保证借款人的本金不亏损。
合约里写死了一行代码:清算阈值

假设 ETH 价格暴跌
你的 1.8 ETH 贬值了,价值快要低于你借出来的 USDC 总额了
一旦触碰设定的数学红线:

  1. 预言机 告诉合约:现在 ETH 跌到 $2000 了
  2. 合约触发 Liquidate 函数
  3. 合约自动拍卖你抵押的 ETH,用来偿还你借的 USDC
  4. 如果还有渣子会退给你

在这个过程中,没有催收电话,没有宽限期,只有代码被执行,你的本金可能会一瞬间蒸发

7.4 超额抵押

这里我们深入讲解传统借贷和web3

  • 传统银行:

    • 你什么都不用押,凭工资条借了 10 万块
    • 你跑路了: 银行亏 10 万。银行报警,法院查封你财产,上征信黑名单
    • 你要知道的是,银行在害怕你跑路
  • Web3 协议:

    • 你要借 80 块钱(USDC),你必须先往智能合约里存入价值 100 块钱的比特币(BTC)
    • 你拿着 80 块钱跑路了
    • 结果协议手里扣着你价值 100 块的比特币。协议把你的比特币卖了,扣除借给你的 80 块,甚至还赚了
    • 协议压根不在乎你跑不跑路,他们甚至希望你跑路

在去中心化世界,没有警察和法院,代码只相信扣在手里的资产

7.4.0 为什么要在Web3借贷

  • 这时候估计会有人要骂,我有那一百块为什么不直接花掉?我还借他干嘛?

如果用 Web2 的逻辑(找银行贷款买房),Web3 的超额抵押简直是脑子有病

但我要告诉你的是

你把 Web3 的借贷当成了消费贷救济贷
目前的 DeFi 借贷本质上是金融杠杆工具资产管理工具

真正去借这种钱的人,只有以下四种。每一类都非常精明,并不是因为他穷


7.4.1 赌徒

这是 DeFi 借贷最大的用途(占 80% 以上)。他们借钱不是为了花,而是为了买更多同一种资产

你看好比特币(BTC)要大涨。你手里有价值 10 万的 BTC

  • 不借钱: BTC 涨 10%,你赚 1 万
  • 去 Aave 借钱:
    1. 把 10 万 BTC 抵押进去
    2. 借出 8 万 USDT(稳定币)
    3. 转身去交易所,把这 8 万 USDT 再买成 BTC
    4. 现在你手里实际控制了 18 万 的 BTC(虽然有 10 万抵押着)
  • 结果: BTC 涨 10%,你赚 1.8 万。你的收益放大了 1.8 倍

这根本不是借钱过日子,这是融资炒股。他们愿意抵押,是因为他们坚信手里的抵押物会升值,不想卖掉它,但又想要更多的资金来扩大收益


7.4.2 空头

如果你觉得某个币要跌,你怎么赚钱?在现货市场你只能低买高卖,但在借贷协议里你可以做空

你觉得 A 马上要归零了

  1. 你抵押 1000 USDC(真金白银)
  2. 借出 100 个 A(价值 800 USDC)
  3. 立刻去交易所把这 100 个 A 卖掉,换回 800 USDC
    • 现在你手里有:1000 抵押 + 800 现金 = 1800 资产
    • 你欠协议:100 个 A
  4. 等待 A 暴跌 50%
  5. 你花 400 USDC 就能买回 100 个 A
  6. 把这 100 个币还给协议
  7. 你当初卖了 800,现在买回来只花了 400,净赚 400 USDC

借贷协议是做空机制的基础设施。没有借贷,就没有做空


7.4.3 屯币

这是富人的游戏规则。在美国或很多国家,卖出资产是要交巨额资本利得税的,但借款不用交税

你是一个以太坊早期投资者,手里有 1000 个 ETH(假设价值 300 万美元)你需要 10 万美元去买辆保时捷

  • 方案 A(卖币): 你卖掉 33 个 ETH

    • 税务局:你当年成本才几块钱,现在卖这么贵,交 20%-40% 的税
    • 后果:你亏了巨额税款,而且你永远失去了这 33 个 ETH(以后涨了跟你没关系)
  • 方案 B(抵押): 你抵押 ETH,借出 10 万 USDT 提现去买车

    • 税务局:这是债务,不是收入,不用交税
    • 后果:你开上了保时捷,而且那 1000 个 ETH 还在你名下。只要 ETH 不暴跌,你以后慢慢还利息就行;如果 ETH 暴涨,你更是赚翻了

这就是著名的富人策略:Buy, Borrow, Die (买入资产,抵押借款消费,带着债务离世)。DeFi 让普通人也能用这个策略


7.4.4 农民

这时候,借钱是为了赚别处的利息

  • Aave 上的借款利息是 3%
  • Uniswap 上某个资金池的挖矿回报率是 10%
  • 操作: 你抵押资产,以 3% 的成本借钱,去赚 10% 的收益
  • 结果: 无风险或低风险 套取 7% 的利差

7.4.5 事实很残酷

或许要有人问

  • 如果真把这当作救济债,没有足够的价值去抵押怎么办

答案极其残酷:目前的 DeFi 救不了他们

  • CeFi/银行:信用放贷
    银行借你钱,是因为看了你的工资流水、工作证明、征信报告。银行相信你未来能赚钱,所以即便你现在没钱,也敢借给你。这叫信用贷

  • DeFi:资产放贷
    区块链不知道你是谁,不知道你是不是在那家大公司上班,也没法在你赖账时把你送进监狱
    所以,区块链完全不相信人性。它只相信扣在手里的钱

Web3 正拼命想解决这个问题。现在的热门方向叫 RWA (现实资产上链)DID (去中心化身份)

  • 如果未来能把你的房产证做成 NFT 抵押?(RWA)
  • 如果未来链上能形成一套链上芝麻信用分?(Soulbound Token / DID)

只有到了那一天,DeFi 才能真正服务那些 没钱但有信用 的普通人。
现在的 DeFi,本质上是一个服务于资本(资产持有者)和交易员的超级赌场及资金流转工具,而不是慈善机构或普惠银行。


7.5 谁来清算?

  • 假设你抵押了 100 块的 BTC,借了 80 块出来。突然 BTC 暴跌,跌到 81 块了,马上就要资不抵债了(跌破 80),谁来卖掉你的债?

并没有人坐在电脑前盯着你的账户
执行清算的是一群机器人,我们称之为 清算人

流程如下:

  1. 触发
    智能合约里写死了一条规则:如果(抵押物价值 < 借款金额 * 1.05),允许任何人调用 liquidate() 函数

  2. 巡逻
    全世界有成千上万个 24 小时运行的脚本,它们时刻监听着链上的每一个借贷账户

  3. 发现
    当你的 BTC 价值跌到红线那一瞬间,这几千个机器人会像鲨鱼闻到血腥味一样,争先恐后地向智能合约发送交易,试图触发 liquidate 函数

  4. 处决

    • 机器人帮你是还一部分欠款(比如还 40 块)
    • 作为回报,合约会把你的 BTC 以打折价(比如 5% - 10% 的折扣)卖给这个机器人
  5. 结局

    • 协议收回了欠款
    • 机器人赚到了差价(比如它花 40 块帮你还债,拿走了价值 44 块的 BTC)
    • 你的 BTC 被低价强制卖掉了,你亏大了

清算你的没有官方,而是为了赚取那 5% 罚金的第三方套利机器人。这是一种基于贪婪的自我维护系统


7.6 闪电贷

在 Web3 里,只有一种情况你可以不抵押一分钱就借走几个亿。这叫闪电贷
这也是很多黑客攻击的手法

但它有一个极其硬核的物理限制:原子性 Atomicity

你写一个智能合约,包含三步逻辑:

  1. 向 Aave 借 1 亿美元(无抵押)
  2. 拿这 1 亿去炒作、套利、搬砖(随便你干什么)
  3. 在同一笔交易结束前,必须连本带利把钱还回去

如果你在第 2 步亏了钱,导致第 3 步还不上钱,会发生什么?
EVM会判定这笔交易失败,整个过程回滚

就像时间倒流一样:
在区块链的历史上,你从来没有借过这笔钱,这 1 亿美元从来没有离开过金库。你只需要支付一点点 Gas 费,证明你曾经 试图 这么做过

所以,即使是闪电贷,你也无法卷款跑路,因为如果你不还钱,这笔借款在物理时间轴上就不存在


8. 自动化做市商

在 Web3,为了节省昂贵的存储费(存几万个挂单在链上太贵了),我们发明了

8.1 恒定乘积公式 CPMM

这是一个极其优雅的数学模型,它不需要任何做市商挂单,只要有资金池就能交易

  • 模型: 一个池子里有两种资产,A (数量 ) 和 B (数量 )
  • 铁律: 在交易前后,两个池子的数量乘积 必须保持不变(忽略手续费)

8.2 交互推导

假设池子里有:

  • ETH (): 10 个
  • USDC (): 30,000 个
  • 当前价格: 3000 USDC/ETH

你想用 USDC 买 1 个 ETH

  1. 你给合约发了若干 USDC(设为
  2. 你想拿走 1 个 ETH ()
  3. 计算:
    • 池子剩下的 ETH 必须是:
    • 为了维持 ,池子里的 USDC 必须变成:
    • 所以,你必须投入的 USDC () 是:
  • 虽然初始价格是 3000,但你买这 1 个 ETH 实际上花了 3333.33
  • 滑点 Slippage: 这一单把价格从 3000 推高到了 3333。买得越多,单价越贵。这就是供需曲线的自动调节

8.3 无常损失 Impermanent Loss

这是作为流动性提供者 LP 必须懂的数学陷阱

  • 当你把 ETH/USDC 存入池子做市,如果 ETH 暴涨,你的 ETH 会被套利者买走(因为池子里便宜),你会满手全是贬值的 USDC
  • 自动卖出上涨资产,买入下跌资产。这是一种做空波动率的策略

9. Oracle预言机实现

智能合约最大的缺陷是 它是瞎子
EVM 是确定性的,无法进行 HTTP 请求(比如 GET binance.com/price),因为不同节点在不同时间请求,结果可能不同,共识就会崩溃

Chainlink 是如何把现实世界带入区块链的?

9.1 架构设计

  1. 链上部分: 一个简单的存储合约
    1
    2
    3
    4
    contract PriceFeed {
    int256 public price;
    function updatePrice(int256 _price) public { ... }
    }
  2. 链下部分 Oracle Nodes: 几百个独立运行的服务器,监听交易所 API

9.2 数据上链流程

  1. 聚合 Aggregation: 21 个节点分别从币安、Coinbase 获取 ETH 价格
    • 节点 A: 3001
    • 节点 B: 3002
    • 节点 C: 2999
  2. 共识: 它们在链下(Off-chain P2P 网络)对数据进行签名,取中位数。中位数能过滤掉个别恶意报价
  3. 写入: 一个指定的节点把这一包带有 21 个签名的最终数据,发送给链上合约
  4. 验证: 链上合约验证签名数量是否达标,然后更新 price 变量

这就是为什么 DeFi 借贷协议依赖 Chainlink。如果 Chainlink 被黑,所有借贷协议都会因为价格错误而发生连环清算


10. 扩容

以太坊 L1 太贵太慢(TPS ~15)。我们需要在不牺牲安全性的前提下扩容,因此发明了Rollups (打包)

核心思想在链下执行计算,在链上存结果和证据

10.1 乐观汇总

代表:Arbitrum, Optimism。

  • 工作原理:
    1. L2 节点在链下飞快地跑交易
    2. 每隔几分钟,把几千笔交易压缩,计算出一个新的 State Root
    3. 把这个 Root 发布到以太坊 L1
    4. 乐观假设: L1 默认认为这个 Root 是对的,直接接受
  • 欺诈证明 (Fraud Proof):
    • 如果在 7天挑战期 内,有人发现这个 Root 是错的(比如 L2 节点私自改了余额)
    • 挑战者提交一段数学证据给 L1
    • L1 重新执行那一笔交易。如果发现确实错了,L2 节点被罚没押金,回滚状态
  • 代价: 提现需要等待 7 天,也就是挑战时间,可以理解为冷静期

10.2 零知识汇总

代表有:zkSync, Starknet

  • 工作原理:
    1. L2 节点打包交易
    2. 数学魔法: 生成一个 零知识证明 (SNARK/STARK)。这个证明用密码学保证了:我刚刚执行的这 1000 笔交易,其状态变化确实导致了新的 Root,绝无作假
    3. 把 Root + 证明 提交给 L1
    4. L1 的验证合约校验这个证明。如果通过,立即确认状态
  • 优势: 它是数学真理,不需要等待 7 天
  • 劣势: 生成证明极其消耗 CPU 算力

11. 黑暗森林

在 Web3,黑客攻击不是绕过防火墙,而是合法地调用你的代码

11.1 重入攻击 Reentrancy Attack

这是 The DAO 事件(导致以太坊分叉)的罪魁祸首

漏洞代码示例:

1
2
3
4
5
6
7
8
9
10
function withdraw() public {
uint bal = balances[msg.sender];
require(bal > 0);

// 1. 转账
(bool success, ) = msg.sender.call{value: bal}("");

// 2. 扣余额
balances[msg.sender] = 0;
}

攻击原理:

  1. 黑客写了一个恶意合约
  2. 黑客调用 withdraw()
  3. 目标合约执行到 msg.sender.call(转账)时,会触发恶意合约的 fallback 函数
  4. 恶意合约的 fallback 函数里写了一行代码:再次调用目标合约的 withdraw()
  5. 此时,目标合约的第 2 步(余额归零)还没执行,所以 bal > 0 依然成立
  6. 结果: 像递归一样,黑客把钱提了一次又一次,直到把池子提空,最后才执行余额归零

如何防御?: checks-effects-interactions 模式(先扣款,再转账)

11.2 抢跑与三明治攻击 MEV

内存池 是完全公开的。矿工/验证者就像拥有上帝视角

你发了一笔交易:用 1000 USDC 买 ETH。这笔大单会把 ETH 价格推高 1%

攻击者 (Searcher Bot) 监测到了这笔交易:

  1. 抢跑 (Front-run): 机器人发一笔交易买入 ETH,并将 Gas 费设得比你高。矿工会先打包它的交易。
    • 结果机器人把你买入前的价格抬高了
  2. 你的交易执行: 你以更高的价格买入了 ETH(你亏了)。价格进一步拉高
  3. 夹尾 (Back-run): 机器人紧跟着你的交易卖出 ETH
    • 结果机器人低买高卖,吃掉了你的滑点

这就是 Maximal Extractable Value。这是区块链这种公开透明账本的必然副作用


12. NFT

大概你也会认为 NFT 就是 买一张图片,这是最大的误解
你花几十万买个猴子头像,你买到的根本不是那张图片

12.1 核心原理

想象一下,你花钱买了一颗星星的命名权

  • 你得到星星了吗? 没有,星星还在天上,谁都能看,谁都能拍照
  • 那你买到了什么? 你买到了一张,上面写着:坐标 ~ 的这颗星星,现在归Chongxi
  • 谁承认这张纸? 假如有一本全人类公认的、绝对无法涂改的天文学大账本(区块链),全世界只有这一本账本

NFT 就是这本大账本上的一行字:

编号 #8888 的东西,属于 #你的钱包地址

至于这个 #8888 是一张图片、一首歌,还是一把游戏里的屠龙刀,区块链其实根本不在乎。它只在乎确权

12.2 为什么比特币不是 NFT?

  • 比特币(同质化)= 钞票
    你手里的一百块钱,和我手里的一百块钱,是一模一样的。咱俩换一下,毫无影响。这就叫同质化

  • NFT(非同质化)= 房产证
    你手里的是 1排1座 的票,我手里是 最后一排厕所门口 的票
    虽然都是票,但价值完全不一样,不能随便换。这就叫非同质化

所以在区块链上,比特币只记录 你有几个币
而 NFT 必须记录 你拥有的是哪一个编号

12.3. 最大的谎言

NFT 最荒诞、也最技术性的地方

因为区块链简直是寸土寸金。要在以太坊链上存一张普通的 1MB 高清大图,光存进去的手续费可能就要几万甚至几十万人民币,哪怕是土豪项目方也存不起

那怎么办?存链接

你的 NFT 上,其实只写了一行像网址一样的东西:

TokenURI:https://…/oiiaoii.jpg

残酷的是:

  • 你花了 100 万买的 NFT,在区块链上只是一行代码,这行代码指向了某台服务器上的一张图
  • 如果项目方没钱续费服务器了,或者项目方跑路把服务器关了,你的 NFT 还在链上,但那个网址打不开了
  • 结果你花 100 万买的房产证,变成了一张白纸

解决办法
现在的良心项目,会把图片存在 IPFS(一种去中心化硬盘)
IPFS 的特点是:只要世界上还有一台电脑存着这张图,链接就永远有效。这就相当于把 房产证 指向了一个永远不会倒闭的图书馆

12.4 何为拥有

很多人最不服气的地方便是:这图片我也能下载,我也能设成头像,凭什么要花 100 万?

  • 你去卢浮宫,可以对着《蒙娜丽莎》拍照,可以把照片洗出来挂家里,甚至画得比真迹还清楚
  • 但是,当你拿着照片去苏富比拍卖行,没人会理你
  • 只有那个持有真品证书的人,才能把画卖出天价

在 Web3 的世界里,所有人的钱包都是透明的
你有没有这个 NFT,大家在链上一查就知道

  • 你下载图片设头像 大家查你的钱包,发现里面是空的,纯装
  • 你买了 NFT 设头像 大家查你的钱包,发现真的有记录,我去碰到老资历了

NFT 的价值,不在于 看 ,而在于 被全网验证的炫耀权

12.5 授权机制

你在交易平台卖 NFT 时,你会发现你不需要把 NFT 转给平台
那平台怎么能在你睡觉的时候,自动把你的 NFT 卖给别人呢?

这里用到了一个类似 房屋中介 的机制:

  1. 授权:
    你第一次上架时,钱包会弹窗让你点确认。
    这一步其实是在链上签了一份委托书

    我授权 Opensea 这个中介,可以随时动用我钱包里的这张名为 #8888 的房产证

  2. 签名:
    你填个价格:10 ETH
    这一步其实是你写了一张条子

    谁给我 10 ETH,中介就把房产证给他
    这张条子没上链,只是贴在了 Opensea 的服务器上(为了省手续费)

  3. 成交:
    买家来了,看中了。买家把 10 ETH 给 Opensea 的智能合约
    合约拿着你的委托书,直接把 NFT 从你的钱包里抓出来,塞给买家,同时把钱给你

为什么很多人点个链接 NFT 就没了?
因为骗子做的钓鱼网站,伪装成抽奖页面,弹出的那个确认框,其实是最高权限委托书
你一旦点了确认,骗子就有权搬空你所有的 NFT,根本不需要知道你的密码

13. 真相

只谈颠覆不谈风险是骗子,只谈愿景不谈现状是忽悠

目前的 Web3,极其撕裂。一方面是天才的数学和精妙的架构,另一方面是遍地的骗局和低效的重复建设

全世界都在修路(造公链),修了一万条高速公路,但路上跑的只有几辆玩具车(应用),而且这几辆车上坐的全是想在路上捡钱的赌徒

为什么会这样?这是激励机制的错配造成的

  • 发公链太赚钱了:

    • 如果你开发一个 App(比如去中心化的YouTube),你需要累死累活运营用户,变现极难

    • 但如果你开发一条公链(Layer 1 / Layer 2),你发一个币,讲一个 我是更快的以太坊的故事,资本就会疯狂涌入

    • 导致工程师们不去解决真实世界的痛点,而在疯狂内卷 TPS(每秒交易量)。现在的公链性能早就过剩了,缺的是人用

    • 以太坊、Solana、Aptos、Sui……每一条链都是一个独立的国家。用户资产跨链极难,体验极差。这就像你用微信还要分 Android版 和 iOS版,而且两边账号数据还不互通

  • 真正的DApp并未爆发:

    • 目前的 去中心化应用 只有三类还在活跃:借贷(DeFi)、赌博(GameFi)、炒图(NFT)
    • 并没有出现像 Uber、Wechat 这样真正改变普通人生活的消费级应用

如果你要入行或投资,必须直面这四个死神

A. 不可挽回的技术死亡
在 Web2,微信崩了可以修,支付宝被黑了数据可以回滚
在 Web3,Code is Law 是一把双刃剑

  • 你把钱转错地址了?永久消失
  • 你把私钥弄丢了?无人能救
  • 智能合约有 Bug 被黑客掏空了?那是 合法的 代码执行,没人赔你
    • 对普通用户来说,这种自我主权带来的心理负担太重了。很多人根本接不住这种自由

B. 庞氏与泡沫

Web3 目前 90% 的代币经济模型(Tokenomics)本质上是庞氏(Ponzi)

  • Play-to-Earn: 钱从哪来?从后进场的玩家手里来。一旦没新人进场,币价瞬间归零(如 Axie Infinity)
  • 高收益挖矿: 承诺年化 100% 的收益?那是用印出来的通胀币给你的
  • 空气币: 没有现金流,没有盈利能力,市值全靠共识(也就是情绪)。情绪一崩,价值归零

C. 监管铁拳
最大的灰犀牛

  • 反洗钱 (AML): 只要监管层掐断 法币出入金通道(让银行不给交易所转账),Web3 就会变成局域网里的自嗨,流动性枯竭
  • 证券认定: 如果美国 SEC 认定大部分代币是 证券,那么所有的交易所都要持牌,大部分项目方都要坐牢或交巨额罚款

D. 中心化的伪装

很多号称“去中心化”的项目,其实控制权在 3 个人的多签钱包里。

  • 服务器在 AWS 上
  • 前端在 Cloudflare 上
  • 甚至节点都是项目方自己跑的
  • 一旦出事,这比银行还危险,因为银行受监管,他们不受监管

14. 泡沫下的黄金

既然全是问题,为什么还要研究它?为什么全世界最顶尖的精英,华尔街和硅谷最聪明的大脑还在往里冲?

因为泡沫之下,物理层面的变革已经发生了。就像 2000 年互联网泡沫破裂,Pet.com 死了,但互联网留下了

14.1. 支付革命

这是目前 Web3 唯一真正的大规模应用

  • 在阿根廷、土耳其、尼日利亚等通胀严重的国家,普通人把积蓄换成 USDT/USDC 存在手机里
  • 这并不是为了炒币,而是为了生存。它让一个没有美国银行账户的非洲人,拥有了持有美元资产的权利。这在人类历史上是第一次
  • 现在汇款要几天,收几高手续费;用链上转账,几秒钟,几分钱,全天候。银行的 SWIFT 体系注定会被淘汰

14.2 资产代币化

别再炒你那破图片了,未来炒的是现实世界,把美债、房地产、股票映射到链上

*   你可以在周日凌晨 3 点,把你的 100 块钱美债卖掉,换成一杯咖啡
*   你可以买 0.0001 份纽约的一栋大楼的收租权。
  • 逻辑: 并不是为了去中心化,而是为了流动性全球化。黑石(BlackRock)等巨头正在入场,这才是万亿级的市场

14.3 数据主权与数字身份

这是对抗 AI 时代唯一的武器

  • 在 AI 时代,怎么证明 我是人?怎么证明 这个作品是我画的,不是 AI 生成的?
  • Web3 的解法: 你的私钥签名是无法伪造的数字指纹
  • 你的社交关系、你的医疗数据、你的创作内容,不再存在腾讯或 Google 的服务器里,而是加密存在 IPFS 上,钥匙在你手里。任何 App 想用数据,必须经你授权(甚至要付费!)

14.4 无摩擦的全球协作

  • 虽然现在的 DAO 很乱,但代码级公司的形态是先进的
  • 没有财务部门(链上自动记账),没有跨国转账障碍,根据贡献(代码提交量/投票)自动发工资。这对于开源社区和全球化组织是降维打击

15. 结

我作为个人开发者对Web3的看法

在 Web2,我们相信服务器管理员是善良的 Don't be evil
在 Web3,我们假设环境是恶意的,但依靠密码学和博弈论,系统依然能正确运转 Can't be evil

目前的 Web3 目前处于 1995 年的互联网1840 年的淘金热 的叠加态

  • 它混乱、野蛮、充满骗子和强盗
  • 但它脚下确实埋着石油和黄金,而且铁轨已经铺好

不要做那个在路边鼓掌的人,也不要做那个在赌场里红眼的赌徒

要做那个卖铲子、修铁路、或者在荒原上盖起第一家真正超市的engineer

  • 标题: 什么是web3?从状态机到去中心化金融,带你认识最清晰的Web3本质
  • 作者: Chongxi
  • 创建于 : 2025-11-24 10:34:39
  • 更新于 : 2026-01-03 03:01:44
  • 链接: https://blog.chongxi.us/2025/11/24/whatIsWeb3/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。