Blockchain-based multi-authority publicly accountable anonymous crowdsourcing method
Patent Information
- Application Number
- CN202310714060.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-06-15
- Publication Date
- 2026-10-27
- Estimated Expiration
- 2043-06-15
AI Technical Summary
[0005]现有的基于区块链的公开可追责的众包方案一般都依赖于单个权威机构,虽然实现了隐私保护和公开可追责的特性,但是不能满足多权威机构下的应用需求,不能有效解决多权威下可追责的需求,不能保证用户在持有多证书的情况下完成众包任务
[0066](1)本发明针对当前匿名众包方案局限于单个权威机构的情况,将单个权威机构扩展为多个权威机构,在多个权威机构的场景中允许持有多个属性和多个证书的用户匿名参与众包任务,满足了众包方案对多权威机构的应用需求,实现了多权威下用户参与众包任务的效果。
Smart Images

Figure CN116956357B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of blockchain anonymous crowdsourcing technology, specifically to a publicly traceable anonymous crowdsourcing method based on blockchain with multiple authorities. Background Technology
[0002] With the development of information technology, online platforms and systems have been effectively developed and applied, promoting the efficient use of resources. Applications such as crowdsourcing, voting, and auctions, which are represented by online systems, are gradually gaining popularity and favor among users due to their advantages over traditional methods.
[0003] In crowdsourcing solutions, task requesters publish tasks through a crowdsourcing platform, users obtain task details, submit answers, and receive rewards distributed by the requester. Centralized systems relying on a single crowdsourcing platform are often vulnerable to single points of failure and data tampering. Blockchain, with its decentralized and tamper-proof characteristics, effectively solves the problems associated with centralized platforms, ensuring the security and effectiveness of crowdsourcing platforms.
[0004] To effectively protect user privacy and security, privacy-preserving blockchain crowdsourcing solutions primarily focus on concealing users' true identities, making it impossible for task requesters to distinguish the correspondence between answers and users. Malicious users, seeking greater rewards, may submit answers multiple times. To address the issue of user privacy abuse, crowdsourcing solutions based on authoritative institutions with accountability, publicly linkable crowdsourcing solutions, and publicly traceable crowdsourcing solutions can effectively mitigate this situation and achieve the goal of regulating malicious users. However, in crowdsourcing scenarios involving multiple authoritative institutions, users possess multiple attributes and certificates. Designing publicly traceable anonymous crowdsourcing solutions under multiple authoritative institutions remains a significant challenge in this field.
[0005] Existing blockchain-based publicly traceable crowdsourcing solutions generally rely on a single authoritative institution. While they achieve privacy protection and publicly traceable characteristics, they cannot meet the application needs of multiple authoritative institutions, effectively solve the need for traceability under multiple authorities, or guarantee that users can complete crowdsourcing tasks while holding multiple certificates.
[0006] Therefore, how to achieve publicly traceable issues under multiple authoritative institutions, how to ensure that users participate in crowdsourcing tasks anonymously with multiple certificates, and how to further allow everyone to publicly hold users who submit answers multiple times accountable are major challenges we currently face. Summary of the Invention
[0007] To overcome the defects and shortcomings of existing technologies, this invention provides a publicly traceable anonymous crowdsourcing method based on blockchain under multiple authorities. This invention allows users holding multiple attributes and certificates to participate anonymously in crowdsourcing tasks in scenarios with multiple authoritative institutions. At the same time, when a malicious user submits answers multiple times, anyone can identify the answers submitted by that user and further calculate the user's identity, thus achieving public traceability under multiple authoritative institutions.
[0008] To achieve the above objectives, the present invention adopts the following technical solution:
[0009] This invention provides a blockchain-based, multi-authority, publicly traceable, anonymous crowdsourcing method, comprising the following steps:
[0010] The first key pair is generated based on the initialization algorithm of the first digital signature scheme, a public reference string is generated based on the initialization algorithm of the non-interactive zero-knowledge proof scheme, a first hash function and a second hash function are set, global parameters are generated based on the public key of the first key pair, the public reference string, the first hash function and the second hash function, the private key of the first key pair is set as the master private key, and the global parameters are uploaded to the blockchain.
[0011] The initialization algorithm based on the first digital signature scheme generates a second key pair. The public key of the second key pair is used as the verification key of the authoritative institution, and the private key of the second key pair is used as the signing key.
[0012] Generate the user's public and private keys;
[0013] Define a set of user attributes, and generate a certificate based on the signature algorithm of the second digital signature scheme for each user attribute.
[0014] Set up crowdsourcing tasks, including task number, start time, end time, total reward amount, reward strategy, compile the corresponding smart contract, and upload the crowdsourcing tasks to the blockchain;
[0015] The answer is generated based on the task number, the link tag is calculated based on the first hash function, and the tracking tag is calculated based on the second hash function.
[0016] Proofs are generated using a proof algorithm based on a non-interactive zero-knowledge proof scheme;
[0017] Obtain link tags, tracking tags, and proofs to generate authentication for the answer;
[0018] A verification algorithm based on a non-interactive zero-knowledge proof scheme is used to verify the validity of the answer;
[0019] Retrieve any two answers with the same task number and their authentication, and check if the link tags in the authentication of the two answers are the same;
[0020] Retrieve the two answers with the same link tag and their authentication, and calculate the user's private key and its corresponding public key;
[0021] Retrieve all answers that have passed validity verification and have different link tags, calculate the reward for each answer based on the reward strategy, and distribute each reward based on a smart contract.
[0022] As a preferred technical solution, the first digital signature scheme is represented as follows:
[0023] Let D = (D.Init, D.Sign, D.Verify) be the first digital signature scheme, where D.Init(λ) is the initialization algorithm for scheme D, taking the security parameter λ as input and outputting the key pair (dpk). D dsk D ), dpk D It's the public key, dsk D This is the private key, used to initialize scheme D; D.Sign(msg, dsk) D () is the signature algorithm for scheme D, with input message msg and private key dsk. D Generate signature σ D Used to generate digital signatures; D.Verify(msg, σ D dpk D () is the verification algorithm for scheme D, with input message msg and signature σ. D and public key DPK D It outputs the verification result, which is used to verify the correctness of the digital signature.
[0024] As a preferred technical solution, the second digital signature scheme is represented as follows:
[0025] Let S = (S.Init, S.Sign, S.Verify) be the second digital signature scheme, where S.Init(λ) is the initialization algorithm for scheme S, taking the security parameter λ as input and outputting the key pair (dpk). S dsk S ), dpk S It's the public key, dsk s This is the private key, used to initialize scheme S; S.Sign(msg, dsk) S () is the signature algorithm for scheme S, with input message msg and private key dsk. S Generate signature σ S S.Verify(msg, σ) is used to generate digital signatures. S dpk S ) is the verification algorithm for scheme S, with input message msg and signature σ. S and public key DPK SIt outputs the verification result, which is used to verify the correctness of the digital signature.
[0026] As a preferred technical solution, the non-interactive zero-knowledge proof scheme is expressed as follows:
[0027] Let Z = (Z.Init, Z.ProGen, Z.ProVer) be a zk-SNARK non-interactive zero-knowledge proof scheme, where Z.Init(λ) is the initialization algorithm for scheme Z, taking the security parameter λ as input and outputting the common reference string zpp. Z Z.ProGen(s, w, zpp) is used to initialize the Z scheme. Z () is the proof algorithm for the ZK scheme. Inputs include the declaration s, the secret w, and the public reference string zpp. Z Output proof π, used to generate the proof; Z.ProVer(s, π, zpp) Z Let be the verification algorithm for scheme Z, and let be the input declaration s, proof π, and common reference string zpp. Z The output is 0 or 1, used to verify the proof. If the verification is successful, the output is 1.
[0028] As a preferred technical solution, the global parameter is represented as follows:
[0029] param=(dpk D zpp Z (H1, H2)
[0030] Where param represents global parameters, dpk D This represents the public key of the first key pair, zpp Z The common reference string is represented by H1 and H2, which represent the first hash function and the second hash function, respectively.
[0031] The first hash function is represented as: H1: (0, 1) * →MS;
[0032] The second hash function is represented as: H2: (0, 1) * →MS;
[0033] MS defines the message space for the second digital signature scheme.
[0034] As a preferred technical solution, the step of setting a user attribute set and generating a certificate based on the signature algorithm of the second digital signature scheme for the user attributes is specifically expressed as follows:
[0035] The user's attribute set is represented as: Attr = {upk, attr2, ..., attr} n};
[0036] Where upk represents the user's public key, attr n Represents user attributes;
[0037] The i-th one has the second key pair An authoritative organization targets a specific attribute (attr) within a user's attribute set (Attr). i The certificate generation process is specifically described as follows:
[0038]
[0039] Here, S.Sign represents the signature algorithm of the second digital signature scheme.
[0040] As a preferred technical solution, the steps of generating answers based on task numbers, calculating link tags based on a first hash function, and calculating tracking tags based on a second hash function specifically include:
[0041] The answer is generated based on the task number, specifically as follows:
[0042] M = Tid||m
[0043] Where M represents the answer, Tid represents the task number, || represents the connector, and m represents the content of the answer;
[0044] The link tag is calculated based on the first hash function, specifically as follows:
[0045] t1 = H1(Tid||usk)
[0046] Where t1 represents the link tag, H1 represents the first hash function, and usk represents the user's private key;
[0047] The tracking tag is calculated based on the second hash function, specifically as follows:
[0048] t2=H2(Tid||usk||upk)+m·usk
[0049] Where t2 represents the tracking tag, H2 represents the second hash function, and upk represents the user's public key.
[0050] As a preferred technical solution, a proof algorithm based on a non-interactive zero-knowledge proof scheme is used to generate a proof, and the specific steps include:
[0051] Let s = (M, t1, t2, APK, param) be a declaration, and w = (usk, Attr, δ) be a secret;
[0052] make Let be an NP language, meaning that for any declaration s, there exists a secret w such that upk = f(usk). Given t1 = H1(Tid||usk) and t2 = H2(Tid||usk||upk) + m·usk, the proof for NP-hard languages is given as: π = Z.ProGen(s, w, zpp) Z );
[0053] Retrieve link tags, tracking tags, and proofs to generate authentication for the answer, specifically as follows:
[0054] τ = (t1, t2, π)
[0055] Where M represents the answer, t1 represents the link tag, and t2 represents the tracking tag. It is a set of verification keys from an authoritative institution, where param represents global parameters, usk represents the user's private key, and Attr = {upk, attr2, ..., attr}. n} is a set of user attributes, upk represents the user's public key, and attr n Let δ = {σ1, ..., σ2} represent a specific attribute in the user attribute set. n} is the user's certificate set, σ n denoted by , f represents a one-way function, ∧ represents the AND operator, || represents the concatenation operator, S.Verify represents the verification algorithm of the second digital signature scheme, H1 represents the first hash function, H2 represents the second hash function, Tid represents the task number, m represents the content of the answer, π represents the proof, and τ represents the authentication.
[0056] As a preferred technical solution, the method involves obtaining two answers with the same link tag and their authentication, and calculating the user's private key and its corresponding public key based on a tracking algorithm. Specific steps include:
[0057] To retrieve two answers with the same link tag and their corresponding verifications, specifically:
[0058] The two answers are M = Tid||m and M′ = Tid||m′, and the corresponding certifications are certification τ = (t1, t2, π) and certification τ′ = (t1′, t2′, π′), where t1 and t1′ represent the link tags of the certifications corresponding to the two answers, t2 and t2′ represent the tracking tags of the certifications corresponding to the two answers, and π and π′ represent the proofs of the certifications corresponding to the two answers. The two answers have the same link tag, i.e., t1 = t1′.
[0059] The user's private key and its corresponding public key are calculated based on a tracking algorithm, specifically as follows:
[0060] Calculate the user's private key: usk = (t2′-t2) / (m′-m), where usk represents the user's private key, and m′ and m represent the contents of the two answers;
[0061] Calculate the user's public key: upk = f(usk), where upk represents the user's public key, f represents a one-way function, and the user's public key corresponds to a user who submitted multiple answers in the same crowdsourcing task.
[0062] As a preferred technical solution, all answers that have passed validity verification and have different link tags are obtained, and the reward for each answer is calculated based on the reward strategy. The specific reward for each answer is expressed as follows:
[0063]
[0064] Where, β j Indicates a reward. Let M represent the reward strategy, γ represent the total reward, and M represent the reward amount. n Indicates the answer.
[0065] Compared with the prior art, the present invention has the following advantages and beneficial effects:
[0066] (1) In view of the current situation where the anonymous crowdsourcing scheme is limited to a single authoritative institution, the present invention expands the single authoritative institution to multiple authoritative institutions. In the scenario of multiple authoritative institutions, users holding multiple attributes and multiple certificates are allowed to participate in crowdsourcing tasks anonymously, which meets the application requirements of crowdsourcing schemes for multiple authoritative institutions and realizes the effect of users participating in crowdsourcing tasks under multiple authorities.
[0067] (2) In the case of users having a single certificate in the current anonymous crowdsourcing scheme, the present invention expands the user's single identity information into multiple attributes and generates multiple certificates for them under multiple authoritative institutions, which meets the application requirements of users holding multiple attributes and multiple certificates in the crowdsourcing scheme and realizes the effect of users holding multiple certificates participating in crowdsourcing tasks.
[0068] (3) This invention utilizes technologies such as hash functions, digital signatures, and non-interactive zero-knowledge proofs to achieve a publicly traceable anonymous crowdsourcing method based on blockchain with multiple authoritative institutions. This satisfies the decentralized application needs of crowdsourcing platforms and the security needs of holding users who submit answers multiple times accountable in a single crowdsourcing task. It achieves the goals of anonymity, public linkability, and public traceability under multiple authoritative institutions. Attached Figure Description
[0069] Figure 1 This is a flowchart illustrating the publicly traceable anonymous crowdsourcing method based on blockchain under multiple authorities, as described in this invention. Detailed Implementation
[0070] To make the objectives, technical solutions, and advantages of this invention clearer, the invention will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the invention.
[0071] Example
[0072] like Figure 1 As shown, this embodiment provides a publicly traceable anonymous crowdsourcing method based on blockchain with multiple authorities. It involves three types of entities: authoritative institutions, users, and task requesters. The method includes the following steps: crowdsourcing initialization; certificate authority initialization; user initialization; certificate authority distributing certificates to users; task requesters setting crowdsourcing tasks; users submitting answers; verifying the validity of answers; checking the linkability of answers; tracking users who submit answers multiple times; and distributing rewards.
[0073] Let D = (D.Init, D.Sign, D.Verify) be the first digital signature scheme, where D.Init(λ) is the initialization algorithm for scheme D, taking the security parameter λ as input and outputting the key pair (dpk). D dsk D ), dpk D It's the public key, dsk D This is the private key, used to initialize scheme D; D.Sign(msg, dsk) D () is the signature algorithm for scheme D, with input message msg and private key dsk. D Generate signature σ D Used to generate digital signatures; D.Verify(msg, σ D dpk D () is the verification algorithm for scheme D, with input message msg and signature σ. D and public key DPK D The output is either 0 or 1, used to verify the correctness of the digital signature. If the verification is successful, the output is 1; otherwise, the output is 0.
[0074] Let S = (S.Init, S.Sign, S.Verify) be the second digital signature scheme, where S.Init(λ) is the initialization algorithm for scheme S, taking the security parameter λ as input and outputting the key pair (dpk). S dsk S ), dpk S It's the public key, dsk S This is the private key, used to initialize scheme S; S.Sign(msg, dsk) S () is the signature algorithm for scheme S, with input message msg and private key dsk. S Generate signature σ SS.Verify(msg, σ) is used to generate digital signatures. S dpk S ) is the verification algorithm for scheme S, with input message msg and signature σ. S and public key DPK S The output is either 1 or 0, used to verify the correctness of the digital signature. If the verification is successful, it outputs 1; otherwise, it outputs 0.
[0075] Let Z = (Z.Init, Z.ProGen, Z.ProVer) be a zk-SNARK non-interactive zero-knowledge proof scheme, where Z.Init(λ) is the initialization algorithm for scheme Z, taking the security parameter λ as input and outputting the common reference string zpp. Z Z.ProGen(s, w, zpp) is used to initialize the Z scheme. Z () is the proof algorithm for the ZK scheme. Inputs include the declaration s, the secret w, and the public reference string zpp. Z Output proof π, used to generate the proof; Z.ProVer(s, π, zpp) Z Let be the verification algorithm for scheme Z, and let be the input declaration s, proof π, and common reference string zpp. Z The output is 0 or 1, used to verify the proof. If the verification is successful, the output is 1.
[0076] Let f be a one-way function that satisfies upk = f(usk);
[0077] Specifically, the following steps are included:
[0078] (1) Crowdsourcing initialization:
[0079] Run D.Init(λ) of the first digital signature scheme D to generate a key pair (dpk). D dsk D );
[0080] Z.Init(λ) of Z, which runs a non-interactive zero-knowledge proof scheme, generates the public reference string zpp. Z ;
[0081] Choose two different hash functions. The first hash function H1: (0, 1) * →MS, Second hash function H2: (0, 1) * →MS, where MS defines the message space of the second digital signature scheme S.
[0082] Generate global parameter param = (dpk D zpp Z H1, H2), Master private key msk = dsk D .
[0083] Upload the parameter to the blockchain.
[0084] (2) Certificate Authority Initialization:
[0085] Run S.Init(λ) of the second digital signature scheme S to generate a key pair (dpk). S dsk S );
[0086] Generate verification key dpk S and signing key dsk S .
[0087] (3) User initialization:
[0088] Choose a private key usk∈MS from the message space and compute the public key upk=f(usk);
[0089] Generate a key pair (upk, usk).
[0090] (4) Certificate authorities distribute certificates to users:
[0091] Given a user's attribute set Attr = {upk, attr2, ..., attr} n}, the i-th one has a key pair An authoritative body calculates a value for a specific attribute, attri, within the user's attribute set, Attr.
[0092] Generate the user's certificate σ i .
[0093] (5) The task requester sets up the crowdsourcing task:
[0094] Set the specific details of the task, including the task number Tid, start time t1, end time t2, total reward amount γ, and reward strategy. This information is collected and the corresponding smart contract is compiled.
[0095] Upload the crowdsourcing task containing the above information to the blockchain.
[0096] (6) User-submitted answers:
[0097] Based on the requirements of the crowdsourcing task, generate the answer M = Tid||m, where m is the content of the answer;
[0098] The link label t1 = H1(Tid||usk) is calculated using the first hash function;
[0099] The tracking tag t2 is calculated using the second hash function: t2 = H2(Tid||usk||upk) + m·usk;
[0100] Let s = (M, t1, t2, APK, param) be a declaration, and w = (usk, Attr, δ) be a secret;
[0101] make Let be an NP language, meaning that for some s, there exists some w such that upk = f(usk). t1=H1(Tid||usk) and t2=H2(Tid||usk||upk)+m·usk;
[0102] For this NP language, generate the proof π = Z.ProGen(s, w, zpp) Z );
[0103] Generate the authentication τ = (t1, t2, π) for the answer M.
[0104] Where usk is the user's private key, and Attr = {upk, attr2, ..., attr} n} is the set of user attributes, δ = {σ1, ..., σ2} n} is the user's certificate set. It is the set of verification keys from authoritative institutions, ∧ is the AND operator, and || is the concatenation operator.
[0105] (7) Verify the validity of the answer:
[0106] Calculate b = Z.ProVer(s, π, zpp) Z To verify the validity of the authentication τ;
[0107] b = 1 indicates that the verification is successful, meaning the answer is valid; otherwise, b = 0.
[0108] (8) Check the linkability of the answers:
[0109] Given two answers M = Tid||m and M′ = Tid||m′ with the same task number Tid, and their corresponding authentications τ = (t1, t2, π) and τ′ = (t1′, t2′, π′), if t1 = t1′, it means that the two corresponding answers are linked, indicating that a user has submitted multiple answers in the same crowdsourcing task;
[0110] (9) Tracking users who submit multiple answers:
[0111] Given two linkable answers and their authentications (M, τ) and (M′, τ′), compute usk = (t2′-t2) / (m′-m) and upk = f(usk), where the public key upk corresponds to a user who submitted multiple answers in the same crowdsourcing task.
[0112] (10) Distribute rewards:
[0113] The task requester filters out all valid and non-linkable answers and then applies the reward strategy accordingly. Calculate the reward for each answer, where the reward for each answer is expressed as...
[0114] The task requester uses a smart contract to distribute each reward to the corresponding user, that is, the user whose answer is valid after the screening.
[0115] Existing blockchain-based publicly traceable crowdsourcing solutions generally rely on a single authoritative institution. While achieving privacy protection and publicly traceable characteristics, they cannot meet the application requirements of multiple authoritative institutions, effectively address the need for traceability under multiple authority structures, or guarantee that users can complete crowdsourcing tasks while holding multiple certificates. This invention addresses the problem of existing technologies failing to achieve publicly traceable results under multiple authoritative institutions by providing a blockchain-based, publicly traceable, and anonymous crowdsourcing method. It ensures that users participate anonymously in crowdsourcing tasks using multiple certificates and further allows everyone to publicly hold users who submit answers multiple times accountable.
[0116] This invention, a blockchain-based, multi-authority, publicly traceable anonymous crowdsourcing method, is primarily applicable to many-to-many scenarios, involving multiple certificate authorities, multiple users, and one task requester. Specifically, the certificate authorities initialize the crowdsourcing system and the certificate authority itself; users initialize themselves; the certificate authorities distribute certificates to users; the task requester sets the crowdsourcing task; users submit their answers; the task requester, or anyone else, verifies the validity of the answers, checks their linkability, and tracks users who submit multiple answers; and the task requester distributes rewards. This invention utilizes multiple certificate authorities, each issuing a certificate for a specific attribute of a user. Users participate in crowdsourcing tasks based on multiple certificates issued by these authorities, achieving anonymous crowdsourcing under a multi-authority framework. While ensuring user privacy, it further enables publicly traceable users who submit multiple answers within the same crowdsourcing task.
[0117] The above embodiments are preferred embodiments of the present invention, but the embodiments of the present invention are not limited to the above embodiments. Any changes, modifications, substitutions, combinations, or simplifications made without departing from the spirit and principle of the present invention shall be considered equivalent substitutions and shall be included within the protection scope of the present invention.
Claims
1. A blockchain-based, multi-authority, publicly traceable, anonymous crowdsourcing method, characterized in that... Includes the following steps: The first key pair is generated based on the initialization algorithm of the first digital signature scheme, a public reference string is generated based on the initialization algorithm of the non-interactive zero-knowledge proof scheme, a first hash function and a second hash function are set, global parameters are generated based on the public key of the first key pair, the public reference string, the first hash function and the second hash function, the private key of the first key pair is set as the master private key, and the global parameters are uploaded to the blockchain. The initialization algorithm based on the first digital signature scheme generates a second key pair. The public key of the second key pair is used as the verification key of the authoritative institution, and the private key of the second key pair is used as the signing key. Generate the user's public and private keys; Define a set of user attributes, and generate a certificate based on the signature algorithm of the second digital signature scheme for each user attribute. The second digital signature scheme is represented as follows: Let S = (S.Init, S.Sign, S.Verify) be the second digital signature scheme, where S.Init(λ) is the initialization algorithm for scheme S, taking the security parameter λ as input and outputting a key pair ( , ), It is a public key. It is the private key, used to initialize scheme S; S.Sign( , () represents the signature algorithm for scheme S, and the input message is... and private key dsk S Generate signature S.Verify is used to generate digital signatures. , , ) is the verification algorithm for scheme S, input message ,sign and public key Output the verification result to verify the correctness of the digital signature; The user's attribute set is defined, and a certificate is generated based on the signature algorithm of the second digital signature scheme for each user's attribute set, specifically as follows: The user's attribute set is represented as: ; in, This represents the user's public key. Represents user attributes; No. A pair with a second key ( , The authoritative organization that targets the user's attribute set A certain attribute in The certificate generation process is specifically described as follows: ; in, This represents the signature algorithm for the second digital signature scheme. Set up crowdsourcing tasks, including task number, start time, end time, total reward amount, reward strategy, compile the corresponding smart contract, and upload the crowdsourcing tasks to the blockchain; The answer is generated based on the task number, the link tag is calculated based on the first hash function, and the tracking tag is calculated based on the second hash function. The proof algorithm based on the non-interactive zero-knowledge proof scheme generates a proof, and the specific steps include: make For a statement, For a secret; make For an NP language, that is, for a certain declaration There is a secret Makes the following conditions be met simultaneously: , , and For NP-language generation, the proof is specifically expressed as follows: ; Retrieve link tags, tracking tags, and proofs to generate authentication for the answer, specifically as follows: ; in, Indicate the answer, Indicates a link tag, Indicates tracking tags, It is a set of verification keys from an authoritative organization. Indicates a global parameter. This represents the user's private key. It is a collection of user attributes. This represents the user's public key. This represents a specific attribute within a set of user attributes. It is a collection of user certificates. Indicates a certificate. Represents a one-way function. The AND operator, Indicates a connector. This represents the verification algorithm for the second digital signature scheme. Indicates the first hash function, This represents the second hash function. Indicates the task number. This indicates the content of the answer. This indicates proof. Indicates authentication; Obtain link tags, tracking tags, and proofs to generate authentication for the answer; A verification algorithm based on a non-interactive zero-knowledge proof scheme is used to verify the validity of the answer; Retrieve any two answers with the same task number and their authentication, and check if the link tags in the authentication of the two answers are the same; Retrieve the two answers with the same link tag and their authentication, and calculate the user's private key and its corresponding public key; Retrieve all answers that have passed validity verification and have different link tags, calculate the reward for each answer based on the reward strategy, and distribute each reward based on a smart contract.
2. The blockchain-based multi-authority, publicly traceable anonymous crowdsourcing method according to claim 1, characterized in that, The first digital signature scheme is represented as follows: Let D = (D.Init, D.Sign, D.Verify) be the first digital signature scheme, where D.Init(λ) is the initialization algorithm for scheme D, taking the security parameter λ as input and outputting a key pair ( , ), It is a public key. It is the private key used to initialize scheme D; D.Sign( , () is the signature algorithm for scheme D, and the input message is... and private key Generate signature D.Verify is used to generate digital signatures. , , () is the verification algorithm for scheme D, input message ,sign and public key It outputs the verification result, which is used to verify the correctness of the digital signature.
3. The blockchain-based multi-authority, publicly traceable anonymous crowdsourcing method according to claim 1, characterized in that, The non-interactive zero-knowledge proof scheme is expressed as follows: Let Z = (Z.Init, Z.ProGen, Z.ProVer) be a zk-SNARK non-interactive zero-knowledge proof scheme, where Z.Init(λ) is the initialization algorithm for scheme Z, taking the security parameter λ as input and outputting a common reference string. Z.ProGen is used to initialize the Z scheme. , , () is the proof algorithm for the ZK scheme, input declaration ,secret and public reference strings Output proof Z.ProVer is used to generate proofs. , , () is the verification algorithm for scheme Z, input declaration ,prove and public reference strings The output is 0 or 1, used to verify the proof. If the verification is successful, the output is 1.
4. The blockchain-based multi-authority, publicly traceable anonymous crowdsourcing method according to claim 1, characterized in that, The global parameter is represented as follows: =( , , , ); in, Indicates a global parameter. This represents the public key of the first key pair. Indicates a common reference string. , These represent the first hash function and the second hash function, respectively. The first hash function is represented as: ; The second hash function is expressed as: ; in, The message space for the second digital signature scheme is defined.
5. The blockchain-based multi-authority, publicly traceable anonymous crowdsourcing method according to claim 1, characterized in that, The process of generating answers based on task numbers, calculating link tags based on a first hash function, and calculating tracking tags based on a second hash function specifically includes: The answer is generated based on the task number, specifically as follows: ; in, Indicate the answer, Indicates the task number. Indicates a connector. This indicates the content of the answer; The link tag is calculated based on the first hash function, specifically as follows: ; in, Indicates a link tag, Indicates the first hash function, This represents the user's private key; The tracking tag is calculated based on the second hash function, specifically as follows: ; in, Indicates tracking tags, This represents the second hash function. This represents the user's public key.
6. The blockchain-based multi-authority, publicly traceable anonymous crowdsourcing method according to claim 1, characterized in that, Obtain the two answers with the same link tag and their authentication, and calculate the user's private key and its corresponding public key based on the tracking algorithm. The specific steps include: To retrieve two answers with the same link tag and their corresponding verifications, specifically: The two answers are respectively the answer and answer The corresponding certifications are certifications. and certification ,in, and This indicates the link tags that correspond to the authentication of the two answers. and This indicates the tracking tags that correspond to the authentication of the two answers. and This indicates that the two answers correspond to the same authentication proof, and that the two answers have the same link tag. = ; The user's private key and its corresponding public key are calculated based on a tracking algorithm, specifically as follows: Calculate the user's private key: ,in, This represents the user's private key. and This represents the content of the two answers; Calculate the user's public key: ,in, This represents the user's public key. This represents a one-way function, where a user's public key corresponds to a user who submitted multiple answers in the same crowdsourcing task.
7. The blockchain-based multi-authority, publicly traceable anonymous crowdsourcing method according to claim 1, characterized in that, Retrieve all answers that pass validity verification and have distinct link tags. Calculate the reward for each answer based on the reward strategy. The specific reward for each answer is represented as follows: ; in, Indicates a reward. Indicates the reward strategy, Indicates the total amount of rewards. Indicates the answer.
Citation Information
Patent Citations
Multi-authority public responsibility-traceable identity anonymous authentication method
CN116707816A
