2018 年 10 月 31 日,我们迎接了一个重要日子:这是中本聪(Satoshi Nakamoto)的论文,《Bitcoin: A Peer-to-Peer Electronic Cash System》(《比特币:一个点对点的电子现金系统》)公诸于世 10 周年的日子。10 年过去,比特币的每件大小事,一切都已成历史。

论文除了照亮比特币,也让人构思到“区块链”:它已经成为现今科技的其中一个重要关键字。不少人早已久闻其名,但到底什么是区块链

在探究区块链是什么之前,首先想跟大家厘清一点:中本聪并没有在他的论文提及过“区块链”(”Blockchain”)一词,这个词语其实是外界在日后创出。当然,这仍无损中本聪在世人心目中的地位:大家始终认定他就是区块链的实质创始人。既然如此,论文其实谈及了什么,让大家建立出区块链的概念

在这篇新手专题的文章,你将能了解:

(1)中本聪论文引用的密码学技术; (2)交易产生流程;

(3)区块链运作流程; (4)区块链的特点。

中本聪引用的技术:时间戮、哈希现金、公开广播

在讲述区块链如何运作前,首先要讲述中本聪的论文提及过,以至日后区块链牵涉的技术,这对于理解区块链是相当重要。以下先分享 3 个:

早在 1991 年,密码学(Cryptography)研究者 Stuart Haber 和 W. Scott Stornetta 已经运用他们的知识,研究如何将“时间戮”(”time-stamp”)加到数码文件之中,并且写成学术文章,这被视为让文件能够从时间线里正确排序的重要技术。

到了 1997 年,密码学家 Adam Back 提出了“哈希现金”(”Hashcash”)的概念,并在 5 年后发表关于 Hashcash 的学术文章。Hashcash 是其中一种工作量证明(Proof of Work, PoW)的方法,对于抵抗阻断服务(Denial of Service, DoS)的恶意行为是相当有效。Back 研究哈希现金本来只是为了用来阻挡垃圾电邮,但最后亦启发了中本聪在区块链应用类似的做法。

翌年,戴伟(Wei DAI, 音译)在提出 “b-money” 的构思时,就提出要将交易资讯全面公开广播,让系统内所有参与者都承认交易,这就不需要单一个别中介机构作证。中本聪在他的论文亦有引用到这个概念。

前人的研究和贡献,对于中本聪完成他的论文有莫大帮助。因为中本聪所想的点对点电子现金系统,以至其中的区块链,都是应用了不同学者的技术而成。而根据后来收集的资料显示,中本聪曾经在论文发表之前发过电邮给 Adam Back 和戴伟,跟他们交流意见。

交易的产生方法

在了解和应用技术后,理论上中本聪已经可以建立出一个可供交易的系统。关于产生一宗交易的方法,中本聪的论文如此说:

首先,一宗交易将会产生一条随机散列(hash),这个随机散列是由以下两个单位组合而成。他们分别是:(1)上一宗交易本身,(2)下一位交易接收者(receiver)的公钥(Public key)。

中本聪表示,随机散列将会依附在电子币的末端。

在属于接收者的交易当中,亦会包含交易传送者(sender)的数码签署(signature),这个签署是透过传送者的私钥(private key)产生。最后,传送者的公钥将会核实传送者的数码签署,以确认电子币的传送量,以及接收者是正确无误。

来到这里,一宗交易才正式生成。

虽然这个流程并无解决到双重消费(Double Spending)的问题,而中本聪最终都想到以“广播”方式解决,但下图都可以作为一个初步的简单理解。

区块链的运作流程

在中本聪眼中,一宗交易只有其交易资讯是不够的,还需要有时间戮,因为这才能够证明在指定的时间当中,真实存在着一条指定的交易,以及排列次序。而区块(”Block”)可以说是为了记录交易而有的,而一个区块当中可以包含多宗交易。

来到这里,我们就可以了解到底区块链如何运作。根据中本聪的讲法,交易链条的运作流程是:

