聊聊区块链
2018-01-12
如果要聊聊区块链,那么就得先说说比特币。
在2008年一个名为中本村的人发了一篇名为《比特币:一种点对点的电子现金系统》的论文,从此掀起了人们对新一代数字货币的研究热潮。如论文题目所述,比特币是一种点对点的电子现金系统,它的出现主要得益于以下几种技术:非对称加密、哈希计算、分布式技术。紧随比特币的步伐又出现了许多令人眼花缭乱的代币,如火币、彩色币、以太币、瑞波币等。这些所有出现的代币,都是基于一种名为区块链的技术。也可以理解为区块链技术是所有代币的底层,代币只是建立在它之上的一个具体应用而已(见图1)。
目前,基于比特币区块链的应用已经遍及生活的方方面面(见图2),金融领域如股权交易、众筹、金融衍生品交易等,政府部门职能如房产所有权登记、知识产权证明等,IT领域如电子商务、P2P贷款、信息保存等。区块链的发展已经如火如荼,让人不能忽视。就连央行也刚刚成立了数字货币研究所来相应区块链发展的热潮。
那么,区块链到底是什么?
图1
通俗理解,区块链是一个分布式总账(见图3)。
把这个总账称作区块链的原因是总账里存储信息的基本单位是一个区块,而后生成的区块基于前一个区块的哈希值建立,抽象地可以理解为后一个区块有一个指针指向前一个区块(见图4),这样所有的区块就形成了一个链条。这个账本是分布式地存储在部分或所有用户节点中,每个用户节点所存储的内容一致,并且能够相互之间进行验证。
以下内容都基于比特币区块链来对区块链作一步描述。
图2
图3
图4
首先说说区块链是如何保证所有的节点存储的内容是一致的。这是因为区块链都需要使用共识算法,而在比特币中这种共识算法是工作量证明。那么如何理解这个工作量证明呢?计算机可以很容易地计算一个输入值的哈希值,但是要是计算出的哈希值小于某一个值就非常困难,要得到比一个固定的数值小的哈希值,可能需要计算机进行数十亿次甚至数百亿次的哈希计算才能够完成,这个过程是非常耗时的。在比特币区块链里,就把计算出比一个固定值小的哈希值的这个过程中所作出的努力称为工作量证明。共识算法的一个重要的步骤就是计算出这个哈希值。由于每一区块都是基于前一个区块建立起来的,所以如果有一个节点想要篡改区块链中的数据,它需要付出极大的努力来重新计算前面所有区块中的哈希值,这个在实际上认为是不可能的。所以,当这个哈希值计算出来,所有节点都可以相信这个值很大的概率是正确的,然后通过P2P网络把区块下载到本地即可。
那么比特币区块链是不是就绝对安全呢?并不是这样,网络超过一半的算力使坏,比特币区块链就可能被攻破。什么是算力呢?假设现在有两台计算机,它们除了CPU以外,所有的配置都相同。计算机A的CPU是Intel i5,计算机B的CPU是Intel i7,假设Intel i7的计算能力是Intel i5的两倍。这个时候可以说计算机A拥有的算力单位是1,而计算机B拥有的算力单位是2。在有超过一半算力在使坏时,它们可以重新计算前面区块的哈希值,然后慢慢就能够追赶上现有的区块长度,最终达到篡改的目的。所以比特币区块链并不是绝对安全的。