1.4.3 区块链技术演进
区块链源于比特币,中本聪在比特币白皮书中为我们勾勒出了区块链技术的大体框架,所以在区块链发展的初期,很多人认为区块链技术完全适用于数字货币,并能够最终实现去中心化的数字货币发行和流通。从2009年1月比特币上线,到2019年1月,比特币已经稳定运行了10年。可以说,比特币是区块链技术第一个成功的应用案例,比特币及其衍生出的其他数字货币形成了区块链技术发展的第一个阶段。随着时间的推移,很多人开始意识到区块链技术不仅仅能简单地记录数据,还能在资产和信托协议、契约管理等方面发挥巨大的作用,由此引入智能合约技术的以太坊(Ethereum)是区块链技术发展的第二个阶段。目前,区块链的行业精英们正在积极地将区块链技术拓展到金融领域之外,为各行各业提供去中心化的解决方案,这也是区块链技术正在经历的第三个阶段。
总体来说,区块链行业仍在持续火爆的发展当中,但是目前成功的商业应用很少,这也注定了区块链这个新兴产业远没有达到成熟阶段,这既是机遇,也是挑战,要让区块链真正赋能于商业应用,就不能只流于空想和空谈,也不能唯技术论,要让技术服务于业务,所以仍需不断地发展,以期早日落地。下面简要介绍区块链技术发展的三个阶段。
1.区块链1.0
区块链1.0是指以比特币、莱特币为代表的去中心化数字货币,这些数字货币具备支付、流通等货币职能,因此区块链1.0涉及转账、汇款和数字化支付等相关的数字货币应用,其典型的技术架构如图1-21所示。
图1-21 区块链1.0技术架构
区块链1.0从技术架构来看,主要分为5层:
1)数据层
数据层主要描述区块链的底层物理形式,所有的交易数据以梅克尔树形式挂接到相应的区块上,而各个区块从创世区块(第一个区块)开始,就以链式结构串起来构成一条链,这条链就是区块链技术最底层的数据结构,通过它可以追溯区块链从创建以来发生的所有交易。此外,密码学技术保证了区块链中的数据不可篡改,新生成的区块与它的前序区块是通过哈希指针连接在一起的,这样一环扣一环,形成链式结构,如果想要篡改某个区块中的交易数据,那么不得不篡改此区块及其后面所有的区块数据,同时还要让全网其他节点都接受篡改链,这几乎无法实现。数字签名保证了用户数字资产的安全。
2)网络层
区块链主要采用点对点传输技术搭建一套完整的分布式网络系统,这样就构成了区块链的网络层,在网络层上实现了点对点组网机制、数据传播机制和数据验证机制。点对点组网机制允许节点自由方便地加入或退出网络,同时具备动态的自动组网能力;数据传播机制保证交易和区块数据在全网广播,并被大部分节点所接收;数据验证机制确保交易和区块数据到达节点后,节点独立进行验证,防止非法交易数据写入区块链,同时第一时间检测并剔除异常的交易和区块,保证不会被进一步传播,从而避免网络带宽的浪费。
3)共识层
共识层主要包含共识机制,能让高度分散、互不信任的节点在去中心化网络中,针对包含交易数据的区块的有效性达成广泛共识。可以说,共识机制是区块链的核心技术之一,也是区块链社群的治理机制。区块链1.0用到的共识机制是工作量证明(PoW)。
共识层和前面所说的数据层、网络层是构建区块链技术必不可少的元素,缺少任何一层都不能称之为真正意义上的区块链技术。
4)激励层
激励层主要包括具备经济激励作用的货币发行制度和货币分配制度,其功能是提供一定的激励措施,让各个节点在付出劳动的同时,能够获得一定的资金奖励。这也从侧面鼓励每个节点公平地参与区块链的安全验证工作,各个节点不再只是旁观者,而是整个区块链系统运作的参与者。将经济因素纳入到区块链技术体系中,激励那些遵守规则参与记账的节点,这是一个极其巧妙的设计,让每个节点自发地担负起维护整个区块链稳定的职责。
5)应用层
区块链的应用层实现了各种场景应用,类似于计算机上基于操作系统的应用程序、互联网浏览器上的门户网站和手机端上的APP应用。通过这些应用可以完成数字货币的转账,数字货币与法币的互购,以及用数字货币进行商品的交易支付等,除了这些金融活动外,还支持查询区块链里所有的历史交易。
下面以比特币为例来介绍区块链1.0的工作原理。
比特币作为一种数字货币,必然支持转账和交易支付,如图1-22所示。我们在花费比特币之前,需要在电子设备上安装一个比特币钱包软件,这个软件会为我们生成一个比特币地址,并且可以在我们需要的时候生成更多的比特币地址。转账或交易时,我们将其中一个比特币地址告诉对方,对方就能通过这个地址给我们支付比特币。
图1-22 比特币转账和交易支付
区块链是整个比特币网络中存储交易数据的唯一总账本,每个节点都保存有区块链副本,这样就实现了区块链账本的分布式存储,如图1-23所示。区块链里面的交易都是全网节点达成共识的交易,未达成共识但通过有效性验证的交易被保存在节点的交易池里,等待写入区块链从而获得全网节点认可。比特币钱包软件能够通过交易数据计算出可用比特币资金额度,并确保在交易中所花费的比特币资金确实是发送方自己的。
图1-23 交易和区块链账本
单笔交易实现了比特币价值的转移,在使用过程中给我们的直观感觉就是资金从一个钱包转移到另一个钱包。比特币钱包保存有私钥,私钥管理着我们的比特币资产,因为私钥可以用来进行交易签名而将资金花费出去,所以私钥不能丢失,如图1-24所示。私钥的交易签名用于证明支付资金确实来自我们自己。一个交易在全网广播,并被接收到的节点验证,通过验证的交易称为“未确认”交易,即还未被全网节点认可。当这个交易被称为“挖矿”的机制处理后写入区块链,就是“确认”交易,即被全网节点认可并达成共识,相应的资金可以被新的拥有者再次花费出去。
图1-24 私钥管理着资金
“挖矿”的目的是将“未确认”交易写入区块链,从而完成对交易的确认,如图1-25所示。一般由矿工节点来完成挖矿操作。我们知道区块链是一个分布式的共享账本,账本需要有人记账,每个节点争夺记账权利,权利的获得是需要各挖矿节点来抢的,谁的CPU算力大,谁就最有可能获得记账权,所以挖矿的本质就是争取记账权。要让所有挖矿节点都遵守规则来挖矿,就需要激励机制,获得记账权的节点同时获得比特币奖励,并将它主张的交易所在区块进行全网广播,其他节点验证通过后同步自己本地的区块链,最终使得全网各个节点自身所保存的区块链达成一致。
图1-25 “挖矿”示意图
2.区块链2.0
如果说区块链1.0主要应用于以比特币为代表的数字货币,那么区块链2.0则大大扩展了区块链的技术应用。早在中本聪设计比特币之初,他就意识到区块链技术并非仅限于数字货币的使用,他曾经说过:“区块链的设计支持我多年前设计的各种可能的交易类型,如托管交易、保税合约、第三方仲裁、多方签名等。如果比特币有所收获,那么在很大程度上这些都是我们将来想要探索的事情”。区块链发展到2.0阶段,增加了链上实用程序和可扩展的功能,不再将区块链视为货币和支付的一部分,而是扩大技术范围,在各类市场中获得全方面应用,交易不再只涉及数字货币,而将涉及其他类型的资产,比如股票、债券、抵押、贷款、期货、产权等。区块链2.0以以太坊为代表,在区块链上上传和执行应用程序,程序的有效执行由智能合约来保证。区块链2.0的技术架构如图1-26所示。
图1-26 区块链2.0技术架构
对比区块链1.0,区块链2.0的主要特点体现在两个方面:①增加了多种共识算法,不再只局限于工作量证明算法,不同的共识算法各有利弊,能适用于不同的应用场景;②用智能合约层取代了应用层。智能合约层主要实现智能合约等一系列见证协议,真正赋予了区块链可编程的特性,通过虚拟机运行代码来实现智能合约;同时支持图灵完备的脚本语言,为开发者在其设置的“操作系统”上任意开发相关应用提供必要的基础设施,实现了虚拟计算机世界的应用在现实中的落地。
区块链2.0的核心就是智能合约。简单地讲,智能合约是嵌入合同条款和条件的计算机协议,这些计算机协议可以被编译成在网络上运行的可执行计算机代码,相应的条款能够部分或全部自动执行。智能合约使得陌生人之间签订的电子合同的执行完全不受外界影响,特别是人为的干扰,降低了违约的风险,同时也减少了维权的成本。
3.区块链3.0
区块链1.0和2.0是我们已经经历和正在经历的技术阶段,那么区块链3.0代表什么呢?有些人认为区块链3.0是网络化计算机协作的智能操作系统;有些人认为超越金融领域智能合约的区块链应用就是区块链3.0;还有人认为新的共识算法就代表区块链3.0。目前对于区块链3.0没有统一的定义。笔者认为区块链3.0意味着区块链技术拓展到金融领域之外,为物流、教育、人力资源、社会治理等各行各业提供去中心化的解决方案,充分体现了人们对构建未来“可编程社会”的理想愿景。在区块链3.0时代,人们能真正实现资产上链,在一个大的底层框架内构筑各种应用,打造一个无信任成本、具备超强交易能力、极低风险的平台,在这个大一统的平台上可以实现全世界范围内资源的自动化合理分配,同时促进各个领域的大规模协作,并极有可能成为“万物互联”的底层协议之一。
当前区块链的底层技术尚未成熟,其共识算法等区块链核心技术还有待优化和完善,区块链的处理效率不足以支撑高频应用场景,所以现阶段区块链3.0的落地应用还很少。目前名气比较大的正在开发的区块链3.0项目主要是EOS(Enterprise Operation System)。EOS是由区块链技术达人Daniel Larimer开发的一种类似操作系统的区块链架构,旨在实现分布式应用的性能扩展。EOS提供账户、身份验证、数据库、异步通信以及在数以百计的服务器群集上的程序调度。这个区块链体系架构支持每秒数百万个交易,且普通用户无须支付使用费用。除了EOS,还有诸如AE、DFINITY、BTM等区块链3.0项目。