这一页只做速查,不做解释。 每条给定义和出处,为什么成立要回原讲看

一、信任模型与共识

术语 定义 / 判据 出处
双花 同一笔资金被花费两次。本质是排序问题,不是验证问题 1
女巫攻击 单个实体伪造大量身份获取不成比例的影响力 1
预言机问题 链能保证数据一致,不能保证数据为真 1
安全性(Safety) 两个诚实节点永不在同一位置确定不同的值。“不会出错” 2
活性(Liveness) 被提交的命令最终会被确定。“不会卡住” 2
同步 / 异步 / 部分同步 消息上界已知 / 无上界 / GST 之后才有上界 2
拜占庭故障 任意行为:撒谎、发矛盾消息、串通、选择性沉默 2
n ≥ 3f + 1 等待时只能等 n−f 个,其中最多 f 个说谎 ⟹ n−2f > f 219
FLP 不可能性 异步 + 确定性 + 一个崩溃故障 ⟹ 无解 2
法定人数交集 |A∩B| ≥ 2q − n,必含至少一个诚实节点 19
不可能三角 不是定理。真正约束是 T ≤ R / c 3

二、密码学原语

术语 定义 / 公式 出处
抗原像 / 抗第二原像 / 抗碰撞 三种不同强度。抗碰撞 ⟹ 抗第二原像,但 ⟹̸ 抗原像 4
生日界 n 位输出只有 2^(n/2) 的碰撞安全性 4
长度扩展攻击 Merkle–Damgård 的输出就是内部状态 ⟹ 可续写 4
SHA-256d 比特币用的双重 SHA-256 4
Keccak-256 ≠ SHA3-256 填充规则不同。Go 里用 sha3.NewLegacyKeccak256() 4
域分隔 leaf = H(0x00‖x)node = H(0x01‖左‖右) 5
Merkle 证明大小 log₂ n 个哈希。一百万笔 → 640 字节 5
CVE-2012-2459 奇数节点复制最后一个 ⟹ 根不唯一 ⟹ 永久 DoS 5
ECDLP 已知 PkPk。最好攻击 √n ⟹ 256 位给 128 位安全 6
secp256k1 y² = x³ + 7p = 2²⁵⁶ − 2³² − 977 6
压缩公钥 33 字节:0x02/0x03 ‖ x,前缀记 y 的奇偶 6
以太坊地址 keccak256(未压缩公钥去 0x04 前缀)[12:] 6
ECDSA 签名 s = k⁻¹(z + r·d),验证 R' = z s⁻¹ G + r s⁻¹ Q 7
k 重用解私钥 k = (z₁−z₂)/(s₁−s₂)d = (s₁k − z₁)/r 7
RFC 6979 确定性 nonce k = HMAC(d, z) 7
可延展性 (r,s) 有效 ⟹ (r, n−s) 也有效。修复:low-s / SegWit 7
Schnorr s = k + e·d线性 ⟹ 可聚合 7
双线性配对 e(aP, bQ) = e(P,Q)^(ab) 8
BLS 签名 σ = d·H(m),验证 e(σ,G) == e(H(m),Q)非交互聚合 8
Pedersen 承诺 C = x·G + r·H加法同态 8
VRF 唯一性 + 伪随机 + 可验证。持有者没有选择空间 8
VDF 必须串行算 T 步,可快速验证。消灭操纵者的信息优势 8

三、账本与状态

术语 定义 / 公式 出处
区块头(比特币) 80 字节:version/prev/merkle/time/bits/nonce 9
全链区块头 96 万 × 80 B ≈ 77 MB,手机可存 9
三个根 交易根(发生了什么)/ 状态根(现在什么样)/ 收据根(产生了什么) 9
时间戳规则 > 前 11 块中位数,< 网络时间 +2 小时。可倒序 9
软 / 硬分叉 判据是"老节点认不认新块",不是改动大小 9
UTXO 未花费交易输出。余额是算出来的,不是存着的 10
手续费(UTXO) 隐式:输入总额 − 输出总额 10
P2PKH OP_DUP OP_HASH160 <hash> OP_EQUALVERIFY OP_CHECKSIG 10
P2SH 锁定时只放脚本哈希,花费时才提供脚本 10
nonce(账户) 三重职责:防重放、定序、派生 CREATE 地址 11
CREATE keccak(rlp([sender, nonce]))[12:] 11
CREATE2 keccak(0xff‖sender‖salt‖keccak(initcode))[12:]。地址可预测 11
EIP-155 chainID 进签名哈希 ⟹ 防跨链重放 711
MPT 三种节点 叶子 / 扩展 / 17 项分支 12
HP 编码 前缀 nibble:最低位记奇偶,次低位记是否叶子 12
secure trie 键先哈希 ⟹ 防深度 DoS,代价是丧失局部性 12
SPV 只验区块头,完全不验证区块内容 13
无状态客户端 区块自带见证,验证者不保存状态 13
Verkle 树 向量承诺 ⟹ 不需要兄弟节点,见证 MB → 百 KB。不抗量子 13
弱主观性 PoS 新节点必须从外部获得近期可信检查点 1318

四、网络与共识

术语 定义 / 公式 出处
gossip(泛洪) 收到新消息 ⟹ 先验证再转发给除来源外的邻居。跳数 ≈ log_d(n) 14
传播时间 ≈ 跳数 × (物理延迟 + 验证时间 + 传输时间)。⭐ 只有传输时间能靠带宽改善 14
物理延迟下限 光纤约 200,000 km/s ⟹ 地球对跖点单向 ≈ 100 ms,工程无法消除 14
出块间隔的来源 = 传播时间 × 安全系数。BTC ≈ 600×,ETH ≈ 10× 14
Compact Blocks BIP-152。只发短 ID,1 MB ⟹ 约 15 KB。⚠️ 缺交易时多一个 RTT 14
Erlay BIP-330。集合协调代替泛洪,交易传播带宽 O(邻居数) ⟹ 近似 O(1) 14
Eclipse 攻击 占满受害者全部连接槽。⭐ 打的是共识证明的前提(诚实节点能互通),不是算法 14
连接槽 Sybil ⚠️ PoW/PoS 只解决出块权的 Sybil,网络层开节点仍然免费 14
PoW 谜题 H(header ‖ nonce) < target。三性质:难解易验、无记忆、可调 15
出块间隔分布 指数分布。P(T>600s)=36.8%P(T>3600s)=0.25% 15
难度调整 每 2016 块,新目标 = 旧目标 × 实际/20160分钟,限幅 [1/4, 4] 15
算力估算 算力 ≈ D × 2³² / 600是估算不是测量 15
分叉选择 累计工作量最大,不是"最长" 16
孤块率 ≈ 传播时间 / 出块间隔 16
双花概率 白皮书第 11 节。q=10% 时 z=6 → 0.024%;q=25% 时 z=6 → 5% 16
自私挖矿阈值 α > (1−γ)/(3−2γ)。γ=0.5 时只需 25% 16
安全预算 = 矿工总收入 = 区块奖励 + 手续费 17
总量 2100 万 210000 × 50 × 2。实际略少(整数截断) 17
费用狙击 纯手续费下重挖上一块比挖新块更赚 ⟹ 破坏"延长链最优" 1734
罚没(slashing) PoS 独有:资源在链内 ⟹ 协议可没收本金 18
无利害关系 PoS 两边都签几乎零成本 ⟹ 分叉不收敛。罚没解决它 18
长程攻击 用旧验证者私钥重造历史链。靠检查点 + 提款延迟防 18
罚没条件 只有两条:双重提议、双重/环绕投票。离线不罚没 18
相关性惩罚 与同期被罚总量成比例 ⟹ 鼓励客户端多样性 18
非活跃泄漏 稀释不活跃方直到活跃方占 2/3。代价是可能永久分裂 18
PBFT 三阶段 PREPARE 保证同视图唯一,COMMIT 保证跨视图安全 19
Tendermint 锁定 PRECOMMIT 后锁定,只有更高轮的 polka 才解锁 19
HotStuff 门限签名 O(n) + 多一阶段让视图切换 O(n³)→O(n) 19
Gasper LMD-GHOST(分叉选择)+ Casper FFG(最终性) 20
slot / epoch 12 秒 / 32 slots = 6.4 分钟 20
证成 / 最终确定 >2/3 链接 ⟹ justified;连续两个 justified ⟹ 前一个 finalized 20
可问责安全性 两个冲突检查点都确定 ⟹ 至少 1/3 质押可罚没 20

五、执行环境

术语 定义 / 数值 出处
准图灵完备 用 Gas 而非"禁止循环"来保证终止 21
六个数据区域 栈 / 内存 / 存储 / calldata / code / returndata 21
内存收费 3a + a²/512(二次方,防 DoS) 21
256 位字长 为匹配 keccak 和金额。对 ZK 电路极不友好 21
JUMPDEST 规则 防跳进 PUSH 立即数 + 让静态分析可行 21
63/64 规则 子调用最多拿剩余 Gas 的 63/64。堵死深度攻击 21
预编译 0x08 双线性配对。决定链上验证 ZK 是否可行 21
上海攻击 EXTCODESIZE 定价过低 ⟹ 每 20 Gas 换一次随机 I/O 21
Gas 三职责 保证终止 / 为资源定价 / 分配稀缺区块空间 22
EIP-1559 baseFee销毁)+ priorityFee(给验证者) 22
基础费调整 目标 = 上限一半,每块 ±12.5%,10 个满块涨 3 倍 22
冷 / 热访问 SLOAD 冷 2100 / 热 100;账户冷 2600 / 热 100 22
EIP-3529 退款上限 gasUsed/5,清槽退款 4800,取消 SELFDESTRUCT 退款 22
SSTORE 四档 零→非零 20000;非零→非零 2900;非零→零 2900+退款;重复写 100 23
mapping 槽 keccak256(pad32(key) ‖ pad32(slot)) 23
嵌套 mapping 槽 keccak256(pad32(k₂) ‖ keccak256(pad32(k₁) ‖ pad32(slot))) 23
动态数组 槽存长度,元素从 keccak256(slot) 开始 23
private 不私密 eth_getStorageAt 可直接读 23
delegatecall 借用代码,操作自己的数据。msg.sender 保持不变 24
EIP-1967 槽 keccak256("eip1967.proxy.implementation") − 1。减 1 防哈希原像撞击 24
Parity 冻结 库未初始化 → 被设 owner → selfdestruct → 51.4 万 ETH 永久冻结 24
EIP-4337 UserOp → Bundler → EntryPoint → 钱包合约。不改共识层 25
EIP-7702 让存量 EOA 临时"贴上"合约代码 25
Block-STM 乐观并行 + 多版本内存 + 按原始顺序验证 25

六、扩容

术语 定义 / 数值 出处
扩容三维度 执行(Rollup)/ 数据(DAS)/ 状态(无状态 + Verkle) 26
L2 严格定义 运营者完全不合作时,仅凭 L1 数据能单方面取回资产 26
Validium 数据在链下 + ZK 证明。正确但可能取不出来 2629
1-of-N 诚实假设 只需一个诚实的人在盯着,且他能把证明送上 L1 27
交互式二分 log₂ 轮定位到单条指令,L1 只执行一步 27
挑战期 7 天 不是技术需求,是安全边际(抗审查冗余) 27
强制包含 绕过排序器直接向 L1 提交 —— 单方面退出的技术保障 27
完备 / 可靠 / 简洁 / 零知识 Rollup 真正需要的是可靠性 + 简洁性 2832
SNARK vs STARK 证明小/验证便宜 需可信设置、不抗量子 ‖ 无需设置、抗量子、证明大 28
可信设置 MPC 仪式的 1-of-N;以太坊 KZG 仪式 14 万+ 参与者 28
zkEVM 五类型 Type 1 完全等价(最慢)… Type 4 高级语言等价(最快,字节码不兼容) 28
电路 bug 证明保证"电路被正确执行",不保证"电路写对了" 28
数据可用性 讲的是发布,不是存储。无法归责(渔夫困境) 29
纠删码 + 采样 n→2n ⟹ 必须藏一半以上 ⟹ 失败概率 (1/2)ᵏ30 次 ≈ 10⁻⁹ 29
EIP-4844 blob 128 KiB/个,目标 3 上限 6(⚠️ 上线时参数,后续分叉已上调),独立费用市场,约 18 天后删除 29
桥的三类信任 原生验证(无额外信任)/ 外部验证(等于那组人)/ 乐观验证 30
多链但非跨链 桥让破坏面扩大到所有相连的链 30
预言机问题 把"外部世界的事实"变成"共识内的数据"。⭐ 与跨链桥同构 31
为什么不可证明 链只能验证签名/哈希/自身历史。价格是经验断言不是数学命题 31
预言机的安全上限 ⭐ 只能设计成"作恶不划算" ⟹ 被保护金额超过撒谎成本时设计即失败 31
现货操纵成本 恒定乘积池推到 k 倍需 ΔY = y(√k − 1)。k=2 ⟹ 0.414y,可用闪电贷 31
TWAP (累加器₂ − 累加器₁)/Δt。30 分钟窗口维持一块推到 2 倍 ⟹ 现货 151 倍11.3y,且用不了闪电贷 31
TWAP 的代价 ⚠️ 滞后:窗口越长越抗操纵、越跟不上真实暴跌 ⟹ 清算场景里变成坏账 31
推送 vs 拉取 前者特有风险是陈旧窗口,后者是择时(等于白送攻击者一个期权) 31

七、隐私与安全

术语 定义 / 判据 出处
Sigma 协议 承诺 → 挑战 → 响应 32
知识提取器 定义了"知道":同一承诺答两个挑战 ⟹ x = (s₁−s₂)/(e₁−e₂) 32
模拟器 定义了"零知识":先选 e、s 再倒推 R 32
Fiat-Shamir e = H(R‖P‖msg)签名 = 非交互零知识证明 32
弱 Fiat-Shamir 哈希漏掉公开输入 ⟹ 可伪造(Frozen Heart 类) 32
Schwartz–Zippel Pr ≤ d/|F|简洁性的全部来源:d≈10⁶、|F|≈2²⁵⁴ ⟹ 10⁻⁷⁰ 32
回溯性 伪匿名地址被关联一次 ⟹ 全部历史与未来暴露 33
共同输入所有权 链分析最有效的聚簇启发式 33
nullifier 让防双花与不可关联同时成立 33
匿名集 隐私的唯一度量。⟹ 隐私是公共品,有网络效应 33
关联集证明 证明"我的存款不来自黑名单"而不暴露是哪一笔 33
MEV 通过包含/排除/重排交易可提取的价值。只能重新分配,不能消除 34
三明治 利润与滑点容忍度几乎成正比 34
PBS 动机是防中心化,不是公平 34
重组激励 单块 MEV ≫ 区块奖励 ⟹ “延长链最优"被打破 34
CEI 检查 → 生效 → 交互。防重入的正确顺序 35
只读重入 view 保证不改状态,不保证读到的状态一致 35
舍入原则 永远向对协议有利的方向舍入 35
闪电贷 不是漏洞——它移除了"攻击者需要有很多钱"这个隐含防御 35
形式化验证的边界 保证"实现符合规范”,不保证"规范正确" 35

八、关键数字速查

比特币
   区块头 80 字节;全链区块头 ≈ 77 MB
   区块 1 MB / 10 分钟 ⟹ 约 6.7 tps
   难度调整周期 2016 块(14 天),限幅 [1/4, 4]
   当前区块奖励 3.125 BTC ⟹ 每天安全预算 450 BTC
   P(间隔>10分钟)=36.8%  P(间隔>1小时)=0.25%

以太坊
   slot 12 秒,epoch 6.4 分钟,最终性 ≈ 12.8 分钟
   区块 Gas 上限 3000 万、目标 1500 万(⚠️ 由出块者投票逐块微调,会漂移)
   验证者门槛 32 ETH
   SLOAD 冷 2100 / 热 100;SSTORE 新增 20000
   blob 128 KiB,目标 3 / 上限 6(⚠️ 上线时参数,后续分叉已上调),保留约 18 天

密码学
   SHA-256 → 128 位碰撞安全
   secp256k1 → 128 位安全
   MPT 深度 ≈ 7–8;Verkle 深度 ≈ 4
   DA 采样 30 次 → 失败率 ≈ 10⁻⁹

网络层
   一万节点 / 8 邻居 ⟹ gossip 约 4.4 跳
   传播时间:1 MB 完整区块 ≈ 620 ms,15 KB 紧凑区块 ≈ 271 ms
   物理延迟下限 ≈ 100 ms(地球对跖点单向)
   出块间隔裕度:BTC ≈ 600×,ETH ≈ 10×

预言机
   恒定乘积池推到 2 倍 ⟹ 需 0.414 × Y 储备(可闪电贷)
   30 分钟 TWAP 推到 2 倍、只维持一个区块
      ⟹ 现货需 151 倍、需 11.3 × 储备(不可闪电贷,约现货的 27 倍)

相关参考资料 回到课程目录