<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>CS 251：区块链系统原理 on 我在栀南镇的日子</title>
    <link>https://blog.ifcalm.org/posts/blockchain/</link>
    <description>Recent content in CS 251：区块链系统原理 on 我在栀南镇的日子</description>
    <generator>Hugo -- 0.147.7</generator>
    <language>zh-cn</language>
    <lastBuildDate>Sun, 30 Aug 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://blog.ifcalm.org/posts/blockchain/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>第 1 讲：双花问题——数字现金难在哪里</title>
      <link>https://blog.ifcalm.org/posts/blockchain/01-double-spending/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/01-double-spending/</guid>
      <description>为什么数字现金比纸币难：可复制性、双花、以及「谁说了算」这个问题的本质。从一个朴素方案的失败出发，看清中本聪真正解决的不是密码学问题而是排序问题；以及区块链从原理上解决不了什么。</description>
    </item>
    <item>
      <title>第 2 讲：分布式共识的边界——拜占庭将军与 FLP 不可能性</title>
      <link>https://blog.ifcalm.org/posts/blockchain/02-consensus-limits/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/02-consensus-limits/</guid>
      <description>共识问题的精确定义、三种网络模型的区别、拜占庭将军问题为什么需要 n &amp;gt; 3f（含三将军反例的完整论证）、FLP 不可能性说了什么和没说什么，以及比特币是用什么代价绕过这些结论的。</description>
    </item>
    <item>
      <title>第 3 讲：&#34;不可能三角&#34;的真伪——它不是定理</title>
      <link>https://blog.ifcalm.org/posts/blockchain/03-trilemma/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/03-trilemma/</guid>
      <description>可扩展性三难困境被广泛引用，但它没有形式化定义也没有证明。这一讲给三个维度各自下精确定义，算出真正的物理约束在哪，说明哪些「打破三角」的宣称是真突破、哪些只是偷换了定义，并给出四个可以直接用的检验问题。</description>
    </item>
    <item>
      <title>第 4 讲：哈希函数——三种抗性与它们的区别</title>
      <link>https://blog.ifcalm.org/posts/blockchain/04-hash-functions/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/04-hash-functions/</guid>
      <description>抗原像、抗第二原像、抗碰撞三种性质的精确定义与蕴含关系；生日攻击为什么让 n 位输出只有 n/2 位安全性；长度扩展攻击与比特币双 SHA-256 的由来；以太坊用的 Keccak-256 为什么不等于 SHA3-256；以及哈希在区块链里的四种用途。</description>
    </item>
    <item>
      <title>第 5 讲：Merkle 树与包含证明</title>
      <link>https://blog.ifcalm.org/posts/blockchain/05-merkle-trees/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/05-merkle-trees/</guid>
      <description>如何在不下载整个区块的前提下证明「我这笔交易在里面」：Merkle 树的构造、O(log n) 包含证明、完整的 Go 实现；以及两个真实的坑——比特币的 CVE-2012-2459 重复叶子攻击，和缺少域分隔导致的第二原像攻击。</description>
    </item>
    <item>
      <title>第 6 讲：椭圆曲线与公钥——地址是怎么来的</title>
      <link>https://blog.ifcalm.org/posts/blockchain/06-elliptic-curves/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/06-elliptic-curves/</guid>
      <description>从「只有我能花我的钱」这个需求出发，讲清楚离散对数难题、secp256k1 曲线上的点加法与标量乘法、私钥到公钥再到地址的完整派生链条，以及压缩公钥、Base58Check 校验和、EIP-55 大小写校验和背后的原因。含 Go 实现与两个真实的随机数事故。</description>
    </item>
    <item>
      <title>第 7 讲：数字签名——ECDSA、可延展性与 Schnorr</title>
      <link>https://blog.ifcalm.org/posts/blockchain/07-digital-signatures/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/07-digital-signatures/</guid>
      <description>ECDSA 的完整推导与验证原理；随机数 k 重用为什么会直接泄露私钥（含 Sony PS3 事故的代数推演）与 RFC 6979 的修复；签名可延展性如何造成交易 ID 可变，SegWit 与 EIP-2 各自怎么处理；以及 Schnorr 签名的线性性为什么能带来签名聚合。</description>
    </item>
    <item>
      <title>第 8 讲：BLS、阈值签名、承诺与 VRF</title>
      <link>https://blog.ifcalm.org/posts/blockchain/08-bls-commitments-vrf/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/08-bls-commitments-vrf/</guid>
      <description>权益证明需要的三样工具：BLS 签名如何把上万个签名聚合成一个（含双线性配对的直觉与推导）、阈值签名与多签的本质区别、承诺方案为什么必须加盐以及 Pedersen 承诺的同态性、可验证随机函数如何解决「链上随机数不能用区块哈希」的问题。</description>
    </item>
    <item>
      <title>第 9 讲：区块与链——区块头里的每一个字段</title>
      <link>https://blog.ifcalm.org/posts/blockchain/09-blocks-and-chains/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/09-blocks-and-chains/</guid>
      <description>为什么要打包成块而不是逐笔上链；比特币 80 字节区块头的六个字段逐一解释，以及它为什么必须这么小；以太坊区块头的三个根分别承诺了什么；链上时间戳为什么只有小时级精度；以及「不可篡改」真正的来源不是密码学而是重做工作的成本。</description>
    </item>
    <item>
      <title>第 10 讲：UTXO 模型与比特币脚本</title>
      <link>https://blog.ifcalm.org/posts/blockchain/10-utxo-model/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/10-utxo-model/</guid>
      <description>把钱当成硬币而不是余额：UTXO 的定义、找零机制、手续费为什么是隐式的；比特币脚本作为一台栈式虚拟机的完整执行推演（P2PKH 逐步跟踪）、P2SH 的成本转移、多签的著名 off-by-one bug、时间锁与闪电网络的关系；以及 UTXO 模型的三个优点和它为什么写不了合约。</description>
    </item>
    <item>
      <title>第 11 讲：账户模型——nonce、重放与两种模型的权衡</title>
      <link>https://blog.ifcalm.org/posts/blockchain/11-account-model/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/11-account-model/</guid>
      <description>以太坊的两类账户与状态的四个字段；nonce 同时承担的三项职责及其带来的队头阻塞；跨链重放攻击与 EIP-155；CREATE 与 CREATE2 的地址派生公式及「反事实部署」；以及 UTXO 与账户模型的完整权衡对比和 Solana、Cardano 的混合方案。</description>
    </item>
    <item>
      <title>第 12 讲：Merkle Patricia Trie 与状态根</title>
      <link>https://blog.ifcalm.org/posts/blockchain/12-merkle-patricia-trie/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/12-merkle-patricia-trie/</guid>
      <description>为什么承诺一个「可变映射」不能用普通 Merkle 树：需要规范性、按键查找、不存在性证明和增量更新。从前缀树到路径压缩再到 Merkle 化，讲清以太坊 MPT 的三种节点与 HP 编码，为什么键要先哈希，以及它带来的写放大和随机磁盘访问——这是以太坊全节点最大的性能瓶颈。</description>
    </item>
    <item>
      <title>第 13 讲：轻客户端、无状态验证与 Verkle 树</title>
      <link>https://blog.ifcalm.org/posts/blockchain/13-light-clients/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/13-light-clients/</guid>
      <description>SPV 到底验证了什么、它比全节点多信任了什么；以太坊同步委员会的信任假设；无状态客户端的思路与它撞上的墙——MPT 见证数据太大；以及 Verkle 树如何用向量承诺去掉「兄弟节点」这一项，把见证从 MB 级压到百 KB 级。</description>
    </item>
    <item>
      <title>第 14 讲：P2P 网络层——区块是怎么传开的</title>
      <link>https://blog.ifcalm.org/posts/blockchain/14-p2p-network/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/14-p2p-network/</guid>
      <description>「传播时间」这个量被后面好几讲当常量用，这一讲把它推导出来：gossip 的跳数从哪来、传播时间由物理延迟/验证/传输三项组成而只有一项能靠加带宽改善、Compact Blocks 与 Erlay 在优化哪一项，以及 Eclipse 攻击为什么打的是共识证明的前提而不是共识算法本身。</description>
    </item>
    <item>
      <title>第 15 讲：工作量证明的机制与难度调整</title>
      <link>https://blog.ifcalm.org/posts/blockchain/15-proof-of-work/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/15-proof-of-work/</guid>
      <description>PoW 谜题的三个性质为什么缺一不可，尤其是「无记忆性」如何保证大矿工没有额外优势；出块时间服从指数分布带来的高方差（36.8% 的区块间隔超过 10 分钟）；难度调整公式、4 倍限幅、以及一个永远修不掉的 off-by-one bug；矿池的份额机制与它带来的集中化压力。</description>
    </item>
    <item>
      <title>第 16 讲：最长链、分叉与自私挖矿</title>
      <link>https://blog.ifcalm.org/posts/blockchain/16-longest-chain-forks/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/16-longest-chain-forks/</guid>
      <description>分叉选择规则为什么是「累计工作量最大」而不是「最长」；临时分叉与孤块率如何限制出块速度；中本聪的双花概率计算与「6 个确认」这个数字的来源；51% 攻击能做和不能做什么；以及自私挖矿如何把真正的安全阈值从 50% 拉低到 25%。</description>
    </item>
    <item>
      <title>第 17 讲：PoW 的经济学——安全预算从哪来</title>
      <link>https://blog.ifcalm.org/posts/blockchain/17-pow-economics/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/17-pow-economics/</guid>
      <description>安全预算等于矿工收入这条核心等式的推导；2100 万总量的等比级数与减半机制；区块奖励归零后「纯手续费」为什么在理论上会让最长链共识变得不稳定；以及为什么链的安全性和币价正相关——熊市里的链更容易被攻击。</description>
    </item>
    <item>
      <title>第 18 讲：权益证明——罚没、无利害关系与弱主观性</title>
      <link>https://blog.ifcalm.org/posts/blockchain/18-proof-of-stake/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/18-proof-of-stake/</guid>
      <description>PoS 与 PoW 的结构性差异：稀缺资源在链内还是链外，以及由此产生的「罚没」这一 PoW 不具备的能力；无利害关系问题与长程攻击的成因和解法；以太坊的罚没条件、相关性惩罚为什么会鼓励客户端多样性、非活跃泄漏如何在活性与安全性之间做选择；以及 PoS 无法回避的三个批评。</description>
    </item>
    <item>
      <title>第 19 讲：BFT 共识家族——PBFT、Tendermint 与 HotStuff</title>
      <link>https://blog.ifcalm.org/posts/blockchain/19-bft-consensus/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/19-bft-consensus/</guid>
      <description>PBFT 为什么需要三个阶段（含法定人数交集的完整论证）、视图切换的 O(n³) 代价；Tendermint 的锁定机制如何用两阶段实现即时最终性，以及它在网络分区时为什么会停机；HotStuff 如何用「多加一个阶段」换来线性复杂度和流水线化；以及为什么公链不能直接照搬 BFT。</description>
    </item>
    <item>
      <title>第 20 讲：以太坊的实际共识——LMD-GHOST 加 Casper FFG</title>
      <link>https://blog.ifcalm.org/posts/blockchain/20-ethereum-consensus/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/20-ethereum-consensus/</guid>
      <description>以太坊如何把中本聪共识的「无准入、不停机」和 BFT 的「确定性最终性」缝在一起：LMD-GHOST 的子树权重分叉选择、Casper FFG 的证成与最终确定两条规则、可问责安全性为什么让回滚的代价等于三分之一总质押，以及 2023 年真实发生过的最终性停滞。</description>
    </item>
    <item>
      <title>第 21 讲：EVM 的结构——一台 256 位栈机</title>
      <link>https://blog.ifcalm.org/posts/blockchain/21-evm-architecture/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/21-evm-architecture/</guid>
      <description>从记账到运行程序：EVM 的六个数据区域及其成本差异；256 位字长的两个理由和三项代价（尤其是它为什么让 zkEVM 极其困难）；JUMPDEST 规则为什么存在；一段字节码的完整逐指令推演；以及 2016 年上海 DoS 攻击如何暴露了操作码定价的本质困难。</description>
    </item>
    <item>
      <title>第 22 讲：Gas——为什么它必须存在</title>
      <link>https://blog.ifcalm.org/posts/blockchain/22-gas/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/22-gas/</guid>
      <description>Gas 的三项职责与「计量」和「计价」分离的设计智慧；EIP-1559 之前一价拍卖的三个失败模式；基础费调整公式、±12.5% 限幅、以及销毁基础费为什么是必需的；EIP-1559 真正解决的不是费用高低而是费用估计；冷热访问定价与 Gas 退款被削减的原因。</description>
    </item>
    <item>
      <title>第 23 讲：合约存储布局——slot、mapping 与打包</title>
      <link>https://blog.ifcalm.org/posts/blockchain/23-storage-layout/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/23-storage-layout/</guid>
      <description>2²⁵⁶ 个存储槽如何被分配：顺序分配、变量打包、动态数组与 mapping 的哈希寻址公式；为什么 mapping 无法遍历；SSTORE 的四档定价与打包优化的真实收益边界；以及 private 变量为什么根本不是私密的。</description>
    </item>
    <item>
      <title>第 24 讲：调用语义——delegatecall、代理与可升级性的代价</title>
      <link>https://blog.ifcalm.org/posts/blockchain/24-call-semantics/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/24-call-semantics/</guid>
      <description>CALL、DELEGATECALL、STATICCALL 三者上下文的精确差别；代理模式如何实现「可升级」以及存储冲突为什么会毁掉一切；EIP-1967 伪随机槽的巧妙之处；Parity 多签冻结 51 万 ETH 的完整成因；以及可升级性在信任模型上究竟改变了什么。</description>
    </item>
    <item>
      <title>第 25 讲：交易生命周期、账户抽象与并行执行</title>
      <link>https://blog.ifcalm.org/posts/blockchain/25-tx-lifecycle-aa/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/25-tx-lifecycle-aa/</guid>
      <description>一笔交易从签名到最终确定的七个阶段；事件为什么合约自己读不到；EOA 的四个硬限制与账户抽象要解决的问题；EIP-4337 的 UserOperation 流水线与 EIP-7702 的思路差别；以及并行执行的三条路线——预声明读写集、乐观并行（Block-STM）与访问列表。</description>
    </item>
    <item>
      <title>第 26 讲：扩容的真实约束</title>
      <link>https://blog.ifcalm.org/posts/blockchain/26-scaling-constraints/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/26-scaling-constraints/</guid>
      <description>「把区块调大」为什么不行：带宽、状态增长、同步时间、重执行四个瓶颈的分别量化；把扩容拆成执行、数据、状态三个独立维度；Layer 2 的严格定义为什么是「能否单方面退出」，以及 Rollup、Validium、侧链在这个定义下各自的位置。</description>
    </item>
    <item>
      <title>第 27 讲：Optimistic Rollup 与欺诈证明</title>
      <link>https://blog.ifcalm.org/posts/blockchain/27-optimistic-rollup/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/27-optimistic-rollup/</guid>
      <description>「默认相信，有异议再证明」的完整机制；交互式二分查找如何把「在 L1 重跑整个区块」压缩成「在 L1 执行一条指令」；挑战期为什么是 7 天（它不是技术需求而是安全边际）；排序器中心化与强制包含机制；以及欺诈证明的活性为什么依赖链外的经济激励。</description>
    </item>
    <item>
      <title>第 28 讲：ZK Rollup 与有效性证明</title>
      <link>https://blog.ifcalm.org/posts/blockchain/28-zk-rollup/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/28-zk-rollup/</guid>
      <description>有效性证明与欺诈证明的本质差别；为什么「ZK Rollup」这个名字用错了词——真正需要的是简洁性而非零知识性；SNARK 与 STARK 的完整取舍与可信设置仪式的 1-of-N 假设；zkEVM 的五个类型及其兼容性与证明速度的权衡；以及 ZK Rollup 真正的风险为什么不在密码学而在电路实现。</description>
    </item>
    <item>
      <title>第 29 讲：数据可用性——Rollup 真正的瓶颈</title>
      <link>https://blog.ifcalm.org/posts/blockchain/29-data-availability/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/29-data-availability/</guid>
      <description>数据可用性为什么是「发布」而不是「存储」，以及它为什么无法用签名或举报来解决；纠删码如何把「藏起 1% 数据」变成「必须藏起一半以上」，从而让随机采样有效；KZG 如何保证编码本身正确；EIP-4844 blob 的独立费用市场与 18 天后删除为什么不损害安全性。</description>
    </item>
    <item>
      <title>第 30 讲：跨链桥——按信任假设分类</title>
      <link>https://blog.ifcalm.org/posts/blockchain/30-bridges/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/30-bridges/</guid>
      <description>为什么一条链读不到另一条链的状态，以及桥本质上是「关于另一条链的预言机」；按信任假设把桥分成原生验证、外部验证、乐观验证三类；历史上最大的几次损失为什么几乎全部集中在同一类；包装资产的连锁风险；以及「多链但非跨链」这个论点的完整含义。</description>
    </item>
    <item>
      <title>第 31 讲：预言机——链下数据的信任边界</title>
      <link>https://blog.ifcalm.org/posts/blockchain/31-oracles/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/31-oracles/</guid>
      <description>链的封闭性不是缺陷而是确定性的代价。这一讲说明为什么「外部世界的事实」原则上无法被密码学证明、因此预言机只能被设计成作恶不划算而不能被证明正确；用第 30 讲同一把「信任假设」尺子给预言机分类；推导 TWAP 把操纵成本抬高了多少倍；并指出最危险的失效模式是预言机忠实地报告了一个真实但不具代表性的价格。</description>
    </item>
    <item>
      <title>第 32 讲：零知识证明——它到底在证明什么</title>
      <link>https://blog.ifcalm.org/posts/blockchain/32-zero-knowledge/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/32-zero-knowledge/</guid>
      <description>从「色盲朋友与两个球」建立直觉，到 Schnorr Sigma 协议的完整三性质证明：知识提取器为什么定义了「知识」，模拟器为什么定义了「零知识」；Fiat-Shamir 变换如何把交互证明变成签名；以及通用 ZK 的简洁性从哪来——Schwartz-Zippel 引理如何让「检查一个点」等价于「检查整个多项式」。</description>
    </item>
    <item>
      <title>第 33 讲：链上隐私——伪匿名为什么会失效</title>
      <link>https://blog.ifcalm.org/posts/blockchain/33-privacy/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/33-privacy/</guid>
      <description>伪匿名的致命性质是回溯性——一次关联暴露全部历史；链分析的四类启发式；CoinJoin、环签名加隐蔽地址、零知识池三条技术路线的原理与各自的失效条件；匿名集为什么是隐私的唯一度量；以及「可审计的隐私」在技术上意味着什么。</description>
    </item>
    <item>
      <title>第 34 讲：MEV——排序权的价值</title>
      <link>https://blog.ifcalm.org/posts/blockchain/34-mev/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/34-mev/</guid>
      <description>MEV 为什么无法被消除只能被重新分配；套利与清算为什么是良性的而三明治是纯粹的价值提取（含一个可验算的完整数值例子，说明滑点容忍度如何直接决定被抢走多少）；MEV 对共识安全的真实威胁；以及 PBS、加密内存池、批量拍卖三条缓解路线。</description>
    </item>
    <item>
      <title>第 35 讲：智能合约漏洞的结构分类</title>
      <link>https://blog.ifcalm.org/posts/blockchain/35-contract-vulnerabilities/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/35-contract-vulnerabilities/</guid>
      <description>合约漏洞不是粗心，而是抽象泄漏——开发者脑中的模型与 EVM 实际语义之间的缺口。按五类假设失效来组织：控制流、权限身份、数值、外部数据、经济博弈；闪电贷为什么不是漏洞而是「移除了资金门槛这个隐含防御」；以及形式化验证能保证什么、不能保证什么。全课的收束。</description>
    </item>
    <item>
      <title>实验 1：Merkle 树与包含证明</title>
      <link>https://blog.ifcalm.org/posts/blockchain/70-lab1-merkle/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/70-lab1-merkle/</guid>
      <description>从零实现一棵带域分隔的 Merkle 树、包含证明的生成与验证，并动手复现两个真实漏洞：比特币的 CVE-2012-2459 重复叶子攻击，以及缺少域分隔时的第二原像攻击。附完整测试与参考实现。</description>
    </item>
    <item>
      <title>实验 2：UTXO 链</title>
      <link>https://blog.ifcalm.org/posts/blockchain/71-lab2-utxo-chain/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/71-lab2-utxo-chain/</guid>
      <description>实现一条完整的 UTXO 链：交易结构与序列化、签名与验签、UTXO 集合维护、双花检测、区块组装与链验证，以及一个栈式脚本解释器。含五个必须能复现的攻击测试。</description>
    </item>
    <item>
      <title>实验 3：共识</title>
      <link>https://blog.ifcalm.org/posts/blockchain/72-lab3-consensus/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/72-lab3-consensus/</guid>
      <description>两部分：实现 PoW 的挖矿与难度调整并用模拟验证出块间隔的指数分布；实现一个简化 PBFT 并用测试证明它在 f 个拜占庭节点下仍然安全、在 f+1 个时会失败。含自私挖矿的状态机模拟。</description>
    </item>
    <item>
      <title>实验 4：mini-EVM</title>
      <link>https://blog.ifcalm.org/posts/blockchain/73-lab4-mini-evm/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/73-lab4-mini-evm/</guid>
      <description>实现一台可运行的 EVM 子集：栈、内存、存储、Gas 计量、JUMPDEST 校验、调用与回滚语义。用它编译并跑通一个简单合约，然后亲手复现三个真实的定价与语义陷阱。</description>
    </item>
    <item>
      <title>实验 5：欺诈证明、数据可用性与预言机</title>
      <link>https://blog.ifcalm.org/posts/blockchain/74-lab5-fraud-proofs/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/74-lab5-fraud-proofs/</guid>
      <description>扩容单元的动手实验：实现交互式二分挑战并亲手把百万步的争议压缩到一步、实现纠删码与数据可用性采样并做出编码错误证明、计算 TWAP 把操纵成本抬高了多少倍。三个任务分别对应 Rollup 安全的三根支柱：可裁决、可获取、可信输入。</description>
    </item>
    <item>
      <title>实验 6：零知识、隐私与 MEV</title>
      <link>https://blog.ifcalm.org/posts/blockchain/75-lab6-zk-privacy/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/75-lab6-zk-privacy/</guid>
      <description>隐私与安全单元的动手实验：从零实现 Schnorr Σ-协议并把「可靠性」和「零知识」分别写成可运行的抽取器与模拟器、用 Fiat-Shamir 变成非交互并亲手复现漏掉公钥导致的伪造、度量混币池的匿名集怎样被启发式打回原形、算出三明治攻击的最优规模，最后在 mini-EVM 上复现一次重入。</description>
    </item>
    <item>
      <title>习题集 1：信任模型与密码学原语</title>
      <link>https://blog.ifcalm.org/posts/blockchain/80-problem-set-1/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/80-problem-set-1/</guid>
      <description>覆盖第 1–8 讲：双花的排序本质、拜占庭下界推导、不可能三角的量化、生日攻击、Merkle 树的两个真实漏洞、ECDSA 随机数重用的完整解私钥演算、Schnorr 聚合与恶意密钥攻击、承诺加盐与 VRF。每题附完整解答。</description>
    </item>
    <item>
      <title>习题集 2：账本、状态与共识</title>
      <link>https://blog.ifcalm.org/posts/blockchain/81-problem-set-2/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/81-problem-set-2/</guid>
      <description>覆盖第 9–20 讲：区块头与轻客户端、UTXO 与账户模型的权衡、MPT 键哈希化的 DoS 分析、无状态见证大小的量化、出块间隔分布与确认数计算、自私挖矿阈值、安全预算与减半、PoS 罚没条件判定、Casper FFG 最终确定推演、网络层传播时间与孤块率对去中心化的作用。每题附完整解答。</description>
    </item>
    <item>
      <title>习题集 3：执行环境</title>
      <link>https://blog.ifcalm.org/posts/blockchain/82-problem-set-3/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/82-problem-set-3/</guid>
      <description>覆盖第 21–25 讲：EVM 字节码逐步推演、256 位字长对 ZK 电路的代价、上海攻击与 Gas 定价原则、EIP-1559 基础费的具体计算、存储布局重排的量化收益、mapping 槽推导、delegatecall 存储冲突、63/64 规则堵死深度攻击的证明、账户抽象与并行执行。每题附完整解答。</description>
    </item>
    <item>
      <title>习题集 4：扩容、隐私与安全</title>
      <link>https://blog.ifcalm.org/posts/blockchain/83-problem-set-4/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/83-problem-set-4/</guid>
      <description>覆盖第 26–35 讲：扩容三维度的区分、L2 严格定义的检验、欺诈证明二分的量化、OP 与 ZK 失败模式的根本差别、数据可用性采样的概率计算、桥的信任模型与安全比、Fiat-Shamir 伪造攻击、匿名集与隐私的公共品性质、三明治攻击随滑点的线性放大、合约漏洞综合分析。预言机「正确地报告了错误的东西」这类失效的判定与设计。每题附完整解答。</description>
    </item>
    <item>
      <title>期中与期末复习指南</title>
      <link>https://blog.ifcalm.org/posts/blockchain/90-exam-guide/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/90-exam-guide/</guid>
      <description>必须背下来的公式卡、按单元编排的高频考点清单（附重要度星级），以及期中与期末两份模拟题及完整解答。期中覆盖第 1–20 讲，期末覆盖第 21–35 讲。</description>
    </item>
    <item>
      <title>术语与公式速查</title>
      <link>https://blog.ifcalm.org/posts/blockchain/95-glossary/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/95-glossary/</guid>
      <description>全课定义过的术语、公式和关键数字集中在这一页，每条给出定义、判据和出处。按主题分组，查具体某个词用浏览器页内搜索。</description>
    </item>
    <item>
      <title>参考资料与延伸阅读</title>
      <link>https://blog.ifcalm.org/posts/blockchain/96-resources/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.ifcalm.org/posts/blockchain/96-resources/</guid>
      <description>按单元组织的原始论文、规范文档、可读源码与课程资源，并标注每一份的定位与难度，以及本课刻意没有覆盖的四个方向。含网络层、共识、密码学、扩容与预言机五组原始论文。</description>
    </item>
  </channel>
</rss>
