由于灵活性和高可用性等好处, 云计算可以提供包括存储和计算在内的服务. 因此, 许多个人和企业将他们的数据外包到云平台上以节省成本. 但是与云的通信通常非常耗时, 而作为云计算的扩展, 雾计算使计算任务能够在网络边缘实现并提供低延迟的服务. 在雾计算中, 资源受限的用户(由O表示的外包用户)可以将计算任务外包给雾计算节点来完成(由W表示的工作节点)并支付报酬给他们.
本文考虑能将计算任务分配给雾节点运行的场景, 每个雾计算节点完成相应的任务后将结果返回给用户. 在指定时间内完成任务后, 雾计算节点将从用户处获得报酬. 然而, 由于用户和雾计算节点之间的不信任, 公平支付的问题应该被考虑. 一方面, 雾计算节点可能没有完成计算任务, 也就是说, 雾计算节点可能会发送一些错误的结果给用户. 另一方面, 雾计算节点诚实地完成了任务, 但恶意用户却并不支付报酬.
目前已有一些解决问题的方案, 一方面, 用户在支付服务费用时需要验证计算结果. 文献[1]提出了一种基于抽样的方案. 文献[2]提出了一种审计机制, 通过使用计算证明来检测计算节点的恶意行为. 文献[3]提出了一种基于重复计算和ringer的方案, 以验证计算结果的正确性. 文献[4–6]提出了概率验证方法检测作弊者. 文献[7]提出了一种基于抽样的解决方案, 该解决方案使用Merkle树来防止计算节点作弊. 另一方面, 应考虑支付报酬的问题. 文献 [8,9]基于分割选择方案和秘密共享方案来防止恶意计算节点并考虑支付了问题.
在上述方案中, 要么不考虑支付的问题, 要么采用传统的支付框架, 例如银行. 然而, 传统的支付解决方案存在一些缺点, 银行可能是支付系统的瓶颈. 不同于传统的支付方式, 区块链是一种分布式的系统, 不受任何一方控制, 可以直接转移报酬. 而区块链技术已经被用在了很多外包服务中[10–12], 文献[1]提出了一种基于抽样并结合比特币的方案.
为了解决公平支付的问题, 本文提出了一个用于外包计算的基于以太坊区块链的公平支付方案. 在我们提出的方案中, 外包用户和工作节点可以互不信任. 基于以太坊的智能合约, 本文可以实现诚实的工作节点将会获得报酬, 同时如果工作节点未完成计算任务, 外包用户可以获得赔偿. 本文引入可信第三方T来解决外包用户和雾计算节点的冲突.
2 系统模型系统模型如图1所示, 包含外包者O, 工作节点W, 第三方T和一个区块链.
(1) 外包用户O: 作为外包计算的请求者, O将一笔报酬存入智能合约中, 并向工作节点W请求外包计算服务. 如果W提供的结果正确, 则将支付报酬给W. 否则, O可以从W处获得赔偿.
(2) 工作节点W: 作为外包计算服务的提供者, W收到计算服务请求后将一笔押金存入智能合约中. 在完成计算任务后, W将结果记录到区块链智能合约中, 并将结果发送给O. 在指定时间t之前若O未对结果提出异议则从区块链获得报酬.
(3) 第三方T: 作为第三方, T接收来自O的请求. 一旦O发现W的计算结果错误, O发送一个请求给T. T验证该请求, 若验证W的计算结果错误, 则执行智能合约惩罚W.
(4) 区块链: 我们使用一个已被广泛使用并支持智能合约的区块链, 如以太坊区块链. 智能合约是在区块链上自我执行的程序.
在我们的系统中, 外包用户和工作节点可以互不信任, 同时它们中的任一个都可能是恶意用户. 具体来说, 恶意外包用户的目的是在不支付报酬的情况下获得外包服务, 而恶意工作节点则希望在不提供有效结果的情况下获得报酬. 我们的设计目标主要包括正确性和公平性.
(1) 正确性: 如果外包用户O和工作节点W都是诚实的, 那么外包用户O可以获得所需的计算结果, 而工作节点W将获得报酬.
(2) 公平性: 对外包用户O的公平性意味着恶意工作节点W若未能提供正确的结果, 则无法获得报酬. 对工作节点W的公平性意味着恶意外包用户O在不支付服务费的情况下无法获得正确的结果. 如果恶意工作节点W未能提供正确的结果, 则外包用户O能够从工作节点处获得相应的赔偿.
3 系统设计本文设计的方案包含4个阶段: 初始化阶段, 计算阶段, 支付阶段和索赔阶段. 同时引入第三方来解决外包用户O和工作节点W间的冲突. 区块链智能合约确保外包用户O要么获得正确的结果, 要么获得赔偿. 此外, 诚实的工作节点W可以获得相应的报酬.
3.1 初始化阶段选择一个哈希函数H如SHA-256, 并且每个参与者生成自己的ECDSA公钥/密钥对, 表示为
外包用户与工作节点先对计算任务F达成协议, 并在区块链上建立智能合约. 其中计算任务表示为
在确认了外包用户将报酬存入智能合约后, 工作节点执行计算任务F后获得一个结果集
3.3 支付阶段
外包用户将计算结果集S的每个元素
${i_k} = ({H^k}({I_{\rm root}}) \;\; \mod \; n) + 1,\;{\rm {for}}\; k = 1, \cdots ,m$ | (1) |
其中,
${H^k}({I_{\rm root}}) = \left\{ {\begin{array}{*{20}{l}} {H({I_{\rm root}}),\;\;\;\;{\rm {for}} \;\; k = 1} \\ {H({H^{k - 1}}({I_{\rm root}})),\;\;\;\;{\rm {for}} \;\; k = 2, \cdots ,m} \end{array}} \right.$ | (2) |
外包用户验证抽样的m个结果, 文献[7]中证明了只要m足够, 则能确保整个结果的正确性. 在外包用户验证了结果正确后, 工作节点将在时间t后获得报酬. 然而, 如果外包用户发现存在不正确的结果, 则外包用户将发送一个裁决请求给第三方.
3.4 索赔阶段当第三方T从外包用户处收到裁决请求时, 则进入索赔阶段. 第三方T裁决这个请求的正确性, 如果接受这个裁决请求, 则第三方T执行智能合约中止支付报酬. 考虑以下两种情况.
(1) 若工作节点发送给外包用户的结果集计算的Merkle树根与存在区块链上的
(2) 若结果集S的元素
4 系统分析 4.1 安全分析
根据本系统的安全目标, 给出了本文的安全分析.
(1)正确性: 如果使用的哈希函数H是抗碰撞的并且ECDSA签名是不可伪造的, 则我们的协议满足正确性. 假设外包用户和工作节点都是诚实的, 并且遵循方案的步骤. 在计算阶段, 工作节点将每个结果的哈希和结果集构成的Merkle树根节点存在区块链上. 在支付阶段, 外包用户将验证结果集元素的哈希是否与区块链保存的一致, 保证结果集S是工作节点保存在区块链上的结果, 之后验证所有或是抽样的结果是否满足外包计算任务的要求. 只有在满足了结果是符合外包任务要求后, 工作节点才能在时间t后收到报酬. 换句话说, 如果使用的哈希函数H是抗碰撞的并且ECDSA签名是不可伪造的, 由于区块链的不可篡改, 则外包用户收到的结果集S一定是未被篡改的, 且工作节点只有在提供的结果集S满足外包任务的要求后才能获得相应的报酬.
(2)公平性: 我们首先证明对诚实工作节点的公平性, 然后证明在恶意工作节点下考虑对外包用户的公平性.
情况1: 假设工作节点是诚实的, 而外包用户是恶意的, 即恶意的外包用户想要获得一个有效的结果而不支付报酬. 这种情况下, 在计算阶段, 工作节点只有在确认了外包用户将报酬存入智能合约中才会执行计算任务. 当完成计算任务后, 只有在工作节点的结果出现问题时支付才会被第三方T通过合约中止. 由于智能合约的强制执行特性, 所以只要工作节点提供的结果是符合外包计算任务要求的, 则工作节点一定能够在时间t后获得报酬.
情况2: 假设外包用户是诚实的, 而工作节点是恶意的, 即恶意的工作节点想要在不提供正确结果的情况下获得报酬. 首先, 若工作节点未将结果的哈希或结果集的Merkle树根保存在区块链上, 则外包用户发送一个裁决请求给第三方, 第三方要求工作节点将结果集哈希保存于区块链中. 若工作节点未能将结果集哈希保存在区块链上, 表示工作节点未完成外包计算任务. 第三方T调用如图3 的合约judge中止报酬的支付, 则外包用户可以获得赔偿并取回报酬. 其次, 若工作节点提供的结果不符合外包计算任务的要求, 外包用户将错误的结果包含到裁决请求中发送给第三方. 当第三方T验证了该错误结果后, 将中止报酬的支付, 则外包用户可以获得赔偿并将报酬取回.
通过以上的分析, 如果使用的哈希函数H是抗碰撞的并且ECDSA签名是不可伪造的, 则本系统满足正确性和公平性.
4.2 消耗分析本系统在以太坊官方测试网络上实现了一个智能合约来分析性能. 本文使用的哈希函数是SHA-256. 当我们进行实验时, gas价格设置为2 Gwei, 其中1 Gwei = 109 wei = 10–9 ether, 目前1 ether=168 USD. 我们将它部署在以太坊官方测试网络Ropsten上, 使用的伪代码表示的算法如图3. 表1是智能合约消耗的实验结果, 合同创建操作仅执行一次以完成初始化其消耗267 202 gas=0.0898 USD. 外包用户的报酬存入和工作节点的押金存入分别消耗21 485 gas=0.0072 USD和21 397 gas=0.0072 USD, 而支付操作消耗41 533 gas=0.0140 USD. 当出现恶意工作节点时, 进入索赔阶段, 第三方T裁决操作judge消耗22 086 gas=0.0074 USD. 同时索赔操作消耗29 383 gas=0.0099 USD. 而本实验当未出现错误结果智能合约共需消耗351 617 gas, 约为0.1182 USD. 当出现错误结果时, 需执行裁决操作与索赔操作, 智能合约共需消耗403 086 gas, 约为0.1355 USD. 第三方T在智能合约上的消耗只有执行裁决操作judge的消耗, 而对与链下的验证操作需根据具体的外包任务来确定.
5 结语
随着外包服务的快速发展, 为了解决外包计算的支付问题, 本文提出了基于区块链的外包服务公平支付方案. 通过使用区块链将外包任务的结果进行保存, 使其不能篡改. 只有在结果正确时, 外包用户才支付服务报酬给工作节点, 若结果不正确, 外包用户将可以获得赔偿. 本协议的安全分析和消耗分析表明本协议是正确的且公平的, 同时本协议的消耗是可接受的.
[1] |
Huang H, Chen XF, Wu QH, et al. Bitcoin-based fair payments for outsourcing computations of fog devices. Future Generation Computer Systems, 2018, 78: 850-858. DOI:10.1016/j.future.2016.12.016 |
[2] |
Wei LF, Zhu HJ, Cao ZF, et al. Security and privacy for storage and computation in cloud computing. Information Sciences, 2014, 258: 371-386. DOI:10.1016/j.ins.2013.04.028 |
[3] |
Golle P, Mironov I. Uncheatable distributed computations. Proceedings of the Cryptographers’ Track at the RSA Conference. San Francisco, CA, USA. 2001. 425–440.
|
[4] |
Chen XF, Li J, Susilo W. Efficient fair conditional payments for outsourcing computations. IEEE Transactions on Information Forensics and Security, 2012, 7(6): 1687-1694. DOI:10.1109/TIFS.2012.2210880 |
[5] |
Küpçü A. Incentivized outsourced computation resistant to malicious contractors. IEEE Transactions on Dependable and Secure Computing, 2017, 14(6): 633-649. DOI:10.1109/TDSC.2015.2499738 |
[6] |
Ulusoy H, Kantarcioglu M, Pattuk E. TrustMR: Computation integrity assurance system for MapReduce. Proceedings of 2015 IEEE International Conference on Big Data. Santa Clara, CA, USA. 2015. 441–450.
|
[7] |
Du W, Jia J, Mangal M, et al. Uncheatable grid computing. Proceedings of the 24th International Conference on Distributed Computing Systems. Tokyo, Japan. 2004. 4–11.
|
[8] |
Carbunar B, Tripunitara M. Fair payments for outsourced computations. Proceedings of 2010 7th Annual IEEE Communications Society Conference on Sensor, Mesh and Ad Hoc Communications and Networks. Boston, MA, USA. 2010. 1–9.
|
[9] |
Carbunar B, Tripunitara MV. Payments for outsourced computations. IEEE Transactions on Parallel and Distributed Systems, 2012, 23(2): 313-320. DOI:10.1109/TPDS.2011.163 |
[10] |
Zhang YH, Deng RH, Shu JG, et al. TKSE: Trustworthy keyword search over encrypted data with two-side verifiability via blockchain. IEEE Access, 2018, 6: 31077-31087. DOI:10.1109/ACCESS.2018.2844400 |
[11] |
Do HG, Ng WK. Blockchain-based system for secure data storage with private keyword search. Proceedings of 2017 IEEE World Congress on Services. Honolulu, HI, USA. 2017. 90–93.
|
[12] |
Zhang YH, Deng R, Liu XM, et al. Outsourcing service fair payment based on blockchain and its applications in cloud computing. IEEE Transactions on Services Computing, 2018, 1. DOI:10.1109/TSC.2018.2864191 |