CN112839046B - 基于区块链的可追踪的匿名众包方法及系统 - Google Patents
基于区块链的可追踪的匿名众包方法及系统 Download PDFInfo
- Publication number
- CN112839046B CN112839046B CN202110047214.4A CN202110047214A CN112839046B CN 112839046 B CN112839046 B CN 112839046B CN 202110047214 A CN202110047214 A CN 202110047214A CN 112839046 B CN112839046 B CN 112839046B
- Authority
- CN
- China
- Prior art keywords
- task
- user
- key
- processing
- crowdsourcing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于区块链的可追踪的匿名众包方法及系统,该方法包括以下步骤:初始化众包,通过注册机构生成主公钥和主私钥;注册,用户、任务请求方分别通过注册机构进行注册;发布众包任务,通过任务请求方将众包任务发送到区块链中;参与众包任务,用户发送提交结果;验证提交结果,对提交结果进行验证操作;追踪提交多次用户,验证者根据认证令牌检查用户是否提交多次,链接同一用户的提交结果,追踪提交多次用户的身份;分发奖励,对提交结果符合众包任务要求的用户进行奖励。该方法达到访问控制和任务保密性的同时,保证打开公平和交换公平,实现公开可追踪的追责机制,允许任何人追踪参与达到两次的用户,平衡隐私和可追责的关系。
Description
技术领域
本发明涉及可追踪的众包方法,尤其涉及一种基于区块链的可追踪的匿名众包方法及系统。
背景技术
传统的众包系统高度依赖于一个中心化的服务器,因此容易遭受单点故障、数据丢失、数据篡改等不可避免的问题;使用区块链实现去中心化的众包系统成为当前的研究趋势,通过区块链实现去中心化可以有效避免中心化模型带来的问题。实现隐私保护的众包系统,可以有效规避隐私泄露的风险。但是,匿名带来的问题是恶意用户会滥用匿名性而干扰正常的秩序,例如,提交多个结果,或伪造其他用户的结果。目前,部分基于可链接的匿名认证的方案可以检测到是否有用户提交两次,但不能进一步追踪到该用户的身份;有些基于群签名的方案,虽然可以追踪用户的身份,但是群管理员能追踪任意用户,削弱了整个方案的隐私保护效果。
当前如何平衡隐私和可追责的关系,并实现一定的访问控制功能,具有一定的实现难度,现有的实现隐私保护的区块链众包系统,虽然实现了一定的匿名性和可追踪性;但是现有技术仍无法实现具有细粒度访问控制的公开可追责的众包系统,无法在平衡隐私和可追责的关系上达到较好的效果。
发明内容
为了克服现有技术存在的缺陷与不足,本发明提出了一种基于区块链的可追踪的匿名众包方法,该方法只允许满足访问策略的用户参与任务,达到了访问控制的目的,同时,实现了公开可追踪的追责机制,允许任何人追踪参与达到两次的用户。
本发明的第二目的在于提出一种基于区块链的可追踪的匿名众包系统。
为了达到上述目的,本发明采用以下技术方案:
一种基于区块链的可追踪的匿名众包方法,包括以下步骤:
初始化众包,通过注册机构生成主公钥和主私钥;
注册,用户、任务请求方分别通过注册机构进行注册;所述用户设有多个;
发布众包任务,通过任务请求方将众包任务发送到区块链中;
参与众包任务,用户发送提交结果;
验证提交结果,对提交结果进行验证操作;
追踪提交多次用户,验证者根据认证令牌检查用户是否提交多次,链接同一用户的提交结果,追踪提交多次用户的身份;所述验证者为任意多个所述用户或所述任务请求方;
分发奖励,对提交结果符合众包任务要求的用户进行奖励。
作为优选的技术方案,所述初始化众包,包括以下步骤:
令CP=(CP.Setup,CP.KeyGen,CP.Encrypt,CP.Decrypt)为密文策略基于属性的加密(CP-ABE)处理,即CP处理;CP.Setup为CP处理的设置操作,用于初始化CP处理;CP.KeyGen为CP处理的秘钥生成操作,用于生成属性秘钥;CP.Encrypt是CP处理的加密操作,用于加密任务内容;CP.Decrypt是CP处理的解密操作,用于解密任务密文;
令TR=(TR.Setup,TR.UKG,TR.Ext,TR.Enc,TR.Dec)为时间释放加密(Timed-Release Encryption)处理,即TR处理;TR.Setup为TR处理的设置操作,用于初始化TR处理;TR.UKG为TR处理的秘钥生成操作,用于生成加解密的秘钥;TR.Ext为TR处理的时间释放秘钥生成操作,用于生成时间释放秘钥;TR.Enc为TR处理的加密操作,用于加密答案生成答案密文;TR.Dec为TR处理的解密操作,用于解密答案密文;
令ZK=(ZK.Setup,ZK.Prover,ZK.Verifier)为zk-SNARK零知识证明处理,即ZK处理;ZK.Setup为ZK处理的设置操作,用于初始化ZK处理;ZK.Prover为ZK处理的证明操作,用于生成认证令牌中的证明;ZK.Verifier为ZK处理的验证操作,用于验证认证令牌;
令Λ为访问策略,S为属性集合,定义Λ(S)=1为S满足Λ。
作为优选的技术方案,所述通过注册机构生成主公钥和主私钥,包括以下步骤:
执行所述CP处理的设置操作,根据安全参数和属性空间描述生成第一公开参数和主私钥;
执行所述ZK处理的设置操作,根据安全参数和第一NP语言生成公共参考字符串;
选择两个不同的哈希函数,即第一哈希函数和第二哈希函数;
发送一笔包含主公钥的第一交易到区块链,同时注册机构保留所述主私钥,所述主公钥包括所述第一公开参数、所述公共参考字符串、所述第一哈希函数和所述第二哈希函数。
作为优选的技术方案,所述用户、任务请求方分别通过注册机构进行注册,包括以下步骤:
用户注册:用户i将用户i的属性集合发送给注册机构,注册机构执行所述CP处理的秘钥生成操作,根据所述主私钥和所述用户i的属性集合得到对应的用户属性秘钥,并将所述用户属性秘钥发送给所述用户i,其中i是正整数;
任务请求方注册:任务请求方将任务请求方的属性集合发送给注册机构执行所述CP处理的秘钥生成操作,根据所述主私钥和所述任务请求方的属性集合得到任务请求方属性秘钥,将所述任务请求方属性秘钥发送给所述任务请求方。
作为优选的技术方案,所述发布众包任务,包括以下步骤:
设定众包任务的明文内容和访问策略,所述众包任务设置有任务编号;
执行CP处理的加密操作,根据第一公开参数、任务的明文内容和访问策略生成任务密文;
执行TR处理的设置操作,根据安全参数生成第二公开参数和TR处理私钥;
执行TR处理的秘钥生成操作,根据第二公开参数生成加密秘钥和解密秘钥;
设定释放时间,执行TR处理的时间释放秘钥生成操作,根据第二公开参数、TR处理私钥和释放时间生成时间释放秘钥;
设置众包任务的截止时间,且保证截止时间在释放时间之前;
创建一个任务请求方区块链账户地址,设定奖励策略、押金,并编译一个智能合约,所述智能合约包括任务编号、访问策略、任务密文、截止时间、第二公开参数、加密秘钥、释放时间、奖励策略、押金;
构建一笔包含任务信息的第二交易,并通过所述任务请求方区块链账户地址将所述第二交易发送到区块链,所述任务信息包括任务编号、访问策略、任务密文、截止时间和智能合约代码。
作为优选的技术方案,所述用户提交结果,包括以下步骤:
当用户i捕捉到所述任务信息时,检查合约内容,判断自己是否符合条件,即验证是否满足Λ(Si)=1,其中Λ表示访问策略,Si表示用户i的属性集合,i为正整数;
当判断结果满足访问策略Λ时,进行提交结果:执行CP处理的解密操作,根据第一公开参数、任务密文和用户属性秘钥得到任务的明文内容;
根据任务生成答案,执行TR处理的加密操作,根据第二公开参数、加密秘钥、释放时间和答案得到答案密文;
对第一NP语言:
执行ZK处理的证明操作,根据声明x、秘密w和公共参考字符串crs生成认证令牌中的证明η;
构造所述认证令牌π=(a,b,η),其中a表示认证令牌中的第一标签,b表示认证令牌中的第二标签;
生成用户i提交结果的区块链地址,构建一笔包含用户i密文认证令牌对(Ci,π)的第三交易,并通过所述用户i提交结果的区块链地址将该第三交易发送到区块链。
作为优选的技术方案,所述验证提交结果,包括以下步骤:
基于智能合约收集在截止时间前发送的所有答案,并执行ZK处理的验证操作,根据声明、认证令牌和公共参考字符串输出第一验证标识或第二验证标识,所述第一验证标识表示提交的答案有效,所述第二验证标识表示提交的答案无效;
筛选出输出为第一验证标识的有效答案。
作为优选的技术方案,所述追踪提交多次用户,具体包括以下步骤:
链接:令C1、C1’分别为第一答案密文、第二答案密文,π1、π1’分别对应第一认证令牌、第二认证令牌;其中第一认证令牌π1=(a1,b1,η1),第二认证令牌π1’=(a1’,b1’,η1’),a1表示第一认证令牌中的第一标签,b1表示第一认证令牌中的第二标签,η1表示第一认证令牌中的证明,a1’表示第二认证令牌中的第一标签,b1’表示第二认证令牌中的第二标签,η1’表示第二认证令牌中的证明;
根据在验证操作中输出为所述第一验证标识的有效答案,令密文认证令牌对包括答案密文和认证令牌,令(C1,π1)、(C1’,π1’)为链接到的两组密文认证令牌对,检查每两个认证令牌中对应的第一标签是否相等,即a1与a1’是否相等;
当a1与a1’相等时,则表示两个认证令牌由同一用户生成;否则表示两个认证令牌由不同用户生成;
追踪:根据所述链接中筛选出认证令牌中对应的第一标签相等的密文认证令牌对,通过每两个认证令牌中对应的第二标签b1、b1’得到提交多次用户的身份信息id,所述用户的身份信息id根据id=(b1’-b1)/(C1’-C1)生成得到。
作为优选的技术方案,所述分发奖励,包括以下步骤:
基于智能合约筛选出符合奖励发放条件的所有密文认证令牌对,所述奖励发放条件为提交结果有效且用户提交结果的次数为一次;
任务请求方执行TR处理的解密操作,解密所有筛选出来的有效密文,得到对应的明文答案;
对于第二NP语言:
任务请求方生成了一个零知识证明πW,并利用任务请求方区块链账户地址将包含(W,πW)的第四交易发送到区块链,其中W表示分配给提供有效答案的用户的奖励的集合,C*表示有效答案的密文的集合,Params表示包含了所有的公开参数的参数集合,Params包括截止时间τ、第二公开参数tpk、加密秘钥epk、释放时间t、奖励策略P、押金主公钥mpk,esk表示解密秘钥,st表示时间释放秘钥,tpk表示第二公开参数,Ci表示答案密文,∧表示逻辑与符号,i、n均为正整数;
基于智能合约验证零知识证明πW,若验证通过,则将对应的奖励分发给每个对应着有效答案的区块链地址,即将分发给用户i提交结果的区块链地址,然后将分发奖励后的剩余部分退还给任务请求方区块链账户地址;否则,将押金平均分发给每个有效答案对应的用户提交结果的区块链地址。
为了达到上述第二目的,本发明采用以下技术方案:
一种基于区块链的可追踪的匿名众包系统,包括注册机构、任务请求方、用户、众包初始化模块、注册模块、众包任务发布模块、众包任务参与模块、提交结果验证模块、提交多次用户追踪模块、奖励分发模块,所述用户设有多个;
所述众包初始化模块通过注册机构生成主公钥和主私钥;
所述注册模块用于用户、任务请求方的注册;
所述众包任务发布模块通过任务请求方将众包任务发送到区块链中;
所述众包任务参与模块用于用户发送提交结果;
所述提交结果验证模块用于对提交结果进行验证操作;
所述提交多次用户追踪模块用于根据认证令牌检查用户是否提交多次,链接同一用户的提交结果,追踪提交多次用户的身份;
所述奖励分发模块用于对提交结果符合众包任务要求的用户进行奖励。
本发明与现有技术相比,具有如下优点和有益效果:
(1)本发明采用了密文策略基于属性加密处理,通过设置访问控制机制达到对用户的访问控制,保证了众包任务内容是加密的,只有授权的用户才可获得明文的任务内容,达到了只允许属性满足访问策略的用户才能解密已加密的任务内容的效果,即实现了众包任务的秘密性和访问控制功能。
(2)本发明根据zk-SNARK零知识证明处理,保证了在参与众包的过程中不泄露用户的敏感身份信息,达到了保证用户匿名性的效果;同时,根据时间释放加密处理,保证了在一定时间内提交的结果是加密的,且在一定时间之后才可以解密,达到了可以保证用户所提交结果的秘密性和打开答案时的公平性的效果。
(3)本发明通过公开可追责的机制实现了允许任何人在不借助权威机构的帮助下,识别来自同一用户的两个或多个提交结果的效果,同时,达到允许任何人识别出该用户身份的目的,即允许所有人检测多次提交的情况,并公开追踪该用户的身份,实现了访问控制下的公开可追踪的效果。
(4)本发明采用了打开公平和交换公平的两个公平机制,解决了当前众包系统只保证交换公平而未保证打开公平的技术问题,通过时间释放加密处理使得任意的提交结果不能提前打开以保证打开的公平性,通过设置奖励策略使得每个用户所提交的有效结果都能获得对应的奖励以保证交换的公平性。
附图说明
图1为本发明实施例1中基于区块链的可追踪的匿名众包方法的流程图;
图2为本发明实施例2中基于区块链的可追踪的匿名众包系统的结构示意图。
具体实施方式
在本公开的描述中,需要说明的是,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现在该词前面的元素或者物件涵盖出现在该词后面列举的元素或者物件及其等同,而不排除其他元素或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例
如图1所示,本实施例中提供了一种基于区块链的可追踪的匿名众包方法,该方法涉及三个参与实体,包括注册机构,任务请求方以及用户;该方法包括以下步骤:
初始化众包,通过注册机构生成主公钥和主私钥;
注册,用户、任务请求方分别通过注册机构进行注册;用户设有多个;
发布众包任务,通过任务请求方将众包任务发送到区块链中;
参与众包任务,用户发送提交结果;
验证提交结果,对提交结果进行验证操作;
追踪提交多次用户,验证者根据认证令牌检查用户是否提交多次,链接同一用户的提交结果,追踪提交多次用户的身份;验证者为任意多个用户或任务请求方;
分发奖励,对提交结果符合众包任务要求的用户进行奖励。
在本实施例中,初始化众包,包括以下步骤:
令CP=(CP.Setup,CP.KeyGen,CP.Encrypt,CP.Decrypt)为密文策略基于属性的加密(CP-ABE)处理,即CP处理;其中,CP.Setup为CP处理的设置操作,用于初始化CP处理,具体为CP.Setup(λ,U),输入安全参数λ和属性空间描述U,输出第一公开参数cpk和主私钥csk;CP.KeyGen为CP处理的秘钥生成操作,用于生成属性秘钥,具体包括CP.KeyGen(csk,Si)和CP.KeyGen(csk,SR),CP.KeyGen(csk,Si)为输入主私钥csk和用户i的属性集合Si={id,s1,...,sn},输出用户属性秘钥skSi,CP.KeyGen(csk,SR)为输入主私钥csk和任务请求方的属性集合SR,输出任务请求方属性秘钥skR;CP.Encrypt是CP处理的加密操作,用于加密任务内容,具体为输入第一公开参数cpk、任务的明文内容和访问策略Λ,输出任务密文c;CP.Decrypt是CP处理的解密操作,用于解密任务密文,具体为CP.Decrypt(cpk,c,skSi),输入第一公开参数cpk、任务密文c和用户属性秘钥输出任务的明文内容或错误符号⊥,其中i是正整数,错误符号用于标识解密错误的情况。
令TR=(TR.Setup,TR.UKG,TR.Ext,TR.Enc,TR.Dec)为时间释放加密(Timed-Release Encryption)处理,即TR处理;TR.Setup为TR处理的设置操作,用于初始化TR处理,具体为TR.Setup(λ),输入安全参数λ,输出第二公开参数tpk和TR处理私钥tsk;TR.UKG为TR处理的秘钥生成操作,用于生成加解密的秘钥,具体为TR.UKG(tpk),输入第二公开参数tpk,输出加密秘钥epk和解密秘钥esk;TR.Ext为TR处理的时间释放秘钥生成操作,用于生成时间释放秘钥,具体为TR.Ext(tpk,tsk,t),输入第二公开参数tpk、TR处理私钥tsk和释放时间t,输出时间释放秘钥st;TR.Enc为TR处理的加密操作,用于加密答案,具体为TR.Enc(tpk,epk,t,Ai),输入第二公开参数tpk、加密秘钥epk、释放时间t和答案Ai,输出答案密文Ci;TR.Dec为TR处理的解密操作,用于解密答案密文,具体为TR.Dec(tpk,esk,st,Ci),输入第二公开参数tpk、解密秘钥esk、时间释放秘钥st和答案密文Ci,输出答案Ai。
令ZK=(ZK.Setup,ZK.Prover,ZK.Verifier)为zk-SNARK零知识证明处理,即ZK处理;其中,ZK.Setup为ZK处理的设置操作,用于初始化ZK处理,具体为ZK.Setup(λ,£),输入安全参数λ和语言£,输出公共参考字符串crs;ZK.Prover为ZK处理的证明操作,用于生成认证令牌中的证明,具体为ZK.Prover(x,w,crs),输入声明x、秘密w和公共参考字符串crs,输出证明η;ZK.Verifier为ZK处理的验证操作,用于验证认证令牌,具体为ZK.Verifier(x,π,crs),输入声明x、认证令牌π和公共参考字符串crs,输出0或1。
令Λ为访问策略,S为属性集合,定义Λ(S)=1为S满足Λ。
在本实施例中,为了打开公平,使任务请求方不能提前打开某一个答案,防止出现用户偷窃别人答案的行为,通过TR处理的加密操作即TR.Enc(tpk,epk,t,Ai),TR处理的解密操作在释放时间t之前解密不了任何一个密文,即TR处理的解密操作只有在释放时间t之后才可以解密。
在本实施例中,通过注册机构生成主公钥和主私钥,包括以下步骤:
执行CP.Setup(λ,U),根据安全参数λ和属性空间描述U生成第一公开参数cpk和主私钥csk;
执行ZK.Setup(λ,£),根据安全参数λ和第一NP语言£生成公共参考字符串crs;
选择两个不同的哈希函数H1:{0,1}*×{0,1}*→U,H2:{0,1}*×{0,1}*→U,H1、H2分别表示第一哈希函数、第二哈希函数;
发送一笔包含主公钥mpk的第一交易到区块链,同时注册机构保留主私钥csk,其中主公钥mpk包括cpk、crs、H1和H2。
在本实施例中,用户、任务请求方分别通过注册机构进行注册,包括以下步骤:
任务请求方注册:任务请求方将任务请求方的属性集合SR发送给注册机构执行CP.KeyGen(csk,SR)得到对应的任务请求方属性秘钥skR,将任务请求方属性秘钥skR发送给该任务请求方。
在本实施例中,发布众包任务,包括以下步骤:
执行TR.Setup(λ),根据安全参数λ生成第二公开参数tpk和TR处理私钥tsk;
执行TR.UKG(tpk)根据第二公开参数tpk生成加密秘钥epk和解密秘钥esk;
设定释放时间t,执行TR.Ext(tpk,tsk,t),根据第二公开参数tpk、TR处理私钥tsk和释放时间t生成时间释放秘钥st;
设置众包任务的截止时间τ,且保证τ在t之前;
创建一个任务请求方区块链账户地址αR,设定奖励策略P、押金并编译一个智能合约,该智能合约包含了任务编号Tid、访问策略Λ、任务密文c、截止时间τ、第二公开参数tpk、加密秘钥epk、释放时间t、奖励策略P、押金等信息;
构建一笔包含任务信息的第二交易,并通过任务请求方区块链账户地址αR将该第二交易发送到区块链,其中任务信息包括任务编号Tid、访问策略Λ、任务密文c、截止时间τ和智能合约代码。
在本实施例中,为了交换公平,根据奖励策略P进行奖励,当获得有效答案后进行分发奖励,使得有效答案和奖励达成交换。
在本实施例中,用户提交结果,包括以下步骤:
用户i捕捉到众包任务的信息后,即第二交易的任务信息,检查合约内容,判断自己是否符合条件,即验证是否满足Λ(Si)=1;
当判断结果满足访问策略Λ时,进行提交结果:
根据任务生成答案Ai,执行TR.Enc(tpk,epk,t,Ai),根据第二公开参数tpk、加密秘钥epk、释放时间t和答案Ai得到答案密文Ci,
对第一NP语言:
执行ZK.Prover(x,w,crs),根据声明x、秘密w和公共参考字符串crs生成认证令牌中的证明η;
构造认证令牌π=(a,b,η),其中a表示认证令牌中的第一标签,b表示认证令牌中的第二标签,η表示认证令牌中的证明;
生成用户i提交结果的区块链地址αi,构建一笔包含用户i密文认证令牌对(Ci,π)的第三交易,并通过用户i提交结果的区块链地址αi将该第三交易发送到区块链。
在本实施例中,验证提交结果,包括以下步骤:基于智能合约收集在截止时间τ前发送的所有答案,并执行ZK.Verifier(x,π,crs),根据声明x、认证令牌π和公共参考字符串crs输出1或0,其中1表示提交的答案有效,0表示提交的答案无效;
筛选出输出为1的有效答案。
在本实施例中,追踪提交多次用户,具体包括以下步骤:
链接:令C1、C1’分别为第一答案密文、第二答案密文,π1、π1’分别对应第一认证令牌、第二认证令牌;其中第一认证令牌π1=(a1,b1,η1),第二认证令牌π1’=(a1’,b1’,η1’),a1表示第一认证令牌中的第一标签,b1表示第一认证令牌中的第二标签,η1表示第一认证令牌中的证明,a1’表示第二认证令牌中的第一标签,b1’表示第二认证令牌中的第二标签,η1’表示第二认证令牌中的证明;
根据验证操作中筛选出输出为1的有效答案,令密文认证令牌对包括答案密文和认证令牌,令(C1,π1)、(C1’,π1’)为链接到的两组密文认证令牌对,检查每两个认证令牌中对应的第一标签是否相等,即a1与a1’是否相等;
当a1与a1’相等时,则表示两个认证令牌由同一用户生成;否则表示两个认证令牌由不同用户生成;
追踪:根据链接中筛选出认证令牌中对应的第一标签相等的密文认证令牌对,通过每两个认证令牌中对应的第二标签b1、b1’得到提交多次用户的身份信息id,其中用户的身份信息id根据id=(b1’-b1)/(C1’-C1)生成得到。
在本实施例中,分发奖励,包括以下步骤:
基于智能合约筛选出符合奖励发放条件的所有密文认证令牌对,其中奖励发放条件为提交结果有效且用户提交结果的次数为一次;在本实施例中,为了方便分发奖励,构造三元组进行存储,该三元组按照(答案密文,认证令牌,区块链地址)的形式排列;
任务请求方执行TR.Dec(tpk,esk,st,Ci),解密所有筛选出来的有效密文,得到对应的明文答案;
对于第二NP语言:
任务请求方生成了一个零知识证明πW,并利用任务请求方区块链账户地址αR将包含(W,πW)的第四交易发送到区块链,其中W表示分配给提供有效答案的用户的奖励的集合,具体为C*表示有效答案的密文的集合,Params表示包含了所有的公开参数的参数集合,Params包括截止时间τ、第二公开参数tpk、加密秘钥epk、释放时间t、奖励策略P、押金主公钥mpk;∧表示逻辑与符号;
基于智能合约验证零知识证明πW,若验证通过,则将对应的奖励分发给每个对应着有效答案的区块链地址,即将分发给对应的用户i提交结果的区块链地址αi,然后将分发奖励后的剩余部分退还给任务请求方区块链账户地址αR;否则,将押金平均分发给每个有效答案对应的用户提交结果的区块链地址。
实施例2
如图2所示,本实施例中提供了一种基于区块链的可追踪的匿名众包系统,该系统涉包括注册机构、任务请求方、用户、众包初始化模块、注册模块、众包任务发布模块、众包任务参与模块、提交结果验证模块、提交多次用户追踪模块、奖励分发模块,用户设有多个;
众包初始化模块通过注册机构生成主公钥和主私钥;
注册模块用于用户、任务请求方的注册;
众包任务发布模块通过任务请求方将众包任务发送到区块链中;
众包任务参与模块用于用户发送提交结果;
提交结果验证模块用于对提交结果进行验证操作;
提交多次用户追踪模块用于根据认证令牌检查用户是否提交多次,链接同一用户的提交结果,追踪提交多次用户的身份;
奖励分发模块用于对提交结果符合众包任务要求的用户进行奖励。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (8)
1.一种基于区块链的可追踪的匿名众包方法,其特征在于,包括以下步骤:
初始化众包,通过注册机构生成主公钥和主私钥;
所述初始化众包,包括以下步骤:
令CP=(CP.Setup,CP.KeyGen,CP.Encrypt,CP.Decrypt)为密文策略基于属性的加密处理,即CP处理;CP.Setup为CP处理的设置操作,用于初始化CP处理;CP.KeyGen为CP处理的秘钥生成操作,用于生成属性秘钥;CP.Encrypt是CP处理的加密操作,用于加密任务内容;CP.Decrypt是CP处理的解密操作,用于解密任务密文;
令TR=(TR.Setup,TR.UKG,TR.Ext,TR.Enc,TR.Dec)为时间释放加密处理,即TR处理;TR.Setup为TR处理的设置操作,用于初始化TR处理;TR.UKG为TR处理的秘钥生成操作,用于生成加解密的秘钥;TR.Ext为TR处理的时间释放秘钥生成操作,用于生成时间释放秘钥;TR.Enc为TR处理的加密操作,用于加密答案生成答案密文;TR.Dec为TR处理的解密操作,用于解密答案密文;
令ZK=(ZK.Setup,ZK.Prover,ZK.Verifier)为zk-SNARK零知识证明处理,即ZK处理;ZK.Setup为ZK处理的设置操作,用于初始化ZK处理;ZK.Prover为ZK处理的证明操作,用于生成认证令牌中的证明;ZK.Verifier为ZK处理的验证操作,用于验证认证令牌;
执行所述CP处理的设置操作,根据安全参数和属性空间描述生成第一公开参数和主私钥;
执行所述ZK处理的设置操作,根据安全参数和第一NP语言生成公共参考字符串;
令Λ为访问策略,S为属性集合,定义Λ(S)=1为S满足Λ;
注册,用户、任务请求方分别通过注册机构进行注册;所述用户设有多个;
用户注册:用户i将用户i的属性集合发送给注册机构,注册机构执行所述CP处理的秘钥生成操作,根据所述主私钥和所述用户i的属性集合得到对应的用户属性秘钥,并将所述用户属性秘钥发送给所述用户i,其中i是正整数;
任务请求方注册:任务请求方将任务请求方的属性集合发送给注册机构执行所述CP处理的秘钥生成操作,根据所述主私钥和所述任务请求方的属性集合得到任务请求方属性秘钥,将所述任务请求方属性秘钥发送给所述任务请求方;
发布众包任务,通过任务请求方将众包任务发送到区块链中,设定众包任务的明文内容和访问策略,所述众包任务设置有任务编号;
执行CP处理的加密操作,根据第一公开参数、任务的明文内容和访问策略生成任务密文;
执行TR处理的设置操作,根据安全参数生成第二公开参数和TR处理私钥;
执行TR处理的秘钥生成操作,根据第二公开参数生成加密秘钥和解密秘钥;
设定释放时间,执行TR处理的时间释放秘钥生成操作,根据第二公开参数、TR处理私钥和释放时间生成时间释放秘钥;
设置众包任务的截止时间,且保证截止时间在释放时间之前;
创建一个任务请求方区块链账户地址,设定奖励策略、押金,并编译一个智能合约;
参与众包任务,用户发送提交结果;
验证提交结果,对提交结果进行验证操作;
追踪提交多次用户,验证者根据认证令牌检查用户是否提交多次,链接同一用户的提交结果,追踪提交多次用户的身份;所述验证者为任意多个所述用户或所述任务请求方;
分发奖励,对提交结果符合众包任务要求的用户进行奖励。
2.根据权利要求1所述的基于区块链的可追踪的匿名众包方法,其特征在于,所述通过注册机构生成主公钥和主私钥,包括以下步骤:
选择两个不同的哈希函数,即第一哈希函数和第二哈希函数;
发送一笔包含主公钥的第一交易到区块链,同时注册机构保留所述主私钥,所述主公钥包括所述第一公开参数、所述公共参考字符串、所述第一哈希函数和所述第二哈希函数。
3.根据权利要求1所述的基于区块链的可追踪的匿名众包方法,其特征在于,所述发布众包任务,还包括以下步骤:
构建一笔包含任务信息的第二交易,并通过所述任务请求方区块链账户地址将所述第二交易发送到区块链,所述任务信息包括任务编号、访问策略、任务密文、截止时间和智能合约代码;
所述智能合约包括任务编号、访问策略、任务密文、截止时间、第二公开参数、加密秘钥、释放时间、奖励策略、押金。
4.根据权利要求3所述的基于区块链的可追踪的匿名众包方法,其特征在于,所述用户提交结果,包括以下步骤:
当用户i捕捉到所述任务信息时,检查合约内容,判断自己是否符合条件,即验证是否满足Λ(Si)=1,其中Si表示用户i的属性集合,i为正整数;
当判断结果满足访问策略Λ时,进行提交结果:执行CP处理的解密操作,根据第一公开参数、任务密文和用户属性秘钥得到任务的明文内容;
根据任务生成答案,执行TR处理的加密操作,根据第二公开参数、加密秘钥、释放时间和答案得到答案密文;
其中a表示认证令牌中的第一标签,b表示认证令牌中的第二标签;
令x=(Tid||Ci,Λ,a,b,mpk)为一个声明,为一个证据,mpk为主公钥,Tid表示任务编号,表示用户属性秘钥,id表示用户身份信息,Ci表示答案密文,||表示连接符,H1、H2分别表示第一哈希函数、第二哈希函数;
对第一NP语言:
执行ZK处理的证明操作,根据声明x、证据w和公共参考字符串crs生成认证令牌中的证明η;
构造所述认证令牌π=(a,b,η);
生成用户i提交结果的区块链地址,构建一笔包含用户i密文认证令牌对(Ci,π)的第三交易,并通过所述用户i提交结果的区块链地址将该第三交易发送到区块链。
5.根据权利要求1所述的基于区块链的可追踪的匿名众包方法,其特征在于,所述验证提交结果,包括以下步骤:
基于智能合约收集在截止时间前发送的所有答案,并执行ZK处理的验证操作,根据声明、认证令牌和公共参考字符串输出第一验证标识或第二验证标识,所述第一验证标识表示提交的答案有效,所述第二验证标识表示提交的答案无效;
筛选出输出为第一验证标识的有效答案。
6.根据权利要求5所述的基于区块链的可追踪的匿名众包方法,其特征在于,所述追踪提交多次用户,具体包括以下步骤:
链接:令C1、C1’分别为第一答案密文、第二答案密文,π1、π1’分别对应第一认证令牌、第二认证令牌;其中第一认证令牌π1=(a1,b1,η1),第二认证令牌π1’=(a1’,b1’,η1’),a1表示第一认证令牌中的第一标签,b1表示第一认证令牌中的第二标签,η1表示第一认证令牌中的证明,a1’表示第二认证令牌中的第一标签,b1’表示第二认证令牌中的第二标签,η1’表示第二认证令牌中的证明;
根据在验证操作中输出为所述第一验证标识的有效答案,令密文认证令牌对包括答案密文和认证令牌,令(C1,π1)、(C1’,π1’)为链接到的两组密文认证令牌对,检查每两个认证令牌中对应的第一标签是否相等,即a1与a1’是否相等;
当a1与a1’相等时,则表示两个认证令牌由同一用户生成;否则表示两个认证令牌由不同用户生成;
追踪:根据所述链接筛选出认证令牌中对应的第一标签相等的密文认证令牌对,通过每两个认证令牌中对应的第二标签b1、b1’得到提交多次用户的身份信息id,所述用户的身份信息id根据id=(b1’-b1)/(C1’-C1)生成得到。
7.根据权利要求1所述的基于区块链的可追踪的匿名众包方法,其特征在于,所述分发奖励,包括以下步骤:
基于智能合约筛选出符合奖励发放条件的所有密文认证令牌对,所述奖励发放条件为提交结果有效且用户提交结果的次数为一次;
任务请求方执行TR处理的解密操作,解密所有筛选出来的有效密文,得到对应的明文答案;
对于第二NP语言:
任务请求方生成了一个零知识证明πW,并利用任务请求方区块链账户地址将包含(W,πW)的第四交易发送到区块链,其中W表示分配给提供有效答案的用户的奖励的集合,C*表示有效答案的密文的集合,Params表示包含了所有的公开参数的参数集合,Params包括截止时间τ、第二公开参数tpk、加密秘钥epk、释放时间t、奖励策略P、押金主公钥mpk,esk表示解密秘钥,st表示时间释放秘钥,Ci表示答案密文,^表示逻辑与符号,i、n均为正整数;
8.一种基于区块链的可追踪的匿名众包系统,其特征在于,包括注册机构、任务请求方、用户、众包初始化模块、注册模块、众包任务发布模块、众包任务参与模块、提交结果验证模块、提交多次用户追踪模块、奖励分发模块,所述用户设有多个;
所述众包初始化模块通过注册机构生成主公钥和主私钥;
初始化众包,包括:
令CP=(CP.Setup,CP.KeyGen,CP.Encrypt,CP.Decrypt)为密文策略基于属性的加密处理,即CP处理;CP.Setup为CP处理的设置操作,用于初始化CP处理;CP.KeyGen为CP处理的秘钥生成操作,用于生成属性秘钥;CP.Encrypt是CP处理的加密操作,用于加密任务内容;CP.Decrypt是CP处理的解密操作,用于解密任务密文;
令TR=(TR.Setup,TR.UKG,TR.Ext,TR.Enc,TR.Dec)为时间释放加密处理,即TR处理;TR.Setup为TR处理的设置操作,用于初始化TR处理;TR.UKG为TR处理的秘钥生成操作,用于生成加解密的秘钥;TR.Ext为TR处理的时间释放秘钥生成操作,用于生成时间释放秘钥;TR.Enc为TR处理的加密操作,用于加密答案生成答案密文;TR.Dec为TR处理的解密操作,用于解密答案密文;
令ZK=(ZK.Setup,ZK.Prover,ZK.Verifier)为zk-SNARK零知识证明处理,即ZK处理;ZK.Setup为ZK处理的设置操作,用于初始化ZK处理;ZK.Prover为ZK处理的证明操作,用于生成认证令牌中的证明;ZK.Verifier为ZK处理的验证操作,用于验证认证令牌;
执行所述CP处理的设置操作,根据安全参数和属性空间描述生成第一公开参数和主私钥;
执行所述ZK处理的设置操作,根据安全参数和第一NP语言生成公共参考字符串;
令Λ为访问策略,S为属性集合,定义Λ(S)=1为S满足Λ;
所述注册模块用于用户、任务请求方的注册;
用户注册:用户i将用户i的属性集合发送给注册机构,注册机构执行所述CP处理的秘钥生成操作,根据所述主私钥和所述用户i的属性集合得到对应的用户属性秘钥,并将所述用户属性秘钥发送给所述用户i,其中i是正整数;
任务请求方注册:任务请求方将任务请求方的属性集合发送给注册机构执行所述CP处理的秘钥生成操作,根据所述主私钥和所述任务请求方的属性集合得到任务请求方属性秘钥,将所述任务请求方属性秘钥发送给所述任务请求方;
所述众包任务发布模块通过任务请求方将众包任务发送到区块链中,设定众包任务的明文内容和访问策略,所述众包任务设置有任务编号;
执行CP处理的加密操作,根据第一公开参数、任务的明文内容和访问策略生成任务密文;
执行TR处理的设置操作,根据安全参数生成第二公开参数和TR处理私钥;
执行TR处理的秘钥生成操作,根据第二公开参数生成加密秘钥和解密秘钥;
设定释放时间,执行TR处理的时间释放秘钥生成操作,根据第二公开参数、TR处理私钥和释放时间生成时间释放秘钥;
设置众包任务的截止时间,且保证截止时间在释放时间之前;
创建一个任务请求方区块链账户地址,设定奖励策略、押金,并编译一个智能合约;
所述众包任务参与模块用于用户发送提交结果;
所述提交结果验证模块用于对提交结果进行验证操作;
所述提交多次用户追踪模块用于根据认证令牌检查用户是否提交多次,链接同一用户的提交结果,追踪提交多次用户的身份;
所述奖励分发模块用于对提交结果符合众包任务要求的用户进行奖励。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110047214.4A CN112839046B (zh) | 2021-01-14 | 2021-01-14 | 基于区块链的可追踪的匿名众包方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110047214.4A CN112839046B (zh) | 2021-01-14 | 2021-01-14 | 基于区块链的可追踪的匿名众包方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112839046A CN112839046A (zh) | 2021-05-25 |
CN112839046B true CN112839046B (zh) | 2022-09-27 |
Family
ID=75928164
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110047214.4A Active CN112839046B (zh) | 2021-01-14 | 2021-01-14 | 基于区块链的可追踪的匿名众包方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112839046B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113411384B (zh) * | 2021-06-10 | 2022-09-27 | 华中科技大学 | 针对物联网数据安全共享过程中隐私保护的系统及方法 |
CN114826572A (zh) * | 2022-03-31 | 2022-07-29 | 西安电子科技大学 | 支持属性隐私保护的去中心化众包方法、系统及终端 |
CN116015667B (zh) * | 2022-12-05 | 2024-05-07 | 暨南大学 | 基于区块链访问可控的公开可追责匿名认证方法、系统和介质 |
CN117150518A (zh) * | 2023-08-04 | 2023-12-01 | 中国移动通信集团四川有限公司 | 一种通信运营商数据安全加密方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109785494A (zh) * | 2018-12-21 | 2019-05-21 | 暨南大学 | 基于区块链的可追踪的匿名电子投票方法 |
CN110224993A (zh) * | 2019-05-16 | 2019-09-10 | 暨南大学 | 基于区块链的可追责匿名电子投票方法及系统 |
CN111131508A (zh) * | 2019-12-31 | 2020-05-08 | 布比(北京)网络技术有限公司 | 区块链众包任务的执行方法、系统和计算机设备 |
WO2020216858A1 (en) * | 2019-04-24 | 2020-10-29 | Sony Corporation | Blockchain-based crowdsourcing |
CN112187712A (zh) * | 2020-08-18 | 2021-01-05 | 西安电子科技大学 | 一种去中心移动众包中对信任的匿名认证方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11271718B2 (en) * | 2018-09-12 | 2022-03-08 | Bitclave Pte. Ltd. | Systems and methods for linking anonymized user activities while preserving strong privacy guarantees |
CN110069345B (zh) * | 2019-04-23 | 2023-06-16 | 江苏大学 | 基于区块链的众包资源分布式匿名配给方法及其配给系统 |
CN111369319B (zh) * | 2020-03-04 | 2024-02-23 | 江苏大学 | 一种基于区块链的众包物流派送调度系统及其方法 |
-
2021
- 2021-01-14 CN CN202110047214.4A patent/CN112839046B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109785494A (zh) * | 2018-12-21 | 2019-05-21 | 暨南大学 | 基于区块链的可追踪的匿名电子投票方法 |
WO2020216858A1 (en) * | 2019-04-24 | 2020-10-29 | Sony Corporation | Blockchain-based crowdsourcing |
CN110224993A (zh) * | 2019-05-16 | 2019-09-10 | 暨南大学 | 基于区块链的可追责匿名电子投票方法及系统 |
CN111131508A (zh) * | 2019-12-31 | 2020-05-08 | 布比(北京)网络技术有限公司 | 区块链众包任务的执行方法、系统和计算机设备 |
CN112187712A (zh) * | 2020-08-18 | 2021-01-05 | 西安电子科技大学 | 一种去中心移动众包中对信任的匿名认证方法及系统 |
Non-Patent Citations (3)
Title |
---|
"A blockchain based access control framework for the security and privacy of IoT with strong anonymity unlinkability and intractability guarantees.";Ouaddah, Aafaf.;《Advances in Computers》;20191230;第115卷;第211-258页 * |
"LaT-Voting: Traceable Anonymous E-Voting on Blockchain.";Li, Peng, and Junzuo Lai.;《International Conference on Network and System Security》;20191210;第234-254页 * |
基于属性加密的区块链数据溯源算法;田有亮等;《通信学报》;20191125;第40卷(第11期);第101-111页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112839046A (zh) | 2021-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112839046B (zh) | 基于区块链的可追踪的匿名众包方法及系统 | |
CN108616539B (zh) | 一种区块链交易记录访问的方法及系统 | |
Lesavre et al. | A taxonomic approach to understanding emerging blockchain identity management systems | |
CN103856477B (zh) | 一种可信计算系统及相应的认证方法和设备 | |
CN110211683B (zh) | 一种基于区块链的支持向量机医疗数据隐私训练系统 | |
US9009464B2 (en) | Anonymous register system and method thereof | |
CN113127916A (zh) | 数据集合处理方法、数据处理方法、装置及存储介质 | |
Roh et al. | A study on electronic voting system using private blockchain | |
Bogatov et al. | Anonymous transactions with revocation and auditing in hyperledger fabric | |
CN108462696B (zh) | 一种去中心化的区块链智能身份认证系统 | |
Li et al. | Privacy‐aware PKI model with strong forward security | |
CN112487468A (zh) | 基于区块链的可追踪的完全匿名电子投票方法及系统 | |
Win et al. | Privacy enabled digital rights management without trusted third party assumption | |
Zheng et al. | A practical quantum designated verifier signature scheme for E-voting applications | |
Hatefi et al. | A conditional privacy-preserving fair electronic payment scheme based on blockchain without trusted third party | |
Blanton | Improved conditional e-payments | |
CN108259180A (zh) | 一种量子指定验证者签名的方法 | |
CN110278073B (zh) | 一种群组数字签名、验证方法及其设备和装置 | |
CN115694838A (zh) | 基于可验证凭证与零知识证明的匿名可信访问控制方法 | |
Noam et al. | Realizing privacy aspects in blockchain networks | |
JP2023540739A (ja) | 分散型台帳上の、匿名性取消を伴う、セキュアな、トレース可能な、および、プライバシー保護の、デジタル通貨送金のための方法 | |
CN112699395A (zh) | 细粒度访问控制的可追责的基于属性的匿名认证方法 | |
Hu et al. | An innovative key agreement protocol with complex attribute authentication based on blockchain | |
CN113222591B (zh) | 一种基于区块链的公平两方协商方法及系统 | |
CN117708887B (zh) | 一种基于纵向逻辑回归的联邦学习模型获取方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |