跳转至

2 比特币是时间


Quote

有时钟高悬,啊——正如火如荼。
时钟啊——时辰,时钟上时辰,看似对错参半
- Robert Frost, Acquainted with the Night (1928)

Quote

时间对我们来说是个巨大的谜团。它只是一个概念,我们甚至不知道时间是否存在。。。
- Clifford D. Simak, Shake­speare’s Planet (1976)

人们常说:时间就是金钱。后面还有半句,金钱也是时间,它是代表了人类储存的集体经济能量。然而,时间和金钱之间的联系比乍看起来要复杂得多。如果金钱不需要时间来创造,它就不会像金钱一样有效,或者不会持续很长时间。更深刻的是,正如我们将看到的,在信息领域跟踪事物总是意味着跟踪时间。

一旦钱进入到了数字时代,我们就需要对时间的定义达成共识,这也是问题所在。你可能觉得确定时间不就是看一表这么简单吗?如果是一些日常的事情,这样确定时间就足够了。但是,在一个全球化敌对分布式网络确定时间就变得非常困难。你怎么知道某一个表示值得信赖的?如果系统跨越了整个银河系,你怎么统一大家的时间?你怎么在一个没有时间概念的地方测量时间?在这种背景下,时间究竟是什么???

为了回答这些问题,我们先来看看时间的概念本身以及比特币是如何确定时间的:区块时间,或者说区块高度。我们将会探索为什么计时跟记录事件是紧密相关的,为什么在分布式系统中没有绝对时间的概念,以及比特币是如何利用因果关系和不可预测性来创造“现在”这个概念的。

计时设备已经不止一次的改变了文明的进程。就像 Lewis Mumford 在 1934 年指出:“现代工业时代的关键机器不是蒸汽机,而是钟表。”现如今,计时设备再一次改变我们的文明:现代信息时代的关键不是计算机,而是计时器。这一次,这个计时器是比特币。

记录事物

(译者按:作者在这一节说明令牌这个方案在数字领域不可行。)

Quote

让孩子学习计数,从而获得数字的概念。这些东西在计数时被视为相同,它们可以是单个对象或一组对象。
David Eugene Smith, The Teaching of Elemen­tary Mathe­matics (1900)

非常粗略地说,有两种方法来记录事物:物理令牌和分类帐。你可以直接使用现实世界的人造物,例如,给某人一个贝壳、一枚硬币或其他什么的东西,或者你可以通过在纸上写下发生的事情来复制世界的状态。

假设你是一个牧羊人,你需要确保你的没一只羊都回到羊圈了。你可以在每只羊身上戴上一个项圈,一旦羊回到家,你就可以把项圈取下来挂在你的棚子里。如果你有一些挂钩,每个挂钩对应一个项圈,那么一旦所有挂钩都被占满,你就会知道所有羊都安全地回来了。当然,你也可以把它们数一遍,然后记在清单上。但是,你必须确保在每次计数开始时都创建一个新清单,也必须确保不会重复计算单只羊(或根本不计算)。

钱实际上是一种工具,用于记录谁欠谁什么。粗略地说,迄今为止我们使用的所有钱都属于两类:物理工件和信息清单。或者,用更常用的语言来说:令牌(Tokens)和分类帐(Ledgers)。

20221228214140

重要的是要意识到这些类别的内在区别,所以让我明确地指出:第一种方法——物理令牌——直接表示事物的状态。第二种方法——分类帐——间接反映事物的状态。每种方法都有优点和缺点。例如,令牌是物理的,是分布的;分类帐是信息的,是集中的。令牌本质上是无信任的;分类帐不是。

在数字领域,无论营销专家怎样努力试图向你证明相反的结论,即使用物理令牌,我们只能使用分类帐。它是一个信息领域,而不是物理领域。即使你称某种信息为“令牌”,它仍然是一个可塑性的信息,写在硬盘或其他可以存储信息的介质上,有效地使它成为信息记录。

所有数字信息的分类帐都会有潜在的双花问题。信息无法直接表示世界的状态。此外,信息的移动意味着复制。信息存在于一个地方,要“移动”它,你必须将它复制到另一个地方,并在其原来的地方删除它。这个问题在物理领域不存在。在物理领域,我们实际上可以将东西从A移动到B。信息领域没有这个性质。如果你想将信息从列表A“移动”到列表B,你必须将它从A复制到B。没有其他办法。

