首先,区块链技术在发展过程中衍生出了多种类别。最常见的是根据节点间的组织形式和决策机制将区块链系统分为公有链、私有链和联盟链三类,具体如表1-1所示。
表1-1 区块链系统的分类
公有链也简称为“公链”,它对分布式节点没有特定要求,完全以算法、数据结构和节点共识机制来组织。在这类系统中,节点之间是没有任何信任约束的。私有链一般适用于企业或组织内部,由内部管理者进行授权和管理。这类系统中,由于节点是由系统的发起者充分控制的,所以节点间是强信任的。联盟链中,一般由若干相互独立的主体共同形成联盟,并由这些主体各自运行一个或多个节点,只有被信任的联盟成员才能加入节点网络。这种系统中的节点面对着一定的网络准入和监督机制。在实践中,联盟链常由行业内的企业及监管机构共同发起和维护。
区块链技术的演进过程大致可划分为三个阶段,如图1-2所示。
图1-2 区块链技术的演进过程
第一阶段以中本聪在2008年提出的比特币区块链为代表。比特币区块链的实质是利用区块链技术实现一种分布式的记账机制,并以此为基础实现比特币虚拟货币的交易,其核心技术点包含UTXO交易模型、链式账本数据结构、加密技术,以及基于“工作量证明”的共识机制等。在本书后续章节中将对这种区块链技术进行详细讲解。比特币区块链是公有链,由全球的分布式节点共同维护。同时代的区块链应用还有Namecoin、Colored Coins,以及Metacoins等。比特币区块链有一些局限性。例如,UTXO模型缺少对状态的支持,只适合简单、一次性的交易合约。这些限制使得它很难应对金融领域中各种较复杂的场景。还有一些专家认为比特币区块链中的“工作量证明”共识机制过于消耗计算量,平均10分钟出一个区块,效率很低。
区块链技术第二阶段的主要特点是引入了“智能合约”理念,成为可编程的区块链系统,进而支持简单的金融合约业务场景。和第一阶段的区块链技术相比,这个阶段的区块链技术通过图灵完备的编程语言,让开发者们能够创建合约,实现去中心化应用,以太坊和Fabric是这个阶段的主要代表。其中,以太坊是继比特币之后一个很具影响力的公有链协议,它采用了合约账户的概念,能够通过执行智能合约实现两个账户之间价值和状态的转换。Fabric是由IBM主导开发的一个联盟链,支持用容器技术运行智能合约代码,对高级语言开发有良好的开放性。该阶段的区块链技术在共识算法方面也有很多创新。
第三个阶段是区块链在应用领域、效率,以及安全性方面的扩展,即目前的发展阶段。可能的技术发展方向包含:利用分片、跨链等技术提升区块链的记录效率,接近高并发场景下的需求;利用新型的密码技术提升区块链系统的安全性,例如密钥管理技术、抗量子攻击密码等;提升智能合约的开放性,增加适用的行业场景等。据笔者观察,这个阶段目前尚处于探索阶段,还未有标志性的、被大规模运用的系统出现。