APP下载

应用于工业物联网的DAG区块链模型

2020-05-12张震

现代计算机 2020年10期
关键词:哈希共识区块

张震

(四川大学计算机学院,成都610065)

0 引言

自2005年国际电信联盟正式提出物联网(Inter⁃net of Things,IoT)概念以来,物联网产业发展迅猛,目前被广泛地应用于环境监测与保护、智能交通、移动医疗、食品安全和物流供应链管理等诸多领域[1]。根据Statistic门户网站统计数据,预计到2020年将增长至307.3 亿[2],市场规模将达 7.1 万亿美元[3]。在动态联网设备和系统中,设备与其环境进行通信、感知和交互,产生的数据通过传感器进行采集和传输[4-5],实现信息的实时传递,这个特点使得物联网的相关应用迅猛增长,取代了传统行业(如制造业)的部分工作[6]。

随着物联网技术的快速发展,在中国制造2025、美国先进制造伙伴计划、德国工业4.0等一系列国家战略提出和实施的背景下,工业物联网应运而生,成为全球工业体系智能化变革的重要推手[7]。根据工信部《2017年工业物联网白皮书》中对工业物联网的相关定义可知:工业物联网是通过工业资源的网络互连、数据互通和系统互操作,实现制造环境的快速适应,达到资源的高效利用,从而构建服务驱动型的新工业生态体系。

工业物联网作为物联网的工业级应用,在设备运行、管理运营和数据处理方面要求更苛刻。这一点突出体现在工业设备的相互连通、弹性扩展、可编程自动化、高精度和高可靠要求,管理运营的弹性高效、自动安全和贴近设备要求,数据处理的即时高效、精准安全和弹性冗余要求。针对工业物联网的这些痛点,可以通过对设备进行分布式部署管理,构造与之配套的弹性数据管理运营体系解决。

区块链技术具有高度去中心化的性质,能够通过运用哈希加密、时间戳、分布式共识和智能合约等手段,在分布式物联网系统中,实现去中心化的交互方式,为解决中心化架构普遍存在的安全性和可伸缩性问题提供了解决途径[8]。对区块链技术的研究呈现爆发式增长态势,被认为是继大型机、个人电脑、互联网、移动/社交网络之后计算范式的第五次颠覆式创新[9]。在Gartner技术成熟度曲线中,区块链技术处于高期望值区[10];2016年,工信部发布了《中国区块链技术和应用发展白皮书》[11];在国务院发布的《“十三五”国家信息化规划》中[12],明确指出要加强区块链等新技术的基础研发和前沿布局,正式从国家科技战略层面肯定了区块链的技术与社会价值。区块链可以为工业物联网提供分布式设备管理方案和弹性数据管理运营体系。

1 链式区块链和DAG式区块链

传统的链式区块链模型发源于中本聪对比特币底层技术的设计模型,核心是通过矿工(记账权)的唯一性来确保合法数据链的唯一性。链式区块链的基本组成单位是区块,区块之间通过哈希指针相连,哈希指针确保数据的完整性、连续性和合法性。

每个区块由区块头和区块体组成。区块由矿工产生,矿工收集一定时间内的交易进行打包,再结合时间戳、非对称加密等技术进行封装。最后矿工将其广播给其他用户,收到该区块的用户对本地数据视图进行延伸完善。

相比于链式区块链,DAG(Directed Acyclic Graph)式区块链的优势在于良好的扩展性。链式区块链受限于对数据的链式组织方式,任何分叉会被认为是不合法的。对数据库写入的权限唯一性和数据的单向延伸极大地限制了链式区块链的扩展性和并发性。

在数据组织方式上,DAG式区块链中允许每个区块有两个或者两个以上的哈希指针,一段时间内的区块就会构成一个有向无环图。在写入权限上,DAG式区块链允许多个(甚至每一个)用户拥有写入权限。每个区块的产生者可以自主选择引用多个历史区块,再将其广播,收到区块的用户将其保存在本地数据库中。这两个方面的改进使得DAG式区块链获得了扩展性和并发性上的大幅度提升。