(1)新交易产生后,随即广播至所有节点(node)。

(2)每个节点都收集新的交易至区块当中。

(3)每个节点都在它自己的区块当中,找出一个足够困难的工作量证明。

(4)当一个节点找到上述的工作量证明,该节点就向全网所有节点发出广播。

(5)众多节点只会接受下列条件的区块:区块当中所有交易都是正确有效,而且尚未被消费。

(6)众多节点皆表达他们接受符合条件的区块,方法是一同为链条产生下一个区块,而这个区块将会包含上一个区块的随机散列(”previous hash”)。

中本聪假设了比特币的交易链条当中,是每 10 分钟产生出一个区块。到了 2009 年 1 月 3 日(UTC 时间)比特币正式上线之后,虽然时有出现小幅度的偏差,但区块基本上都是按著“每 10 分钟产生一个”的速率增长,持续至今。

因应上述的运作流程,比特币的交易链条也因为交易,和区块的持续出现,而变得愈来愈长。这条不断变长的“区块的链条”(chain of blocks)也渐渐让人们心中,种下了“区块链”的概念:区块链可以说是一本以区块砌成的帐簿。

区块链的特点

以往大家或许已经听过一些区块链的特点,甚至是优点,在此也因应上面的内容,再把这些要点重新讲述。

首先,以中本聪最初的想法 - 电子现金系统去评价区块链,区块链其实是一个非常理性的系统。传统现金制度是基于“信用”(”credit”)去建立,人们建立了权力机构,而机构会发钞、赋予钞票价值,社会各方是基于信任权力机构,才会接受钞票,承认钞票可以兑换商品和服务。假如权力机构失信,这个现金制度就会步向崩溃,钞票也许会跟“公仔纸”无异。简单而言,这是“中心化”(Centralized)金融制度的重要缺点。

然而,正如中本聪在论文所言,交易的链条不是基于“信用”建立,而是基于密码学原理去建立的。交易双方只要达成协议,就可以透过密码学理论下的机制和协定促成交易。他们要做的,就是对外把这宗交易“广播”,要求各方作证。同样地,由于每一个节点都有份为交易作证,换言之也不需要个别“权力机构”维持公正。故此对比传统现金制度,区块链除了是理性的,也是“去中心化”(Decentralized)的。

另外,区块链也具备加密(encrypted)、以及几乎不可篡改(nearly immutable)的特点。加密的特点,相信在此也不必多谈,但为何区块链是几乎不可篡改呢

假如大家还对上述区块链运作流程有印象的话,都会记得节点有一个责任,就是检视和选出“区块当中所有交易都是正确有效,而且尚未被消费”的区块。在这里大家也许会想到,一些节点的控制人可能会尝试篡改资料,包括改变接收者和电子币数量等,并且意图影响选出正确区块的结果,这其实是牵涉了不诚实行为。

幸好,选出正确区块的投票制度,是采取简单多数制。也即是说,只要诚实节点们的计算能力,大于攻击者节点群体的计算能力,这条区块链就能够维持安全。

另外中本聪在论文也提到,攻击者节点如果要修改从前的区块,这些节点除了要完成该区块的工作外,还要把该区块往后所有区块的工作重做一次,并且要赶上和超越诚实节点的工作进度,这个攻击才会有效 - 大家也可以想想这件事能够真正实现的机会有多微小了。

总结

区块链经过 10 年发展,至今已经变得相当多元化:区块链不只有采用 PoW 的共识机制(Consensus),还有权益证明(Proof of Stake, PoS)、权益委托证明(Delegated Proof of Stake, DPoS)类区块链。另外,区块链还能够分公链与私链。还有更多的革新,其实都是支持区块链,与对区块链抱有热情的人同心协力的结果。

虽然对照现时的发展,中本聪的理论以及他对区块链的想像,或许因科技进步已经变得平庸,但他的贡献始终是划时代。假如仍想详细了解区块链,中本聪的论文仍然是毋用置疑的选择。

希望各位在往后的日子,也能够与区块链同行。