从容错的角度看区块链技术_链圈子

比特币(Bitcoin)是一种由Satoshi Nakamoto(译为中本聪或中本哲史)于2008年10月31日公诸于世的新兴虚拟货币,和其他虚拟货币最大的不同之处在于参与比特币系统运作之参与者毋须提供实名,而且他们之间也不必存有任何事先建立的信赖关系。虚拟货币系统中最重要的技术挑战是如何防止同一虚拟货币被花费超过一次(double spending problem)。为了有效解决这个问题,Satoshi Nakamoto发明了一种分散式帐本(distributed ledger)技术叫作区块链(blockchain)来防止已被写入帐本之虚拟货币使用纪录被恶意窜改。然而,区块链这种能够在毋需中控或互信机制下防止资料窜改的能力,似乎也可以应用在其他金融或非金融的领域,因而触发这一波区块链的热潮。

最大挑战:如何建立共识且防恶意攻击

一言以蔽之,区块链是一个能够抵挡恶意攻击的点对点分散式资料库管理系统。区块链只允许新的资料区块的加入,但不允许旧的资料区块的直接变更,改变既存区块内资料纪录的唯一办法就是产生一版新的资料纪录,然后将其加入最新区块。 

顾名思义,区块链把资料纪录(data record)组成一个一个区块(block),然后为每个区块算出一个特征值(fingerprint),最后把这些区块用他们的特征值串联成一条线性链(linear chain)。因为第N个区块的特征值是由第N个区块的内容和第N-1个区块的特征值所产生,所以第N个区块的特征值隐含了在同一条链上第1个到第N个区块的内容。也因为如此,在第N个区块的内容及其特征值被写入一区块链后,想要更动第N个区块内的其中一个资料纪录且不影响其区块特征值的唯一方法就是同步修改第1个到第N-1个区块的内容。当然,这些修改也需保证他们相对应的特征值不受影响;此外,用来计算特征值的数学演算法经过了特殊的设计,以让更改一区块内容而不影响其特征值这件事变得极端困难;上述两个原因确保了区块链上资料的不可窜改性。 

比特币最重要的设计理念是运用演算法去除类似中央银行对一个货币系统的集中式掌控,因此比特币将它的区块链内容复制于成千上万个节点(node)上以避免少数节点的把持垄断,而且这些节点不需经过任何认证,可以散布在Internet的任何区域,更可以随时选择离开或加入。在如此松散的架构下,如何建立共识并防止恶意攻击便成了区块链设计最大的技术挑战。更具体而言,当所有的节点都可以要求对既有区块链增加新的资料区块,多个节点可能同时会试图对既有区块链加入不同的资料区块,或者说某恶意节点可能试图对既有区块链造成分支以颠覆历史,要使用什么样的机制才能确保在这些状况下区块链大致保有单一线性链的结构而非树状结构,并让所有节点对区块链内容最后达成共识?

借镜拜占庭容错技术提升区块链效能

Satoshi Nakamoto提出工作证明(Proof of Work , POW)的方法来解决这个问题。当一个节点想要插入新的资料区块,它需要先解答一个与此区块特征值相关的数学谜题。当多个节点竞争时,先解出其谜题的节点得以成功插入它的资料区块,而其他节点必须针对最新区块链内容重算其所属区块的特征值,然后重新解答相应之数学谜题,因此POW可以在多节点竞争的情况下挑出单一胜出者。此外,POW的设计也保证当一个区块链内恶意节点的解题能力低于非恶意节点的解题能力,此区块链可免于恶意攻击的威胁。同时,因为解出POW所采用的数学谜题需要相当的电脑计算能力,POW也垫高了恶意节点攻击一区块链所需付的代价进而降低此类攻击的动机与可行性。 

虽然POW有种种资安的好处,但它的速度比之传统SQL资料库系统实在慢很多(0.1 transaction/sec vs. 1000 transactions/sec)。从资料库管理技术的角度来看,比特币区块链所要解决的问题是:如何在某些恶意分散式资料库节点可以任意破坏资料与欺骗其他节点的状况下,让所有非恶意节点对区块链内容形成单一共识,在研究文献上这个问题叫做拜占庭容错(Byzantine Fault Tolerance)问题。我们可以借镜既有拜占庭容错技术来改善现存区块链系统的效能问题,譬如说,Linux Foundation的区块链软件叫Hyperledger,就是奠基于一种称为PBFT (Practical Byzantine Fault Tolerance)的拜占庭容错技术。尤其是针对私有链(Private Chain)的应用情境,也就是所有参与节点可以互相认证并有基本的互信,拜占庭容错技术可以提供许多效能优化的机会。

在一般的认知上,区块链最大的好处是它保证资料的不可窜改性。然而,把资料纪录组成一条线性链以防止事后资料窜改,并非区块链的独创;事实上,类似的概念已经应用于许多现存密码系统的设计。因此区块链里最重要的技术其实不是如何把资料纪录互相链结,而是如何确保,即使在恶意节点攻击下,所有非恶意节点仍能将资料纪录形成单一线性链。过去数十年学术界对拜占庭容错技术的研究应可以对进一步提升区块链效能提供相当多可借镜的地方。

原创文章,作者:惊蛰财经,如若转载,请注明出处:http://www.xmlm.net/jibi/31589.html