另一个思考方向是唯一性。物理令牌是有他的原子组合形成的一个独特的实体,是无法(难以)复制的。而纯信息没有这种特性。如果你可以读取信息,你就可以分毫不差的复制信息。从实践的角度看,物理令牌是独特的,而数字令牌不是。我甚至觉得“数字令牌”这个词就是错的,一个令牌可以是一个秘密的信息,但它绝不会是一个独特、单一、不可复制的信息。

这种特质上的区别导致你无法真正的“交换”信息。人们无法像传递物理令牌一样传递数字令牌,因为你永远无法知道原始的数字令牌是不是被删除了。数字令牌就像想法一样,只能被传播(广播)。

Quote

你有个苹果,我有个苹果,我们可以交换苹果,然后我们还是每人一个苹果;但是如果你有一个想法,我有一个想法,交换想法之后,我们每个人就有了两个想法。
Charles F. Brannan (1949)

物理令牌,比如裸资产、“现金”,不受这个困扰。在现实世界中,如果你给我一枚硬币,你的硬币就不见了。没有神奇的硬币复制方法,给我的唯一方式就是亲自交出来。物理学定律不允许你双花一个硬币。

双花在物理世界是可能的,不过那需要精心的设计和伪造,但是在数字领域,双花就再简答不过了。

在数字领域,因为我们处理的对象是信息,双花是一个固有的问题。正如每个使用复制和粘贴复制过文件的人都知道的,信息是可以完美复制的,并且不受托管它的介质的约束。例如,如果你有一张数字照片,你可以将其复制一百万次,将一些副本存储在USB存储器中,并将其发送给成千上万的不同人。完美的副本是可能的,因为信息允许完美的复制。

再次重申:对于信息来说,复制是家常便饭。根本就没有把信息从一个地方“移动”到另一个地方的方法。信息总是从A复制到B,如果复制过程成功,A的原始副本就会被删除。这就是双重花费问题如此棘手的原因。如果没有中央权威,就没有任何方法可以无信任地将任何东西从A移动到B。你总是必须相信原始副本会被删除。一个自然的副作用是,在数字信息方面,根本无法知道有多少副本存在,以及这些副本可能在哪里。

因此,使用数字“令牌”作为货币是不可能也永远不会成功的。由于令牌因其独特的物理构造难以复制而变得可靠,所以这一优势在数字领域消失了。在数字领域,令牌是不可信的。由于信息的内在性质,数字货币的唯一可行格式不是令牌,而是分类帐——这就带来了时间问题。

令牌没有时间概念,分类账有

Quote

所看见的东西是暂时的,但所看不见的东西是永恒的。
Paul of Tarsus, Corinthians 4:18b

对于物理令牌来说,交易发生的时间并不重要。要么硬币在你口袋里,要么不在;要么你可以花这枚硬币,要么不行。你使用它的前提只有一个就是持有它。自然法则会处理剩下的事情,从这个意义上说,物理令牌是无信任的、无时间的。

而对于分类账而言,物理拥有已经不再重要。控制分类帐的人需要确保一切事情都有序。物理法则本来是这样规定的:你不能花你没有的钱,也不能花你以前已经花过的钱,但这必须由人为规则来执行。正是这些规则管理着分类帐的有序运营和维护,而不是物理法则。

从物理法则变成人造规则,这正是问题所在。规则可以弯曲打破,而物理法则就没那么容易被改变。比如,我们无法轻易的制造一个金币,你需要先挖掘开矿。但是你可以轻松的在纸上制造一个金币,你只需要在分类账上增加一条记录,转移给自己一些金币即可。放在中央银行的背景下,你只需用用计算机键盘输入几万亿就好了,(尽管金融人士将其称为“再抵押”、“分散储备银行”或“量化宽松” - 但不要上当,这都是一样的: 制造钱。)

为了保证记账的人可以如实的记录,独立审查部分会介入其中。其实弄对分类账中的每个记录并不难,审查员需要反复查看账本,回溯每一天记录的时间,确保账本是是正确且有效的。如果没有可靠的时间戳,验证账本内部的协调性就非常困难。所以,确保顺序的机制非常的重要。

