关键人物

Ralph Merkle:默克尔树与公钥密码学的发明者

Ralph Merkle 在 1979 年的斯坦福博士论文中发明了默克尔树,并于 1982 年获得专利。每个比特币区块头都包含一个默克尔根。完整梳理他的密码学工作及其在区块链中的应用。

Ralph Merkle 是美国计算机科学家,默克尔树(Merkle tree)的发明者——这种哈希树结构让单一数值能够承诺任意数量的记录。他在 1979 年的斯坦福博士论文中描述了它,并于 1982 年取得专利。每一个比特币区块头都包含一个默克尔根,而他 1980 年的论文是比特币白皮书的第 7 号参考文献。

1. Ralph Merkle 是谁?公钥密码学的共同发明者

  • 背景与经历: Merkle 于 1952 年 2 月 2 日出生在加州伯克利。1974 年秋,作为加州大学伯克利分校的本科生,他为一门计算机安全课程写了一份项目提案,描述两个没有共享秘密的人如何在窃听者监听的信道上建立共享秘密。这个后来被称为"Merkle 谜题"的构想被授课教师否决,最终于 1978 年 4 月以《Secure Communications Over Insecure Channels》为题发表在《Communications of the ACM》上。这是第一份公开发表的公钥分发方案。1979 年,他在斯坦福大学 Martin Hellman 门下完成博士学位;Hellman 曾公开表示,该领域应称为"Diffie-Hellman-Merkle 密钥交换"。此后 Merkle 在施乐帕洛阿尔托研究中心(Xerox PARC)任研究科学家,设计了 Khufu 与 Khafre 分组密码以及 Snefru 哈希函数,随后转向分子纳米技术,先后任职于 Zyvex、佐治亚理工学院(杰出教授)与分子制造研究所(高级研究员)。他在 2010 年获 IEEE Richard W. Hamming 奖章,2011 年入选计算机历史博物馆会士。

2. 主要贡献:树、谜题与哈希

  • 主要贡献:
    • 默克尔树(1979): 描述于其论文《Secrecy, Authentication, and Public Key Systems》。每条记录先各自哈希,相邻哈希拼接后再哈希,如此反复直到只剩一个根哈希。此后,要证明某一条记录属于该集合,只需提供约 log-n 个兄弟哈希构成的路径,而不必提供整个集合。专利 4,309,569《Method of providing digital signatures》于 1979 年 9 月 5 日提交,1982 年 1 月 5 日获批。
    • 《Protocols for Public Key Cryptosystems》(1980): 发表于 IEEE 安全与隐私研讨会,正是这篇论文把树认证介绍给了更广泛的读者,它也是比特币白皮书的第 7 号参考文献。
    • Merkle 谜题(1974-1978): 第一个证明双方可以在公开信道上协商出秘密的构造,且攻击者所需代价相对参与者呈平方级增长。它早于并直接影响了 1976 年的 Diffie-Hellman 论文。
    • Merkle-Damgård 构造: 他的论文还确立了如何用固定长度的压缩函数构建可处理任意长度输入的哈希函数,这正是 MD5、SHA-1 与 SHA-2 的核心设计。比特币使用的 SHA-256 就是一个 Merkle-Damgård 哈希。
    • 基于哈希的签名与后量子复兴: Merkle 签名方案把一次性签名密钥组织进一棵树,使单一公钥能够认证大量消息。由于其安全性只依赖哈希函数,而不依赖大数分解或离散对数,它不受那些能攻破 RSA 与椭圆曲线签名的量子算法影响。现代的无状态哈希签名方案正是它的直系后代,NIST 在 2024 年把其中一种纳入后量子签名标准套件——一份 1979 年的设计,就此成为回答 1990 年代所提问题的一部分。
    • Merkle-Hellman 背包密码(1978): 早期的公钥加密系统,1982 年被 Adi Shamir 攻破,至今仍是"看似可靠的困难问题假设也可能失效"的标准教学案例。

3. Merkle 在区块链历史中的位置

  • 影响力评估: 默克尔树是区块链能够扩展的根本原因。在比特币中,一个区块内的全部交易被哈希成一棵树,只有 32 字节的根进入区块头,这意味着无论区块包含多少交易,区块头都保持固定大小。这一性质使"简化支付验证"成为可能:轻客户端只需保存区块头,就能通过校验一条短短的默克尔路径来验证某笔交易确实在某个区块中,正如比特币白皮书第 8 节所述。以太坊则用默克尔帕特里夏树把这一思路扩展到对账户状态的承诺。在区块链之外,同样的结构支撑着 Git、证书透明度(Certificate Transparency)、IPFS 与 ZFS 文件系统。他的哈希函数构造,也间接构成了工作量证明挖矿的基础。

  • 重要观点: Merkle 一贯关注那些能比设计者活得更久的系统,无论它是密码学的、分子的还是制度的。2016 年,他发表了一份"DAO 民主"方案,主张去中心化自治组织可以由预测市场而非投票来治理——在区块链治理理论的贡献者中,很少有人的密码学原语早已内嵌于每一条链之中。


