区块链数据通信性能优化
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.4 区块链架构

区块链的架构如图1-2所示,区块链架构从底层到顶层分别由数据表示层、传输层、验证层、激励层、合约层和应用层组成[32~37]

图1-2 区块链的架构

1)表示层

数据表示层定义了底层区块链的数据结构。区块链正如它的名字一样,数据存储是链式结构的,它将数据一块一块地放在区块中,然后将数据区块链接到一个链上。每个区块是由区块头(Header)和区块体(Body)组成的,区块头包括版本号、父区块Hash值、Merkle树根、时间戳、难度值、Nonce等信息。版本号标识软件和协议版本。父区块Hash值用于将该区块链接到父区块,形成区块链。Merkle树根是由区块主体中所有交易的Hash值再逐级两两Hash计算得出的一个数值,主要起校验作用,用于检验一笔交易是否在这个区块中存在。时间戳代表该区块创建的时间。难度值表示该区块相关数学题的难度目标。Nonce为随机数,用于Hash计算。区块体记录该区块的交易数量、经验证的历史交易记录和区块创建过程中产生的交易记录。区块链中存储的交易数据,是加入了时间轴的,这些数据只要被验证通过就是永久、不可逆、不可修改的。由于每个区块都包含前一个区块的散列,因此各个区块通过链式结构加入区块链,链式结构可顺藤摸瓜,方便追溯和定位交易。

2)传输层

数据传输层定义了区块之间传播信息所使用的网络结构及传输技术,具体包括网络结构、通信机制、通信影响因素、通信算法和通信性能评价参数。在区块链中,一笔交易信息想要快速、准确地广播给网络中的其他节点,需要定义网络传输结构、确定传输机制、考虑传输影响因素、构造传输算法,以及评价传输效果的性能参数,这些网络要素均封装在数据传输层。区块链节点组网方式采用P2P网络结构。P2P网络具有分布式、可扩展性、健壮性、负载均衡等优点[38~40]。采用P2P通信方式来组织节点进行交易、认证和记账。整个过程不需要中心节点介入和管理,使得交易信息的传输变得更容易、直接。当任意交易发生后,产生数据的节点将其广播到网络中,其他节点收到数据后,参与进来加以验证。因此,如何快速地将交易信息传输出去,需要构造相应的传输算法。在构造通信算法时,可将节点通信能力、通信权值、节点服务请求优先级和节点信任度综合考虑,使之在并发通信时间、端到端延时、并发度和系统开销等方面均能表现出较好的通信性能。常用的传输算法有泛洪广播算法、组播算法和通信树算法。

本书研究的区块链数据通信性能优化属于区块链架构中传输层的内容,其目的是解决区块链传输层的通信效率和可靠性问题。

3)验证层

验证层定义了在P2P分布式环境中各个节点如何达成共识,验证交易的有效性。有中心节点管理的系统更容易达成共识,达成共识的效率高,但是民主性差,容易独裁。而区块链技术在分布式环境中,想要使各个节点对区块数据达成共识,也就是在数据验证的过程中就需要相应的验证机制,包括工作量证明(Proof of Work,PoW)、权益证明(Proof of State,PoS)、股份授权证明(Delegated Proof of State,DPoS)和Pool验证池。PoW最早应用在比特币区块链中,依靠各个节点算力的工作量证明机制来保证数据的一致性,从而达成共识。它有效地解决了交易中货币发行、交易支付和验证的问题。PoW通过算力竞争造成资源浪费,共识达成的时间周期为10min左右,不适合交易频繁的商业应用。为了缩短达成共识的时间,PoS通过各个节点对特定货币的所有权,即权益证明,来获得系统的记账权,而不是节点算力的工作量证明。DPoS类似于董事会投票,按照节点贡献的股份按比例分配比特币。Pool验证池是目前行业链中使用最广泛的共识机制,它在不需要代币的基础上,实现秒级验证,但是去中心化程度不高。

4)激励层

激励层则将经济因素引入区块链,定义了激励机制和惩罚机制来制约节点参与交易验证。在区块链中,每个节点都是自私的,追求自身收益最大化,另外不惜任何手段获取利益,是不诚实的。如何鼓励节点利用自身算力验证交易,努力记账,避免节点贪婪自私的攻击,经济激励是保证网络安全的一种手段。在比特币区块链中,将比特币作为奖励,激励节点验证交易,并不是所有区块链都要存在某一币种,也可收取交易费用作为节点验证交易的报酬。为了防止恶意节点骗取报酬,也应该有相应的惩罚机制制约恶意节点的破坏活动。

5)合约层

合约层封装了用计算机代码、程序、算法预先灵活定义、可自动执行的智能合约。传统意义上的合同是纸质签订存档的,合同的执行和监管都需要成本,智能合约这一概念最早由Nick Szabo在1994年引用。但是一直以来,没有相应的平台运行智能合约,直到2008年区块链技术出现,智能合约重新引起了人们的关注,由于以太坊对智能合约的推进,使得智能合约迅猛发展。

