从形式上看,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合形成的一种链式数据结构。每个区块主要包含三个部分:①数据信息,具体的信息类型与区块链协议规定相关,例如,在比特币系统中是转账信息,包括付款人、收款人、比特币数量等;②哈希(Hash)值,表明区块内包含的所有信息;③哈希指针,包含上一个区块的哈希值,表明上一个区块的信息。哈希指针可以将区块一个个连接起来形成“区块链”。
哈希值就是一段信息经过“哈希算法”加密后得到的值。“哈希算法”是一种加密算法,任何一串信息经过“哈希算法”运算后,就转化为一段没人能看懂的字符串。哈希算法有三个重要的特性:单向性、确定性、分散性。
区块包含两个部分:
◎ 区块头(Head):记录当前区块的元信息。
◎ 区块主体(Body):实际数据。
区块包含的数据如图2-1所示。
图2-1
我们以银行转账为例,目前转账都是中心化的,银行是一个中心化账本,例如A账户里有400元钱,B账户里有100元钱。
当A要转100元钱给B时,A要向银行提交转账申请,银行验证通过后,就从A账户上扣除100元,B账户增加100元。经计算后,A账户扣除100元后余额为300元,B账户加上100元后余额为200元。
区块链上转账的步骤则是:A要转账给B 100元钱,A就会在网络上把要转账的这个信息告诉大家,大家会去查看A的账户上是否有足够的钱去完成这个转账,如果验证通过,大家就都把这个信息记录到自己电脑上的区块链中,且每个人记入的信息都是同步一致的,这样A就顺利将100元钱转移到了B的账户上,如图2-2所示。可以看到这中间并没有银行什么事。
图2-2
区块链通过Hash与非对称加密来保障数据无法被篡改:
◎ Hash:y=hash(x),对x进行哈希运算得出y,可以隐藏原始信息x,因为我们没办法通过y来算出x,从而做到匿名性。
◎ 非对称加密:公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。
比特币每秒钟的交易最大只能有七笔。请注意,这里说的是最大而不是平均,因为这是一个非常严格的定义,对于区块链来说,其实每秒的交易次数可以达到上万次或者更多,所以这也是区块链和比特币的一个主要区别。很多人会混淆说,区块链这个交易的速度为七笔每秒,这是不对的,这是比特币的一个限制,区块链根据它不同的共识算法以及链接方式,可以达到非常高的交易速度。
以比特币网络为例,具体查看其中如何使用区块链技术。
比特币的区块链工作过程如下:
(1)用户通过比特币客户端发起一项交易,消息广播到比特币网络中等待确认。网络中的节点会将收到的等待确认的交易请求打包在一起,添加上前一个区块头部的哈希值等信息,组成一个区块结构。然后,试图找到一个nonce串(随机串)放到区块里,使得其哈希结果满足一定条件(比如小于某个值)。计算nonce串的过程,即俗称的“挖矿”。nonce串的查找需要花费一定的计算力。
(2)一旦节点找到了满足条件的nonce串,区块在格式上就变得合法,成为候选区块。节点将其在网络中广播出去。其他节点收到候选区块后进行验证,发现确实合法,就承认区块是一个新的合法区块,并将其添加到自己维护的本地区块链结构上。当大部分节点都接受了该区块后,意味着区块被网络接受,区块中所包括的交易也就得到了确认。
比特币的区块链工作过程可以简化为两个关键流程,一个是完成对一批交易的共识(创建合法区块结构),一个是新的区块添加到区块链结构上,被网络认可,确保未来无法被篡改。
比特币基于算力(寻找nonce串)的共识机制被称为工作量证明。因为要让哈希结果满足一定条件,并无已知的快速启发式算法,只能对nonce值进行逐个尝试的蛮力计算。尝试的次数越多(工作量越大),算出来的概率越大。
通过调节对哈希结果的限制条件,比特币网络控制平均约10分钟产生一个合法区块。算出区块的节点将得到区块中所有交易的管理费和协议固定发放的奖励费(每四年减半)。
比特币网络是任何人都可以加入的,如果网络中存在恶意节点,能否进行恶意操作来对区块链中记录进行篡改,从而破坏整个比特币网络系统?比如故意不承认别人产生的合法候选区块或者干脆拒绝来自其他节点的交易请求等。
实际上,比特币网络中存在大量(据估计数千个)的维护节点,而且大部分节点都是正常工作的,默认都只承认所看到的最长的链结构。只要网络中不存在超过一半的节点提前勾结一起采取恶意行动,则最长的链将很大概率上成为最终合法的链,而且随着时间增加,概率会越来越大。例如,经过6个区块生成后,即便有一半的节点联合起来想颠覆被确认的结果,其概率也仅为(1/2)^6≈1.6%,即低于1/60的可能性。10个区块后概率将降到千分之一以下。
如果整个网络中大多数的节点都联合起来作恶,可以导致整个系统无法正常工作。但这意味着付出很大的代价,得不偿失。
区块链借助互联网能实现信息的全网同步和备份,并且可以使交易者之间的信任机制得以建立。其特征主要概括为以下方面:
(1)一是去中心化。也就是说,通过网络记录的每笔交易不存在任何中介机构,所有交易的发生都是交易人直接交易,并按照交易时间被记录在交易人手机或电脑的客户端程序中。从这一点可以看出,区块链可以绕开中介机构展开交易,从而避免中介交易的风险。
(2)二是不可篡改和可追溯。每一笔网络交易都会有其发生的时间,从而构成一个数据块,并运用密码技术予以加密。区块链就是将每一个数据块按照时间发生的先后顺序线性串联起来。由于时间的不可逆性和不可更改性,使得区块链具有了不可篡改的特点。也就是说,所有人的所有交易都被记录在案,如果在某个交易环节出现造假情况,我们完全可以通过区块链条进行精准识别,实现交易的可追溯,从而保证交易的真实性、可靠性。
(3)三是信息的共享和透明。这主要是指网络中的所有人都能看到所有的交易记录,都能共享数据账本,所以当某个区块数据出现问题时,并不会导致所有交易记录和数据资产遭到破坏。因此,基于区块链的这些特征,网络交易者之间可以建立起一定的信任机制,从而简化交易流程和审批程序,形成便捷、高效、透明的工作机制。