比特币和区块链的关系
比特币脱胎于区块链,区块链的辈分比比特币大,但两者几乎是同时为人所熟知的。上面虽然简单提到了比特币和区块链之间的关系,但还不够具体,可是这个问题对本书来说又很重要,所以这里再展开一些来说。
区块链的定义和特质
所谓区块链,民间普遍认为是“加密的分布式记账技术”,即基于密码学的、可实现信任化的信息存储和处理的结构与技术。而国家工业和信息化部对区块链的官方定义是:“在对点网络下,通过透明和可信规则构建不可伪造、不可篡改和可追溯的块链式数据结构,实现和管理事务处理的模式;其中事务处理包括但不限于可信数据的产生、存取和使用8。”
顾名思义,区块链首先是一种信息记录方式(记账技术),并且还要是“加密的”“分布式的”。因为这是“一种加密的分布式记账技术”,所以你不用死记硬背,只要记住“加密”是数学概念、“分布式”是网络概念、“记账技术”是金融概念9,就能很好地加以理解了。
从字面上看,区块链是由“区块”和“链”所构成的。所谓区块,也叫信息块,是指记录一段时间内发生的所有交易的状态和结果;所谓链,是指按照这些区块所产生的顺序串联起来的整个账本状态变化的记录。
在这里,每个区块都包括这样三大要素:本区块的ID10、若干交易单、前一区块的ID。因为每个区块中都包含着前一区块的ID,所以沿着每一区块的ID一直往前推,就能找到一条完整的交易链,从而在全网形成一条唯一的主链,这就是区块链。
从中也容易看出,区块链不是“静态”的“死”的,而是“动态”的“活”物。唯有如此,区块链技术才能在实际生活中出现广泛应用。而且,它的分布式账本规定,在此账本上进行记录只许添加、不许删除。
比特币和区块链的工作原理
最早关于区块链的描述,出现在中本聪的论文Bitcoin:A Peer to Peer Electronic Cach System中。只不过,因为该论文主要讨论的是比特币,区块链不是重点,所以根本就没有明确提到区块链的概念;但这并不妨碍区块链技术最早运用在比特币项目中。用来记录比特币交易账户历史数据的技术,正是区块链。在这其中,比特币和区块链究竟是怎么工作的呢?最通俗的描述是:
第一步,比特币客户端在发起一项交易后,会将这一信息发送到整个比特币网络中去,然后等待交易确认。也就是说,区块链中每输入一个数据,都会创建一个区块。
第二步,比特币网络中的节点会将这类交易记录进行打包,然后结合前一个区块头部的哈希值等信息,构成一个候选区块。也就是说,这个新创建的区块分为两部分,区块头和区块体。区块头记录当前区块信息,区块体记录实际数据。
第三步,系统会试图寻找,看能否将符合一定条件的随机串(nonce串)放到这个区块里面去。如果是,那么这个区块就会被认为是“合法”的,就可以在整个比特币网络中名正言顺地广而告之;而其他节点在收到这个候选区块信息后,便会纷纷进行验证。一旦证实它确实符合约定条件,就会一边承认它是合法的,一边添加到自己所维护的区块链上去。当大多数节点都这样做时,就表明该区块已经被该网络所接受,连同这个区块中的所有交易信息都被大家所公认。这就是说,每一个新建区块的信息都必须通过上一个区块信息计算而得。经过如此这般“验明正身”后,这一个个嵌合在一起的区块便构成了区块链。
用生活中的例子来加以说明,就好比是:
第一步,你身处异国他乡或外地,在急需一笔资金时,可能会想到把这一信息发在同学群中,等待每个同学伸出援手,帮你渡过难关。
第二步,当你的这一求助信息发到同学群中后,对其他群友来说就构成了一条未读信息。
第三步,其他人在读到你的这条求助信息后,会从多方辨别真伪,还可能会相互转发和议论纷纷。因为这毕竟涉及钱的事情,可能数目还不小,这年头骗子可不少。而当一些同学确认是你发出的信息,并且你有这种真实需求时,便会向你提供援助;而当大多数人都这样做时,就说明你的请求被大家接受了,你的难处也得到了解决。
具体到比特币来说,这种寻找符合一定条件的随机串的过程被称为“挖矿”。而要想提高挖矿效率,没有其他捷径可走,主要是靠暴力尝试;尝试机会越多,找到随机串的可能性就越大。
虽说区块链谈不上是横空出世的一种新技术,只是过去多种技术的重新组合;不过直到比特币问世,建立在区块链基础上的许多商业场景和创新技术纷纷涌现,人们才逐渐看到一幅幅更高效、更安全的未来场景。
具体地说,如果从1969年互联网在美国诞生开始算起,区块链至少是建立在以下五大互联网技术基础之上的:一是1974年诞生的核心通信技术TCP/IP协议,它决定了区块链在互联网技术生态中的地位;二是1984年诞生的思科路由器技术,它是区块链技术的模仿对象;三是随着万维网诞生的中心型架构(B/S或C/S),这是区块链所要颠覆的目标;四是无主从之分的对等网络(P2P),这是区块链的父亲和技术基础(图1-2);五是哈希算法,这是产生比特币和通证的关键11。
图1-2 无主从之分的对等网络P2P
(图片来源:搜狐网)
区块链和比特币的渐行渐远
当初中本聪提出区块链思想,主要是把它当作比特币网络核心支持技术来对待的。从2014年开始,区块链就逐渐脱离比特币网络,成为一种通用的、能够支持分布式记账的底层技术。所以,今天所指的区块链,除非特指比特币区块链,否则已经与比特币没有多大关系了。
要知道,在中本聪的比特币白皮书里并没有区块链(Blockchain)这个词,而只是提到了链(chain),指比特币系统的子集。后来出现的成千上万种山寨币,同样没有跳出中本聪公共账本的概念。不过,由此人们却约定俗成地从中抽象化地提炼出了区块链这个词,其中包含这样三层含义:一是区块链是比特币的原创核心技术,在这之前是没有区块链的;二是从技术层面讲,区块链和比特币是同时出现的,属于孪生关系;三是自从比特币出现后人们才纷纷采用类似技术,使得区块链的应用范围越来越广,已经几乎看不到边界。
归纳起来,比特币和区块链的关系是:比特币是基于区块链的一种数字现金应用;而区块链最早是在比特币分布式系统中得到应用和验证的,它确保了比特币系统2009年上线后至今在完全自治情况下的正常运转。
正因为比特币的区块链技术是专门为比特币体系设计的,所以比特币的区块链并非就是我们通常所说的区块链。换句话说,区块链是多种学科和技术整合的结果,包括密码学、数学、经济学、计算机技术等,比特币区块链只是区块链大家族中的一员。
上述多种技术整合在一起的区块链,就形成了一种新的去中心化数据记录和存储体系,并且能在存储数据的区块上打上时间戳,从而形成一个连续的、前后关联的、忠实记录数据的存储结构体系。
所以,对于普通读者来说,如果你搞不清或不想搞清复杂的区块链技术,那就不妨以退为进,简单地理解为:区块链就是这样一种数据存储结构,它把需要写入的数据分成一小块一小块,然后利用技术手段将这些小块串联起来,形成一种相对独立、自成一体的链式数据存储体系。
举个不恰当的例子。过去在仓库里存放东西时有点乱,有什么东西都往里面堆,直到把仓库放满,再去寻找下一个仓库继续这样堆放。
这样做的后果:一是堆放有点乱,不易寻找,有时候甚至需要把满屋子都翻过来才能找到你所需要的东西;二是占地方,有的地方堆得紧,有的地方堆得松,浪费空间;三是不安全,你在堆放东西时如果其中有坏蛋记住了哪个值钱的东西放在什么位置,或者门口正好有坏蛋经过一眼瞟见,这贵重物品就很可能会被偷盗。而因为里面堆放杂乱,即使东西被偷也不一定就能马上被发现。这样的坏蛋在网络上就是黑客。
而现在区块链的原理是:在这些被堆放的东西上,全都写上一段文字,贴上标签,标签上的文件名是一种有规律的排列,然后用一根安全的绳子把它们串在一起。无论坏蛋偷走其中的任何一件东西,都会发现这些有规律排列的东西中已经少了某一样;有时候甚至只要那么动一动,都会牵动这根绳子上的其他东西,让所有东西都感觉得到。
在区块链技术中,这一件件东西就是一个个区块,上面的标签就是严谨的哈希函数,而这根绳子就是哈希指针,这些东西被串在一起后所形成的链状存储结构就叫区块链。
容易看出,这区块链仓库就能克服过去随意堆放造成的三大缺点,既不是那么乱了,也节省了空间,还更具安全性。