区块链、比特币与拜占庭将军问题 (2)

事实上不仅是央行和纳斯达克,上图中这些诸如高盛、花旗、瑞银、西联汇款等银行和金融机构也都已经参与到了区块链技术的投资和研究之中[4]。

比特币是一种去中心化的加密数字货币(Crypto-Currency),其创始人中本聪(Satoshi Nakamoto)于2008年11月1日发表了一篇题为《比特币:一种点对点的电子现金系统》[5],论文中详细阐述了如何在陌生人之间建立一套去中心化的电子支付系统。2009年1月3日,中本聪开发出了比特币客户端,并采集了第一批的50枚比特币, 比特币由此诞生。2009年10月5日出现了最早的交易所汇率:1美元=1309.03比特币[6],此后随着价格的飙升,比特币吸引到了越来越多的关注。

既然数字货币的构想早已出现,那为什么过去的30年间一直没有成功的数字货币诞生呢?这就牵涉到一些技术方面的讨论。首先我们要知道理想的加密数字货币一定是分布式的,所谓的分布式,又叫去中心化,指的是整个系统的运行不依赖于某一个或某几个中心节点。

关于两种系统的比较,《海星模式》一书中有一个精彩的比喻:

 

『如果砍掉一只蜘蛛的脑袋,毫无疑问它会死亡;但是砍掉海星的一条腿,它却还会长出一条新腿,就连那只砍掉的腿也会长成一个全新的海星。』

由此可见道德风险和法律问题对数字货币来说都是致命的,而这些又无法通过计算机程序来轻易解决,因此分布式系统才是数字货币的理想选择。但是建立一个分布式的交易系统,在技术上却要比集中式困难许多,因为在这一过程中需要克服一个通信领域里的经典问题——拜占庭将军问题(Byzantine Generals Problem)

拜占庭将军问题(以下简称“共识问题”)的正式表述是:如何在一个不基于信任的分布式网络中就信息达成共识?(注意这与两军问题的区别。在上一篇文章有讲)

由于四个人的决策都是独立做出的,因此最终的选择结果就有256种可能,而只有当三人以上都恰好选择了同一时间的时候,共识才被达成,而这样的结果才64种,也就是说达成共识的概率仅为1/4。这还只是四位将军的情况,如果将军的人数是10人,100人,1000人呢?我们稍加计算就可以发现随着人数的增加,达成共识的希望会变得越来越渺茫。

再看中《区块链与银行家(中篇:区块链技术简介)

有一个人有仲裁权 = 有一个人 + 有仲裁权

这个看似多余的分割中其实包含了解决共识问题的关键思路。球场上的犯规裁判说了算,法庭上的胜负法官说了算,虽然我们对由某个人或某个组织垄断仲裁权这样的安排习以为常,但是大家有没有想过这样一个问题:谁规定了仲裁权必须和某个个体绑定在一起了?当你意识到这个问题的时候就已经非常接近中本聪的答案了

区块链技术给出的解决方案非常简单:保留仲裁权,但不将其与某一个节点绑定,而是每次记账的时候将仲裁权随机分配给全网中的某个节点,然后其他节点跟随该节点完成记账任务。这样一来既能轻松地就账本达成共识,又因为没人知道下次记账谁说了算,系统的去中心化特征也被保留了。

那么我们可以再来看一下区块链技术在比特币系统中具体是如何实现的

在比特币系统中每时每刻都会产生许多交易,这些交易一经产生就向全网广播,以保证每个节点都可以收到,但它们并不是零乱地散落在系统中,而是每隔一段时间就会被打包成一个区块(Block)记录到比特币的总账里,将这些区块按时间顺序连接到一起就成了区块链(Blockchain),也就是说区块链一词其实有两层含义,它既是分布式系统中达成共识的技术,在比特币系统中也特指包含了所有交易的总账。比特币的代码是开源的,任何人都可以在自己的电脑上下载并运行客户端,从而使自己的电脑成为维护比特币网络的一个节点。每个节点都存有一本包含全部交易的总账,并定期将新产生的交易记录到自己的总账里。就像之前提到的,每次记账的时候都会有一个节点带领大家一起完成,那么一个关键的问题就出现了:这个节点是如何选出的?怎么保证该节点不会伪造和篡改交易内容呢?

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgfjpj.html