智能合约是指区块链上用计算机算法或编程实现的非法律语言记录的合约,只要约定的条件满足,合约就会自动触发执行,无须第三方介入。这样通过计算机代码执行合约,杜绝了合约双方的违约和执行中断的情况。智能合约具有可编程性,使得合约灵活多变可以任意自定义合约的条款。智能合约的内容是预先设定的,合约执行避免了人为的干涉,这样更能体现合约公平公正的本质。有了智能合约,我们只需要相信计算机算法和程序,不需要依赖费用昂贵、效率低下的中介机构。智能合约的工作原理类似于计算机程序的if-then语句。图1-3所示为基于区块链的智能合约运作原理。智能合约可理解为“数字化”的协议合同,和协议合同一样,同样具有法律效力。区块链是智能合约的运行平台,而智能合约存在于区块链中,由区块数据驱动合约执行,当区块数据在特定时间点、特定场景或特定交易中满足了预置条件时,将会驱动合约执行预置响应动作,激励触发交易产生或条约生效。智能合约由合约生成模块和合约执行模块组成。合约生成模块需要人工使用算法、计算机代码编程实现智能合约条款,也就是找到预置条件和预置相应动作之间的关系,它们是多对一的关系。智能合约的执行是区块链数据自动触发执行的,人为不可干涉。

图1-3 基于区块链的智能合约运作原理

智能合约由交易双方提前约定的若干条款组成。一条条款可由预置条件和预置响应动作组成。智能合约用Sc表示,条款用Itemi表示,即Sc ={Item1,Item2,…,Itemi,…,ItemN},ItemiSc,预置条件集合用C={c1,c2,…,ci,…,cn}表示,ciCci的取值为布尔值。预置响应动作集合用A={a1,a2,…,ai,…,am}表示,aiA

条款Itemi是指满足某些条件而执行的响应动作,因此Itemi的表示形式如下:

条款名Itemi

if(c1c2∩,…,∩ci ∩,…,∩ck)

then ai

end

可见,ciai是多对一的关系,当多个预置条件同时满足时,会触发预置响应动作ai。假设智能合约中条款的数目为N时,智能合约执行步骤如下:

Step1:收集区块链数据BlockData,置i=1。

Step2:依次遍历智能合约Sc中的条款Itemi,∀ItemiSc ,如果BlockData满足Itemi的if部分,则执行Itemi的then部分,i++。

Step3:如果i<N,转向Step2;否则,构造结束。

智能合约管理由合约起草、审核开始,直至合约生效执行为止,是对智能合约全生命周期的管理。智能合约的起草制定不能一气呵成,而是一个不断修订完善的过程。我们期望智能合约制定具有闭合性和完整性,现实交易中所有情况均有条款与其响应,然而现实交易的中存在的随机性和动态性不能全部预测,因此智能合约要在实际运行中反复修改、变更、补充甚至终止。基于全生命周期的智能合约包括如下步骤:

(1)智能合约需求分析,包括智能合约主体分析、合约条款分析、合约运行环境、合约可行性分析等。

(2)智能合约设计,是指在智能合约需求分析的基础上,设计一个能在区块链环境中实施的智能合约方案。主要包括智能合约预置条件设计、预置响应动作设计,以及在此基础上,设计条件与响应动作的匹配关系形成合约条款。

(3)智能合约实现依赖于算法用计算机代码编程。

(4)智能合约执行是合约主体在区块链环境下根据智能合约自动触发的。

(5)智能合约维护,即为了弥补智能合约设计上的漏洞和不足,而进行补充合约条款、修订合约条款等优化工作。

6)应用层

应用层给出区块链技术的应用范围及应用场景。将区块链目前的主要应用笼统地归纳为数字货币、金融证券、交易支付、资产管理和选举投票等6个场景[41~46]

区块链最早应用于金融行业,以比特币区块链为案例。比特币公有链是一个全球记账系统,是唯一的,没有任何主权国家去管理它。当前比特币的交易的确认时间大约为10min,几乎可以实时结算,这与现有的银行体系有很大的差别,银行是有上班时间的。因此,区块链技术在金融领域的应用将完全改变交易流程和交易记录保存的方式,大幅度降低交易成本。传统的证券交易需要中央结算机构、银行、证券公司、交易所协调完成股票的交易,因此效率低下、成本高。在证券交易中引入区块链技术,可有效避免不必要的人工干预,减少交易结算清算中的差错,而且可以缩短清算时间、节约交易成本,使整个交易得以优化。

随着区块链技术越来越受到人们的关注,区块链的应用已经逐步从金融领域延伸扩展到实体经济领域,例如,版权管理和交易、产品溯源、数字资产管理、供应链管理。

在日常生活中,大多数的资产交易都需要第三方机构作为中介认证,以降低交易带来的欺诈风险,确保交易的顺利进行。如房屋交易,如果每套房屋的房屋修缮、房屋所有权变更交易历史信息的数据都被注册登记到区块链上,这些历史记录是不可变的,这就为买家和卖家提供了透明、可靠、低成本的交易平台,而且免去了交易中介费,并且激励房屋所有者更好地看管维护自己的房屋。另外在艺术品交易中,既要防止赝品,又能证明其自身的真实性,一直是困扰艺术品交易的一个难题。区块链技术的出现为其提供了一个解决方案,即为每件艺术品做产权登记,记录艺术品来源及流通历史交易记录,这种登记几乎不可能被伪造。伦敦公司Everledger通过将钻石的完整生态链信息放到区块链上,为艺术品博物馆和私人藏家提供稳定可靠的平台支持,从而有效地打击了艺术品诈骗。