当前位置: 首页 > 专利查询>暨南大学专利>正文

基于区块链的多权威下公开可追责的匿名众包方法技术

技术编号:39261785 阅读:12 留言:0更新日期:2023-10-30 12:14
本发明专利技术公开了一种基于区块链的多权威下公开可追责的匿名众包方法,基于生成的第一密钥对公钥、公共参考字符串、第一哈希函数和第二哈希函数生成全局参数;生成第二密钥对的公钥作为权威机构的验证密钥,第二密钥对的私钥作为签名密钥;生成用户的密钥对;针对用户的属性生成证书;设定众包任务并编译对应的智能合约;基于任务编号生成答案;获取第一哈希函数计算的链接标签、第二哈希函数计算的追踪标签和证明,生成对答案的认证;验证答案的有效性;检查答案的可链接性;追踪提交多次答案的用户;分发奖励。本发明专利技术在多权威机构下用户匿名提交答案,保证用户身份的隐私保护,实现多权威机构下对在一次众包任务中多次提交答案的用户进行公开追责。的用户进行公开追责。的用户进行公开追责。

【技术实现步骤摘要】
基于区块链的多权威下公开可追责的匿名众包方法


[0001]本专利技术涉及区块链匿名众包
,具体涉及一种基于区块链的多权威下公开可追责的匿名众包方法。

技术介绍

[0002]随着信息技术的发展,网络平台或系统得到了有效开发和应用,促进了资源的有效利用。以众包、投票、拍卖等网络系统为代表的应用,因其比传统的手段更有优势,正逐步受到用户的推崇和青睐。
[0003]在众包方案中,任务请求方通过众包平台发布任务,用户经过众包平台获取任务内容,提交任务相关的答案,并获得任务请求方分发的奖励。依赖于单个众包平台的中心化系统,往往容易遭受单点故障、数据篡改等风险。区块链具有去中心化、防篡改等特性,能有效解决中心化平台所带来的问题,保障众包平台的安全性和有效性。
[0004]为有效保证用户的隐私和安全,基于隐私保护的区块链众包方案主要围绕隐藏用户的真实身份所展开,使得任务请求方不能区分答案和用户的对应关系。恶意用户为了获取更多的利益,可能会通过多次提交答案以获取更多的奖励。为解决用户滥用隐私的问题,基于权威机构的可追责的众包方案、公开可链接的众包方案、公开可追责的众包方案都能有效缓解该情况,达到了对恶意用户的监管。但与此同时,在多个权威机构的众包场景中,用户具有多个属性和多个证书,如何设计在多权威机构下公开可追责的匿名众包方案,成为该领域的一大难题。
[0005]现有的基于区块链的公开可追责的众包方案一般都依赖于单个权威机构,虽然实现了隐私保护和公开可追责的特性,但是不能满足多权威机构下的应用需求,不能有效解决多权威下可追责的需求,不能保证用户在持有多证书的情况下完成众包任务。
[0006]因此,如何实现多权威机构下公开可追责的问题,并且如何保证用户以多证书的形式匿名参与众包任务,进一步允许所有人对多次提交答案的用户进行公开追责是当前面临的一大挑战。

技术实现思路

