零基础学区块链
上QQ阅读APP看书,第一时间看更新

1.4.4 区块链应用部署及基础架构

1.区块链应用部署

按照参与方式的不同,区块链应用部署大致分为三类:公有链(Public Blockchain)、联盟链(Consortium Blockchain)和私有链(Private Blockchain)。其中联盟链和私有链又被称为许可链(Permissioned Blockchain),而公有链又被称为非许可链(Permissionless Blockchain)。中国信息通信研究院和可信区块链推进计划《区块链白皮书》(2018年)中将区块链适用的场景条件判定用图1-27表示出来。

图1-27 公有链、联盟链和私有链适用场景判定

1)公有链

公有链对全世界任何拥有联网功能计算机的用户(包括个体和团体)都是公开透明的,数据完全对外开放,用户可以任意加入或退出公有链,联网的用户构成一个个节点,能在公有链上任意读取区块链数据、发送交易、加入矿工,每个节点都能参与交易的共识过程。可以说,公有链是真正意义上的完全去中心化的区块链形式,人人平等,通过密码学和激励机制,靠区块链技术实现不依赖于信任的网络共识。它适用于数字货币、金融交易系统等需要公众参与、最大限度保证数据公开透明的系统。目前典型的公有链平台有比特币和以太坊。公有链示意图如图1-28所示。

图1-28 公有链

2)联盟链

联盟链是指由若干利益相关的组织或机构组成联盟,共同参与管理的区块链,每个组织或机构都可以管理一个或多个节点。它介于公有链和私有链之间,只允许认证以后的机构参与到网络的共识中,具有身份认证和权限设置功能。相比于公有链,联盟链要求单位时间内所能确认的交易数量更多,其在安全和性能上的要求较高。每个区块的生成由联盟里预先选好的节点共同决定,其他节点可以参与交易,但没有记账权,一笔交易不需要所有节点的确认,从而降低了交易处理时间。联盟链上的读写权限和参与记账权限按照联盟规则来制定,根据应用场景的不同,联盟链可以部分或全部对公众开放,其节点的数量完全确定。通常联盟链适合为某个群体或组织内部使用,比如各大银行之间可以组成一个联盟链,用于银行间结算。比起传统的银行间结算对账困难、结算时间较长等劣势,联盟链可以实现银行间共享一个统一的账本,交易能做到短时间内的自动结算,同时具有较高的安全性,日志记录不可篡改,有据可查。典型的联盟链平台有Linux基金会主导的超级账本(Hyperledger)、摩根大通打造的Quorum、银行区块链联盟R3 CEV等。联盟链如图1-29所示。

图1-29 联盟链

3)私有链

相对于公有链和联盟链,私有链则完全封闭,对数据的写入权限仅掌握在私有组织内部,而对数据的读取权限则不对公众开放或者由组织来决定开放程度。节点参与私有链的共识过程由组织来制定规则,其参与的节点仅在有限范围内,且数据的读写权限受到严格的管理。通常在使用过程中需要提交身份认证进行注册,由于有完整的权限管理体系,哪些人有权限进入私有链完全由组织决定。私有链采用区块链技术进行记账,记账权并不公开,且只记录内部的交易。一般由公司或个人独享,其适用场景通常用在组织内部使用的系统,如企业的数据库管理、供应链管理等,也有一些政府行业的应用。私有链的范围很窄,类似于企业内部的局域网,可以理解为私有链与世隔绝,这里的“世”指其他区块链网络。典型的私有链平台有Hydrachain、Eris Industries等。私有链如图1-30所示。

图1-30 私有链

公有链、联盟链和私有链各有优势和弊端。公有链无隐私性,任何人都能查看数据,其去中心化理念脱离了国家监管,所以在实际应用中会面临阻碍;而联盟链和私有链则需要找到现实需求和应用场景。

公有链作为一种完全分布式去中心化的区块链,其区块链数据完全公开,且能任意访问,节点用户参与共识过程,易于应用推广。但系统的正常运行依赖于内建的激励机制,且容易受到恶意用户的攻击。此外,交易确认效率较低,交易费用越来越高,社会资源消耗大,可扩展性差。

联盟链因参与管理的节点是预先指定的,它们彼此之间有稳定安全的网络连接,可以设计更简单更高效的共识算法,所以交易验证和交易确认的效率高,只需较少的成本即可维持其稳定运行,在提供高速交易处理的同时,又降低了交易费用,具有很好的可扩展性。但是联盟链也存在弊端,管理节点的指定导致联盟链是一个多中心的结构,或者说是部分去中心化,并非区块链技术所倡导的完全去中心化。由于联盟里参与管理的节点数量远远少于接入节点数量,所以存在联盟里的所有管理节点勾结在一起篡改数据的风险。

私有链最大的好处就是允许拥有特权,在发生错误时可以及时追踪错误来源,并且运用特权可以很容易地修改区块链的运行规则,实现交易还原和修改区块链数据等操作。这一点有违区块链的本质,但却适用于一些特殊的应用场景。其次,私有链里的节点及网络都是可控的,可以采用高效的共识机制使得交易更高效。此外,私有链中数据的获取严格受限,所以其保存的数据具有很高的隐私性,能有效防止外部攻击。由于私有链验证者是内部公开的,只需要个别高授信的节点参与交易验证,而不需要所有节点来验证,这样就降低了交易成本,同时不会出现部分授信节点共同密谋进行51%攻击51%攻击是一种术语,代表攻击者累积的算力已经超过加密货币网络中其他所有成员的总和,这意味着其能够控制货币产出和流通。,避免内部攻击。

