一轮漾着清辉的时钟高悬于空,
宣告时间没有对错。
—— 罗伯特·弗罗斯特,《我与夜晚熟稔》(1928)
我们仍未猜透时间这个巨大的谜题。时间不过是一个概念;我们甚至不知道它是否真的存在……
——Clifford D. Simak,《莎士比亚的星球》(1976)
俗语有云,时间就是金钱。反之,金钱也是时间:时间就是人类体内存储的所有经济能量。然而,时间和金钱之间的关系远比乍看之下复杂得多。如果创造金钱不需要时间,金钱就不成其为金钱,至少无法长时间发挥金钱的作用。再想深一层,追踪信息世界的事物就是追踪时间。
当金钱数字化,我们必须就时间的定义达成共识,这就是问题所在。或许你觉得报时无非就是瞥一眼旁边的时钟那么简单。如果只是处理日常工作,你这么想也行。但是,如果要让一个全球的、人们在其中各行其是的分布式网络同步推进状态,报时就成了巨大的难题。如果时钟无法信任,你该如何获得正确的时间?如果你的系统跨越星系,你该如何建立时间的概念?在没有时钟的世界,你该如何衡量时间?时间究竟是什么?
为了解答这些问题,我们必须进一步了解时间的概念,以及比特币是如何自创时间单位(出块时间,也就是我们通常所说的区块高度)的。我们将探索的问题包括:为什么计时最终会与记账联系起来?为什么去中心化系统中没有绝对时间?比特币是如何利用因果关系和不可预测性来定义 “现在” 这一时态的?
记时器已经多次为文明社会带来巨大改变。正如 Lewis Mumford 在 1934 年所说:“工业时代最重要的机器不是蒸汽机,而是时钟。” 如今,计时器再一次推动现代文明发生变革:信息时代最重要的机器不是计算机,而是时钟。这个时钟就是比特币。
“让孩子学习数东西,从而获得数字的概念。在计数的时候,这些东西就可以当作都是一模一样的,它们可能是单个对象或一组对象。”
—— David Eugene Smith,《初等数学教学》(1900)
总的来说,我们可以通过两种方法来追踪物品:物理象征物和账本。你可以直接使用现实世界中的物品,例如,贝壳、硬币或其它有形的东西(来表达相应的数量);也可以通过在一张纸上记下已经发生的事来复制世界的状态。
想象一下,你是一个牧羊人,想要确保每只羊都会返回家中。你可以为每只羊戴上项圈,每当有一只羊回家,你就取下那个项圈,挂在棚子里。假设每个项圈都会挂到一个单独的挂钩上,只要挂钩都挂满了,就说明所有羊都到家了。当然了,你也可以每次都数一遍,然后列一张表。然而,每当你开始数之前,你都要重新列一张表,防止重复计数或漏计。
货币本质上就是用来追踪债务的工具。总的来说,迄今为止充当过货币的东西可分为两类:物理制品和信息列表。更通俗一点的说法就是,象征物和账本。
理解这两类货币的本质区别很重要。我要在此作出明确说明:物理象征物 直接 表示事物的状态;账本则 间接 反映事物的状态。二者各有优缺点。例如,象征物是物理的、分布式的,账本是信息化的、中心化的;象征物本质上是免信任的,账本不是。
在数字世界,我们只能使用账本(虽然总有许多 “大师” 想让你相信还有别的办法)。这是 信息 世界,不是物质世界。即使你将某类信息定义为 “象征物”,它依然是一段写入硬盘或某种信息存储媒介的可塑信息,以信息记录的形式呈现出来。
所有数字信息本质上都是账本,这就是产生 “一币多花” 问题的根源。信息从不直接表示世界的状态。此外,信息的移动也意味着信息能够复制。信息存在于某个地方。要想 “移动” 信息,你必须将它复制到另一个地方,然后将原有信息删除。物质世界则不存在这种问题,移动就是移动,并不意味着复制。信息世界不具备这种特征。如果你想将信息从表 A “移动至” 表 B,你必须将信息从表 A 复制到表 B。除此之外,没有其它方法。
另一种思路是 “惟一性”。物理象征物是独特的原子组合,不能轻易复制。纯粹的信息不具备这一特征。只要你可以阅读某个信息,你就可以将它完美复制出来。因此,我们可以得出这样一个结论,物理象征物具备独特性,数字象征物不具备。我甚至认为 “数字象征物” 一词有待商榷。象征物可以表示秘密信息,但绝不会表示绝无仅有、不可复制的信息。
这种特征差异表明,信息实际上是无法 “移交” 的。数字象征物不可能像物理象征物那样转移,因为你无法确定原所有者是否破坏了信息。和所有信息一样,数字象征物只能像想法一样被传播。
“……如果你有一个苹果,我也有一个苹果,我们可以互换苹果,换完之后还是一人一个苹果。但是,如果你有一个想法,我也有一个想法,我们交换完之后,每人就有两个想法。”
—— Charles F. Brannan (1949)
物理象征物(我们称之为物理不记名资产,或 “现金”)不会面临这种困境。在现实世界中,如果你给了我一枚硬币,你就失去了这枚硬币。这世上没有魔法可以复制这枚硬币,要让我得到一枚硬币,就必须把一枚硬币交给我。物理世界的规律阻止了一币多花。
虽然非数字世界确实存在多重花费的情况(臭名昭著的诈骗犯 George Parker 就曾靠着一房多卖牟利,卖的还是布鲁克林大桥等地标建筑),但是这需要精心设计的骗局和容易上当的买家。数字世界就不一样了。
在数字世界,由于我们总是在与信息 打交道,多重花费是一个固有的 问题。凡是复制过文件或使用过复制粘贴功能的人都知道,信息是可以完美复制的,而且它不会与保存该信息的媒介绑定。假设你有一张数码照片,你可以将它复制 100 万次,将其中一些副本存入 U 盘,并将其发送给成千上万的人。完美的副本是可以实现的,因为可以使用完美的修正手段,消除一切瑕疵。最重要的是,复制几乎是零成本的,而且副本与原件之间无法区分。
再说一遍:信息只存在复制一说。数字信息是无法从 A 移动 至 B 的,只能从 A复制 到 B。如果复制成功,再将A 处的原件删除,才能叫 “移动”。这就是为什么多重花费问题如此棘手。没有权威机构,就无法以不带对手方风险的方法将任何信息从 A 转移给 B。我们必须相信原件会被删除。一个天然的副作用就是,就数字信息而言,我们无法确定存在多少副本,以及这些副本都在哪里。
因此,数字象征物永远都无法充当货币使用。象征物因其独特的物理构造而难以复制,从而具备可靠性。到了数字世界,这一优势荡然无存。在数字世界,象征物是不可信的。由于信息的固有特性,数字货币的唯一可行形式只能是账本,而非象征物。因此,数字货币不得不面对时间问题。
“看得见的东西是一时的,看不见的东西是永恒的。”
——Paul of Tarsus, Corinthians 4:18b
对于物理象征物来说,交易是在什么时候发生的(你的钱是从哪里来的)并不重要。你的兜里要么有钱,要么没有。要么花掉,要么不花。花钱的唯一前提就是兜里有钱。剩下的全交给自然法则。从这个意义上来说,物理象征物是无需信任且不带时间属性的。
对于账本来说,物理占有就没那么重要了。管理账本的人需要确保所有账目都井井有条。原本由物理定律(你无法花费不属于你的钱,也不能重复花费同一笔钱)赋予的特征必须由人为制定的规则来强制实现。正是这些规则(而非物理定律)在维持账本的有序运作。
从物理定律转向人为制定的规则就是问题的症结所在。后者是可以修改和破坏的,前者则不然。例如,你无法 “伪造” 一枚实物金币,你得从地底下挖出金子。但是,你可以在纸上伪造金币。你只需要在账本上添加一个条目,声称自己有一些金币就行。如果是央行,只需要在电脑上敲几个键,就可以增发数万亿美元。(金融从业人称之为 “再抵押”、“部分准备金制度” 和 “量化宽松” —— 但是千万不要被这些花里胡哨的术语弄糊涂了,它们本质上都是造假钱。)
为了确保账本以及管理账本的人没有弄虚作假,我们必须定期对账本进行独立审计。对账本中的每个条目进行核算不是什么了不得的事 。审计员要能检查过去的账簿,来确保账本的可靠性和有效性。没有可靠的时间戳,我们就无法验证账本的内部一致性。我们必须建立一个机制来确定交易顺序。
如果没有一个绝对的时间概念,我们就无法确定交易顺序。如果无法确定交易顺序,我们就无法保证账本没有伪造。除此之外,还能有什么方式来证实你拥有多少钱?还能有什么方式来确保所有账目都井然有序?
象征物和账本之间的区别凸显了追踪时间的必要性。在物理世界,货币是不带时间属性的人工制品,可以在无人监督的情况下用于交易。在数字世界中,标记货币需要时间戳。
“时间能刻上一切印记,也能抹去一切印记。”
——Yahia Lababidi (b. 1973)
解决多重花费问题(确保每笔数字转账仅发生一次)最常见的方法是创建一个中心化交易列表。一旦你有了一个中心化交易列表,你就有了可以充当唯一真相来源的账本。这时,解决多重花费问题就很简单,只需仔细检查交易列表,确保每条账目都正确无误即可。这就是 PayPal、Venmo、Alipay 以及全球所有银行(包括央行)解决多重花费问题的方法:权威机构。
“这一过程的问题在于,收款人难以检验,之前的某位持有者是否多重花费过某一笔钱。通常的解决方案是,引入可信的第三方权威,或类似铸币厂之类的机构,来对每一笔交易进行检验,以防止多重支付……该解决方案的问题在于,整个货币系统的命运完全依赖于铸币厂的运营方,因为每一笔交易都要经过该铸币厂的确认,这个铸币厂就好比是一家银行。”
—— 中本聪,《白皮书》
需要注意的是,中本聪无法让信息变得无法复制。比特币的每个部分(源代码、账本、用户的私钥)都是可以复制的。这一切都是可以复制并窜改的。然而,中本聪成功创建了一个系统,让违反规则的副本变得毫无用处。比特币网络通过执行复杂的机制,来决定哪些副本有用,哪些副本没用。正是该机制为数字世界带来了稀缺性。这个机制就好比一支舞蹈,需要控制节奏。
即使是中心化账本,也必须采用统一的时间追踪方式,才能解决多重支付问题。当一笔交易发生时,我们必须知道交易方、交易金额,以及最重要的,交易时间。在信息领域,没有时间戳就无法标记货币。
“必须强调的一点是,由于我们一直未能解决分布式系统中事件与时间点的关联问题,去中心化账本无法实现,直至中本聪发明出了解决方案。”
——Gregory Trubetskoy(2018)
“时间会带走一切。”
—— 埃斯库洛斯(公元前 525 至 456 年)
时间和顺序有着非常密切的关系。正如 Leslie Lamport 在 1978 年的论文《分布式系统中的时间、时钟和事件顺序》中所述:“时间概念是我们思维方式的基石。它源自一个更基础的概念,即,事件的发生顺序。” 由于缺少一个中心协调时间点,“先”、“后” 和 “同时” 等看似直观的概念都没了参照。用 Lamport 的话来说:“ ‘先发生’这一概念定义的是分布式多进程系统中不变的那部分事件顺序。”
换言之:如果我们不能让某个人来负责管理时间(授时),那么我们如何确定事件发生的顺序?如果没有一个中心参照系,我们如何才能获得一个可靠的时钟?
你可能认为这个问题很容易解决,因为每个人都可以使用他们自己的时钟。但是,只有在每个人的时钟都准确无误(且人人都遵守规则)的情况下,这个方法才有效。在一个人们有对立、有利益冲突的系统中,每个人都使用自己的时钟会是场灾难。而且,根据相对论,这一方法无法跨越空间。
来个思维实验:假设你生活在一个每个人都自己跟踪事件发生顺序的世界中,你可以怎样欺骗其他人呢?你可以假装你今天发送的一笔交易其实是昨天的(只是因为某个原因而延迟),这样你今天花掉的钱就还是你自己的。由于每个去中心化系统本质上都是异步通信,上述场景不只是理论上的思维实验。消息确实会延迟,时间戳会不准确。再加上相对论效应和宇宙的天然速度限制,我们很难在没有中心化权威机构或观察者的情况下辨别事件的先后顺序。
“Who's there? Knock knock.”(“咚咚咚!”“谁啊?”)
—— 经典谐音梗
为了更好地说明这个问题,我们来看一个具体的例子。想象一下,你和你的商业伙伴都能够访问你公司的银行账户。你的业务遍布全球,因此你是在瑞士开的银行账户,你本人住在纽约,而你的商业伙伴住在悉尼。你这边的时间是 1 月 3 日,你正在宾馆惬意地度过周末夜晚。你的商业伙伴那边的时间已经是周一上午,她决定使用共享银行账户的借记卡买早餐。当时卡上余额为 615 美元。当地时间为上午 8:21。她的早餐花了 27 美元。
于此同时,你打算用另一张关联该银行账户的借记卡支付住宿费。此时卡上余额为 615 美元。当地时间为下午 5 : 21。住宿费是 599 美元。
也就是说,你们在同一时刻刷了卡。会发生什么事?(物理学家们,请原谅我使用了 “同一时刻” 这一表述,此处我们暂且忽略相对论效应,以及宇宙中不存在绝对时间这一事实。另外,我们还要假定同步事件概念是存在的。比特币本身就已经够复杂了!)
银行的中央账簿很可能是一前一后收到这两笔交易的,这样你们中必然有一个成了幸运儿,另一个成了倒霉蛋。如果中央账簿恰好在同一瞬间(精确到毫秒)收到这两笔交易,银行就必须决定由谁来花费这笔钱。
那么,如果没有银行会怎么样?谁来决定交易先后?如果不只是你们两个,而是成百乃至上千人同时交易会怎么样?如果你不信任这些人该怎么办?如果有人想要作恶,比如将自己的时钟拨慢,假装自己的交易是几分钟前的,该怎么办?
“我们需要一种与时间有关的工具来创建公认的排序,并在不依赖于任何中央协调者的情况下维护唯一的历史记录。”
——Giacomo Zucco, 《发现比特币》(2019)
这就是为什么以往所有关于数字现金的尝试都离不开中心化注册表。也就是说,我们必须信任某个人,才能正确决定事务的顺序。我们需要中心化参与方来充当中心化时钟。
比特币解决这一问题的方法是重新定义时间。比特币是通过区块,而非秒来度量时间的。
帝王息争,乃时光之风采;
将谎言揭穿,让真相大白;
将岁月印记,给往事封印;
将黑夜坚守,唤黎明醒来;
将恶人惩治,直至其悔改;
—— 莎士比亚,《鲁克丽丝受辱记》(1709)
所有时钟都依赖于规律的过程,也就是我们常说的 “嘀嗒(读秒声)”。从本质上来说,老爷钟发出的滴答声与现代石英钟和原子钟发出的嗡嗡声没有任何区别。具体来说,我们利用钟表中某个部件摆动或振动的次数来度量秒或分钟。
大型摆钟的钟摆很长,摆动起来很明显。更专业的小型时钟则需要特殊部件。时钟的振动频率(“嘀嗒” 的频率)取决于其应用场景。
大多数时钟的振动频率都是固定的,以便精准报时。然而,有些时钟的振动频率是可变的。例如,节拍器就可以预先设置振动频率,一旦设置完成,就会按照恒定频率打拍子。比特币每次 “嘀嗒” 的时间间隔都不同,因为其内部机制存在概率性。不过,二者的目的都一样:演奏音乐,让舞蹈可以继续。
老爷钟 | ~0.5 Hz(Hz “赫兹”表示周期性事件在一秒内发生的次数) |
---|---|
节拍器 | ~0.67 Hz 至 ~4.67 Hz |
石英表 | 32768 Hz |
铯 133 原子钟 | 9,192,631,770 Hz |
比特币 |
一个区块(0.00000192901 Hz* 至 ∞ Hz**) * 创世块(6 天) ** 区块之间时间戳的 delta 值可以是负数。 |
眼前的比特币不就是一个时钟吗?中本聪确实暗示过,整个比特币网络就像一个时钟,用他的话来说,一个分布式时间戳服务器。
在这篇论文中,我们将提出一种通过点对点分布式时间戳服务器来为一组交易的发生顺序生成计算证明,从而解决多重支付问题。
—— 中本聪,《比特币:一种点对点的电子现金系统》(2009)
从比特币白皮书最后的参考文献来看,时间戳显然是一大根本问题。在 8 篇参考文献中,有 3 篇与时间戳有关:
《如何为数字文档加上时间戳》,S. Haber,W.S. Stornetta(1991)
《论如何提高数字时间戳的效率和可靠性》,D. Bayer,S. Haber,W.S. Stornetta(1992)
《如何设计一个信任最小化的安全时间戳服务》,H. Massias,X.S. Avila,J.-J. Quisquater(1999)
正如 Haber 和 Stornetta 在 1991 年所述,数字时间戳就是利用计算过程让用户(或敌对方)无法向前或向后更改数字文档的日期。不同于纸质文档,数字文档易于篡改,而且篡改时并不一定会在物理媒介上留下任何明显的迹象。在数字世界,伪造和篡改可以达到无懈可击的地步。
鉴于信息的可塑性,为数字文档添加时间戳成了一个非常复杂的过程。直觉的解决方案根本不起作用。以文本文档为例,只是简单地在文档末尾加上一个日期是根本没用的,因为任何人(包括你自己)都可以轻而易举地修改日期。更何况,你一开始就可以伪造日期。(未完)
原文链接:https://www.swanbitcoin.com/bitcoin-is-time/作者: Gigi
翻译&校对: 闵敏 & 阿剑