ZebraLance:私人和匿名开放区块链上的众包知识


论文摘要

我们设计并实施了第一个私有和匿名分散的众包系统ZebraLancer,并克服了分散众包的两个基本挑战,即数据泄漏和身份泄露。首先,我们的外包验证方法解决了区块链透明度和数据机密性之间的紧张关系,这对于数据众包的基本实用程序至关重要。 ZebraLancer确保:(i)根据通过区块链发布任务时公布的政策,请求者支付的费用不会超过数据的价值; (ii)每个向区块链提交数据的众包工人,他们确实会根据政策获得付款;(iii)上述属性不仅没有中央仲裁者,而且没有将数据泄露给开放区块链。其次,一般区块链的透明度允许用户通过参与历史来推断有关工人和请求者的私人信息。另一方面,区块链允许匿名的特性将使恶意工作者能够多次提交以获得奖励。 ZebraLancer通过允许匿名请求/提交而不牺牲责任来克服这个问题。背后的想法是一个微妙的可链接性:如果一个工人提交两次任务,任何人都可以链接这两次提交,否则他保持匿名并且这些提交之间无连接。为了实现这种微妙的可链接性,我们提出了一种新颖的加密概念,即通用前缀可链接的匿名认证。我们注意到新的匿名认证方案可能在具有独立的通用的好处。最后,我们在常见的图像标注任务实现我们的协议,并将其部署在以太坊的测试网中。实验结果表明我们的协议适用于现有的真实区块链。

技术介绍

众包使互联网上的开放式协作成为可能。为了实现众包机制一般的解决方案是需要受信任的第三方来主持众包任务,以实现人群共享数据与奖励之间的公平交换;否则,激励机制的有效性可能受到所谓的“搭便车”和“虚假报告”的阻碍。但第三方有时会因自身利益产生不公正性,也会因单点故障而造成服务不可用。相比之下,开放的区块链是一个分布式、透明和不可变的“公告板”组织成一个块链。每个块中包含的消息可以是程序代码,其执行由所有P2P网络对等体强制执行和验证。从本质上讲,智能合约可以被视为“分散的计算机”,忠实地处理与指定任务相关的所有计算和消息传递。 在上面构建一个分散的众包平台变得很有吸引力。但基于区块链的众包系统需要平衡如下的关系:i)区块链透明度与数据机密性之间的紧张关系,ii)匿名与责任之间的紧张关系。


该论文建立如下两个模型。数字众包模型与安全模型。如上图所示数据众包模型中有四个角色,即请求者,工作者,平台和注册机构。由R唯一标识的请求者可以发布任务以从人群中收集一定数量的答案。在宣布任务时,请求者承诺制定具体的政策来激励员工做出贡献。具有唯一ID的工作人员提交他的答案并期望获得相应的奖励。平台是一种协助请求者和工作者之间交换的媒介,它既可以是受信任的一方,也可以是由同行网络模拟的。注册机构可以在验证和管理工作者/请求者的唯一身份方面发挥重要作用。安全模型主要关注了数据机密性、匿名性、针对恶意请求者的安全性、防范恶意工作者等方面。

该文在综合分析与探讨集中式众包系统、分散式众包系统、匿名式众包系统的优劣,结合负责任的匿名验证、可链接的群/环签名和保护隐私的智能合约提出了一个私有和匿名协议,以解决分散众包的关键挑战,同时不牺牲对“免费乘客”和“虚假记者”的安全性。众包程序将在现有的区块链网络上分散。更具体地说,这将将解决区块链带来的新隐私和匿名挑战。

系统将隐式地具有单独的注册服务,该服务在颁发证书之前验证每个参与者的唯一身份。这样的设置缓解了一些基本问题,即允许每个工人提交不超过固定数量k的答案。基本策略是让智能合约强制执行提交的答案与其相应奖励之间的公平交换,但不会向区块链透露任何数据或任何身份。

请求者首先将由她的预算编入智能合约中。她广播包含合同代码和预算的交易。一旦智能合约被包含在区块链中,就可以通过一个独特的区块链地址来引用,并且预算应该存入这个地址。在此之后,任何对贡献感兴趣的工人都可以通过指向合同地址的交易简单地提交他对区块链的回答。

整个协议必须保护答案的保密性,以确保不同工人的答案是独立的。因此,工作人员根据请求者的公钥加密答案。现在合同无法看到答案,因此无法计算相应的奖励。但是请求者可以检索所有加密的答案并在链外解密,并进一步学习他们应得的奖励。请求者必须正确地指示智能合约如何继续前进。具体而言,将利用Zk-SNARK的实用加密工具强制请求者证明:她确实遵循了预先指定的奖励政策来计算奖励。

本文作者提出了一个新的加密原语来解决匿名性和问责问题上的冲突。用户可以匿名地对消息进行身份验证,消息由固定长度的预定义和剩余部分组成。但是,如果两个经过身份验证的消息共享一个公共前缀,则任何人都可以判断它们是否由同一用户完成。此外,只要两个消息-认证对具有不同的前缀,就没有人可以链接他们。拥有这个新的原语,一个简单而直观的匿名但有问责的协议解决方案是让每个工作人员在加密的答案Ci被提交给任务合同C时,对消息行匿名认证。

最后,作者还通过构建验证其中零知识证明的通用算法来增强智能合约。特别是,当智能合约接收到关于奖励及其证明的指令时,将执行验证算法。验证算法的所有输入都是存储在开放区块链中的常识,例如预算,加密答案和加密公钥。如果不诚实的请求者报告错误的指令,则无法验证她的证据,合同只会丢弃该指令。更重要的是,如果智能合约在一定时限内没有得到正确的指示,它可以直接将预算作为惩罚直接传播给所有工人,这可以被视为预先指定的激励机制的一部分。通过这种方式,请求者不能通过偏离协议获得任何好处,并且协议将自我执行并适当和及时地响应,从而让每个工作者将获得预期的奖励。另一方面,不诚实的工人永远不会要求比他应该获得更多的奖励,因为奖励是由请求者自己计算的。

作者基于此协议,在以太坊上构建了名为ZebraLancer的系统,如下是其架构图。


本文的主要贡献:

1)提出了一种基于区块链的协议来实现分散的众包,其满足:(i)数据和奖励之间的公平交换(ii)数据机密性(iii)匿名和问责。

2)为了在保留问责制的同时实现上述匿名目标,论文提出,定义和构建一个新的加密原语,称为通用前缀可链接的匿名身份验证。在大多数情况下,用户可以在不链接的情况下验证消息并证明身份的有效性。任何人都可以链接两个经过身份验证的消息。

3)为了展示应用提出协议的可行性,作者实现了被称之为ZebraLancer的系统,以便在以太网之上进行常见的图像标注任务。密集型实验和绩效评估在以太坊测试网中进行。