1.1 区块链究竟是什么
在讲区块链的定义之前,或许我们可以先看一个网上流传的故事。
在一个封闭的山村里,人们从事着挖矿的工作,矿石是财富的计量单位,同时也能进行交易换取生活用品。大家挖到的矿石会被带到山下,由村长清点记账,张三、李四等所有人的财富,都被记录在村长一个人的账本上。但是人都会犯错,村长也不例外,有时候还会为了私利窜改账本,搞得村里怨声载道。
村民们决定推翻村长的管理,他们采取了一个新办法:每个人都带一本账本并且自己管理,如果有谁挖到矿石,就在自己的账本上做记录,同时通知所有人,大家都在各自的账本中写下同样的内容。以后村民之间的物品交易、矿石交换,也通过这种“广而告之”的方式记账。即使有人窜改了账本,只要拿出其他人的账本对比,便能发现问题并更正,除非能在短时间内窜改超过一半及以上人的账本,才可以颠倒黑白、指鹿为马,但只要村民数量足够多,基本上没人有能力纂改过半的账本。
而且为了避免有人重复记账,村民们还规定给每块矿石做标记,写上挖到这块矿石的时间、地点和相关人物,同时附上上一块矿石的信息。这样一来,每个村民的账本上都记录着每块矿石独一无二的信息,并且总与上一块矿石的信息关联,因此这些记录形成一个长链。财富无法凭空捏造,每一条记录也都无法窜改。
这种分布式记账的方式,就是我们所说的区块链。
我们来看一下区块链在维基百科上大家公认的官方定义:
一个区块链就是一个基于比特币协议的不需要许可的分布式数据库,它维护了一个持续增长的不可被窜改和修改的数据记录列表,即使对于数据库节点的运营者们而言也是如此。
区块链究竟是什么?说得笼统一点,区块链实现的是一种全新的信用系统。另外一个同义的说法是,区块链系统是一个“Trustless”(无需信用)的系统,无需信用的系统本身就实现了自己的信用。这个信用系统不基于任何法律法规,是用机器语言来实现的。在系统运作时,这种信用不受使用者的影响,也无法被破坏。借助于互联网的传播,这个区块链系统能覆盖全球任何一个角落,并且简单易用。
简而言之,区块链(blockchain)说的是由区块(block)用某种方式组织起来的链条(chain)。本书中说的区块链技术实际上是一种分布式数据库技术。
区块链就是区块组成的链
“区块链”顾名思义,有两个概念:区块,以及一个个区块组成的链条。具体来说,是数据存储在一个个区块内,区块按照时间顺序相连组成的链式数据结构。这种链式结构完整、相同地存储在网络上多个节点里,具备公开透明、无法窜改、方便追溯的特点。
我们来看下面的图1-3。
图1-3 区块链的组织方式
来源:Bitcoinist网站
图 1-3是对区块链中间一段的一个简单描述。每个区块都有指向前一个区块的链接,一直到最初创建的区块,而在区块链系统上发生的每一笔交易都会在某一个区块中被永久保存。比如区块54中包含了链接连到区块53;区块53中包含了链接连到区块52;区块52中包含了链接连到区块51,依此类推,直到最初的那个区块。
事实上,更准确地说区块链是一种技术架构,是包含了多个技术的集合,包括分布式账本、去中心化的P2P技术(Peer to Peer,点到点)、时间戳、非对称加密和智能合约等。在区块链概念创建之初,谈的主要是比特币底层的实现方式,而确实也是因为比特币近年来迅速进入大众视野,人们才更关注它背后的技术,所以很多人会把比特币和区块链技术的概念互换,但这二者是不可混为一谈的。在本书中,我们讨论的主要是区块链技术。
通常,我们将区块链技术模型自下而上分为六层,分别是数据层、网络层、共识层、激励层、合约层和应用层。其中数据层、网络层和共识层是构建区块链技术的必要元素,缺少任何一层都将不能被称为真正意义上的区块链技术。这三层包括的区块链核心技术原理,分别对应分布式存储技术、去中心化的P2P技术和共识机制算法,在第2章将会详细阐述。
区块链应用DApp
互联网时代电脑和手机里的应用称作 Application,简称 App,而 DApp即Decentralized Appication的缩写,称作“去中心化的应用”。不同的DApp会采用不同的底层区块链开发平台和共识机制,可以自行发布通证(Token),抑或使用基于相同区块链平台的通用通证。图1-4简单阐释了DA p p的运行原理。
打个比方,DApp的底层区块链开发平台就好比手机的 iOS和 Android系统,而 DA pp就是在底层区块链平台生态上衍生出来的各种分布式应用,也是区块链世界中的基础服务提供方。而且和手机里的 A pp不同,DA pp是完全去中心化的,由网络自己的节点来运作,不依赖于任何中心化的服务器。
目前普遍认为,符合以下三个条件的应用,就可以被认为是一个DA p p:
· 运行在分布式网络上。
· 参与者的信息被安全存储,隐私得到很好的保护。
· 通过网络节点去中心化操作。
图1-4 DApp的运行原理
而一个真正的DApp,需要同时满足以下几个条件。
· 必须完全开源、自治,而且没有一个实体控制着该应用 51%以上的To ke n。
· 有 Token。Token 又称“通证”,也有另一种译法将其称为“代币”。我们现在所说的To ke n通常指两类:一种是类似比特币区块链网络上的加密数字货币,没有实际的应用功能;另一种是在区块链网络之上构建的DA p p 所发行的通证,它更多的是被用作特定功能和价值的承载者。我们在意的是实际应用,所以采用了“通证”这一说法,因为我们认为DA p p 必须拥有通证机制,让参与“挖矿”的矿工或者让维护应用的节点得到一定的奖励。
· 必须能够根据用户的反馈及技术要求进行升级,而且其升级必须等大部分用户达成共识之后方可进行。
· 其数据必须加密后存储在公开的区块链上。
· 其通证必须依据标准的加密算法生成,有价值的节点可以根据该算法获取DA p p的通证奖励。
区块链的早期应用是货币交易、金融交易,随后是智能资产,包括房产、汽车等实物资产和知识产权、司法认证、公共档案等虚拟资产。可以说,区块链技术几乎可以应用在所有行业中,或者在任何一个行业中都有可以用到区块链技术的场景。
未来随着智能合约的发展,智能合约构建的组织如同现实商业社会一样运行,在没有人类干预的前提下,通过预先设定的业务规则自动运行,这样形成的去中心化组织网络会变得极其复杂和自治,会出现各种形态。