无论是链式区块链,还是DAG式区块链,它们的交易确认机制可以被分为累积概率性确认和即时性确认。在累积概率性确认机制中,系统在一定时间段内收集到足够多认可某个区块的选票,那么该区块中被包含的交易就被确认了。如比特币[13]中需要等待后续6个后续区块的确认,IOTA[14]通过统计某个交易被新交易的认可度来衡量交易是否被确认。在即时性确认机制中,待确认区块迅速获得全体投票人的多数认可进而被确认。如Fabric通过单轮投票即可对目标区块进行确认,Tendermint[15]同样可以在单轮投票过后对目标区块获得即时性确认。值得注意的是,即时性确认机制中的投票人大多数情况下是代表全体用户利益的某些用户。

2 DAG式区块链和工业物联网

由于工业物联网有低时延、可扩展和高并发等需求,DAG式区块链具有较为明显的优势。

自2015年Lerner提出了DagCoin[16]以来,DAG式区块链发展迅速。总体来说,DAG式区块链可以分为含主链的DAG式区块链和不包含主链的DAG式区块链。

含主链的DAG式区块链通常由某种机制从过去一段时间内的区块中筛选出某些父子相连的区块组成主链。如ByteBall[17]存在12位见证人,在一段时间内,有向无环图中富集见证人交易最多的那条链成为主链,Conflux[18]采用的GHOST协议将子树权重最多的区块添加为主链区块。主链的主要作用是对该时段内的无序交易进行排序。区块的有序性是智能合约执行的基础。

不包含主链的DAG式区块链可以分为每个用户一条链的多链DAG式区块链和不可排序的无序DAG式区块链,前者中如Hashgraph[19]通过对事件(event)的历史哈希指针还原得到交易的顺序,后者中如IOTA采用的累计权重确认方式则完全不能对所有区块进行排序。

工业物联网对区块链有可编程、自动化、即时性等需求,这些需求可以通过区块链的智能合约进行解决。这意味着含主链的DAG式区块链比较适合应用于工业物联网领域。

IOTA是一个较为著名的应用于物联网领域的DAG式区块链模型,参与的节点是物联网中的设备。IOTA中的区块只包含一个交易,每笔交易必须引用节点当前视图中的两个交易才算合法。任何一个设备节点都可以发送交易到区块链数据库中,所以会存在恶意节点使用泛洪攻击发送大量垃圾交易,故而IOTA要求每笔交易发布前必须进行一定POW计算,但是这也对物联网设备提出了较高要求。由于IOTA的交易确认机制是累积权重,所以在交易量不稳定的时候,系统容易出现交易长时间未被确认的情况,尤其是交易量持续递减的时候,历史交易长期难以被确认。针对此问题,官方使用了协调器进行管理。协调器是官方节点,规定被协调器引用的交易可以无需等待,立即被确认。此外,IOTA的模型使得所有交易难以被排序。

IOTA中交易不能被排序、交易确认时间不稳定、无法支持轻节点和设备要有一定计算能力等要求使得其难以被应用于工业互联网。

3 应用于工业物联网的区块链模型IDAG

针对工业物联网的即时确认、设备性能低、高并发和支持智能合约的需求,本文采用一种新的区块链模型 IDAG(Industry Directed Acyclic Graph)。

本文模型属于含主链的DAG式区块链,规定每个交易必须引用两个或者两个以上的历史交易。选择计算能力较高的部分节点作为全网节点的委员会节点,委员会节点之间使用PBFT共识算法进行共识。目前含主链的DAG式区块链中,主链区块是连续的父子区块。不同于此,本文模型的主链交易(区块)间是离散的,不存在父子关系。

3.1 IDAG 中的模型结构