[0007]为了克服现有技术存在的缺陷与不足,本专利技术提供一种基于区块链的多权威下公开可追责的匿名众包方法,本专利技术在多个权威机构的场景中允许持有多个属性和多个证书的用户匿名参与众包任务,同时,在恶意用户多次提交答案时,又允许任何人识别该用户提交的答案,并进一步计算出该用户的身份,实现在多权威机构下的公开可追责。
[0008]为了达到上述目的,本专利技术采用以下技术方案:
[0009]本专利技术提供一种基于区块链的多权威下公开可追责的匿名众包方法,包括下述步骤:
[0010]基于第一数字签名方案的初始化算法生成第一密钥对,基于非交互零知识证明方案的初始化算法生成公共参考字符串,设置第一哈希函数和第二哈希函数,基于第一密钥
对的公钥、公共参考字符串、第一哈希函数和第二哈希函数生成全局参数,将第一密钥对的私钥设置为主私钥,将全局参数上传至区块链;
[0011]基于第一数字签名方案的初始化算法生成第二密钥对,将第二密钥对的公钥作为权威机构的验证密钥,将第二密钥对的私钥作为签名密钥;
[0012]生成用户的公钥和私钥;
[0013]设定用户的属性集合,针对用户的属性,基于第二数字签名方案的签名算法生成证书;
[0014]设定众包任务,包括任务编号、开始时间、截止时间、奖励总数、奖励策略,并编译对应的智能合约,将众包任务上传至区块链;
[0015]基于任务编号生成答案,基于第一哈希函数计算链接标签,基于第二哈希函数计算追踪标签;
[0016]基于非交互零知识证明方案的证明算法生成证明;
[0017]获取链接标签、追踪标签和证明,生成对答案的认证;
[0018]基于非交互零知识证明方案的验证算法验证答案的有效性;
[0019]获取任意两个具有相同任务编号的答案及其认证,检查两个答案对应的认证中的链接标签是否相同;
[0020]获取具有相同链接标签所对应的两个答案及其认证,计算用户的私钥及其对应的公钥;
[0021]获取通过有效性验证且链接标签不同的所有答案,基于奖励策略计算每个答案对应的奖励,基于智能合约对每份奖励进行分发。
[0022]作为优选的技术方案,所述第一数字签名方案表示为:
[0023]令D=(D.Init,D.Sign,D.Verify)为第一数字签名方案,其中,D.Init(λ)为D方案的初始化算法,输入安全参数λ,输出密钥对(dpk
D
,dsk
D
),dpk
D
是公钥,dsk
D
是私钥,用于初始化D方案;D.Sign(msg,dsk
D
)为D方案的签名算法,输入消息msg和私钥dsk
D
,生成签名σ
D
,用于生成数字签名;D.Verify(msg,σ
D
,dpk
D
)为D方案的验证算法,输入消息msg、签名σ
D
和公钥dpk
D
,输出验证结果,用于验证数字签名的正确性。
[0024]作为优选的技术方案,所述第二数字签名方案表示为:
[0025]令S=(S.Init,S.Sign,S.Verify)为第二数字签名方案,其中,S.Init(λ)为S方案的初始化算法,输入安全参数λ,输出密钥对(dpk
S
,dsk
S
),dpk
S
是公钥,dsk
s
是私钥,用于初始化S方案;S.Sign(msg,dsk
S
)为S方案的签名算法,输入消息msg和私钥dsk
S
,生成签名σ
S
,用于生成数字签名;S.Verify(msg,σ
S
,dpk
S
)为S方案的验证算法,输入消息msg、签名σ
S
和公钥dpk
S
,输出验证结果,用于验证数字签名的正确性。
[0026]作为优选的技术方案,所述非交互零知识证明方案表示为:
[0027]令Z=(Z.Init,Z.ProGen,Z.ProVer)为zk

