电台内容概要
上一期我们聊了比特币的前传。在比特币出现之前,已经有一群叫“加密朋克”的人,他们用密码学捍卫隐私,试图创造一种不受政府控制的货币。戴伟提出了b-money,尼克·萨博设计了Bit Gold,亚当·巴克发明了工作量证明,哈尔·芬尼开发了PGP加密软件。这些天才们已经准备好了所有的零件,但就是差最后一步。2008年,一个化名叫“中本聪”的人出现了。他把所有零件拼在了一起,然后在比特币刚刚开始运转的时候,消失了。今天这一期,我们不聊别的,就来聊聊这个谜一样的人。他是谁?他做了什么?他留下了什么线索?以及,为什么他的消失,恰恰是比特币最伟大的设计之一。2008年10月31日,一个叫“中本聪”的用户,在一个密码学邮件列表里发了一封邮件。邮件很短,大意是:“我一直在研究一种新的电子现金系统,它是完全点对点的,不需要任何可信第三方。论文在这里。”附上的链接,就是那篇后来改变世界的九页白皮书:《比特币:一种点对点的电子现金系统》。当时看到这封邮件的人并不多。那个邮件列表里的人见过太多类似的方案了。b-money、Bit Gold、Hashcash,每一个听起来都很美,但每一个都没能真正跑起来。所以,这封邮件并没有引起什么轰动。但有一个细节,今天回看很有意思。中本聪在邮件里说了一句:在他之前,所有人都只是在写论文、提方案。而中本聪直接给了代码。他没有要求别人相信他,而是把东西扔出来,让大家自己验证。2009年1月3日,中本聪挖出了比特币的第一个区块,创世区块。他在里面留下了一行字:“The Times 03/Jan/2009 Chancellor on brink of second bailout for banks.”“《泰晤士报》2009年1月3日,财政大臣正处于对银行进行第二轮救助的边缘。”这句话后来被解读了无数遍。有人说是嘲讽,有人说是时间戳,有人说是宣言。但无论如何,比特币从这一刻起,真正诞生了。接下来的近两年时间里,中本聪一直活跃在比特币社区。他写代码、回答技术问题、反驳质疑者、讨论比特币的未来。他的回帖风格冷静、直接、逻辑清晰,不带情绪。他的英语很好,用词简洁,偶尔带一点冷幽默。然后,2010年12月12日,他发了最后一篇帖子。之后,再也没有出现过。不是什么深奥的哲学宣言,也不是告别信。相反,它看起来非常平淡、非常技术性,甚至有点“不起眼”。那天,中本聪在BitcoinTalk论坛上回复了一个关于DoS(拒绝服务攻击)防护的帖子。他当时正在处理一个比特币软件的漏洞问题。比特币0.3.19版本刚刚发布,这个版本加入了一些针对潜在攻击的防护措施。中本聪在帖子里解释了这些防护措施的逻辑,以及未来的改进方向。“还有一些工作要做,才能让DoS防护更加完善。我目前正在构建一个更复杂的版本。”原文更技术性,涉及交易优先级、手续费机制、节点连接管理等细节。他还在帖子里提到了一些关于交易手续费和内存池管理的想法,认为这些机制未来可以帮助网络更好地抵抗垃圾交易攻击。没有告别,没有宣言,没有“我要走了”。就像一个工程师完成了一天的工作,合上电脑,起身离开。只是这一次,他再也没有回来。这恰恰符合中本聪的风格:没有情绪,没有告别,只谈工作。中本聪消失后,人们开始疯狂地寻找他。这可能是互联网时代最著名的身份之谜。“Satoshi Nakamoto”,这是一个日本名字,中文翻译成“中本聪”。但仅仅一个名字说明不了什么。很多人起网名时会故意用和自己身份无关的字符。比如一个美国人也可以给自己起名叫“苍井空”。所以,名字本身可能毫无意义。中本聪的英语非常好,但用法上有些微妙的地方。他拼写“colour”用的是英式拼法,而不是美式的“color”。他用过“flat”而不是“apartment”,这两个词都偏英式。但他又用过一些明显是美式英语的表达。有人分析,这可能是故意的,为了混淆视听。他的写作风格很独特。有语言学家做过分析,说他的用词习惯和某些人高度相似。这个我们后面会细说。有人统计过中本聪发帖和发邮件的时间戳。他的活跃时间主要集中在太平洋时区的晚上,或者说,英国的白天。这意味着他大概率不在日本。因为如果他住在日本,他的活动时间应该集中在日本的白天。当然,这也可能是一个夜猫子。比特币早期的代码是用C++写的。从代码风格上看,中本聪的编程习惯有几个很有意思的细节。第一,他用了匈牙利命名法。这是一种比较老派的命名习惯,就是在变量名前面加上表示类型的字母,比如n表示数字,str表示字符串。这种风格在1990年代的Windows程序员中非常流行,但在2008年前后已经不那么主流了。这说明中本聪很可能是一个“老程序员”,他的编程习惯形成于Windows桌面软件的时代。第二,比特币的第一个客户端是Windows版本的。中本聪最初发布的软件,是一个Windows图形界面客户端。Linux版本和Mac版本是后来才出现的。这意味着他的日常开发环境很可能是Windows。这和当时大多数开源极客喜欢用Linux的习惯不太一样。一个使用Windows、用匈牙利命名法写C++的人,这个画像更像是90年代成长起来的Windows桌面软件工程师,而不是大学里搞研究的密码学家。第三,他的代码写得简洁、扎实,但对界面和用户体验不太在意。注释很少,但关键的地方会写清楚。有个叫Dan Kaminsky的安全专家,他是全球最顶尖的网络安全研究员之一。他当年抱着“来找茬”的心态读比特币代码,后来他说,他本来想黑掉比特币,但读完代码后发现,中本聪写得非常聪明,虽然不是那种学院派的优美代码,但很扎实、很安全。他觉得中本聪像是一个经验丰富的老派工程师,而不是一个追求形式完美的学术型程序员。哈尔·芬尼虽然没有直接评价中本聪的编程水平,但他在对比特币早期代码的邮件里,表达过一种“这代码不太像学院派写的”的观感。他曾经在邮件里说,比特币的代码让他觉得中本聪更像一个“自学的工程师”,而不是一个学术型的密码学家。因为如果是密码学家,可能会在代码里加入更多形式化的注释和结构化设计。而中本聪的代码,更像一个在工程一线写了很多年代码的人的风格。综合这些线索,有人推测,中本聪可能是一个自学成才的程序员,或者是一个有工程背景但不是计算机科班出身的人。他的代码风格很像一个在Windows环境里写了多年程序的老兵,而不是一个在Unix/Linux世界里成长起来的学术型程序员。这是最引人注目的线索。中本聪在早期挖出了大约100万个比特币。按照今天的价格,这笔财富价值数百亿美元。但十几年过去了,这些币从来没有被移动过。一个拥有数百亿美元的人,从来没有碰过自己的钱。这只有三种可能:他死了;他丢了私钥;他刻意不动。如果是第三种,那说明中本聪的意志力惊人,而且他的动机真的不是为了钱。说到那100万个比特币,你可能会问:比特币的账本是公开的,但账本上不会写“这个区块是中本聪挖的”。挖矿的机器不会签名,中本聪也不会给每个区块贴标签。要讲清楚这件事,我们得先花几分钟,把挖矿、哈希和Nonce这三个东西搞明白。否则后面没法讲。哈希,英文叫Hash。你可以把它理解成一个“指纹生成器”。你把任何东西扔进去,它都会吐出一串固定长度的乱码。这串乱码,就是那堆东西的“指纹”。第一,同样的东西进去,出来的永远一样。你把同一份文件扔进去,每次算出来的指纹都一模一样。第二,输入哪怕只改一点点,输出完全变样。比如你输入“你好”,算出一个指纹。你把“你好”改成“你好啊”,多了一个字,算出来的指纹就完全不一样了。完全不可预测。第三,只能正向算,不能反向推。你拿着指纹,不可能反推出原来输入的是什么。比特币用的哈希函数,叫SHA-256。你给它任何数据,它都会吐出一串64位的十六进制乱码,长这样:3a7f09b2c4e5d6f8a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e是16的64次方,也就是2的256次方。这个数字,大约是10的77次方。你可能对这个数字没感觉。我换个说法。整个宇宙中所有的原子数量,大约是10的80次方。而SHA-256能表示的哈希值数量,是10的77次方。也就是说,哈希值的可能性数量,和全宇宙的原子数量差不多。你随便算一个哈希,它可能是这10的77次方种可能中的任何一个。两个人各自随便算一个哈希,结果撞在一起的概率,比你随便指一个原子,另一个人也随便指一个原子,结果指的是同一个原子,还要低。挖矿,就像在全宇宙的原子中,找到一颗特定的原子。而且这颗原子,每两周会重新换一次位置。所以,挖矿不是大海捞针,是全宇宙捞针。Nonce这个词,英文全称是“number used once”,意思是“只使用一次的数字”。在比特币挖矿里,你可以把它理解成一个瞎猜的数字。它本身没有任何意义。它不代表钱,不代表交易,不代表任何东西。它唯一的作用,就是让你拿去试。因为比特币网络要求,矿工打包出来的区块,经过哈希计算之后,得到的那个“指纹”,必须小于一个目标值。这个目标值非常非常小。小到什么程度?哈希函数的输出范围是那个10的77次方的巨大空间,而比特币要求你算出来的结果,必须落在这个空间里极小极小的一块区域里。一直试,一直试,直到有一个Nonce,算出来的哈希值刚好小于目标值。Nonce本身是一个32位的数字,它的最大值大约是42亿。所以矿工从0开始试,0不行试1,1不行试2,一直试到42亿。如果这42亿个数字全都试完了,还是没找到符合要求的哈希值,怎么办?这时候,矿工就会去改区块里的其他数据,比如改时间戳,或者改交易记录里的某个字段,然后再重新从0开始试Nonce。所以,Nonce就是那个“被矿工反复乱猜的数字”。它本身没有意义,唯一的作用就是拿来试哈希。谁先试出一个能让区块哈希小于目标值的Nonce,谁就赢了这一轮。把哈希和Nonce合起来,挖矿的完整过程就出来了。全网有很多人在转账。矿工把这些交易收集起来,打包成一个“区块”。然后,矿工把这个区块的数据,加上一个自己瞎猜的Nonce,一起扔进SHA-256哈希函数里,算出一串指纹。接下来,看结果合不合格。比特币网络规定,这串指纹必须小于当前的目标值。如果大于目标值,就不合格。怎么办?换个Nonce,再算一次。还不行?再换,再算。矿工就是这样,几亿次、几十亿次地重复这个过程。直到某个矿工试了几十亿次之后,终于试出一个Nonce,算出来的哈希值小于目标值了。他立刻把这个区块和这个Nonce广播给全网。其他矿工只需要验证一次:把这个Nonce和区块数据扔进哈希函数,算一下,发现确实小于目标值。好,承认他赢。赢了的矿工,获得比特币网络发给他的奖励:新发行的比特币,加上这个区块里所有交易的手续费。你可能会问,为什么总有人说挖矿就是“算出前面有一堆0的哈希”?这个说法不够准确,但也不能说全错。因为目标值非常非常小。在数字世界里,一个数越小,写成十六进制时,前面就越容易出现很多个0。00000000000000000000a3f2b1c9...所以,“前面有0”只是“结果足够小”的表现形式,而不是目标本身。你真正要做的,是找一个Nonce,让整个区块的哈希值小于目标值。0只是这个结果长出来的样子。矿工要猜中那个Nonce,平均要试几亿次、几十亿次,耗费大量电力和算力。但其他人验证你猜得对不对,只需要算一次,不到一秒。这意味着,如果有人想作弊,比如偷偷改掉以前的一笔账,他就必须把那个区块之后所有区块的Nonce全部重新猜一遍。这需要重新消耗天量级的算力,经济上完全不可能。所以,比特币的安全,不是靠“信任谁”,而是靠“让作弊贵到没人做得起”。哈希,是指纹生成器。你给它任何数据,它吐出一串固定长度的乱码。Nonce,是一个瞎猜的数字。你不断换它,直到算出的哈希值满足比特币的要求。挖矿,就是全世界的矿机比赛猜Nonce,谁先猜中,谁就获得记账权和比特币奖励。第四部分:Patoshi模式——用Nonce认出中本聪好,现在我们回到刚才那个问题:怎么知道哪些区块是中本聪挖的?在正常情况下,一个矿工试Nonce的过程,应该是随机的。因为哈希函数没有规律,你没法预测哪个Nonce会成功。所以,矿工只能乱试。有的从0开始,有的从中间开始,有的跳着试,有的顺序试。如果你去看一个普通矿工挖出的很多个区块,会发现这些区块里记录的Nonce值,分布是乱的,没有什么规律。因为每一轮挖矿,起点和路径都不一样。有个研究者,叫Sergio Demian Lerner。他是个阿根廷的密码学家,也是比特币早期研究的专家。2013年,Lerner做了一件很细致的工作。他把比特币最早期的几万个区块,一个一个扒出来,去看里面的Nonce值。结果他发现,有一批区块,Nonce的变化方式非常奇怪。正常的矿工,试Nonce的时候,通常是加一、加一、加一,或者随机乱跳。但有一批区块,它们的Nonce值之间,呈现出一种有规律的关联。假设你有一台电脑在挖矿,它从0开始试,1、2、3、4……一路往上加。这是最正常的模式。但Lerner发现,早期有一批区块,它们的Nonce变化方式,看起来像是好几台电脑同时在挖,但这些电脑之间并不是完全独立的。它们好像被同一个“大脑”协调着。比如,有几台电脑都在各自的范围内顺序试,但它们的路径有时候会重叠,有时候会错开,像是有意分配过的。Lerner把这个奇怪的模式,命名为Patoshi模式。Patoshi这个词,是他自己造的组合词,意思是“Probable Satoshi”,也就是“可能的中本聪”。因为他当时还不敢百分百确定这就是中本聪,所以用了一个留有余地的名字。2009年1月,比特币网络刚上线的时候,全网可能只有几台电脑在运行。当时参与挖矿的人,主要是中本聪本人、哈尔·芬尼,还有几个极少数知道这个项目的人。Lerner用排除法。他把已知不是中本聪挖的区块,比如哈尔·芬尼公开说过的自己挖的那些,还有一些后来社区找到归属的区块,全部排除掉。剩下的那一大批带有Patoshi模式的区块,它们占早期全网算力的比例非常大,一度超过50%。而且,这些区块还有一个共同特征:它们的挖矿算力,后来主动降低了。2010年初,比特币网络开始有新人加入。中本聪似乎意识到了,如果他自己继续占着全网一半以上的算力,别人就会觉得这个网络还是“他的”。于是,有人主动关掉了一部分矿机,把出块机会让给新来的人。这个“主动退让”的行为,也被Lerner记录下来了。综合这些线索,Lerner得出了一个被业内广泛接受的结论:这批带有Patoshi模式的区块,大概率就是中本聪挖的。因为Lerner不是一个一个去猜,而是一个一个去数。他把早期区块全部跑了一遍Patoshi模式的识别算法,把符合这个模式的区块全部标记出来。结果他发现,从创世块开始,一直到2010年中左右,符合Patoshi模式的区块,大约有2.2万个。准确地说,Lerner最初估算的是大约2万个左右,后来随着分析细化,数字被修正到接近2.2万。这个数字不是随便拍的,而是他一个区块一个区块筛出来的。因为从那之后,中本聪似乎就彻底停止挖矿了,或者说,他的挖矿行为不再显示出明显的Patoshi模式特征。后来也有很多其他矿工加入,模式就混在一起了。比特币早期,每挖出一个区块,系统会奖励矿工50个比特币。这个规则在2009年、2010年一直是这样的。直到2012年11月,才发生第一次减半,变成25个。所以,如果中本聪挖了大约2.2万个区块,而每个区块的奖励是50个比特币,那么:当然,这是理论上的最大值。Lerner在做更细致的分析后,考虑到一些特殊情况,比如可能有极少数区块不是他挖的,或者有些币因为技术原因丢失了,最后给出的估算,大约是100万个比特币左右。这个数字,和今天大家常说的“中本聪大约持有100万个比特币”,是吻合的。而且,这100万个币,从挖出来的那天起,直到今天,从来没有被移动过。一个都没有。当然,这个推断不是100%确定。因为Patoshi模式,本质上是一个统计推断,不是密码学证明。中本聪从来没有给任何区块签过名,也没有留下任何可验证的身份信息。Nonce的规律,只能说明这批区块“很可能出自同一个或同一组机器”,但不能直接证明这组机器就是中本聪的。不过,结合几个事实,这个推断已经非常可信了:早期挖矿的人极少;这批区块出现时,只有中本聪在公开推广比特币;这批区块的算力占比、退让行为,都和中本聪的性格和动机吻合;这些币至今未动,也符合中本聪消失后的状态。好,现在我们来看看那些被怀疑过的人。这份名单很长,我挑几个最重量级的来说。我们在上一期详细讲过这个人。他发明了Bit Gold,提出了智能合约的概念,是加密朋克圈子里的核心人物。首先,时间线完美吻合。Szabo在1998年提出了Bit Gold,但当时没有实现。从1998年到2008年,这十年间,他一直在博客上写关于Bit Gold改进的思考。比特币白皮书发布前,他几乎停止了关于Bit Gold的写作。而当比特币上线后,他再也没写过Bit Gold。其次,文风极度相似。有人做过语言指纹分析,发现Szabo和中本聪在用词习惯上有惊人的相似。比如,两个人都不怎么用“of course”,都喜欢用“for example”,都习惯在某些地方省略主语。分析者的结论是:在所有嫌疑人里,Szabo和中本聪的语言相似度是最高的。第三,动机最纯正。Szabo一生都在反对通过通胀掠夺民众财富。中本聪在创世块里引用银行救助的新闻标题,和Szabo的政治立场完全一致。但Szabo多次否认自己是中本聪。他说:“如果我是中本聪,我会告诉你们吗?不会。但我真的不是。”哈尔·芬尼是第一个收到比特币的人。他是一位资深的密码学家,PGP软件的核心开发者之一,也是加密朋克邮件列表里的老面孔。怀疑他的理由也很多:他技术过硬,对数字货币有浓厚兴趣,而且住在美国加州,活动时间吻合。还有人发现,中本聪发帖的时间分布,和芬尼的日常作息有重叠。但有几个反证。第一,芬尼在2009年8月就被诊断出渐冻症,身体每况愈下。而比特币社区在2010年仍在高强度运转,芬尼不太可能维持那种工作节奏。第二,芬尼本人否认,而且他公开了自己和中本聪的邮件往来,那些邮件的语气是两个人之间的对话,不像是自言自语。第三,语言分析显示,芬尼的写作风格和中本聪有明显差异。芬尼在2014年去世。他生前留下的最后一篇公开文章里说,他和中本聪的交流让他相信,中本聪是一个真实存在的人,而且不是他。三号嫌疑人:Dorian Nakamoto,多利安·中本。2014年,《新闻周刊》一篇封面报道引爆全球。记者声称找到了中本聪,一个住在加州坦普尔市的日裔美国人,他的本名真的叫“中本”。记者去采访他时,多利安说了一句话:“我已经不参与那个项目了,现在不能讨论它。”这句话被媒体疯狂引用,似乎坐实了他的身份。但后来证明,这是一场乌龙。多利安·中本是一个物理学家和工程师,但他对比特币一无所知。他以为记者问的是他早年参与过的军事项目。他后来公开否认自己和比特币有任何关系,并表示自己的生活被这篇报道彻底毁了。四号嫌疑人:Craig Wright,克雷格·赖特。这个人自称是“中本聪本人”。他在2016年公开宣称自己就是比特币的创造者,并试图通过法律诉讼来“证明”自己。但他的证据始终站不住脚。他拿不出创世区块的私钥——这是证明身份最简单直接的方式。他提供的所谓“签名”,后来被密码学家证明是伪造的。他的行为方式也和中本聪截然不同:中本聪极其低调,而克雷格·赖特极其高调,他到处接受采访、打官司、骂人。2024年,英国高等法院正式裁定:克雷格·赖特不是中本聪。Adam Back是Hashcash的发明人,也是Blockstream公司的创始人。他被怀疑的原因很简单:他的Hashcash是比特币工作量证明机制的直接来源,而且他长期活跃在密码学社区。但他本人否认,而且他在2008年到2009年期间的活动记录显示,他对比特币的态度一开始并不是特别热衷。如果他是中本聪,这个态度就太奇怪了。还有一种观点认为,中本聪不是一个人,而是一个小团队。比如Nick Szabo加上Hal Finney,或者几个加密朋克合作的结果。理由也很充分:比特币的设计太完善了,涵盖密码学、经济学、网络协议、分布式系统等多个领域。一个人全包虽然可能,但难度极大。而且,如果是团队合作,就能解释为什么“中本聪”在消失后,没有任何一个成员出来爆料。当然,这只是一种猜测。没有任何直接证据支持这个说法。除了以上几位,还有很多人被“指控”是中本聪。这里讲几个有意思的。多利安事件的前因后果。2014年《新闻周刊》的那篇报道,记者是通过多利安的儿子在社交媒体上找到他的。但多利安本人从一开始就否认。他的英文并不流利,而对中本聪的语言分析显示,中本聪的英语是母语水平。这一点就足以排除多利安了。有人用区块链技术“追踪”中本聪的挖矿记录。链上分析公司发现,中本聪早期挖出的区块有一个特征:它们大多带有某种“标记”,也就是nonce值有特定模式。有研究者认为,这可能是中本聪故意留下的“签名”。但至今没有人能破解这个模式。中本聪的钱包在2024年出现过一次“假警报”。有人从某个早期钱包转了几十个比特币出去,媒体立刻炸了,说中本聪动了。后来发现,那个钱包并不属于中本聪,只是一个早期矿工的。类似的事情每隔几年就会发生一次。还有人试图用AI分析中本聪的文字。他们把中本聪写的所有东西输入自然语言处理模型,试图找到他的“语言指纹”,再和其他人的文字对比。结论是:中本聪和Nick Szabo、Adam Back、Hal Finney、Dorian Nakamoto等人都没有完全吻合的匹配。中本聪可能刻意改变了自己的写作风格。关于中本聪的国籍,有一个细节。中本聪在论坛上曾经用过一句话:“你们这些美国人……”,语气上像是把自己排除在美国人之外。但他又说“我们英国人……”,这个表达让很多人认为他可能是英国人。但也有人认为这只是他故意放的烟雾弹。很多人好奇,为什么我们一定要找到中本聪?找到了会怎么样?第一,他会变成一个“中心”。现在比特币没有领袖,没有官方发言人。这是它最独特的地方。如果中本聪出现,政府会找他,媒体会堵他,社区会分裂成“信中本聪的”和“不信中本聪的”两派。比特币会失去那种“不属于任何人”的气质。第二,那100万个比特币会变成悬在所有人头上的剑。如果中本聪回来,动了他的钱包,哪怕只是卖一点,市场都可能崩盘。因为没有流动性的早期巨鲸突然出货,是投资者最害怕的事情。第三,他可能被神化或者被摧毁。如果中本聪被证明是某个人,这个人过去说过的每一句话、做过的每一件事,都会被翻出来放大。他可能会被捧成神,也可能因为某些黑料而被毁掉。无论哪种结果,对比特币都没有好处。中本聪很聪明。他知道,一个真正去中心化的系统,不能有“创始人依赖”。所以他消失了。他用消失完成了最后一步设计。他在论坛上留下的最后一句话,是2010年12月12日,关于一个技术细节的回复。没有告别,没有解释。就像一个造钟人,把钟调好,然后推门离开了。他可能永远都不会回来。而这,也许正是比特币能够走到今天的原因。好,第二期就到这里。我们聊了中本聪是谁这个终极谜题。他留下了名字、代码、100万个比特币,和一串永远无法被完全解开的线索。他可能是Nick Szabo,可能是Hal Finney,可能是一个团队,也可能是一个我们从未听说过的人。我们甚至不知道他是活着,还是已经离开了这个世界。但有一件事是确定的:他创造了一个不需要他的系统。这可能是人类历史上第一次,一个人发明了一样东西,然后它的存在不依赖于发明者。下一期,我们要聊一个更现实的问题:比特币到底值不值钱?为什么有人说它是数字黄金,有人说它是庞氏骗局?以及那个让无数人疯狂的、暴涨暴跌的价格,到底是怎么来的。
我的社区
https://books.xueban.app
社区的主旨是:学外语,搞技术,做远程工作
如何订阅电台
在各大平台搜 软件那些事儿,这里的各大平台包括但是不限于网易云音乐、喜马拉雅、小宇宙、YouTube、spotify......
如果没搜到,你恰好又有自己的podcast客户端,把这条链接加进去就可以了:
https://liuyandong.com/feed/podcast