从表1-1可以看出,对于参与者来说,公有链对所有人和所有团体开放,任何个人或团体都可以参与其中;联盟链只针对特定的联盟成员给予管理权限,通常为组织团体,其他成员只参与交易行为;私有链则只对单独的个人或实体公司内部开放。

表1-1 公有链、联盟链和私有链的比较

从采用的共识机制来看,公有链一般是工作量证明(PoW)和权益证明(PoS);联盟链采用权益证明(PoS)或实用拜占庭容错算法(PBFT)等;私有链因参与的节点只是团体内部人员,一般不采用工作量证明,而是采用分布式一致性算法,即Raft算法。

从记账人来看,公有链上所有人都可以参与记账并访问区块链里的数据,发送、验证交易以及验证区块;联盟链上对于区块链的读写权限以及参与记账权限是按照联盟规则来制定的;私有链的记账权限仅仅掌握在参与者手里,访问读取权限可以不对外开放,也可以根据实际需求设定开放程度。

从激励机制来看,公有链对于自由加入的成员没有任何约束力,所以对于每个成员来说,所接收到的任何数据对它而言都是不可信的,都需要利用密码学来验证,同时采用一定程度的经济激励,就可以在互为陌生的网络环境里达成广泛共识;联盟链由于其管理权限由预先选择好的节点组成,所以它的共识形成过程也是由这些节点所掌握,因此可以选择是否采取激励措施;私有链对一个封闭的组织保持中心化,所以不需要激励措施。

从中心化程度来看,公有链是真正意义上的完全去中心化的区块链;联盟链则是部分去中心化,而私有链则是中心化的区块链。

从突出特点来看,公有链的信用是所有节点在共识机制作用下自发创建的;联盟链因为不是所有节点参与共识,所以具有效率高、成本低的特点;私有链因为是私人化定制的,所以更加透明安全,当然私有链的交易速度比公有链快,交易成本也远远低于公有链。

现阶段跨链融合在持续演进,联盟链是区块链重要的落地方式,其与公有链的融合日益引起了人们的关注。公有链在底层面向大众,联盟链在上层面向机构,巧妙地把公有链的匿名性、激励与联盟链的身份认证、权限管理结合起来,面向更加复杂的应用场景,满足不同的需求。

2.区块链基础架构

各类区块链在整体架构上虽存在差异性,但大多数都以比特币架构为基础,存在共性,《区块链白皮书》(2018年)建议区块链的技术架构如图1-31所示,划分为基础设施、基础组件、账本、共识、智能合约、接口、应用、操作运维和系统管理等九个部分。

图1-31 区块链技术架构图

用网络七层协议模型来看区块链,区块链模型具有三层架构引自《区块链技术指南》。,如图1-32所示。

图1-32 区块链三层架构模型

从图1-32中可见,区块链由网络层、数据层和应用层组成。最底层是网络层,区块链使用TCP/IP协议,通过点对点网络实现数据的传递。没有中心化的服务器,每个节点的地位都一样,完全对等,不分高低,真正实现了“生而平等”。采用分布式数据存储的方式,具有很强的安全性,任何一个节点被攻击都不会影响全网数据的保存。以比特币网络为例,网络的拓扑结构是随意的,节点可以随时进出,拓扑一直在变化。如果一个节点长时间没有任何动作,就会慢慢地被网络所遗忘。当新的节点加入时,它先按照设定的方法找到一个节点,并发送简单的消息,建立连接,第一个节点称为种子节点,然后新节点向种子节点询问它知道的其他节点,这些节点又会进一步提供引荐。重复这个过程,新节点自主选择和哪些节点相连,这样就加入比特币网络的大家庭了。

区块链架构中网络层的上一层是数据层,作为区块链的核心,包含了公共总账本、共识算法和密码学。区块链系统是一个分布式数据库,总账本记录了区块链的所有数据,公开透明,保证了数据的真实性和完整性。节点通过分布式共识算法对数据达成一致,无须中心化的节点或服务机构。通过密码学中的数字签名、哈希算法,保证了数据的不可伪造和不可篡改,这是区块链正常运转的基础。

区块链架构的最上层是应用层,在金融等各个领域实现场景应用。区块链通过提供可编程的环境,让用户自行编写各种智能合约。区块链平台判断合约生成条件并自动执行,不依赖于第三方。智能合约的灵活运用使可编程社会的实现成为可能,当前的以太坊平台就提供了图灵完备的脚本语言。用户可以在以太坊中实现任何可定义的智能合约,应用层调用智能合约接口。根据实现方式和实现目的的不同,基于区块链技术的应用可以划分为三类场景:①价值转移类,数字资产在不同账户之间转移,如跨境支付;②存证类,将信息记录到区块链上,但无资产转移,如电子合同;③授权管理类,利用智能合约控制数据访问,如数据共享引自中国信息通信研究院和可信区块链推进计划《区块链白皮书》(2018年)。