没有绝对时间的概念,就无法定义交易的顺序。没有交易的顺序,账本就无法正常工作。如何才能知道你实际上有多少钱?怎么才能去确定事情是按照顺序发生的?

物理令牌和分类账的区别让记录时间变得非常重要。在物理领域,令牌是无时间的造物,可以在无监督的情况下进行交换;而数字领域,铸币需要时间戳。

中心化铸币

Quote

时间,一个伟大的雕刻家,或者一个橡皮擦。
Yahia Lababidi (b. 1973)

解决双花问题的通用方法是通过一个中心机构来列出交易记录,这样以保证电子交易只发生一次。一旦有了重要交易记录表,你就有了一个唯一的账本,它代表了真实的唯一来源。解决双花就可以通过查看这个列表完成。这就是很多机构,比如 PayPal、Venmo、Alipay,甚至央行,解决双花问题的方法。

Quote

当然,问题在于收款人无法确认发款人是否重复使用了当前的代币。常见的解决方案是引入一个信任的中央权威或铸造厂,它检查每笔交易是否重复使用。[…] 这种解决方案的问题在于整个货币系统的命运取决于经营铸造厂的公司,每笔交易都必须经过它们,就像银行一样。
中本聪 (2009)

应该明确的是,中本聪并没有让信息变得不可拷贝。比特币系统的每个部分,源代码、账本、私钥等等,都可以被拷贝。所有这些都可以被复制和篡改。但是中本聪创造的比特币系统让违反规则的副本变得毫无用处。比特币网络执行一个复杂的舞蹈,以决定哪些副本是有用的,哪些不是,正是这个舞蹈将稀缺性带入了数字领域。就像所有舞蹈一样,都需要一个时间测量工具来规定节奏。

即使是集中的分类账也只有在有一种一致的方式记录时间的情况下才能解决双重花费问题。你总是需要知道谁给了多少钱给谁,最重要的是: 什么时候。在信息领域,没有时间戳就无法铸币。

Quote

必须强调的是,在分布式系统中无法将事件与时间点联系起来是一个尚未解决的问题,在中本聪的解决方案之前,去中心化分类账永远不可能成为可能。
Gregory Trubet­skoy (2018)

去中心化时间

Quote

时间让一起都消逝了。
Aeschylus (525 BC – 456 BC)

时间和顺序有着密切的联系。正如 Leslie Lamport 在他 1978 年的论文《分布式系统的时间、时钟和时间顺序》指出:时间的概念使我们思考的基石。而时间的概念是从更加的本的概念:事件的顺序,而衍生的。缺少中央机构的管控协调,之前、现在和之后的概念就会崩塌。在 Lamport 的世界里,"happening before"这个概念定义了分布式多进程系统中事件的不变偏序。

换句话说,如果没人控制时间,就没有中央控制机构,你怎么能得到一个可靠的时钟呢?

你可能觉得这个问题很简单,只要每个人用自己的时钟就好了。但是这种方案的前提是每个人的时钟都是精确的,更重要的是,没人作弊。在一个敌意网络中,依赖个体时钟就是一场灾难。而且相对论也说了,时间在空间并不均匀。

做一个思想实验:想象一下如果每个人都负责自己的时间,你如何欺骗系统。你可以假装你现在发送的交易实际上是来自昨天的——只是因为某些原因被延迟了——因此,你仍然拥有你今天花费的所有金钱。由于每个去中心化系统固有的异步通信,这种情况不仅仅是理论上的思想实验。消息确实会被延迟,时间戳是不准确的,并且由于相对论效应和宇宙的自然速度限制,在没有中央权威或观察者的情况下区分事物的顺序并不容易。

Quote

谁在那!咚咚咚。。。
匿名的笑话

20221229104826

这个问题其实就是之前的电子现金都需要中央机构的原因。你总是需要相信某个实体以确保事件发生的顺序。

比特币通过重新定义时间的概念解决了这个问题。比特币不用秒计时,而是区块。

一次一个区块,比特币的计时系统

Quote

