基于区块链的群机器人数据完整性与隐私性保护
2022-09-27李帮银陈宇韬邓宏彬李东方
黄 捷,李帮银,陈宇韬,邓宏彬,李东方
(1.福州大学电气工程与自动化学院,福州 350108;2.武夷学院机电工程学院,武夷山 354300;3.北京理工大学机电学院,北京 100081;4.工业自动化控制技术与处理福建省高校重点实验室,福州 350108)
1 引 言
近年来,随着机器人硬件设备和群机器人系统相关研究的快速发展,群机器人广泛应用于搜索救援、军事、医疗、监视等领域[1-4]。美国OFFSET 项目使用无人机和无人车组成的集群在复杂城市环境中执行任务[5]。在I-WARD 项目中,机器人集群在运送患者病历和药品方面发挥着重要作用[6]。在这些应用场景中,对数据完整性和隐私性具有非常高的敏感性,保证群机器人系统的数据安全性是最关键的。
现有的多数研究中群机器人系统的数据存储依赖于中心服务器或中心节点[7-9],存在单点故障的潜在安全威胁,对系统数据安全性考虑不足,难以保障数据的完整性和可靠性。为解决数据存储存在的单点故障问题,具备去中心化和防篡改特征的区块链技术受到了关注。区块链作为一种全新的分布式基础设施和计算范式,最早应用于加密货币领域[10],以确保资产转移的安全性和可信性。它天然具有数据完整、不可篡改的特点[11]。从网络结构来看,群体机器人与区块链具有相同的特征,都具有去中心化的特点,如图1所示。因此,区块链有望为群机器人系统数据安全提供一种新的保障方案。在现有的相关研究中,赵赫等[12]提出了一种确保传感器数据真实性的方法,以保证机器人数据的真实性和完整性,避免人为干预。Islam 等[13]提出了基于区块链技术的安全数据采集方案,机器人数据从使用无人机群的物联网设备收集并存储在服务器的区块链中,以保障机器人采集数据的完整性。上述区块链解决方案着眼于保障了机器人集群的数据完整性、真实性,但区块链网络中交易数据以公开可见的方式传输,数据隐私性问题变得突出。区块链技术应用中常被提及的隐私性是指通过节点匿名性来保障节点信息的隐私性,但节点间的交易数据是透明的[14]。这在加密货币的应用中是可行的,但不适用于群机器人系统。因为在群机器人系统中,机器人节点身份的概念并不突出,其隐私性更重要的是在由机器人存储的私密数据上。
图1 群机器人与区块链网络结构比较Fig.1 Comparison of network structure between Swarm robotics and blockchain
需要注意的是,利用区块链保障群机器人数据安全性的前提是机器人可以加入区块链网络并实现基于区块链的交互,目前的许多研究没有对该问题进行讨论。表1简要总结了现有基于区块链的群体机器人系统的主要研究。从表中可以看出,现有多数研究的方法验证是通过仿真方式进行的[15-19],并且在前期的多数研究中没有考虑机器人运行区块链的性能约束。从仿真扩展到实验的关键问题是区块链协议所要求的计算和存储性能在计算和存储能力有限的机器人系统中部署是否仍然可行。这些挑战在文献[20]中被提及,但没有给出具体的解决方案。为解决该问题,Pacheco 等[21]采用权威证明机制共识协议来降低机器人的计算成本,实现了基于区块链的群机器人系统的有效运行。但权威证明机制共识协议缺乏足够的分析,无法让公众相信其安全性[22]。
表1 基于区块链的群机器人的主要研究Table 1 Main research on swarm robotics based on blockchain
基于上述分析可知,在现有基于区块链的群机器人系统数据保护研究中,其核心思想是在信息透明的条件下建立一个可信的交互环境来保障数据的完整性。但对区块链网络中交易数据公开透明所带来的数据隐私性问题考虑不足。这在医疗、监视等许多对数据隐私性较为敏感的群机器人应用领域来说是不合适的,因为这存在用户隐私数据泄露的潜在风险。另外,现有研究中,实现区块链在群机器人系统上部署所采用的方法仍缺乏足够的分析,无法让公众相信其安全性。
为保障群机器人系统数据的安全性,本文研究了基于区块链技术的群机器人数据完整性和隐私性保护方案。该方案主要包括链上数据完整性保护和链下数据隐私保护两部分。首先,链上数据完整性保护部分采用以太坊区块链平台,群机器人成员作为区块链节点实现与区块链网络的交互,利用区块链技术内嵌的数字签名、哈希算法、时间戳技术等共同保障机器人数据的完整性。其次,考虑区块链链上数据公开的特点,任何上链数据都将在链上留下可追溯的痕迹。为避免明文数据的链上留痕,引入了内嵌非对称加密算法的脱链加解密模块,保障机器人交互数据隐私性。
另一方面,为在物理机器人上实现基于区块链技术的数据保护方案,本文对基于区块链的群机器人系统实现方案进行了研究。为实现在实体机器人上运行区块链协议,本文从算力负担与存储需求两方面考虑,提出了基于轻节点的实现方案。在算力负担方面,该方案中群机器人成员仅参与和区块链网络之间的交互,而不参与区块链的维护,有效地降低了运行区块链对机器人算力的要求。在机器人数据的存储方面,机器人只存储区块头数据,显著降低了机器人维护区块链副本的存储需求。在实验部分,本文利用轻节点的实现架构实现了基于区块链的群机器人系统,并在算力与存储负担方面与现有研究中基于区块链的群机器人系统的实现方案进行了对比,结果表明了轻节点方案的优越性。
本文的贡献可总结如下。
(1)提出了一种基于区块链技术的群机器人数据完整性和隐私性保护方案,该方案在通过区块链建立可信交互生态以保障机器人数据完整性的同时,引入了脱链加密模块来解决现有研究对隐私性考虑不足的问题,有效提高了机器人成员交互数据的隐私性。
(2)提出采用轻节点方式来实现区块链在实体机器人集群上的部署,该方法避免了机器人直接参与区块链的维护与数据的存储,相较于现有的实现方式,进一步降低了系统运行时机器人的计算代价和存储负担。
本文的其余结构如下,第二节介绍了本文相关的预备知识;第三节介绍了如何使用区块链技术保护群体机器人系统的数据完整性和隐私性;第四节通过仿真验证了区块链方案对群机器人数据完整性和隐私性的保护效果;第五节在实体机器人上进行了实验,并对比了运行区块链时不同方法在降低存储和计算负担方面的效果;第六节对本文进行了总结。
2 基本概念
2.1 区块链
区块链技术是由P2P 网络技术、加密技术、时间戳、共识机制等多种技术巧妙融合而成的新兴技术。在结构上,区块链是由多个区块按时间顺序连接而成的链,每个区块包含区块头和区块体。分布式系统中各节点共同维护相同的分布式数据账本[23]。分布式架构和共识机制保证了其不可被单方面篡改,链式结构和Merkel 树哈希技术可实现数据的追溯与防篡改,数据高冗余的特性可有效避免因中心节点被攻击导致的重要数据丢失,使数据在区块链上的存储安全可靠。
2.2 节点
区块链网络中支持存在不同的节点类型。挖矿节点是必须存在的节点类型,因为其维护完整的区块链副本,并验证提交给它的每个区块和交易,是区块链运行的关键。不同于挖矿节点,轻节点不直接参与区块链维护,是一种依赖于挖矿节点的非必须存在的节点类型,但其具有轻量级的特点。挖矿节点和轻节点的功能可以总结如下[24]。
(1)挖矿节点:维护区块链的完整副本;能够验证所有交易;验证新创建的区块并将其添加到区块链;寻找随机数(挖矿),生成新的区块。
(2)轻节点:存储区块头信息;使用简易支付验证进行交易验证。
2.3 共识机制
2.3.1 工作量证明机制
工作量证明机制(Proof of Work,PoW)通过解决一个数学难题来分配出块权和报酬。为获取出块权和报酬节点间便形成了算力竞争,这一过程被称为“挖矿”。区块链中的最长链代表了最大的工作量,网络节点以最长链为权威,想要篡改区块链数据必须要掌控整个网络50%以上的算力[25]。
2.3.2 权威证明机制
权威证明机制(Proof of Authority,PoA)不同于PoW 以算力竞争方式获取记账权,而是受信任的签名者可以决定新区块的创建[26]。具体来说,PoA 共识协议需要经过领导选举选择哪个节点来打包区块,随后打包者将打包好的区块广播到网路,接收到提议区块的节点对其进行验证,以决定是否接受,接收后节点将区块附加到其本地存储中。
3 基于区块链技术的数据完整性和隐私性保护
为保护群机器人的数据安全与隐私,保障系统的可靠、可信运行,本节提出了一种基于区块链技术的群机器人数据完整性和隐私性保护方案。该方案考虑了群机器人系统场景下采用区块链技术的特殊性,采用双层通信网络满足系统通信要求。在此基础上,利用区块链技术和脱链加解密模块实现了可信的去中心化数据存储和加密通信,保障了数据的完整性,提高机器人交互数据的隐私性。以下将分别对该方案的系统模型、基础架构及其各个关键组件进行介绍。
3.1 基于区块链的群机器人系统模型
基于区块链技术的群机器人系统模型如图2所示。该模型主要包括区块链、节点集群和环境三部分。区块链作为可信的去中心化存储单元,由节点集群维护并保存节点上传的数据;节点集群可根据需求加入节点类型,机器人节点可感知环境信息并通过区块链进行数据存取;节点间通过双层通信系统进行交互以实现协作。
图2 基于区块链的群机器人系统模型Fig.2 Blockchain-based swarm robotic systems model
3.1.1 双层通信网络
本文的双层通信网络是指基于无线局域网或移动自组织网的通信系统和基于区块链的通信系统并行运行的通信系统。基于区块链技术保障群机器人交互数据安全性的方案是以区块链网络作为数据交换基础设施,数据交换以交易的形式进行。由于区块链网络中交易确认需要网络中多数节点达成共识,因此,区块链解决方案往往伴随着一定的延迟,完全采用基于区块链的通信网络难以满足群机器人系统在时延方面的通信要求。因此,本文在基于区块链的群机器人系统中同时保留了常见的基于无线局域网或移动自组织网的通信系统(图2中蓝色曲线)和基于区块链的通信系统(图2中红色曲线),二者具有相同的通信拓扑。通过双层通信网络达到保护群机器人交互数据的完整性和隐私性的目的,同时满足机器人集群聚集、围捕、路径规划等常见任务的通信要求。
3.1.2 区块链的同步
区块链的同步是基于区块链群机器人系统中另一个需要考虑的重要因素。以机器人集群作为区块链节点运行,不同于区块链技术在互联网上的应用。在群体机器人系统中,通常认为每个机器人的通信范围是有限的,只有当机器人节点之间处于彼此通信范围内时,才能进行区块链的同步,不在通信范围内的机器人节点将无法同步其他节点的区块链状态。机器人集群的通信示例如图3所示。机器人1 与机器人2 在彼此的通信范围内,可直接同步彼此的区块链状态。机器人 3通过机器人2 可间接实现与机器人1 的区块链状态同步。机器人4 不在任何一个机器人的通信范围内,因此无法同步其他节点区块链状态。当机器人4 移动至机器人4*位置时,将同步机器人3当前的区块链状态。基于上述描述可知,区块链的同步条件与移动自组织网络的通信条件相似。不同的是,区块链作为去中心化存储的分布式账本,其记录了区块链从创世区块(区块链的第一个区块)到当前最新区块的所有状态,在类似于机器人4 的孤立节点或新加入的节点进入其他节点通信范围后,将根据最长链规则同步彼此所有的历史状态。
图3 机器人集群通信示例图Fig.3 Example diagram of swarm robotics communication
3.2 基于区块链的数据保护基础架构
基于区块链技术保护群机器人数据完整性和隐私的基础实现架构如图4所示。该架构主要包括链上数据保护和链下数据保护两部分。在链上数据保护部分,本文采用以太坊区块链平台,以机器人作为以太坊区块链节点,区块链作为群机器人系统的安全层,利用区块链中的数字签名、哈希函数、时间戳等技术共同保障数据的完整性。链下保护部分通过脱链加密和脱链解密两个子模块来避免明文数据上链,以确保机器人数据的隐私性。以太坊客户端(Geth)实现链上数据保护与链下数据保护部分的连接,形成一个完整的群机器人数据完整性与隐私性保护架构。群机器人数据完整性和隐私保护的具体实现流程如表2所示。
表2 群机器人系统数据完整性和隐私保护的实现流程Table 2 Data integrity and privacy protection process of swarm robotics
图4 基于区块链技术的群体机器人数据完整性与隐私性保护架构Fig.4 Architecture of the data integrity and privacy protection based on blockchain technology for swarm robotics
3.3 脱链加解密
在区块链网络中,交易信息经网络传播、节点验证、打包入块后将被存储在分布式账本中。分布式账本由所有节点共同维护,所有上链的信息都会留下痕迹。脱链加解密模块是通过在私密数据被提交到区块链上之前,对私密的明文数据进行加密保护,避免私密信息被不期望的节点通过同步邻居节点的区块链副本获取,进而达到保证数据隐私性的目的。脱链加解密模块中可根据需求嵌入不同的加密算法,本文中脱链加解密模块采用公钥加密算法实现对交互数据私密性的保护,如图5所示。
图5 基于公钥加密算法的脱链加解密Fig.5 Off-chain encryption based on public key encryption algorithm
每个机器人的公钥通过签名交易存储在区块链中,以保证所有节点可获取。当机器人之间需要进行私密信息交互时,信息的发送者通过接受者的公钥对待发送的信息进行加密,即
式中,EM表示明文经加密后得到的密文,Ф表示加密函数,Kpub rec 表示接收私密信息机器人的公钥,infsender表示发送者发送的明文信息。
密文信息上链后,机器人节点通过同步邻居节点区块链状态获取密文信息。当机器人拿到不可读的密文信息后,利用其私钥尝试对密文EM进行解密,即
其中,表示解密函数,Kpri rob 表示接收者的私钥。
在上述的解密过程中,由于所有机器人都拥有相同的区块链副本,因此所有机器人都将拿到包含加密信息的交易,并尝试着对加密信息进行解密。但接收者机器人之外的机器人节点将会因为密钥不匹配而无法获得可读的明文信息。
3.4 链上数据保护
以太坊区块链作为群机器人进行数据交互和存储的基础设施,每个机器人充当区块链的一个节点,机器人节点通过交易将数据上传到区块链中。数据的链上保护基于去中心化的分布式账本,其不存在中心节点或服务器,系统的运行不依赖于管理人员,由所有机器人节点通过严格的数学算法共同维护。机器人之间的私密数据交互是基于交易的,机器人节点是交易的发起者,区块链状态随着交易的执行而改变。在事务执行之前执行有效性测试,即
式中,Θ为交易检测函数,Non表示交易的nonce值;Sig表示交易的签名信息;Bal表示交易发起节点的账户余额。
签名信息和 nonce 值是保证数据安全的关键。交易附带的数字签名一方面可以证明交易的发送方,另一方面可以保证交易数据在签名后没有被修改;nonce 表示一个地址发出的交易数量,保证了交易的唯一性。
交易执行将引起区块链状态的变化,机器人发起交易引起的状态转变可以表示为
其中,表示状态转移函数;Υt表示区块链状态;Υt+1表示交易执行后区块链状态;T表示交易。
交易经验证、传播后被打包入块,区块产生时被附加上时间戳,利用时间的不可逆性,保证了区块链上的每一个区块都是独一无二的。哈希算法的抗碰撞性使信息的任何变动都无法得到相同的哈希值,可快速验证数据是否被篡改。
4 仿真
该部分通过仿真验证了使用区块链方法保证群机器人系统数据完整性和隐私性的有效性。仿真中采用ARGoS 机器人集群模拟器[27](version 3.0.0-beta56)和ARGoS-epuck[28]插件模拟机器人集群,机器人数量设置为3 个。仿真在PC 上运行,其配置如下:12G RAM,Intel Core i5-6200 CPU @2.30GHz。区块链环境使用以太坊区块链测试网络。为了降低仿真运行的计算成本,以适应PC 设备的有限算力。本文采用文献[13,15,18]中的方法,将以太坊的挖矿难度设置为一个适合的固定值。以每个机器人充当区块链的一个节点,并且每个机器人运行一个Geth 进程。
4.1 数据隐私性保护
为了更直观地表现对数据隐私的保护效果,设计了一种常见的机器人运动:机器人集群中一个机器人成员向另一个机器人发送它的坐标信息,接收者获取该坐标并移动到发送者的坐标位置,无法获取该坐标的机器人保持静止。本文设定机器人1 发送其坐标信息给机器人2。实际上在区块链环境中,机器人节点发出的交易是发送至区块链网络,经传播、验证后,其他节点通过同步区块链状态获取该交易信息。
4.1.1 无脱链加解密模块
未引入脱链加解密模块时,区块链网络中交易信息对网络中的其他节点是公开的,机器人节点通过同步邻居的区块链副本实现共享与共识。根据上文中描述的机器人运动任务,未引入脱链加解密模块时机器人运动的结果如图6所示。仿真中机器人在一个空白环境中运动,每个机器人作为区块链的一个节点。图6(a)中的红色虚线表示机器人1 发起包含其坐标信息的交易,邻居机器人节点同步区块链数据,获得交易信息。在仿真开始时,每个机器人的位置是随机的,随后机器人2 与机器人3 同步邻居区块链信息,获得由机器人1 发送的交易信息。仿真结果如图6(b)所示,可以看出,机器人2 与机器人3 均获得了机器人1 的坐标信息并运动至坐标位置,该结果与初始设定中机器人1 只发送给机器人2 坐标的预期并不一致。
图6 无脱链加密情况下机器人运动结果Fig.6 Robot motion results without off-chain encryption
4.1.2 引入脱链加解密模块
引入脱链加解密模块后,本节基于上文中描述的机器人运动任务再次进行了仿真验证。脱链加解密模块可保证只有特定的接收者可以获取交易中所包含的信息,接收者之外的机器人只能获得无法解读的密文信息。从表2中每个机器人的解密结果可以看出,虽然机器人2 和机器人3 都获取了包含机器人1 坐标信息的交易,但只有机器人2 可以得到坐标的明文信息,机器人3 由于无法正确解密密文,因此只能得到不可解读的密文信息。机器人运动的实验效果如图7所示。
表2 机器人解密结果Table 2 Decrypted result of robots
初始时刻每个机器人的位置是随机的,机器人2 和机器人3 获得机器人1 发送的交易信息并尝试解密坐标信息。若解密成功,则机器人移动到机器人1 的位置,若解密失败,则机器人保持静止,结果如图7(b)所示。从仿真结果可以看出,机器人2 到达机器人1 的位置,机器人3 位置不变,结果与预期一致,表明引入脱链加解密模块后能有效地保障交互信息的私密性。
图7 引入脱链加解密模块后机器人运动结果Fig.7 Robot motion results with off-chain encryption
4.1.3 脱链加解密模块的时间开销
引入脱链加解密过程不可避免的增加了发送和接收信息的时间开销。脱链加解密模块时间开销的测试结果(20 次测试)如图8所示,显然可以看出加解密模块的时间开销在一定范围内浮动,其平均时间开销如表3所示。
表3 加解密平均时间开销Table 3 Average time cost of encryption and decryption
图8 脱链加解密模块时间开销Fig.8 Time cost of encryption and decryption module
4.2 数据的完整性和可追溯
4.2.1 区块链保护
为验证区块链技术在保障机器人交互数据的完整性和可追溯性方面的有效性,本节中尝试获取了机器人成员间的历史交互数据,结果如图9所示。其中,图9(b1)和图9(b2)为由机器人发布的交易信息,图9(a1)和图9(a2)为包含对应交易的区块信息。蓝色下划线的parentHash参数实现了区块之间的连接,hash和blockHash参数实现了区块与具体交易之间的连接;红色虚线标记的from和to参数分别表示该交易的发起者和接收者,指明了与该交易相关的机器人节点;nonce参数是对某一节点发出交易的计数,保证了事务的唯一性;黑色框内的input参数表示附加在该交易中交互数据。图9中参数是区块链技术通过链式结构、时间戳、哈希函数等技术保障数据完整、不可篡改的具体化显示。通过blockHash、parentHash、from等参数实现了对具体交易、交易所在区块以及历史区块信息等的追溯。一个挖矿节点可实现对当前区块到创世区块所有区块信息的追溯。由蓝色直线标记的hash参数由区块头信息经哈希计算得到,区块头中任何一个参数的变化都会导致区块链“断裂”,有效地保障了数据的完整、不可篡改。红色框内的timestamp参数表示每个区块的生成时间,利用时间的不可逆性来保障数据的完整不可篡改。因此,区块链可有效地实现了群体机器人交互数据的完整性和可追溯性。
图9 机器人的交易信息Fig.9 Transaction information between robots
4.2.2 区块链的时间开销
区块链解决方案可有效保障数据的完整性和可追溯,同时也带来了一定的时间开销,因为区块链方案的核心是建立一个由多个节点共同维护、满足用户信任条件的生态系统来保障数据的完整性、不可篡改和可追溯。交易在区块链节点间的传播、验证将会带来一定的时间开销,其具体体现在区块链的出块速度方面。本节测试了仿真中所采用的区块链网络的出块速度,结果如图10所示。
图10 区块链时间开销Fig.10 Time cost of blockchain
从测试结果可以看出,区块链网络在同一时间间隔内出块数量不是恒定的,但总体趋势以及出块的平均速度基本稳定不变,区块链网络的平均时间开销如表4所示,总体表示三次测试的平均值。
表4 区块链平均时间开销Table 4 Average time cost of blockchain
通过上述分析可以看出,在数据安全保护方面,基于区块链技术的群机器人数据完整性与隐私性保护方案可有效的保障群机器人数据的完整性和可追溯性,在此基础上引入脱链加解密模块后,虽然机器人间的交易是公开的,但交易中的具体信息只有指定机器人可读取,有效保障了交互信息的隐私性。在时间开销方面,基于区块链技术的解决方案增加了一定的时间开销。为避免该延迟对群机器人系统的影响,在系统实现时采用了双层通信网络,具体参考3.1.1 节中对系统模型的描述。此时,仅在私密数据或结果数据传输时采用基于区块链的通信方式进行数据传输。因此,双层通信网络在一定程度上降低了区块链保护方案中的时间开销对群机器人系统的影响。
5 实验结果及分析
为测试区块链在真实机器人上的运行效果,本节在物理机器人进行了实验,采用轻节点的方式来降低在机器人上运行区块链协议的计算负担和存储压力,并与现有的解决方案进行了对比。
5.1 物理实现架构
实验中机器人平台采用基于树莓派的麦克纳姆轮小车(文中称为机器人),树莓派采用Raspberry Pi 4 Mode B 型号。区块链环境使用以太坊测试网络,共识机制采用PoW,PC 作为挖矿节点运行,机器人作为轻节点运行,机器人与PC 都运行一个Geth 进程,实现框架如图11所示。图中,挖矿节点角色由高性能设备(PC 等)担任,维护同一个区块链副本,群机器人中的成员作为轻节点与区块链进行交互。
图11 基于区块链的群机器人系统物理实现架构Fig.11 Physical realization architecture of swarm robotics based on blockchain
本节使用轻节点的方式将仿真部分的机器人运动实验拓展到了物理机器人上。实验中机器人在一个2 m×2 m 的无障碍场地中运动。在该范围内,每个机器人可以彼此进行通信。场地4 个角的设备是用以定位的基站,与机器人的机载标签共同实现机器人的定位。PC 作为挖矿节点维护区块链运行,机器人作为轻节点与区块链交互实现运动目标。实验效果如图12(a)和图12(b)所示,图12(c)显示了机器人的运动情况。由于超宽带存在的定位误差与漂移,在机器人运动轨迹上存在一定的抖动,但其结果符合实验预期。接下来,本文将从计算负担和存储需求两方面对实验中所采用的轻节点方法与现有其他方法进行对比。
图12 实验结果Fig.12 Result of the experiment
5.2 性能对比
在进行性能对比之前,有必要对将要对比的方法进行说明,具体如下:(1)文献[13,15,18]中实现了基于区块链的群机器人的仿真,其通过设置挖矿难度值来适配模拟机器人的有限算力,本文中该方式简称为SMD(仿真部分使用);(2)文献[25]中选择使用PoA 共识机制来降低计算成本,以满足区块链在机器人上稳定运行,本文中该方式简称为POA;(3)本文采用轻节点来降低实验运行对机器人算力和存储能力的要求,本文中该方式简称为LightNode。性能对比中使用的硬件设备为实验中使用的机器人。
5.2.1 存储需求
本节使用了SMD、POA 和LightNode 三种方法在物理机器人上运行了区块链,并比较了三种方法随着交易数量的增加所需要的存储空间。图13显示了三种不同方式下机器人节点存储区块链数据所占用的机器人内存的变化趋势。可以看出,随着交易数量的增加,POA 和SMD 两种方式所占用的存储空间快速增加。与POA 与SMD相比,LightNode 方法中,随着交易数量增加机器人内存占用的上升趋势平缓。可以得出结论,相比于POA 与SMD 方式,LightNode 方式对机器人存储性能的要求有明显的降低。
图13 存储需求对比Fig.13 Comparison of storage requirements
5.2.2 计算负担
该部分通过比较每种方法运行时机器人的CPU 占用率,对上述三种实现方法带来的计算负担进行了对比,测试结果如图14所示。图中CPU使用率的主要组成部分包括User、Kernel(该测试中Nice、Inte、Wait、Steal 部分是CPU 利用率中极小的一部分,此处不作考虑),分别由蓝色和红色表示,两部分的和表示了总的CPU 使用率,绿色表示空闲。图14(a)显示了未运行区块链时CPU 的占用情况,图14(b)显示了使用SMD 方法时CPU 的占用情况,图14(c)显示了POA 方法运行时的CPU 占用情况,图14(d)显示了LightNode方法运行时CPU 的占用情况。
图14 存储负担对比Fig.14 Comparison of computational burden
从测试结果中可以看出,采用SMD 方式在物理机器人上运行区块链时,机器人的CPU 资源被全部消耗。这种情况下,系统难以稳定运行。POA 方式对计算成本有明显的降低,CPU 占用率在55%左右,LightNode 方式在计算成本方面进一步降低,CPU 占用率大约在35%。
根据以上分析可以得出,LightNode 方式与SMD 和POA 方式相比,LightNode 方式在存储需求和计算成本上进一步的降低,可以实现基于区块链的群体机器人稳定可靠的运行。
6 结 论
本文演示了使用以太坊区块链技术来保障群机器人数据完整性与隐私性,并通过仿真和实验对其进行了验证。结果表明,该方法可以有效保证群机器人交互数据的完整性和隐私性,可实现对历史数据的追溯。另外,本文在实验中采用LightNode 方法来降低机器人运行区块链的存储需求和计算代价,并与POA 与SMD 方式进行了对比。结果表明,LightNode 方法相较于POA 与SMD 方法存储要求更低、计算代价更小,可满足基于区块链的群机器人的稳定运行。在未来的研究中,我们计划从区块链平台选择和共识协议角度出发,在物理机器人上采用不同的区块链平台、共识协议进行研究与比较。