Fair Outsourcing Polynomial Computation Based on the Blockchain

  1. School of Computer and Information Engineering, Zhejiang Gongshang University, Hangzhou, China 310018
  2. Faculty of Computer Science, University of New Brunswick, Fredericton, Canada E3B 5A3
  3. School of Information and Electronic Engineering, Zhejiang Gongshang University, Hangzhou, China 310018

Abstract

Due to the big data blowout from the Internet of Things and the rapid development of cloud computing, outsourcing computation has received considerable attention in recent years. Particularly, many outsourcing computation schemes have been proposed to dedicate the outsourcing polynomial computation due to its use in numerous fields, such as data analysis and machine learning. However, none of those schemes are practical enough, as they either require some time-consuming cryptographic operations to achieve fairness between the user and the worker, or cannot allow the user to outsource arbitrary polynomial to the worker, or need two non-collusive workers. To tackle these challenges, in this paper, we propose a new outsourcing polynomial computation scheme by employing a variant of Horner’s method and the blockchain technology. Specifically, the former makes the computational cost on the worker side as low as possible, and the latter guarantees the fairness between the user and the worker if the result from the worker can be publicly verified. To achieve the public verifiability property, we apply the sampling technique, which is effective in our proposal according to a game-theoretic analysis. Furthermore, we also implement a prototype of our proposal and run it on an Ethereum test net. The extensive experimental results demonstrate that our proposal is efficient in terms of computational cost.

System Model and Design Goals

Design Goals

  1. Design a fair outsourcing polynomial computation scheme.
  2. The proposed scheme should be efficient.
  3. The proposed scheme should support arbitrary polynomials.
  4. The proposed scheme should support reusability.

When $f(x) = \sum_{i = 0}^n a_i x^i$ Is a Univariate Polynomial

Example: $f(x) = 4 x^3 + 8x^2 + 6x + 5,~x=7$

When $f(x) = \sum_{i = 0}^n a_i x^i$ Is a Sparse Polynomial

Example: $f(x) = 4 x^8 + 3 x^7 + 6x^5 + 5,~x=7$

When $f(x) = \sum_{i = 0}^N a_i \prod_{j = 1}^{\tilde{n}} x_{j}^{p_{ij}}$ Is a Multivariate Polynomial

Example: $f(x) = 4 x_1^8 + 3 x_1^3 x_2^3 + 6x_2^5 + 5,~x_1=3,~x_2=5$

Performance Evaluation

Demo download

The sourcecode of this project can be found at guanyg/polyOutsource.