时间的荣耀是为了平息争斗的君王,
揭开谎言,揭露真相,
为古老的事物盖上时间的印记,
唤醒清晨,守夜,
冤枉错的,直到他还清正道;

莎士比亚,The Rape of Lucrece (1594)

所有的时钟都是一个周期性的过程,一种我们称为“滴答”(tick)的东西。爷爷的滴滴答答的老怀表跟我们现代石英和铯钟是同理的。一些震动或者摇摆的东西,我们数这些震动,直到他们变成一分钟、一秒钟。

对于摆钟来说,这些震动很容易观察到;对于一些很小的特殊的时钟,我们需要特别的设备才能看到。而时钟的频率取决于他们的使用场景。

大多数时钟有一个固定的频率。毕竟,我们想知道准确的时间。然而,有些时钟具有可变频率。例如,节拍器有一个可变频率,您可以在让它打勾之前进行设置。节拍器一旦设置就保持其速度不变,而比特币的时间每次滴答都不同,因为它的内部机制是概率性的。然而,目的都是一样的:让音乐保持活力,这样舞蹈才能继续。

20221229124154

比特币网络是一个时钟这个说法对于大众来说非常陌生。事实上,中本聪指出比特币网络做为一个整体起到了时钟的作用,用他的话说:分布式时间戳服务器。

Quote

在本文中,我们提出了一种解决双重支出问题的方法,使用点对点分布式时间戳服务器生成交易时间顺序的计算证明。
中本聪

其实,白皮书的参考文献也说明时间戳就是问题的关键,白皮书中有三篇涉及到了时间戳:

  • How to time-stamp a digital document by S. Haber, W.S. Stornetta (1991)
  • Improving the efficiency and relia­bility of digital time-stamping by D. Bayer, S. Haber, W.S. Stornetta (1992)
  • Design of a secure timestamping service with minimal trust require­ments by H. Massias, X.S. Avila, and J.-J. Quisquater (May 1999)

Haber和Stornetta在他们1991年的论文中指出:数字时间戳就是要找到一个可行的计算过程使得改变一个数字文件的时间戳变得不可能。跟物理的文档不同,数字文档可以被轻易修改,而且修改也不会物理存储介质上留下任何痕迹。在数字世界,我们可以不留痕迹的修改和伪造。

信息的可修改性使得给数字文档加盖时间戳变得非常复杂,一些简单的方案根本不可行。比如这篇文章,简单的在文末加一个日期并没有什么用,因为任何人包括你都可以修改这个日期。

时间是因果链

Quote

极端得看,世界是连接的集合,仅此而已。
Tim Berners-Lee, Weaving the Web (1999) (此人是公认的互联网之父)

编造日期是一个普遍问题,即使在非数字领域也是如此。绑架界所熟知的“报纸认证”是解决任意时间戳问题的通用解决方案。

20221229125459

这种方法很有效,因为报纸很难造假且容易验证。报纸难以造假是因为他会引用昨天发生的事情,绑架者不可能在几个星期之前预测这些事情,所以这个带着保持的图片就可以证明被绑架人在报纸发行的时间还活着。

其实这里体现了时间的核心概念:因果关系。时间之箭描述了事件的因果关系。没有因果,没有时间。因果关系解释了为什么加密散列函数对给电子文档加盖时间戳如此重要:他们引入了一种因果关系。因为在没有文档的情况下创造一个合法的散列值几乎是不可能的,一个文档和散列值之间的因果关系就产生了:文档必须在散列值以前就存在。换句话说,如果没有单向不可逆的函数,在数字领域就不会有因果关系。

20221229130706

有了这个因果关系的基础模块,人们就可以构建一个因果链条,比如从 A 到 B 再到 C 等等。从这个意义上说,安全的数字时间戳功能把我们从一个无时间的时代带到了一个数字历史时代。

Quote

因果关系固定了事件的时间顺序。如果一个事件又它之前的事件决定,而它又因发了后续的其他事件,那么这个事件就应该被放在历史的中间部分。
Bayer, Haber, Stornetta (1992)

更不用说,因果关系对于经济学的会计计算更加重要。因为因果关系对每个账本来说都至关重要。

Quote

我们需要一个可以让所有参与者都认可的唯一的历史【。。。】我们的方案是从时间戳服务器开始的。
中本聪

