目录
1.介绍
2.方案设计
3.分析与评估
4.展望
论文题目:A Blockchain-Based Nonrepudiation Network Computing Service Scheme for Industrial IoT
论文地址:A Blockchain-Based Nonrepudiation Network Computing Service Scheme for Industrial IoT | IEEE Journals & Magazine | IEEE Xplore
主要贡献:
1.1 在不受信任的分布式IIoT场景中面临的安全挑战
不受信任的服务提供商可能提供不合格甚至恶意的服务,而不诚实的客户可能会出于自身利益甚至是虚假指控的目的,恶意拒绝获得正确的服务。缺乏有效的不可抵赖性纠纷解决机制意味着对这些互不信任的各方没有保障。
1.2 主要贡献
1)提出了一个基于区块链的真正公平的不可否认服务提供方案,用于工业物联网场景,区块链被用作证据记录器和服务发布代理。在确认之前的链上证据后,将所需要的服务程序切割成不可执行部分,通过链上和链外渠道分步骤交付,既可减轻区块链的负担,又可避免程序披露风险。但也强制提交证据,即使是链下行为,以确保我们的不可否认方案的真正公平性。
2)设计了一种基于同态哈希技术的服务验证方法,该方法可以仅仅基于轻量级链上证据而不是完整的服务程序代码来正确验证服务,支持我们模型的核心功能。
3)建立基于智能合约技术的公正、有效的纠纷解决机制,公平、高效地解决服务提供商和工业物联网客户之间的服务纠纷。
4)从理论上分析了我们的方案的安全性,并实现了一个实验原型,以评估其有效性和效率。
1.3同态、同态哈希函数
同态:是两个代数结构之间(群、环、向量)保持结构不变的映射,它保持所有相关的结构不变,从数学的角度上说,同态就是“保运算”。
举一个简单的例子:
考虑带加法运算的整数。保持加法不变的函数有如下性质:
f(a+b)=f(a)+f(b)
例如f(x)=3x就是这样的一个同态。因为 f(a+b)=3(a+b)=3a+3b=f(a)+f(b)。 且这个同态从整数映射回整数(整数的代数结构为群)。
同态哈希函数:是一种具有同态特性的抗碰撞hash函数,同态哈希函数可以将任意大小的数据映射为固定大小的数据而且满足同态映射。
Krohnet al.提出了最常用的抗碰撞单态哈希函数,如下所示哈希函数如下:
两个大随机素数p、q,且满足q|(p-1),消息块bj是一个1*m个矢量组成,,每一个都是一个的元素,其中是一组非负整数,其成员小于q。
G是一组G=(p,q,
因此,哈希函数的同态由以下函数给出:
同态hash函数的抗碰撞性是由离散对数问题的计算复杂性保证的。如果p和q有足够的大小,那么就没有已知的多项式时间算法来解决离散对数问题。
2.1总体描述
方案建设在具有PoA共识机制的联盟区块链网络上(5个节点),并部署了用于争议解决服务的裁决智能合约。方案存在三种实体,服务提供者(SP,提供服务方案)、IIoT客户端(C,请求并执行服务程序)和仲裁节点(AN,区块链中维护分布式账本和执行智能合约的特权节点)。每个实体在区块链网络中都有一个账户地址,可以启动交易和触发智能合约。当启动交易和触发智能合约后,原始区块链事务的数据字段被扩展,如请求的服务名称、散列值、确认信息和服务程序的证据代码片段。
2.2威胁模式
作者假设服务提供商或客户出于自身利益,在服务提供过程中通过恶意活动试图欺骗另一方,即服务提供商可能提供虚假服务,而客户将试图拒绝获得纠正服务。但是,他们中的任何一方都不会以牺牲自身利益为代价做出不合理的正常行为,例如,接受客户方不正确服务等超出作者考虑范围的行为。
2.3服务模式
当系统初始化时,裁决性智能合约部署在区块链上,且智能合约带有服务名称的嵌入式标准哈希映射和服务程序的相应同态哈希值,并向每个客户账户发放足够数量的的unique crypto-Collective(即,差异化加密货币),并将在未来的服务供应过程中在扩展客户机之间用作同步令牌以控制步骤顺序。此外,在方案上选择了一组同态散列参数G=(p,q,
服务提供过程的详细工作流如下图所示:
服务供应过程的详细工作流程如下:
步骤1:服务请求。客户端C发送一个请求事务,包括服务名S、同态加密收集Token到区块链账户SP。
步骤2:发布Hash(S2)。区块链账户SP通过同态哈希函数计算Hash(S2),然后将其交易封装在同态加密收集Token中,发送到客户端C的区块链账户的链上证据。
ps:方案仅将区块链上大的S2的小散列值记录为轻量级证据,因为较小大小的S2的散列值同样可信。
步骤3:通过链下渠道交付S2。在区块链上发布Hash(S2)后,服务提供者SP通过链下渠道将Hash(S2)的主要部分交给客户端C。
ps:S2在此阶段不可执行,因此,如果C仍希望最终获得完整的可执行服务程序,则强制其执行以下步骤(例如,发布相应的确认作为证据),这有助于实现具有真正公平性的不可否认性方案。此外,大型计划部分的链外交付有助于减少区块链上的负担,并可以避免计划披露风险。
步骤4:确认Hash(S2)。客户端C计算收到的Hash(S2),并将它与区块链上的记录进行比较。如果hash值匹配,客户端C向服务提供者SP的区块链账户发送与Token相对应得确认交易。
ps:如果C仍希望获得完整的可执行service program,则必须发布链外事件的相应确认。另外,C和SP服务提供过程的提前终止不会使任何一家公司受益 。
步骤5:发布S1。当客户端C的确认交易在区块链上可用时,服务提供者SP给轻量级证据的区块链账户C发送一个包括不可执行的微小代码片段S1和Token的交易。
ps:发布随机剪切的不可执行的服务程序片段对服务提供商无害,因为最主要的部分是私下传输的。然而,版权控制,即防止来自客户端的资源泄漏,超出本文的范围,可以补充工作。
步骤6:确认Hash(S)。C获得S1并恢复服务,然后决定向SP的区块链账户提交最终确认以调动智能合约来进行仲裁。
ps:由于最后一段代码片段在步骤5中作为证据发布在区块链上,因此智能合约可以根据现有的链上证据解决争议,而无需客户最终确认。
2.4争端解决机制
C或者SP为了触发裁决性智能合约,在步骤4必须中止当前的服务流程。如果当客户在步骤4中未发布积极确认时,服务过程中一定发生了异常(和不好的情况),例如,客户不诚实或发现接收的S2的哈希值不等于区块链上的哈希值。为了不被利用和进一步的损失,提出了以下的防御机制。该机制不会因为经济原因而被滥用,各方也因当前的行为受到同等的指控。
当C和SP在最后一步申请仲裁时,智能合约将被调用。它首先使用同态哈希函数来计算次要代码片段的哈希值在区块链上发布的内容,然后通过计算Hash()×Hash()mod p获得Hash(+),将其与区块链上的预存散列进行比较。最后,如果Hash(+)==预先存储的散列,则智能合约将判定该C是恶意的,因为它会带来虚假指控。否则,它会得出结论,SP是恶意的。
总结来说,智能合约可以用轻量级链证据(例如:为整个区块链系统带来了巨大的节约,同时也避免了完整程序代码暴露所带来的非法使用风险。
通过以太坊Mist钱包提供可视化用户界面演示实验结果,设备配置如下:
实验证明方法:实现原型来评估所提出方法的有效性和性能。
基于ETH 1.8.17建立了联盟区块链,区块链网络使用PoA共识机制(5个节点),并部署了用于解决服务的裁决智能合约。在相同的环境下构建带有PoW共识机制的区块链网络(5个节点)。为PoW算法设置了一个相当低的挖掘难度(即难度=0x131072),以方便和简化实际的实验过程。模拟了50个IIoT客户端,向6个虚拟服务提供商请求27种服务方案。另外,为了可视化,通过以太坊Mist钱包提供的可视化用户界面展示了一些实验结果。
系统性能评估:
1)交易延迟
每天随机启动100000个事务请求,并使系统运行一周。对于不同的时间段,平均事务延迟保持稳定,PoA机制下的平均事务延迟仅约为21毫秒,而PoW机制下的平均事务延迟约为52毫秒,即使在极低的挖掘难度下,其速度也是ap的两倍多(约250%),这也反映了采用的POA机制的优越性。
2)事务吞吐量
分别在PoA和PoW机制下通过作者的系统的研究了仲裁。
如图所示。基于PoA的方案的平均仲裁吞吐量随着并发争议的增加而稳定增长,当并发争议的数量大于4500/s时,它逐渐达到稳定峰值,即大约每秒4500个。对于基于PoW的方案,仲裁吞吐量曲线更平坦,最大值为每秒1500。基于PoA的方案的吞吐量优于基于PoW的方案,并且足以满足解决争端的实际需要。
作者期望将方法部署在一个支持真实网络计算的IIoT平台上,以进行进一步的实际评估。希望整合更多功能,如存款和信誉机制,以建立更复杂和有效的解决方案。此外,由于IIoT设备在网络计算场景中必须在远程服务器中存储大量生成的数据,因此在未来的解决方案中还将考虑相应的非否认争议解决机制。
个人总结:本文方案总的来说运用同态加密算法来解决了多方不可信问题,并结合区块链的智能合约再次验证。并且通过PoA共识机制(5个节点)验证方案,并和PoW共识机制的区块链网络(5个节点)进行了比较。