[Note]Fluid: A blockchain based framework for crowdsourcing


Recently, crowdsourcing has emerged as a new computing paradigm to solve problems that need human intrinsic, such as image annotation. However, there are two limitations in existing crowdsourcing platforms, i.e. non-transparent incentive mechanism and isolated profiles of workers, which harms the interests of both requesters and workers. Meanwhile, Blockchain technology introduces a solution to build a transparent, immutable data model in the Byzantine environment. Moreover, Blockchain systems (e.g. Ethereum) can also support the Tuning-complete script called smart contracts. Thus, we are motivated to use the feature of the transparent data model and smart contract in Blockchain to address the two limitations. Based on the proposed solutions, we have designed a Blockchain based framework which supports foundations of general crowdsourcing platforms. In addition, our framework also has following novel features: (1) it provides the transparent incentive mechanisms; (2) it supports a trusted worker’s profile sharing in a cross-platform mode.

Paper here

Fluid:A Blockchain based Framework for Crowdsourcing


Crowdsourcing disadvantage:

  • non-transparent incentive mechanism
  • isolated profiles of workers

So this paper is devoted to solve:

  1. provide transparent incentive mechanism
  2. trusted workers’ profiles sharing in a cross-platform mode

I think the main point of sharing profiles is untenable.


In this demo, we implement a Blockchain based framework called Fluid which provides transparent incentive mechanism for crowdsourcing platform. We also design the complete workflow which integrate typical crowdsourcing process with Blockchain. In addition, we design three smart contract templates to combine existing crowdsourcing algorithms. Moreover, we develop several APIs to manage task and Blockchain data based on Ethereum. Finally, we develop an Android client for users to utilize our framework.

  • blockchain based framework
  • Workflow (integrate typical crowdsourcing process with blockchian)
  • smart contract (existing crowdsourcing algorithms) (incentive mechanism in smart contracts)
  • several API (on Ethereum)
  • Android client for users to utilize the framework

In the rest of the paper, we present Fluid in Sec. 2, our implementation in Sec. 3, and demonstration plan in Sec. 4.

So in general it is just a software with the concept of blockchain.

learn the figure




Record the task copies by the smart contracts in Blockchain


  1. Submit tasks to the platform with requirements (e.g., expertise, ddl)
  2. transmit some credit (payment) that they are willing to pay from their credit contract to the platform’s credit contract


  1. decompose the raw tasks into atomic tasks
  2. generate a worker selection function
  3. chose the incentive function
  4. (Task content, worker selection function, incentive function) -> smart contract which will be published on the Blockchain



  1. Accept the task by transmitting required credit in the task contract

And the unqualified worker will be rejected by the worker selection function

Why the worker need to transmit required credit? And where is the required credit defined?

To mortgage the credit from the credit contract to the task contract

  1. submit answers to platform
  2. A transaction (including digest of the answer) (task <-> worker) will be generated and sent to Blockchain



  1. confirm the results, and send a completion record to the task contract
  2. choose to active zero-knowledge proof function for others to verify the completion of the task
  3. return the final result


Identity contract

Each user has a unique Blockchain node address.

Credit contract

record the credit and expertise of the user. ( a kind of digital token)

Represent reputation in different platforms, money, etc.

Credit could be transferred, mortgaged, extracted between authorized users.

Task contract


  1. task content
  2. basics of a task(type, description, deadline, requirements, etc.)
  3. global status
  4. current status
  5. corresponding requester
  6. worker
  7. crowdsourcing platform
  8. incentive function
  9. task pricing
  10. Reputation maintaining function
  11. zero-knowledge proof function (Zk-function)
  12. verify a task is actually done without exposing the results for privacy protection
  13. zk-SNARKs ⭐️⭐️ ( an algorithm )

After the task completion, the task contract and the credit contract will be updated.


  1. go-Ethereum
  2. OPQ-based method to decompose a task into several atomic tasks
  3. the incentive mechanism in [4] to determine the price of a task
  4. greedy-based method in [12] to speed up the task completion
  5. an Android application




  • task lifecycle simulation
  • credit contract checking