令人着迷的是,所有让比特币成功的拼图要素早就已经存在了。早在 1991 年,Haber 就提出了两种让伪造时间戳几乎不可能的两个方案。第一个需要信任第三方,第二种是一个去中心化信任机制,不需要第三方。作者还识别出信任因果链的问题以及如何修改历史。用他们的话说:”唯一可能得作弊方法是预选准备一个假的时间因果链,这个链足够的长以至于所有的人都不在怀疑“。这种攻击在比特币网络仍然存在,就是所谓的 51% 攻击(后面我们接着讨论这个话题)。

一年后,Bayer, Haber和Stornetta 三人在之前工作的基础上,提出了使用树结构代替链表来连接事件。也就是几天我们说的”Merkle Tree“,这种数据结构可以更加稳定的从一系列哈希值中产生另一个哈希值(散列值)。对于时间戳来说,这意味着你可以把一系列事件打包成一个”滴答“(tick)。在同一篇论文中,作者提出可以通过定期举办“世界冠军锦标赛”来改进 1991 年引入的分布式信任模型,以确定在公共场所(如报纸)广泛发布生成的哈希值的单一“获胜者”。听起来很熟悉?

正如我们将看到的,事实证明,报纸也是思考时间的第二个要素:不可预测性的绝佳方式。

因果关系和不可预测性

Quote

时间不是现实【Hupostasis】,而是一个概念【noêma】或者一个测度【metron】
Antiphon the Sophist, On Truth(公元 3 世纪)

虽然因果关系很重要,但是还不够。我们需要”不确定性“来让时间流动起来。在自然界,我们通过观测自然过程来描述时间的流动。我们观察到熵在增加,称之为时间之箭。尽管自然法则似乎决定了时间之箭的方向,一些事情是不可逆的。你无法让一个煎蛋变回鸡蛋。

类似的,在数字领域构建时间之箭,我们也需要熵增函数。就像你无法恢复一个煎蛋一样,你无法把一个 SHA256 散列值恢复成原来的信息(译者注:因为信息已经丢失了,秩序已经消失了)。

如果没有这种熵增函数,我们就可以任意的回到过去或者未来。比如菲比那切数列就是一个因果链,但是他不是熵增的(译者注:你可以回溯):每个数字都是他前面两个数字的和。这也是一个因果链,但是这没啥用,因为这种因果链是完全可预测的。同样的,绑架者不能用一个日历代替报纸来证明人质的生存状态。我们不能用可预测状态作为时间的证明。我们必须依赖一些不可预测的事情来作为时间之箭,比如今天报纸的头版。

比特币依赖两个不确定性来源:交易和工作量证明。就好像没人可以预测明天的报纸头版一样,没人可以预测下一个人比特币区块的内容。你不能预测下一个区块包含哪些交易,因为你不能预测未来被广播的交易。更重要的是,你不能预测下一个区块是谁提出来的以及其工作量证明的解。

然而,与绑架者的报纸不同,工作量证明与发生的事情直接相关。它不仅仅是一个事件的记录⟩——它是事件本身。正是工作量证明的概率直接性从等式中消除了信任。找到有效工作量证明的唯一方法是进行大量猜测,而进行一次猜测需要一点时间。这些猜测的概率总和构成了比特币的时间链。

通过利用哈希链的因果关系和工作量证明的不可预测性,比特币网络提供了一种机制来建立无可争辩的事件见证历史。没有因果关系,前因后果无法区分。没有不可预测性,因果关系就毫无意义。

Bayer、Haber 和 Stornetta 在 1992 年明确指出了每个绑匪的直觉理解:“要确定文档是在给定时刻之后创建的,有必要报告在它们发生之前无法预测的事件发生了。”

20221229143608

正是因果关系和不可预测性的结合,才允许在原本没有时间概念的数字领域中创造一个人工的“现在”。正如 Bayer、Haber 和 Stornetta 在他们 1991 年的论文中指出的那样:“客户请求时间戳的顺序和他们提交的哈希值无法提前得知。因此,如果我们在签名证书中包含先前客户端请求序列中的位,那么我们就知道时间戳发生在这些请求之后。 […] 但是,在证书中包含先前文档中的位的要求也可用于解决在另一个方向上限制时间的问题,因为时间戳公司无法颁发以后的证书,除非它手头有当前请求”

