E24·《比特币可证明密码学引论》的引论
曾汨: 听众朋友们大家好,欢迎收听《亿聪哲史》第 24 期,我是主播曾汨。
阿剑: 我是主播阿剑。
曾汨: 今天这一期播客,我们来聊一本跟密码学相关的小册子,它的名字叫做 Provable Cryptography for Bitcoin,比特币可证明密码学。这本小册子的作者是 Jonas Nick,如果你关注过 Taproot 和 Schnorr 签名相关的 BIP,你大概就见过他的名字。他在 Blockstream 长期从事比特币的密码学研究工作,而这本书是 Jonas 为比特币密码学互动研讨会开发的一本内容全面的密码学练习册。根据 Jonas 的说法,他写这本小册子有两个目的。首先,他希望通过这本小册子为读者提供充分的背景知识,帮助读者理解关于密码学签名的前沿讨论。同时,他也希望通过这本小册子来培养读者对密码学原语的安全概念进行形式化定义的能力。大家听起来可能觉得稍微有点不好理解,不用害怕。我们今天会在这期播客里面展开详细的讨论。而我们《亿聪哲史》的第 11 期节目的嘉宾 Kurt Pan,在几个月前将这本书翻译成了中文的版本。今天我们就再次邀请来了 Kurt,和他一起聊一聊这本书。Hi Kurt,好久不见。先和我们的听众朋友们打个招呼,再介绍一下你自己吧。
Kurt Pan: 好呀好呀。首先大家 2026 新年快乐。很荣幸再次参与《亿聪哲史》播客。我的背景话说简单也简单了。就是我一直在中国,包括香港地区的高校里面,就是接受计算机和密码学学术方面的训练。以及参与一些学术的研究,比如说密钥协商方面,后量子签名方面,ZK-SNARKs 方面都有相关的研究。现在我也在泰国清迈帮助一些数字游民社群做一些活动。虽然我最近刚刚写过一篇文章,就是批判数字游民的幼稚病。OK,就是我今天的主要的假想的听众其实有一个特质的形象呢。就是大概是一个 2010 年左右出生,今年十五六岁,刚上高中的中国的男生或者女生。因为我觉得他们的认知能力是完全可以理解我今天所说的所有内容的,以至于更多。同时呢,他们还没有太被碎片信息或者是短视频或者是 AI slop 进行脑腐降智。那么他们字面意义上就是八九点钟充满能量的太阳。只要不会被因为过时的应试教育体系,或者是云端封建主义的互联网所腐化的话。我相信他们中间一定有人可以成为下一代密码朋克运动的领军人物。我对此是非常坚信的。很高兴来这里和大家交流。谢谢。
曾汨: 哇,这个开头非常好。首先欢迎 Kurt。最近好久没有和你再次聊天了。然后你刚刚的开场让我对今天的内容充满了期待。那么首先我还是想请你先介绍一下比特币,可证明密码学这本小册子它的内容是什么?
Kurt Pan: 首先,就正如你刚才所说,这不是一本书,是一本小册子,Booklet,或者我们叫练习簿,Workbook,这比较合适。就是怎么说呢?这本书,我们注意到它副标题就是 Introduction。致敬一下周星驰吧。我觉得周星驰在陆鼎记那部电影里说,他要一天之内学完所有的绝世武功,对吧?然后出来一堆书。然后说绝世武功就这么多,然后周星驰说,不是周星驰,就是他里头就说,这其实是绝世武功的目录。所以我也想这里说,这本小册子它就是我认为的密码学的绝世武功的目录。你可以根据这个目录去管窥一个非常大的、非常优美、非常令人神往的一个体系,就是可证明密码学。我们也许可以分三个小的部分来读这本书。大家可以看一下这个目录部分。首先是第一部分是 preliminary,就是你的一些很关键的前置知识。比如说第一章里的 negligible function,可忽略函数的定义,以及可证明密码学的一个证明方法,所需要用到的 reduction。就是规约这样的证明技巧。有了这些工具,我们就可以去定义一个又一个的原语,它的安全性质,然后去形式化的证明它安全性质是可以被达到的。只要某一些我们大家都知道的数学困难问题确实是困难的。那么这个第一部分可能应该一直到可以算作第八章吧?对,没错。第八章是一个叫 recap quiz,对吧?就是前八章的内容都是一些从不同的部分,比如说第三章承诺,第四章累加器。第五章 one-time signatures,第六章离散对数和第七章 random oracle model,就是随机预言模型。有了这些工具的基础,我们可以进入第二部分。
第二部分我觉得也是这本书最核心的主要的主题吧。这个主题就在第十章里的定理 10.1。定理 10.1 如果你去看这本书的话,可以看到定理 10. 1 讲的是 Schnorr signatures are EUF-CMA secure 就是这样一个东西所以这本书的目标就是看懂定理 10. 1 一切都围绕着这个展开那这个是什么意思呢?可能很多同学脑中有很多问号密码学的好处就在于你有任何的问号,你就可以一点一点的去 reduce 到一些基础的知识上面,然后你不断的去解决你自己的疑问。比如说我们看到这里出现了词 Schnorr signatures,那么什么是 signatures?什么是签名的语法?什么又是 Schnorr signatures?这个在相应的前面章节,第十章的第一部分。然后 EUF-CMA 呢,就是我们常说的不可伪造性。那么我们一直说这个签名是要不可伪造的,不可伪造的。那么它是一个在数学上是怎么精细的描述这个是不可伪造的呢?那么就是 EUF-CMA 这样的一个性质。那这个性质是什么呢?在前面签名的定义里又有假。然后我们又看到在证明的这个过程中,他说这个签名是在 Random Oracle Model 里是安全的。那什么是 random oracle?在第七章也是有的。以及在这个证明的过程中所用到的 technique,叫做 Forking Lemma,就是我们叫分叉引理。只有证明了这个引理,你才能去证明这样的签名的不可伪造安全性。所以然后分叉引理的证明又是在第 9 章的 9.2。所以你就以这个第 10. 1 为这本书的唯一核心。换句话说,你读这本书,脑子里就可以有一个问题,
Schnorr 签名为什么是不可伪造的?然后读完这本书,你能从各个方面每一个细节的每一个角落去回答这个问题。这是这本书的可以说是最主要的目的。然后借着这个机会,你也就可以去入门现代的可证明安全密码学。然后还有第三个部分。第三个部分是针对比特币的。这本书还有一个目的是把大家能引入关于比特币签名近几年,尤其是 Taproot 升级之后,那些非常前沿的多方的签名,包括比如说 MuSig2,比如说 FROST,比如说最近 25 年还有一个叫 DahLIAS,对,也是 Jonas Nick 为作者之一参与的文章。那么我们就可以继续读第 11 章和第 12 章,也包括之前章节里头的一些 optional exercise。因为那些其实就是它会把你引向最新的这些论文。很多就是说你在读完这个手册,以此为目录,你就可以跟上最新的比特币签名的进展。主要的内容是这样。我再强调一下就是你一定要做习题,这是很关键的。因为如果排除掉习题,其他的那些很干的定义,你在很多地方都能找到。这个东西并不是它的核心。每一章的习题是非常好的。它能够一是检测你是否真正的理解了那个定义。如果你不做习题的话,你光看定义,你除了死记硬背以外,你好像不会真的理解什么东西。如果没有习题的话,你就是在零知识地阅读。真的是这样。当然就是它每一个习题都是有参考答案的,它的 solution,然后或者是你借由这个习题去问相应的 AI,它也会给你一些启发,但是不管怎么说,这个习题的设计,是绝对经过作者的心血在里头的。就是这部分不是现在的 AI 能主动的生成。所以也是这本书有价值的很重要的一个 part。OK。
阿剑: 那么还是围绕你刚刚提到的一个很重要的概念,也其实是这本书的标题,叫做 Provable Cryptography,可证明的密码学。那在你看来这个概念它是什么意思呢?那与之相对的是不是有什么不可证明的密码学,或者是未被证明的密码学之类的东西?
Kurt Pan: 嗯,没错。但是好像很少听过不可证明的密码学。OK,我来想一想这个事情。我也借此来澄清一些概念吧。就是我们一般说密码学,可能比较常见的分类是对称密码学和非对称密码学,对吧?这个就是我们比特币里,比如说哈希就属于对称密码学,签名呢就属于非对称密码学。但其实还有一些另外的区分了,比如说信息论、密码学和计算复杂性密码学。那这个的区分就是说信息论、密码学,它的结论是经常说会打到某一个信息论的界。或者说就是一个概率论让你说明有一些东西是不可能的,这个也许叫不可能的密码学吧,但不可能不代表不可证明,这还是两个事情,因为就涉及到证明的概念,那计算复杂性相对的就是说他经常会依赖一些计算复杂性的问题,比如说单向函数的存在性,比如说离散对数问题的困难性。基于这些问题,把密码学的方案建构在计算复杂性理论的基础上。这样的密码学是计算复杂性密码学。那往往它的敌手的计算能力就不是任意的,而是也是我们这本书里所说的概率多项式时间。那么其实我们可以把信息论密码学和计算复杂性密码学两个合起来,只要它们有一种 formal,就是形式化的证明模式,证明系统,这样的密码学我们都称为可证明安全的密码学。所以不可证明密码学或者是未被证明的密码学,我们一般称为启发式密码学。Heuristic,这个是什么意思?其实密码学在成为一个科学之前,它一直都是这样的一个路径,对吧?从古代的那些 Classic 的密码,我们一个人不知道用什么原理,他就设计了一个新奇的密码。然后过了一段时间,这个密码被攻破了。然后被攻破的方式也不是很清楚,就是有个人突然灵光一现。就攻破了。
然后呢,就会产生一些社会影响,比如说,玛丽皇后被上断头台,这样的事情。或者是,Enigma 机被攻破了,也属于这样的事情。然后密码学的历史就是一个不断的这样的设计密码,过了一段时间被攻破,产生社会影响,然后再设计新的密码,然后设计的时候依然没有一个原则性的指导。这样不断地循环了上千年吧。那直到我们想把这个事情变成一个科学可以研究的东西,或者说让它成为一个数学或者说应用数学的分支,那我们做的事情就是我们要对于这些密码学的 primitive,比如说签名或者是 protocols,比如说密钥交换,我们给了它形式化的语法定义,包括正确性定义,更重要的是它是具有安全性质,具有安全假设,具有安全模型,然后可以通过安全规约的这种形式化的方式去分析、去理解。什么意思呢?它就是原来我们只能一个一个的去想象这些敌手怎么样去攻击我们的系统。比如说,好像可以重放攻击,对吧?好像可以 reuse 那个 nonce 去攻击。我们就设计去防御它这些攻击手法的协议。可证明安全的思路和这个不太一样。我觉得比他更抽象或者说更有威力。他没有对具体敌手的攻击模式做任何限定,因为这个也是不可行的,对吧?因为大千世界无奇不有,你并不知道很多敌手他可以采取什么样奇妙的攻击模式。那我们只能说对于一些基本的计算资源或者是计算能力去进行限制。比如说我们限制它是概率多项式时间的算法,也就是说它不能跑一个指数时间的算法来攻击这样的系统,那这样就防止掉了一大片攻击模式。我只是举一个例子嘛。所以按照这种一片一片的去防御它的这种模式,我甚至都不知道我防到了什么攻击,但是我通过限制它,我就能证明有一系列攻击是不行的。或者说攻击面吧。
这种思路就是可证明安全的密码学。当然它在理论基础上它有很强的一个哲学意义,就是说它对于一个敌手这样的东西进行了抽象层面上的一种,我们可以把它叫做一个密码学方面的希尔伯特纲领。就是我们知道希尔伯特纲领是一种数学形式化的方式。或者说在二十世纪初应该是法国吧还是意大利。就是有个叫布尔巴基学派的。他想要让。数学完全建立在一些公理体系上,去形式化数学。那我觉得这个可证明安全密码学其实也是这一套思路,是一种密码学的形式化的密码学。那么在历史上看的话,我们知道 Diffie 和 Hellman 写了著名的文章《密码学的新方向》,那么在那里提出了公钥密码学的可能性。但是在我看来,这个可证明安全的密码学是进一步地把这个革命性的想法落地了,去真正地把密码学从艺术转变成科学很关键的一步。这个最早也是出现在 80 年代的密码学学术界。
阿剑: 我给现在正在听这期播客的 2010 年出生,现在大概十五六岁,正在上高中的年轻朋友们,讲一讲我自己的一些基本的感受吧。可能大家不是那么的熟悉密码学,这个东西你以前的课程里面从来不会出现过,但是你一定在初中的时候学过几何学,你一定在你的历史书里面听过有一本书,它诞生于 2000 多年前,是欧几里德的几何原本。那如果你真的好奇,去翻开过那本书的话,你会发现它的第一部分是非常简单直接清晰的,它先给你一些定义,什么是点,什么是线,什么是三角形,什么叫做三角形的全等,这些都是有一系列定义的,然后它再给你一系列的公理,然后再通过这些公理,他可以接下来他的书的主要内容,就是我怎么应用这些公理证明一个一个具体的定理。也就是一些可以应用的东西。被证明的这些东西,其实可以认为在他的这些前提条件成立的这个情况之下是不可颠覆的。就他已经被证明了。这一种模式,它有两种特性。第一个特性是它是逐步推导的。它不是天花乱坠,突然从哪里跳出来一个东西,而是就从我的定义出发,以及我可以使用的公理出发,一步一步去推导出一个定理。只要我每一个步骤它都是合逻辑的,那最后我的这个结论就是成立的。也就是说,在我的前提之下,那它就成立了。这就是为什么大家说希腊人的数学的观念,不同于其他文明的数学的观念。那就是因为它紧紧抓住了证明的这个概念。当我要说我有一个什么东西的时候,我能够为它提供一些的这个证明,只要这个证明是符合逻辑的,那就可以使我们的这个定理浓缩为,就是说这是因为我们之前的这些公理。
Kurt Pan: 没错,没错。这个叫做公理化体系,在数学里一直是一套非常完备的方法论吧。如果大家熟悉哲学的话,像斯宾诺沙他有一些文章也是符合这种很几何原本的方式去进行推导。在近世的话,逻辑学里也会一直有这些公理化的体系,去试图把数学整个建立在一个逻辑学的基础之上。但是我想继续补充的就是,密码学它对于证明本身它是有很大的贡献或者是扩展的。就是这个概念本身,我们刚说的那一套公理化体系,它依然是一种非交互的模式。如果按照现代的计算复杂性理论的说法的话,它依然是一个 NP 的证明系统,所有的数学的那个体系是 NP 证明系统,就是你在读这些证明的时候,你是一步一步的按照推理规则去往下走,最后达到了一个 conclusion,这个过程是非交互的,也就是没有挑战性,也是确定性的,也就是说没有随机性,那么加上随机性和交互性的这种,甚至还要加上博弈的这种关系的这种证明,就是现在的可证明安全密码学里的那一种证明。这个是非常的有意思了。我不知道大家对于就比如说从一些比较科幻的角度去理解是否感兴趣。
阿剑: 你展开说说吧。
Kurt Pan: OK。也许会有人喜欢一个电影叫做黑客帝国 The Matrix。这个是一个非常经典。剧情应该不用说。我想说的是我们怎么样从密码学证明的角度去理解 Matrix。因为有很多角度啦。最常见的是从我们把它认为是一个赛博朋克的电影。那我想说的是赛博朋克是它的美学的特点。当然还有部分蒸汽朋克啊。这个我们不说。我想说的是它的最核心的内核,我看了不知道多少遍,因为这是我挺可能的。十几年前就开始看了一部电影。我觉得它最深的内核其实是密码朋克。所以这个名字我再吐槽一遍。我们不应该把 Matrix 翻译成黑客帝国。这真的是误了一代人。那么我们举几个例子吧。首先最核心的 Matrix 的哲学核心是什么?其实就是说他在探讨如果你无法区分真实和模拟的话,那么这个区分还有意义吗?或者说什么是真实?那个里头我记得是 Morpheus 问 Neo,他说什么是真实呢?如果你说的,你听到的,闻到的,尝到的,看到的东西的话,那么真实不过是你大脑诠释的电信号。那我觉得这个密码学里我们叫 simulation paradigm,其实也就是可证明安全里非常重要的一个方式。这个 simulation paradigm 是把这个哲学的问题变成了一个精确的数学定义。什么意思?就是我们是说一个协议是安全的。当且仅当,敌手无法区分。一个敌手和真实的密码学方案去互动的真实世界,和一个敌手与一个 simulator 构造的假象去互动的理想世界,这两个世界在计算上不可区分。那么敌手在真实世界中能做到的任何的坏事,那么在理想世界里也能做到。但是在理想世界是我们精心设计的里面没有任何的秘密可以去泄露。
所以 which implies 这个真实世界里的协议也是安全的。这个逻辑好像就把刚才数学的那种形式化的证明系统好像动起来了。所以我觉得这个是比数学甚至更有意思。比如说在这本书里也提到的 Schnorr 签名的那个安全证明里,他有个 reduction 算法,reduction 算法是不是就很像 matrix 里的 architect?就是那个像肯德基老爷爷的那个老头,他是需要为敌手去构造一个完美的模拟。他要让敌手以为自己在攻击一个真正的签名方案,但实际上他却活在一个 matrix 里,也就是一个由 reduction 所构造的虚拟世界里。Reduction,不知道这个类比,但是它可以通过编程,Random Oracle,创造出一个看起来完美的签名,从而去通过一个模拟。那 Neo 就非常像这个 Matrix 里的普通人吧,就是他无法觉察到自己是活在模拟中的,而这个 Reduction 就像 Architect 一样,其实他在幕后操纵了一切。那我再举一个例子,还是 Matrix。Matrix 里有一个老太太,老奶奶,叫做 Oracle。我不知道大家有没有印象。就是和那个老爷爷相对的那个老奶奶。她和老爷爷完全不一样。老爷爷完全是在非常理性的方式在进行模拟。而 Oracle 呢,她是一个能预见未来的角色吧。就是她超越了理性。是一种非理性的模式。这个东西在密码学里 exactly 的就是 Oracle。然后我们注意到他的那些预言有一个非常微妙的性质,就是在被询问之前是未决定的,一旦说出口就……命定了,determined。比如说 Neo 就问他自己是不是 the one,是不是救世主。
他的回答就是说同样是预言,也是创造。那么在密码学中的 random oracle 就有着非常类似的性质。在你查询这个 HX 之前,这个值是不存在的。它只是存在于那个概率分布里。在查询的那一刻,就是有点类似于波函数塌缩。其实是有 quantum random oracle 的,但是我们这里暂且不表。就是说有点类似于一个波函数塌缩,一个具体的值就变得命定了。那之后任何人再问同样的问题,都会得到同样的答案。那这个就触及到了一个古老的哲学问题,那就是知识到底是被发现的还是被创造的?我们一般唯物的讲的话好像都是发现更多一点。但是 random oracle 的这个答案,它的意义就是说这种 query 的回答是被查询者所创造出来的。一旦创造就成为客观事实。这个也是解释了为什么 random oracle 无法在现实中实现。我们现实中的哈希函数 SHA-256 其实还不存在这种完美的随机性在里头。它是一个非常确定性的算法。我再举几个好玩的例子吧。都是关于时间的。比如说有一个电影叫《土拨鼠之日》,里头有个男主他被困在了同一天,然后无限循环。而且他挺好的,每一次循环他都保留了之前的记忆,然后世界其他部分都被重置了,然后就可以二刷三刷,一直在这一天刷,这样的一个脑洞。这个在这本书里也出现了,就是看似最抽象的 9.2 节,The Forking Lemma。Forking Lemma 就是一个敌手,活在一个时间循环中的世界吧。然后 Reduction 是像男主一样,循环之后还能保留记忆的。就是至少他知道他接下来想干什么,是基于之前的选择的。那么第一次运行的时候,世界正常运作敌手做出选择,成功伪造签名,
然后时间重置回到了同一天的开始。但是 Reduction 记得发生了什么?第二次运行,一切重演,直到分叉点。这次 random oracle 就给出了不同的回答。敌手是没有记忆的嘛,所以他会做出完全相同的选择。然后到了分叉点以后呢,他又会走向不同的结局。通过这个东西,他就能去 extract 出来一些东西,比如说私钥。就是换句话说,你如果时间能倒流的话,我当然可以抽取出私钥,哪怕是你没有给我你的私钥。但是我有超能力,我就可以来用这个超能力做一些只有在模拟世界里才能做的东西。那个电影有点老,然后还有个稍微新一点的电影叫 Tenet,信条,Christopher Nolan,应该是在 2020 年的一个电影,我不知道有多少听众朋友看过,反正我个人是非常喜欢那个电影。他也是一个类比吧。也非常精彩。他主要的 idea 是说通过某种形式可以逆熵了。就是我们知道我们所一般认定物理世界的时间方向是熵增的方向,对吗?或者说我们定义熵增方向为时间的方向。那么如果我们可以逆熵的话,在那样的一个世界里,我们就可以玩很多东西。他里头举了一个例子叫时间钳形攻击,就是说他同一个 team 分成两个子 team,然后一个从这个事件的开始往前攻,然后另外一个从事件的结束往后攻,然后两个互相在结束的时候交换信息,在更高的时间维度上去把这个东西达成一些神奇的效果,在我们这里就是 extract 出来私钥。当然它那个世界就是一个虚拟的世界吧。但是我们密码学可证明安全,reduction 和 simulator 所处的这个世界不就是那个世界吗?时间不就可以随意的去逆转倒流重新开始吗?对吧?
所以这样理解就是很好玩。这也是我一直觉得挺好玩的一些东西。
阿剑: 我来给我们的年轻朋友们提供一些场外的信息。在刚刚 Kurt 提到的三部电影当中,离你们最近的一部是信条,是在 2020 年上映的,这时候你们 10 岁了。然后上一部呢是 The Matrix,就是被译为黑客帝国的它的第一部,是在 1999 年上映的,所以离你们已经有一段时间了。
Kurt Pan: 也 10 岁。因为按照信条的观念,如果有些 10 后是从 10 年开始往前去活的话,那么到 9 年大家就可以看到黑客帝国了。
阿剑: 然后离你们最远的是《土拨鼠之日》,是在 1993 年上映的。所以我想说的是什么呢?我想说的是,Kurt 刚刚给出的一个证明是一种基于互联网的或者说需要互联网的证明。因为这些电影除了信条,没有一个按照在一个这个熵增的世界里面,在你们的这个生命中,在你们这个电影院上映过。所以你们需要互联网来访问它。然后我猜想你们读过这本可证明密码学的这本小册子之后,会更理解 Kurt 在刚刚举的这些例子。因为你会发现 Kurt 是不是就是在建模这些敌手呢?他们的计算能力,他们的具体的某一项能力,然后也许你会发现在这些能力之下,我们依然有一些东西能够给我们一些你想要的属性,那么这个东西就是可证明的,对吧?我再给大家讲一个故事吧。这个故事是这样的。如果我们播客的比较老的这个听众的话,你可能会听过我在很多很多期之前的播客上曾经给大家推荐过一本书,那本书是日本的结城浩教授写的,叫做《图解密码学》。有趣的事情是这样的,在我看过这本书的大概三年之后,我跟我们行业的一位前辈有机会坐在一起。我当时向他请教说,那现在的密码学的这些新的东西可以说日新月异,发展得非常快。那有没有什么样的著作能够为我进一步了解密码学,打一些基础?然后当时在谈话间我就提到了结城浩的这本书,然后这位前辈很干脆地斩钉截铁地给了我一个答案,说那本书没有用。他说现代的密码学不是这样的。这件事情给我造成了很大的冲击。就是我当时不太明白为什么一个在我看来,那本书其实是图文并茂的,就是帮你建立这个印象,建立这个直觉上,其实我觉得有非常不错的这个作用。但是在他看来,这本书是没有什么用的,对于学习新的这些密码学不太有什么作用。
直到我看到这本小册子,就是比特币的可证明密码学引论这本小册子,我才真正理解他说的东西。我才真正明白所谓的在密码学的行业里面,经常大家说的,我们要形式化一种方案,或者说形式化的证明一个方案的安全性,它到底是什么意思?我想这个是我可以给大家提供的一个小故事。
曾汨: 其实到这里我也有一点想法。因为我们其实我们这个播客老是在讲个人主权嘛,对吧?在讲 don't trust, verify。但是这本小册子在我眼里它也是一种 verify。它告诉你比特币不仅仅是你可以验证节点,验证交易,比特币的密码学的安全性也是你可以在拥有一定质量,你可以自己去证明它是安全的。那么所以其实这本书是给予读者自证能力,你能够用数学的方式去验证比特币它为什么是安全的。这在某种层面上也是一种 verify。
阿剑: 对对对对,这一点非常重要。就是平时我们经常说比特币的密码学是可靠的,或者说哈希函数它是安全的,那这个安全的到底是什么意思呢?或者说什么什么密码签名方案它是安全的,那这个安全的它到底是什么意思呢?看这本书其实就是在回答这样的问题。
曾汨: 我们说去验证,我们是去验证自己的交易,验证自己的钱包。但其实这本书就是告诉你,你密码学也是可以去验证的。你不用像交易一样,你需要信任外部的节点。密码学你也不需要信任外面的所谓的权威的论文,权威的名词,各种权威给你的结论,你可以通过自己的方式去完全地去证明它是安全的。这一点是很有意义的。
Kurt Pan: 是这样的。我们通过这本书可以去不断地反思审视我们的信仰吧。就是说可能在原来我们看到一个新的方案,可能作者说他的这个方案是安全的,然后他里面用到了很多经典的哈希啊,Schnorr 签名啊这样的 primitive 作为组件。那这本书就告诉我们这些组件,为什么是安全的呢?是因为这些组件又基于一些我们认为是单向的,是一些复杂的数学困难函数。那好,那我们就是把我们的信念就逐步的去 reduction。最终到了一个我们就能看清楚我们相信的到底是什么。我们只需要接受那一个信念的核心。其他的东西都是可以逐步的去推导出来的。这样会使我们的信念也更加的坚定。那么在密码学里这个信念的核心是什么呢?基本上我可以说大体上就是一句话叫做 P 不等于 NP。所以这个东西它是一个 open problem 对吧?有人相信也有人不相信。很多密码学的人他没有意识到这一点。他并没有很深切的意识到自己的信念到底是什么。那这就有可能导致他的迷茫。比如说受到 AI 浪潮的影响,他可能会去非常疯狂的追逐一些更疯狂的浪潮。但是他没有看清楚这里头可能存在的矛盾点,因为一个 P 等于 NP 的世界是非常有利于 AI 甚至是 AGI 的,因为任意的 NP 问题都可以被高效的算法解决,那么通用的模式识别器就完全是可能的。换句话说,你是信仰 P 等于 NP 还是 P 不等于 NP,最终会决定你到底是在 AI 行业还是 Crypto 行业。我觉得这是一个非常本质的矛盾。很多人可能逐渐会看到这一点。
阿剑: OK,那我们再讲回来一些轻松的话题。Kurt,我们知道你为这本书提供了一个中译本。你当时也是,就像你刚刚那样,有因为怀着那样的信念,然后去做这件事情的吗?
Kurt Pan: 我先说个不走心的回答吧。就是这是举手之劳啊。就是我想说就是我是用当时我都忘了用哪个 AI 模型来打底,就是我要刷够当天的 LLM 的 quota,所以我是在用翻译书这种模式在压力测试,现在的不同的模型的能力边界。就是我去年,包括这本书总共翻译了 7 本书,也包括就是阿剑老师应该在之前的节目里 call 到的那个 Cryptowars 密码战争。我是在不同的月份,用不同的公司的不同的模型,在不同的环境里做不同内容的翻译。这个本身是一个挺好玩的体验。就是 OK,那再给一个真心一点的回答。呃。就是我当时看到这本书,它是在 github 上有了 TeX 的源码吗?我看第一眼,我就决定是要翻译。为什么?因为他这本书编译出来的那个结果让我想起来了 MuSig2。我是先看到这里面的那些 figures 的。框里面的 game 的那个模板,我才去看作者的,果然就是 Jonas Nick,因为和 MuSig2 里头完全一样。而那篇 paper 当时我花了很大的功夫去看里面的,可能至少一个学期吧,接近半年的时间,去看里面的方案,包括安全证明的技巧。我当时理解起来还是非常头大的,就我当时就想,是不是能有一个类似于这样的基础练习手册的一个可证明安全密码学的习题集。可以让读者通过去做这些练习题就能快速地获得一种,理解那个最前沿的论文,比如说 MuSig2 的能力呢?现在我终于看到了这一点。而且他把他的 LaTeX 模板是开源了,所以我也终于知道他里头的这些。Game 是怎么写的?所以我想把这个东西带给广大的中文的读者,尤其是我今天所说的 10 后。
阿剑: 好,那我们提今天的最后一个问题是,如果我们从学习密码学的角度看的话,那你对这本书还有什么要批评的吗?
Kurt Pan: 呃,是这样的,我对这本书没有什么要批评的,就是正如我前面所说的,如果一本书。不去强调这本书里的那些东西,比如说 negligible function,比如说 reduction,比如说 random oracle,和这些 EUF-CMA secure,这些东西的话,我认为这就不是一个好的现代密码学的入门书。那我在这里头,想批评的其实是 Mastering Bitcoin。那本书在这个节目里应该被封了。无数错 N 次,但好像都是五星好评,对吧?那我这个 N 加 1 个字评论的话,我就是说它在比特币的入门路径上,我也是给到五星好评。但是在密码学的入门上,我们根据我们刚才所说的判据,它好像里面没有提到这个小册子里提到的这些对于密码学入门非常重要的点吧。所以我在这个方面上我只能给它到三星。
曾汨: OK。那如果有读者读完了这本小册子啊,对比特币可证明的密码学产生了浓厚的兴趣,他想要继续深入的话,你有哪一些推荐的资源呢?
Kurt Pan: 首先,我要说,这好像是一个伪命题。为什么要这样说?因为如果你真的认真的读完了,并且读懂了这个小册子,以及包括做完了所有的练习题的话。那么你还不知道要去哪里找哪些更深入的资料的概率是可忽略的。OK, OK,言归正传,非要让我推荐的话。那么深入密码学,我还是推荐经典的 Katz 和 Lindell 的那本 Introduction to Modern Cryptography 的第三版,以及丹博内还没有写完的一本叫做 A Graduate Course in Applied Cryptography,这个网上有它的草稿。还有就是比较经典的,应该也是叶胡达·林德尔他写的一个教程叫做 How to Simulate It,如何模拟,就叫这个。他那个里面,我觉得对这个小册子是一个很好的补充,前提是你要真的读完这个小册子。你知道那个为什么对他是一个很好的故事。还有就是也是有个小册子叫,当然好像就是 2010 年的,是由 Damgård 写的一个叫 On Sigma Protocols,论 Sigma 协议。那个小册子我觉得至少对我来说有比较特殊的意义,因为我们知道 Schnorr 签名它只是 Sigma 协议的一个特例,对吧?我们从 Sigma 协议的角度去理解 Schnorr 签名的话,那个是一个非常好的东西。我觉得它里头很多有价值的东西还没有被完全的挖掘出来。虽然是 10 年,是这些高中朋友们刚出生的那一年写的,但是现在看依然没有过时,就是 On Sigma Protocols。刚才说的是对于密码学的深入。如果是比特币的深入的话,首先这本书里它最后经常会提到一些最新的 paper,对吧?你就按照里头去看啊。
比如说那个。Accumulator 那一章里应该是提到了 Utreexo 是一个比较新的 BIP。它也是一种 Accumulator。再比如说它整个第 12 章它都是一个交互式聚合签名。它其实就是想让大家去读它的最新 paper DahLIAS 对吧?所以我为什么说读完这本书你应该知道你要接着读什么。如果你还是不知道的话,那我就再推荐 Bitcoin Optech 了,因为它里面每一期在密码学层面上会有更新和总结和讨论了。
曾汨: OK,其实我有一个问题想问 Kurt。我们跟你录过两期播客了嘛。我其实发现你对密码学是那种发自内心的那种喜爱。我其实很想问问你,你觉得密码学最让你着迷的点在哪里?你对它这种喜爱的源泉在哪里?
Kurt Pan: 我也讲一下我的故事吧。我原来就是在研究生之前,本科的时候,我其实搞过很长一段时间的 NLP,就是自然语言处理,非常的 AI,对吧?就是在那个年代,也是自然语言处理在被深度学习开始这一波浪潮去席卷的那个年代。我应该也是比较早国内用 TensorFlow 那个库的一批。然后我当时就是用 TensorFlow 去做一些任务。它的效果比那些当时的硕士、博士吭哧、吭哧搞出来的那些传统算法的精确性要好很多。这个事情就让我陷入了一种奇怪的感觉。就是我想要知道我为什么比他们做得更好,但是我也不知道为什么。然后我试图去理解那些机器学习本身的那些 RNN, LSTM 这些模型。理解了之后好像里头还是有一种黑箱,肯定是有一种黑箱未曾打开。而且这个东西我查遍了互联网上的资料和教科书。我认为以当时以及现在人类的水平是打不开这个东西的黑箱。那这就让人很难受。就一方面你那个做出来的效果 it works,而且 works 得更好,但是你却不知道它是什么东西,是为什么。那这个东西让我非常的难受。然后这种难受感也许就是我对于密码学这么痴迷的源头。因为我突然发现了密码学这样的一个东西。你以今天我们讲的 Proof of Security 这种模式去打开。你可以清晰地看到它的骨骼的每一个方面,而且它的每一个组件,你是可以在走路的时候,在睡觉的时候,你都可以想,就是去把玩它,去调试它,去 tweak 它,它就是一个完全是你自己控制的一个玩具了,然后你可以对它去思考很多东西,然后最终我就把密码学当成我的一个类似于一体吧,或者外骨骼这样的东西是我的一种思考框架,所以我谈论这个东西当然是非常的有热情,
然后另外一方面就是正如应该是爱因斯坦说的吧,他说就是数学这个东西,他非常的优美优雅,然后非常的简洁,非常的令人神往,但碰巧他在我们这个物理世界里真的有用,虽然不知道为什么有用,但是他碰巧就是非常的有用,那密码学他在理念的世界里是非常的干净优雅可靠,然后令人欣喜,类似于数学,那它在实际的我们的互联网上,我们的比特币区块链上,在整个的赛博空间里,它确实有用。而且这个有用可能还会更加的有用。这一点就是说客观上让我留在了这个里面。好像就是说我思考了那些看起来比较玄妙,但是我个人觉得很有意思的点,在对于更多的人也许更有用。这一点更加深了我去留在这样一个行业吧。我不称为它是一个行业,我称为是一个一场运动,一个组织的原因。
曾汨: 升华了。好的,那么非常感谢 Kurt 今天的分享。我想大家从今天的这期播客当中应该会有许多的收获。我们下期播客再见。拜拜。
Kurt Pan: 拜拜。