4. 关于 Ralph Merkle 的常见误解

  • 争议与批评:
    • "Merkle 发明了区块链": 他发明的是把区块内容哈希成单一数值的那棵树,而不是把区块按时间链接起来的那条链。用哈希把区块串联起来,是 Haber 与 Stornetta 1991 年的贡献;把两者与工作量证明结合,是中本聪的贡献。
    • "默克尔树是为比特币创造的": 它比比特币早三十年。Merkle 当时的动机是:当每把签名密钥只能有限次使用时,如何让数字签名变得实用。
    • "他在公钥密码学上没有得到承认": 从历史看部分属实。出名的是 1976 年的 Diffie-Hellman 论文,但美国专利 4,200,770 的发明人包括 Hellman、Diffie 与 Merkle,而 Hellman 多次公开主张 Merkle 应获得同等承认。
    • "默克尔根能证明一笔交易有效": 它证明的是"包含关系",不是有效性。根承诺了一个区块究竟包含哪些交易,因此轻客户端可以低成本地校验某笔交易是否在其中;但要判断这些交易是否符合规则,仍然需要共识层。
    • "他的纳米技术与人体冷冻工作属于边缘领域": 这些工作确实不在两个领域的主流之中,他本人也未作相反的表述。它们与其密码学工作无关,而后者的奠基地位从未受到质疑。

5. 时间线与现状

  • 1952 年 2 月 2 日: 出生于加州伯克利。

  • 1974 年秋: 写下后来成为"Merkle 谜题"的伯克利课程项目提案。

  • 1978 年 4 月: 《Secure Communications Over Insecure Channels》发表于 CACM。

  • 1979 年: 完成斯坦福博士学位,论文中描述哈希树;9 月 5 日提交专利 4,309,569。

  • 1980 年: 发表《Protocols for Public Key Cryptosystems》。

  • 1982 年 1 月 5 日: 基于哈希树的数字签名方法获得专利。

  • 1988-1999 年: 任施乐 PARC 研究科学家。

  • 2010-2011 年: 获 IEEE Hamming 奖章,并入选计算机历史博物馆会士。

  • 2016 年: 发表 DAO 民主方案。

  • 现状与未来: Merkle 仍在从事研究与演讲,主要方向是分子纳米技术与人体冷冻;他是 Alcor 生命延续基金会的董事会成员,也是分子制造研究所的高级研究员。他的密码学工作如今已不再是研究课题,而是基础设施:1979 年他为让签名变得实用而设计的那棵树,如今在每一条运行中的区块链里每天被重新计算数百万次。

常见问题

Who invented the Merkle tree?

Ralph Merkle, in his 1979 Stanford PhD thesis, 'Secrecy, Authentication, and Public Key Systems', supervised by Martin Hellman. He filed US patent 4,309,569, 'Method of providing digital signatures', on September 5, 1979, and it was granted on January 5, 1982. His 1980 paper 'Protocols for Public Key Cryptosystems', which presents tree authentication, is reference 7 in the Bitcoin white paper.

How does Bitcoin use Merkle trees?

All transactions in a block are hashed in pairs up a tree until a single Merkle root remains, and only that 32-byte root is stored in the block header. Block headers therefore stay a fixed size no matter how many transactions a block holds. This enables simplified payment verification, described in section 8 of the white paper: a light client holding only headers can confirm a transaction is in a block by checking a short path of sibling hashes.

Did Ralph Merkle invent public key cryptography?

He is one of its inventors. As a Berkeley undergraduate in autumn 1974 he wrote a course project describing how two parties could establish a shared secret over a channel an eavesdropper is monitoring, later called Merkle's Puzzles and published in 1978. US patent 4,200,770 names Hellman, Diffie, and Merkle, and Martin Hellman has argued publicly that the key exchange should carry all three names.

What is the Merkle-Damgard construction?

It is the method, established in Merkle's 1979 thesis and formalized a decade later, for building a hash function that accepts arbitrary-length input from a fixed-size compression function applied repeatedly. MD5, SHA-1, and SHA-2 all use it, which means Bitcoin's SHA-256, and therefore every proof-of-work computation on the network, rests on this design.

Does a Merkle root prove a transaction is valid?

No. It proves inclusion. The root commits to exactly which transactions a block contains, so a client can verify cheaply that a given transaction is among them. Deciding whether those transactions obey the protocol rules, such as whether their inputs are unspent and their signatures valid, requires the consensus layer and full validation.

参考资料