Research Article
PrivCrowd: A Secure Blockchain-Based Crowdsourcing Framework with Fine-Grained Worker Selection
Algorithm 2
The smart contract: CollectSol.
Input: This contract’s address ; worker’s public key ; workers’s certificate ; workers’s deposit ; task identifier ; solution evaluation function ; deadline of submission ; total reword ; reward per solution . | 1: while (getBalance() ) and is not expired do | 2: Upon receiving a signed submission from , parses the submission as (); | 3: ifthen | 4: continue; Certificate invalid or worker unregister | 5: end if | 6: ifthen | 7: continue; Submission's signature invalid | 8: end if | 9: if is not sufficient then | 10: continue; Worker's deposit is not sufficient | 11: end if | 12: if SNARK.Verifythen | 13: Send to the request ; Forward the solution to the requester | 14: transfer(); Pay the reward and refund the deposit | 15: UpdateProf();Invoke the smart contract UpdateProf | 16: end if | 17: end while | 18: if getBalance() then Refund residue money to the request | 19: transfer( | 20: ); | 21: end if | 22: return; |
|