区块链没有发明任何新密码学。它只是把你已经学过的哈希,用一种新方式串起来,就搭出了"无需信任"。
抛开炒作,区块链在密码学上其实非常朴素:它的"不可篡改"、"去中心化信任",几乎全部建立在第 10 章那个单向、雪崩的哈希函数之上。这一章不谈币价、不谈投资,只拆解让区块链成立的三块密码学积木——你会发现它们你都认识。
核心创意只有一句:每个区块都存着前一个区块的哈希。就像每一页都抄下上一页的指纹,把所有页钉成一条不可分割的链。
由于哈希的雪崩效应(第 10 章),你只要改动任何一个历史区块里的一个字符,它的哈希就面目全非;而下一个区块存的是旧哈希,于是对不上了;下一个的下一个也跟着崩……篡改一处,其后整条链全部失效。这就是"不可篡改"的全部秘密——它不是"改不了",而是"一改就人人看得见"。
下面亲手试试。这是一条 5 个区块的迷你链,每块的数据都能编辑。改动任意一块的内容,看它自己和它之后的所有区块如何瞬间变红(哈希断裂)。之前的区块不受影响——这正是链式结构的方向性。
上面的链有个漏洞:哈希算得很快,攻击者篡改一块后,把后面几块的哈希重算一遍不就行了?工作量证明(PoW)就是来堵这个漏洞的——它故意让"算出一个有效区块"变得极其昂贵。
规则:区块的哈希不能是任意值,必须小于某个目标(等价于"哈希要以若干个 0 开头")。由于哈希不可逆、输出随机(第 10 章),想让哈希凑够前导零,唯一办法是不停地改 nonce、反复哈希、暴力碰运气,直到蒙中一个满足条件的。这就是"挖矿"。
把两块积木合起来:要篡改一个历史区块,你不仅要重算它,还要重新挖出它之后的每一个区块,而且速度得超过全网诚实矿工继续往前挖的速度。这就是所谓的 51% 攻击门槛——你得掌握全网过半算力,经济上通常得不偿失。安全性来自"重算太贵",而"贵"来自哈希的单向性。
工作量证明费电,所以以太坊等已转向权益证明(PoS):不靠烧算力,而靠"质押资产"来获得记账权,作恶就没收质押。PoS 的密码学重心从"哈希难题"转向了"签名与随机性"(谁被选中出块、如何防作弊),但"用密码学让作恶不划算"的核心思想一脉相承。无论 PoW 还是 PoS,哈希链保证历史不可篡改这一层始终不变。
第三块积木解决一个很实际的问题:一个区块可能装着成千上万笔交易,而你的手机钱包(轻节点)没有能力下载整条几百 GB 的链。它怎么在不下载整个区块的情况下,确认"我这笔交易确实被记进了某个区块"?
答案是 Merkle 树(第 10 章的哈希用法之一):把区块里所有交易两两哈希、层层向上合并,最终汇成一个 Merkle 根,存进区块头。神奇之处在于——要证明某笔交易在树里,你不需要整棵树,只需要从那笔交易到根的路径上的少数几个"兄弟哈希"(叫 Merkle 证明)。对 100 万笔交易,证明只需约 20 个哈希,而不是 100 万个。
2008 年比特币白皮书里,没有一个密码学原语是新发明的:哈希链早已用于时间戳(Haber & Stornetta,1991)、Merkle 树来自 1979 年、工作量证明源自反垃圾邮件的 Hashcash、数字签名更是几十年的老技术(第 18 章)。中本聪的天才在于组合——把这些现成积木拼成一个无需可信第三方就能达成共识的账本。这再次印证全书主题:密码学的威力,往往在于原语的正确组合,而非原语本身。
这一章我们看的都是"账本"层面的密码学:哈希如何让历史不可篡改、如何让轻节点高效验证。但还有一个更贴近用户的问题:你的"钱"到底是什么?一个地址、一把私钥、12 个助记词之间,是怎样的密码学关系?丢了助记词为什么就永远找不回?下一章,我们钻进钱包。