SNARK非交互零知识证明方案,其中,Z.Init(λ)为Z方案的初始化算法,输入安全参数λ,输出公共参考字符串zpp
Z
,用于初始化Z方案;Z.ProGen(s,w,zpp
Z
)为ZK方案的证明算法,输入声明s、秘密w和公共参考字符串zpp
Z
,输出证明π,用于生成证明;Z.ProVer(s,π,zpp
Z
)为Z方案的验证算法,输入声明s、证明π和公共参考字符串zpp
Z
,输出0或1,用于验证证明,验证通过则输出1。
[0028]作为优选的技术方案,所述全局参数表示为:
[0029]param=(dpk
D
,zpp
Z
,H1,H2)
[0030]其中,param表示全局本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于区块链的多权威下公开可追责的匿名众包方法,其特征在于,包括下述步骤:基于第一数字签名方案的初始化算法生成第一密钥对,基于非交互零知识证明方案的初始化算法生成公共参考字符串,设置第一哈希函数和第二哈希函数,基于第一密钥对的公钥、公共参考字符串、第一哈希函数和第二哈希函数生成全局参数,将第一密钥对的私钥设置为主私钥,将全局参数上传至区块链;基于第一数字签名方案的初始化算法生成第二密钥对,将第二密钥对的公钥作为权威机构的验证密钥,将第二密钥对的私钥作为签名密钥;生成用户的公钥和私钥;设定用户的属性集合,针对用户的属性,基于第二数字签名方案的签名算法生成证书;设定众包任务,包括任务编号、开始时间、截止时间、奖励总数、奖励策略,并编译对应的智能合约,将众包任务上传至区块链;基于任务编号生成答案,基于第一哈希函数计算链接标签,基于第二哈希函数计算追踪标签;基于非交互零知识证明方案的证明算法生成证明;获取链接标签、追踪标签和证明,生成对答案的认证;基于非交互零知识证明方案的验证算法验证答案的有效性;获取任意两个具有相同任务编号的答案及其认证,检查两个答案对应的认证中的链接标签是否相同;获取具有相同链接标签所对应的两个答案及其认证,计算用户的私钥及其对应的公钥;获取通过有效性验证且链接标签不同的所有答案,基于奖励策略计算每个答案对应的奖励,基于智能合约对每份奖励进行分发。2.根据权利要求1所述的基于区块链的多权威下公开可追责的匿名众包方法,其特征在于,所述第一数字签名方案表示为:令D=(D.Init,D.Sign,D.Verify)为第一数字签名方案,其中,D.Init(λ)为D方案的初始化算法,输入安全参数λ,输出密钥对(dpk
D
,dsk
D
),dpk
D
是公钥,dsk
D
是私钥,用于初始化D方案;D.Sign(msg,dsk
D
)为D方案的签名算法,输入消息msg和私钥dsk
D
,生成签名σ
D
,用于生成数字签名;D.Verify(msg,σ
D
,dpk
D
)为D方案的验证算法,输入消息msg、签名σ
D
和公钥dpk
D
,输出验证结果,用于验证数字签名的正确性。3.根据权利要求1所述的基于区块链的多权威下公开可追责的匿名众包方法,其特征在于,所述第二数字签名方案表示为:令S=(S.Init,S.Sign,S.Verify)为第二数字签名方案,其中,S.Init(λ)为S方案的初始化算法,输入安全参数λ,输出密钥对(dpk
S
,dsk
S
),dpk
S
是公钥,dsk
S
是私钥,用于初始化S方案;S.Sign(msg,dsk
S
)为S方案的签名算法,输入消息msg和私钥dsk
S
,生成签名σ
S
,用于生成数字签名;S.Verify(msg,σ
S
,dpk
S
)为S方案的验证算法,输入消息msg、签名σ
S
和公钥dpk
S
,输出验证结果,用于验证数字签名的正确性。4.根据权利要求1所述的基于区块链的多权威下公开可追责的匿名众包方法,其特征在于,所述非交互零知识证明方案表示为:
令Z=(Z.Init,Z.ProGen,Z.ProVer)为zk

SNARK非交互零知识证明方案,其中,Z.Init(λ)为Z方案的初始化算法,输入安全参数λ,输出公共参考字符串zpp
Z
,用于初始化Z方案;Z.ProGen(s,w,zpp
Z
)为ZK方案的证明算法,输入声明s、秘密w和公共参考字符串zpp
z
,输出证明π,用于生成证明;Z.ProVer(s,π,zpp
z
)为Z方案的验证算法,输入声明s、证明π和公共参考字符串zpp
Z
,输出0或1,用于验证证明,验证通过则输出1。5.根据权利要求1所述的基于区块链的多权威下公开可追责的匿名众包方法,其特征在于,所述全局参数表示为:param=(dpk
D
,zpp
Z
,H1,H2)其中,param表示全局参数,dpk
D
表示第一密钥对的公钥,zpp
Z
表示公共参考字符串,H1、H2分别表示第一哈希函数、第二...

【专利技术属性】
技术研发人员:李鹏赖俊祚臧芮嘉周德华杨烨吴玮
申请(专利权)人:暨南大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1