所有拼图都已经存在了,中本聪通过组合这些拼图把”中心化时间戳公司“从公式中移除了。

时间证明

Quote

原因是隐藏的,结果是明显的。
Ovid, Metamor­phoses, IV. 287 (8 AD)

让我们总结一下:在数字领域使用金钱,我们需要分类账。为了让分类账变得可靠,我们需要确定的顺序。为了建立顺序,我们需要时间戳。因此,如果我们需要数字领域的无信任金钱,我们必须把被信任的第三方时间戳服务器移除系统。

像中本聪这样的天才实现了解决方案:“要在对等基础上实施分布式时间戳服务器,我们需要使用类似于 Adam Back 的 Hashcash 的工作量证明系统。”

我们需要使用工作量证明系统,因为我们需要数字领域原生的东西。一旦您了解数字领域本质上是信息领域,显而易见的结论是我们拥有的只是计算。如果您的世界是由数据构成的,那么对数据的操作就是全部。

工作量证明在点对点环境中起作用,因为它是无需信任的,并且它是无需信任的,因为它与所有外部输入断开连接——例如时钟(或报纸,就此而言)的读数。它依赖一件事,而且只依赖一件事:计算需要做功,而在我们的宇宙中,做功需要能量和时间。

桥接时间

没有工作量证明,我们就回到了预言机的问题,因为物理领域和数字领域完全被割裂了。你羊名单上的标记不是你的羊,地图不是领土,昨天报纸上写的不一定是现实世界发生的事情。以同样的方式,仅仅因为您使用真实世界的时钟写下时间戳并不意味着这就是实际时间。

坦率地说,根本没有办法相信数据代表现实,除非所讨论的现实是数据本身固有的。比特币的难度调整工作量证明的绝妙之处在于,它创造了自己的现实,以及自己的空间和时间。

工作量证明提供了数字领域和物理领域之间的直接联系。更深刻的是,它是唯一可以以无需信任的方式建立的连接。其他一切都将始终依赖于外部输入。

比特币通过调节出块难度来调整自己的时间以便和我们世界的时间协调。就像钟表一样,每隔 2016 个区块,比特币时钟就校准一次。最终目的是保证比特币每隔大约 10 分钟 tick 一次。正式这 10 分钟维持了一个物理世界和数字世界之间稳定的连接。因此,需要一种人类时间感来重新调整比特币时钟的滴答声。纯粹基于块的重新调整是行不通的,因为它会与我们的人类世界完全脱节,重新调整的全部目的是阻止我们聪明的人类太快(或太慢)地找到块。

爱因斯坦已经证明时间不是一个静态的东西,并不存在什么绝对时间让我们参照。时间是相对的,”同时“这个概念并不存在。这个现象说明分布式时间戳本质上就是不可靠的,其实网络中没有敌对用户。(这也是为啥 GPS 为行的时间也需要不端调整的原因)。

对于比特币来说,人类始终并不精确这个事实并不重要。我们没有绝对时间这个问题也不重要。比特币只需要在 2016 个区块的时间尺度上大致精确即可(10分钟人类时间)。为了保证这一点,合法区块的时间戳需要:

  1. 时间戳必须大于前 11 个区块的时间戳中值。
  2. 时间戳必须小于网络调整时间加上两个小时。 (“网络调整时间”只是连接到您的所有节点返回的时间戳的中值。)

换句话说,难度调整是为了恒定时间,而不是为了安全、难度、或者能量使用。这就很巧妙,因为健康的钱需要付出时间作为代价而不是能源。仅仅将金钱与能源联系起来并不足以产生绝对的稀缺性,因为能源生产的每一次改进都会让我们创造更多的钱。时间是唯一我们永远无法利用的东西。正如 Julian Simon 指出的那样,它是终极资源。这使得比特币成为货币的终极形式,因为它的发行与我们宇宙的终极资源直接相关:时间。

