区块链技术本质上是一个去中心化的数据库,它是比特币的核心技术与基础架构,是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改、不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。
区块链上存储的数据需由全网节点共同维护,可以在缺乏信任的节点之间有效地传递价值。 相比现有的数据库技术,区块链具有以下技术特征。
1 . 块链式数据结构
区块链利用块链式数据结构来验证和存储数据,通过上文对区块链基本概念的介绍可以知道,每个区块打包记录了一段时间内发生的交易是对当前账本的一次共识,并且通过记录上一个区块的哈希值进行关联,从而形成块链式的数据结构。
2 . 分布式共识算法
区块链系统利用分布式共识算法来生成和更新数据,从技术层面杜绝了非法篡改数据的可能性,从而取代了传统应用中保证信任和交易安全的第三方中介机构,降低了为维护信用而造成的时间成本、人力成本和资源耗用。
3 . 密码学方式
区块链系统利用密码学的方式保证数据传输和访问的安全。存储在区块链上的交易信息是公开的,但账户的身份信息是高度加密的。区块链系统集成了对称加密、非对称加密及哈希算法的优点,并使用数字签名技术来保证交易的安全。
区块链系统的以上技术特征决定了其应用具有如下功能特征。
1 . 多中心
不同于传统应用的中心化数据管理,区块链网络中有多个机构进行相互监督并实时对账,从而避免了单一记账人造假的可能性,提高了数据的安全性。
2 . 自动化
区块链系统中的智能合约是可以自动化执行一些预先定义好的规则和条款的一段计算机程序代码,它大大提高了经济活动与契约的自动化程度。
3 . 可信任
存储在区块链上的交易记录和其他数据是不可篡改并且可溯源的,所以能够很好地解决各方不信任的问题,无需第三方可信中介。
区块链技术体系不是通过一个权威的中心化机构来保证交易的可信和安全,而是通过加密和分布式共识机制来解决信任和安全问题,其主要技术创新有以下4点。
1 . 分布式账本
交易是由分布式系统中的多个节点共同记录的。每一个节点都记录完整的交易记录,因此它们都可以参与监督交易合法性并验证交易的有效性。不同于传统的中心化技术方案,区块链中没有任何一个节点有权限单独记录交易,从而避免了因单一记账人或节点被控制而造假的可能性。另一方面,由于全网节点参与记录,理论上讲,除非所有的节点都被破坏,否则交易记录就不会丢失,从而保证了数据的安全性。
2 . 加密技术和授权技术
区块链技术很好地集成了当前对称加密、非对称加密和哈希算法的许多优点,并使用了数字签名技术来保证交易的安全性,其中最具代表性的是使用椭圆曲线加密算法生成用户的公私钥对和使用椭圆曲线数字签名算法来保证交易安全。打包在区块上的交易信息对于参与共识的所有节点是公开的,但是账户的身份信息是经过严格加密的。
3 . 共识机制
共识机制是区块链系统中各个节点达成一致的策略和方法。区块链的共识机制替代了传统应用中保证信任和交易安全的第三方中心机构,能够降低由于各方不信任而产生的第三方信用成本、时间成本和资本耗用。常用的共识机制主要有PoW、PoS、DPoS、Paxos、PBFT等,共识机制既是数据写入的方式,也是防止篡改的手段。
4 . 智能合约
智能合约是可以自动化执行预先定义规则的一段计算机程序代码,它自己就是一个系统参与者。它能够实现价值的存储、传递、控制和管理,为基于区块链的应用提供了创新性的解决方案[11-12]。
按照节点参与方式的不同,区块链技术可以分为:公有链(Public Blockchain)、联盟链(Consortium Blockchain)和私有链(Private Blockchain)。按照权限的不同,区块链技术可以分为:许可链(Permissioned Blockchain)和非许可链(Permissionless Blockchain)。前述的三大类区块链技术中,联盟链和私有链属于许可链,公有链属于非许可链。
1 . 公有链
公有链,顾名思义,就是公开的区块链。公有链是全公开的,所有人都可以作为网络中的一个节点,而不需要任何人给予权限或授权。在公有链中,每个节点都可以自由加入或者退出网络,参与链上数据的读写、执行交易,还可以参与网络中共识达成的过程,即决定哪个区块可以添加到主链上并记录当前的网络状态[13]。公有链是完全意义上的去中心化区块链,它借助密码学中的加密算法保证链上交易的安全。在采取共识算法达成共识时,公有链主要采取工作量证明(PoW,Proof of Work)机制或权益证明(PoS,Proof of Stake)机制等共识算法,将经济奖励和加密数字验证结合起来,来达到去中心化和全网达成共识的目的。在这些算法共识形成的过程中,每个节点都可以为共识过程做出贡献,也是我们俗称的“挖矿”,来获取与贡献成正比的经济奖励,也就是系统中发行的数字代币。
公有链通常也被称为公共链,它属于一种非许可链,不需要许可就可以自由参加退出。当前最典型的代表应用有比特币、以太坊(Ethereum)等。因其完全去中心化和面向大众的特性,公有链通常适用于“虚拟加密货币”和面向大众的一些金融服务以及电子商务等。
2 . 联盟链
联盟链不是完全去中心化的,而是一种多中心化或者部分去中心化的区块链。在区块链系统运行时,它的共识过程可能会受某些指定节点的控制。例如,在一个有15个金融机构接入的区块链系统中,每个机构都作为链上的一个节点,每确认一笔交易,都需要至少对10个节点进行确认(2/3确认),这笔交易或者这个区块才能被认可。联盟链账本上的数据与公有链的完全公开是不同的,只有联盟成员节点才可以访问,并且链上的读写权限、参与记账规则等操作也需要由联盟成员节点共同决定。由于联盟链场景中的参与者组成一个联盟, 参与共识的节点相对公有链而言会少很多,并且一般是针对某个商业场景,所以共识协议一般不采用与工作量证明类似的挖矿机制,同时也不一定需要代币作为激励机制,而是采用PBFT、RAFT这类适用于多中心化且效率较高的共识算法。同时,联盟链对交易的时间、状态、每秒交易数等与公有链有很大区别,所以它比公有链有更高的安全和性能要求。
联盟链属于一种许可链,意味着不是任何人都能自由加入网络中,而是需要一定的权限许可,才可以作为一个新的节点加入。当前联盟链典型的代表有Linux基金会支持的超级账本(Hyperledger)项目、R3区块链联盟开发的Corda,以及趣链科技推出的Hyperchain平台等。
3 . 私有链
私有链,是指整个区块链上的所有写入权限仅仅掌握在一个组织手里,而读取权限可以根据情况对外开放或者任意进行限制[14]。所以,私有链的应用场景一般是单一的企业内部总公司对分公司的管理方面,如数据库管理和审计等。相比于公有链和联盟链,私有链的价值主要体现在它可以提供一个安全、可追溯、不可篡改的平台,并且可以同时防止来自内部和外部的安全攻击。目前对于私有链确实存在着一些争议,有人认为私有链的意义不大,因为它需要依赖于第三方的区块链平台机构,所有的权限都被控制在一个节点中,已经违背了区块链技术的初衷,不能算一种区块链技术,而是已经存在的分布式账本技术。但是也有人认为私有链拥有很大的潜在价值,因为它可以给当前存在的许多问题提供一个很好的解决方案,比如企业内部规章制度的遵守、金融机构的反洗钱行为以及政府部门的预算和执行,等等。
与联盟链一样,私有链也属于一种许可链,不过它的许可权掌握在单一节点中,在有些场景中,私有链还被称为专有链。当下私有链的应用不是很多,开创者都在努力探索之中。当前已经存在的应用主要有英国币科学公司(Coin Sciences Ltd.)推出的多链(Multichain)平台,这个平台的宗旨是希望能帮助各企业快速地部署私链环境,提供良好的隐私保护和权限控制。
自诞生至今,区块链技术经历了三次大的技术演进,其典型代表平台为2009年的比特币、2013年的以太坊和2015年的Fabric和Hyperchain,其组织形态从资源消耗严重、交易性能低下、缺乏灵活控制机制的公有区块链,向高效共识、智能可编程、可保护隐私的联盟区块链转变。当前,Hyperchian平台的TPS(每秒事务处理量)已达到千甚至万量级,可以满足大部分商业场景的需要。将来,随着技术的进一步发展,基于联盟链的区块链商业应用将成为区块链应用的主要形态。
《区块链进阶与入门》