本文提出的IDAG模型结构如图1。设备数据层中,在所有设备中选择出性能较高的4个节点作为委员会节点,其他节点作为普通用户节点。网络层使用点对点通信方式,保证网络的可拓展性。共识层使用PBFT共识算法。合约层分为紧急措施、管理运营和数据监控三类合约。应用层主要是产能分析、供应链和数据共享三类应用。

图1 IDAG模型结构

3.2 交易的组织方式

IDAG中的用户节点分为普通用户和委员会用户,后者是性能较高的用户节点。如图2中所示,IDAG中的交易分为两类,一类是普通交易(空心圆),一类是主链交易(实心圆)。普通交易定义为设备产生的包含生产数据的交易。定义两个主链交易之间的普通交易为交易子图。主链交易定义为包含交易子图拓扑结构和普通交易的头信息两部分。

普通交易需要引用两个或两个以上历史交易,主链交易则需要引用用户当前本地视图中的所有叶子节点。普通交易的发送者随时可以向网络中发送交易,主链交易则只能在委员会用户共识之后产生。在最新主链交易获得共识之后,交易子图中和主链交易拓扑结构一致的普通交易得到确认。由于委员会用户共识的速度较快,所以交易的共识过程可以被认为是即时的。

图2 IDAG的数据组织方式

3.3 IDAG 中的共识机制

IDAG中委员会用户之间通过PBFT算法进行共识,由于该算法最少需要4个节点才可以运行,所以设定委员会用户固定为4个席位。

PBFT[20]算法中有三种角色:客户端、主节点、从节点。客户端的功能是发送交易请求消息。主节点的功能是将接收到的消息排序编号,广播消息给从节点。从节点的作用是验证从主节点和其他从节点处接收到的消息并回应。如果所有节点中存在f个个恶意节点,那么PBFT算法需要2f+1个诚实节点就可以保证系统的正常运行。

如图3所示,PBFT共有五个阶段:request、preprepare、prepare、commit和 reply。

图3 PBFT的共识阶段

一个交易经过3个阶段验证,就会被系统中的绝大部分用户节点确认,那么该交易就可以被认为是完全确认的。设定4个具有较高计算能力和存储能力的节点所谓委员会节点,对一定时间内的交易子图进行确认。交易子图的大小并不固定,可以根据节点性能和网络状况弹性变化。

3.4 IDAG 中的主链交易

如图4,主链交易分为头信息和交易子图拓扑结构两部分。头信息包含主链交易序号、时间戳、签名信息和叶子交易哈希。其中叶子交易哈希指的是,除了主链交易以外未被任何交易引用的交易所对应的哈希值。

图4 主链交易

由于交易子图中的交易之间存在哈希引用的关系,所以所有用户节点的交易子图中只要保证本地视图中的叶子交易和主链交易中叶子交易完全一致,那么该交易子图也是完全一致的。如果叶子交易哈希存在偏差,那么用户节点只需要依据交易子图拓扑结构从委员会节点引入缺失部分即可。主链交易的易验证性可以为IDAG提供轻节点支持。主链交易可以保证所有用户本地视图的一致性,同时IDAG采用的共识机制为即时性确认机制,这两者保证了IDAG模型支持智能合约的基础。

4 结语

工业物联网作为物联网的工业级应用,在设备运行、管理运营和数据处理方面要求更苛刻。针对规模日益猛增的工业物联网设备,提出一种应用于工业物联网领域的含主链的DAG式区块链模型。该模型使用弹性共识机制和DAG数据组织方式,支持高并发,易扩展,支持智能合约,支持轻节点等重要功能,为工业物联网的需求提供了较好的解决方案。

猜你喜欢

哈希共识区块
共识 共进 共情 共学:让“沟通之花”绽放
哈希值处理 功能全面更易用
Windows哈希值处理不犯难
文件哈希值处理一条龙
《红楼梦》的数字化述评——兼及区块链的启示
商量出共识
一场区块链引发的全民狂欢
区块链助力企业创新
区块链投机者
巧用哈希数值传递文件