难度调整是必要的,否则随着更多的矿工加入比特币网络的时钟会越来越快,然后我们就回到了比特币最初要解决的问题:协调问题。一旦区块时间缩短到某个值,比如50毫秒,理论上分布式网络的节点几乎无法达成共识。光从地球的一端到另一端需要 66毫秒。因此即使我们的电脑连接是完美的光速,我们也无法判断事件的发生顺序。如果没有难度调整,我们很快会重新陷入由于光速限制导致的协调问题。第一章我们也讨论到时间是密码学不稳定性的根源。密码学之所以存在是因为他在时间上的非对称性:加密很快,解密很慢,除非你有秘钥。

因此,从某个角度说,工作量证明和难度调整人为的减慢了比特币网络的时间。换句话说,比特币强迫降低自己内部的时钟频率,因为只有这样才能让网络中的节点充分的交换信息。每隔 2016 个区块,比特币会重新调表,确保平均每隔 10 分钟产生一个区块。

外部的角度来看,比特币将全球广播的异步消息的混乱汇集到一个平行的宇宙中,受到它自己的规则和它自己的时空感的限制。从比特币网络的角度来看,内存池中的交易是没有时间的。只有当交易包含在有效块中时,它才会被分配一个时间:它包含在块中的编号。

20221229151414

这个办法实在是太巧妙了!一旦你可以建立自己的时间概念,就可以轻易的判断事件的先后顺序。反过来,就发生的事情、以什么顺序达成一致,以及因此谁欠谁什么,也变得微不足道。

难度调整确保比特币内部节拍器的滴答声在某种程度上是恒定的。它是比特币乐团的指挥。这就是让音乐保持活力的原因。

那么可以信任这个方案吗?我们从三个方面回答:计算需要做工,做工需要时间,而这个工作(猜一个随机数)没有除了穷举以外的算法。

概率时间

Quote

时间永远向着无数的未来分叉。
Jorge Luis Borges, The Garden of Forking Paths (1941)

找到一个合法的比特币区块是一个猜谜游戏,跟掷骰子、投硬币和俄罗斯转盘一样。本质上你在一个非常巨大的数域里面搜索一个随机数字。你没法一步一步的求解,只能尝试,要么猜中,要么重新开始。

每次抛硬币是花的概率都是 50%,即使这已经是你第30次抛硬币了,而且已经连续出现了30个花。同样,每次你等一个比特币区块在这一秒中出现的概率都是 0.16%,这与上一个区块是什么时间找到的没有一点关系。等待下一个区块的时间的期望永远是 10 分钟。

这就意味着每一次 tick 都是(独立)不可预测的。相对于我们人类的时钟,这个时钟似乎是自发的和不精确的。这无关紧要,正如 Gregory Trubetskoy 指出的那样:“这个时钟不精确并不重要。重要的是,它对每个人来说都是同一个时钟,而且区块链的状态可以明确地与这个时钟的滴答声联系起来。”比特币的时钟可能是概率性的,但它是真实的。

Quote

时间是个幻影,
午餐时间更是如此。。
Douglas Adams (1979)

“现在”这个概念对于比特币来说绝对是个幻影。因为网络没有中央权威存在,一些奇怪的事情会发生。即使不常见,两个合法的区块还是可能“同时”产生,这样未来就朝着两个方向同时发展了。但是,这两个区块的内容大概率是不一样的,他们是两个不同的历史,但是同时有效。

这就是分叉,是中本聪公式中的一个现象。就像一群鸟短暂地分裂成两半然后再次合并一样,比特币网络上的节点最终会在一段时间后汇聚到一个共享的历史记录中,这要归功于猜测的概率性质。

Nakamoto 共识简单地指出,正确的历史是在最重的链中找到的,即嵌入了最多工作量证明的链。因此,如果我们有两个历史 A 和 B,一些矿工将尝试在历史 A 的基础上进行构建,其他矿工将尝试在历史 B 的基础上进行构建。一旦他们中的一个找到下一个有效区块,另一组就会接受该区块他们站在历史错误的一边,转向了最重的链条⟩——根据定义,代表实际发生的事情的链条。在比特币中,历史真正是由胜利者书写的。

Quote

支付人需要证明在支付的每笔交易的时候,绝大多数节点认可支付人拥有被支付的资产【。。。】当出现多个双花版本的交易时,有且仅有一个会成为历史的一部分。收款人需要等到一个小时左右来确信支付是有效的。此时,网络应该已经决绝了双花问题。
中本聪

在这个简单的陈述中隐藏着分布式协调问题的秘密。中本聪就是这样解决了我们之前遇到的虚拟商业伙伴“同时支付”的问题。他一劳永逸地解决了这个问题,见鬼的相对论效应!

因为比特币区块链这种概率特性,链的顶端(最近的历史,甚至未来)总是不太稳定的,而链的底端(更远的历史)则更加确定。

Quote

需要的理解越透彻,就必须回到更远的历史去。

相应的,比特币时钟对于某些节点来说可能会回滚几个区块。如果你的链顶,现在,在区块竞争中失败了,你的时钟就会回滚,然后调到胜利者的时钟。如果你的时钟是概率的,那么你对历史的理解也是如此。

Quote

滴答滴答滴答,什么是时间?
滴答滴答滴答,它以 c619 结尾。
你确定这没问题?我们是不是晚了?
绝对没关系:9之前一定是8
(译者按:这两个区块的时间错和区块顺序是反的) 时钟不太准,有时候它倒着走。
精确的时间意味着中心,那是一切诅咒的源头。
时钟还在走,滴答滴答滴答。。。 作弊没有一处,滴答滴答滴答,下一个区块。。。 A Funny Little Rhyme on Bitcoin and Time (2020)

Quote

Tick tock tick tock tick — what is the time?
Tick tock tick tock… it ends in c619.
Are you sure this is fine? Are we probably late?
Absolutes do not matter: before nine there comes eight.
The clock isn’t exact; it sometimes goes in reverse.
Exact time implies center; that’s the root of this curse!
Yet this clock keeps on ticking, tock-tick and tick-tock,
there’s no profit in tricking; just tick-tock and next block.

(译者按:这是一首英文诗,英文读起来是押韵的,翻译过来少点味道。。。)

结论

Quote

时间仍然是物理学最大的谜团,甚至关系到什么是物理学的问题。
Jorge Cham and Daniel Whiteson: We Have No Idea: A Guide to the Unknown Universe, pp. 117 – 118 (2017)

在信息领域记录事情就是记录一些列事件,而记录事件需要记录时间。记录时间需要对“现在”达成共识,现在就是连接过去和未来的点。而对于比特币来说,“现在”就是最长工作量证明区块链的顶。

时间的结构有两个关键的要素:因果链和不可预测的事件。因果关系定义了过去,而不确定性定义了未来。如果一串事件是可预测的,那么我们尽可以进行时间旅行。如果每一个步骤没有连接在一起,改变历史就太容易了。因为比特币这种内在的时间感,想要在比特币网络中作弊非常困难,以为那就意味着要改变过去或者预测未来,比特币让这两者变得非常困难。

透过时间的眼镜看比特币,我们就会发现“区块链”,这个把多个事件的因果链存储起来的数据结构,并不是最主要的创新。区块链甚至不是一个新的主意,人们在研究时间戳的时候已经知道他的存在了。

Quote

区块链是一串区块。
Peter Todd

中本聪发现的新主意是如何在没有中央实体的情况下对真实的历史达成一致。他找到了一个实现分布式时间戳服务器的方法,这个方法:

  1. 不需要一个时间戳公司
  2. 不需要报纸这样的物理媒介
  3. 时钟的频率大概是恒定的,即便 CPU 的算力大大增加也是如此

计时需要因果关系、不可预测性和协调性。在比特币中,因果关系是通过单向的散列函数和数字签名实现的;不可预测性是通过工作量证明完成的:你不能预先知道其他人在做什么也不能预先知道下一个区块是什么;协调性是通过难度调整实现的,这样保证比特币的时间与我们的时间相协调。如果没有桥接物理世界和数字世界的桥梁,我们不可能只通过数据就对时间达成共识。

比特币在很多方面都是时间。它的单位是时间,因为它是金钱;它的网络是时间,因为它是一个去中心化时钟。这个时钟的无情跳动产生了比特币的所有神奇特性。没有它,比特币错综复杂的舞蹈就会分崩离析。但有了它,地球上的每个人都可以获得真正奇妙的东西:神奇的互联网货币。

评论