A method for recommending a crowd-sourcing worker based on ciphertext information

By calculating the similarity between the expertise of crowdsourced workers and the task, as well as their reputation scores, and using asymmetric encryption and heap sort algorithms, suitable crowdsourced workers are recommended on the blockchain. This solves the problem of worker recommendation in crowdsourced software testing under a blockchain privacy-preserving environment, achieving high-quality task completion and privacy protection.

CN116128365BActive Publication Date: 2026-03-20NANJING TECH UNIV
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310138936.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-02-20
Publication Date
2026-03-20
Estimated Expiration
2043-02-20

AI Technical Summary

Technical Problem

In a blockchain privacy-preserving environment, existing crowdsourcing software testing cannot effectively recommend suitable crowdsourcing workers, making it difficult to guarantee task quality and posing a risk of privacy information leakage.

Method used

By calculating the similarity between the expertise of crowdsourcing workers and the task, as well as their reputation score, and using asymmetric encryption and heap sorting algorithms, crowdsourcing workers with high reputation scores and matching expertise are recommended on the blockchain to ensure task quality.

Benefits of technology

While protecting user privacy, the system can quickly and accurately recommend suitable crowdsourced testers, improve task completion quality, reduce the risk of privacy leaks, and promote the development of crowdsourced software testing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116128365B_ABST
    Figure CN116128365B_ABST
Patent Text Reader

Abstract

The present application relates to a kind of crowd-sourcing worker recommendation method based on ciphertext information.First, the similarity of each crowd-sourcing worker in crowd-sourcing worker set and crowd-sourcing task is calculated, and the crowd-sourcing worker with higher similarity with crowd-sourcing task is more suitable for the crowd-sourcing task;On this basis, we select the array of crowd-sourcing worker with higher similarity;Second, we find high worker ID from the array, and higher reputation value indicates that the crowd-sourcing worker performs well in historical tasks, and the worker with higher reputation value is selected as the final recommendation result by using heap sorting algorithm in the worker matching the requirements of crowd-sourcing task, which can help task requester to find suitable crowd-sourcing worker without revealing privacy.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application belongs to the field of crowdsourcing software testing, and is particularly suitable for the field of crowdsourcing software testing worker recommendation, and aims to solve the problem that the existing crowdsourcing software testing worker recommendation method cannot be directly used in a blockchain privacy protection environment. It is a method for helping task requesters to find suitable crowdsourcing software testing workers and ensuring the high-quality completion of crowdsourcing software testing tasks. BACKGROUND

[0002] Crowdsourcing is a method in which a company or an organization outsources work tasks that were previously performed by employees to the public network in an open and voluntary manner. The term "crowdsourcing software testing" means "all crowdsourcing activities supporting software testing", that is, all crowdsourcing methods, technologies, tools and platforms supporting software testing belong to the field of crowdsourcing software testing (hereinafter referred to as crowdsourcing). The main participants in crowdsourcing activities include task requesters, crowdsourcing workers and crowdsourcing platforms. Among them, the task requester initiates a test request and submits the software to be tested and the test task to the crowdsourcing platform; the crowdsourcing worker receives the task on the crowdsourcing platform and submits the test report after testing; the crowdsourcing platform reviews and rewards the report submitted by the crowdsourcing worker, and finally forms a delivery report for the task requester. A crowdsourcing platform based on a blockchain mainly includes five roles, namely, a registration authority, a task requester, a crowdsourcing worker, an evaluation worker and a blockchain platform. Compared with crowdsourcing software testing based on a centralized crowdsourcing platform, the crowdsourcing platform based on a blockchain adds three roles, namely, a blockchain platform, an evaluation worker and a registration authority, and removes the centralized crowdsourcing platform. The blockchain platform replaces the role of the crowdsourcing platform, and the crowdsourcing process can be realized on the blockchain platform to recommend suitable crowdsourcing workers for crowdsourcing tasks in a fair, open and credible manner; the evaluation worker mainly reviews and evaluates the crowdsourcing report submitted by the crowdsourcing worker; and the registration authority is mainly responsible for the management and authentication of user identity. The task requester publishes a crowdsourcing task to detect as many errors as possible within a limited budget. However, not all crowdsourcing workers are good at completing crowdsourcing tasks. Suitable crowdsourcing workers can find more errors, while unsuitable crowdsourcing workers may miss errors and it costs a lot to hire them. Therefore, it is necessary to recommend a group of suitable workers for a test task.

[0003] It is an important research problem to recommend suitable crowd workers for a crowd task. A reliable and effective crowd worker recommendation method can recommend less crowd workers for a crowd task, and the recommended workers can complete the crowd task with high quality. Keyword matching is a classical crowd worker recommendation method, which requires the task requester and the crowd worker to specify the task specific information and the crowd worker's expertise respectively. Since the crowd worker and the crowd platform have an employment relationship, there may be unfairness in the centralized crowd platform to perform the recommendation task. For example, the crowd platform recommends the high-revenue and simple task to the specified worker. Blockchain is a decentralized distributed technology, and we can automatically, publicly and fairly complete the crowd worker recommendation on the blockchain through the smart contract, which solves the unfairness problem in the centralized crowd platform to perform the recommendation task. Due to the transparency of the blockchain, the privacy information of the crowd users (including the task requester and the crowd worker) stored on the blockchain will be exposed to other users. In order to avoid the leakage of privacy information, the crowd users usually encrypt the privacy information and store it on the blockchain, which makes the traditional keyword matching-based crowd task recommendation method no longer applicable. Therefore, the research on the crowd worker recommendation method based on the ciphertext information has become an important challenge.

[0004] To this end, the present application proposes a crowd worker recommendation method based on ciphertext information. The present application recommends suitable crowd workers for a crowd task from two dimensions of the similarity between the crowd worker's expertise and the crowd task information and the crowd worker's historical behavior. First, an asymmetric encryption public-private key pair is generated for each crowd user (including the crowd worker and the task requester), and the similarity between the crowd worker and the crowd task is calculated through the key conversion and inner product matching technology. The higher the similarity between the crowd worker and the crowd task, the more suitable the crowd worker is for the crowd task; secondly, the reputation value is used to represent the good or bad behavior of the crowd worker in the historical crowd task, and the higher the reputation value, the better the performance of the crowd worker in the historical task, which can complete the crowd task honestly and reliably. The heap sorting algorithm is used to select the worker with high reputation value as the final recommendation result among the workers meeting the requirements of the crowd task.

[0005] Through this method, the task requester can quickly and accurately get the crowd worker matching the crowd task in the privacy protection environment of the blockchain, and then complete the crowd task with high quality. This not only reduces the risk of privacy leakage of crowd users in the crowd worker recommendation process, but also effectively speeds up the process of crowd software testing and promotes the development of crowd software testing. SUMMARY

[0006] This invention provides a crowdsourcing worker recommendation method based on encrypted information, effectively addressing the problem that existing crowdsourcing software testing worker recommendation methods are unusable in blockchain privacy-preserving environments. By utilizing similarity matching and reputation scores, it helps task requesters accurately find suitable crowdsourcing workers, ensuring the high-quality completion of crowdsourcing tasks.

[0007] To achieve the above objectives, this invention proposes a crowdsourcing worker recommendation method based on encrypted information. First, the similarity (match_degree) between each crowdsourcing worker's expertise (domain of expertise) and the crowdsourcing task is calculated. A higher match_degree indicates a worker is more suitable for the task. Based on this, an ID array (IdArray) of workers with high match_degrees is selected. Second, worker IDs with high reputation values ​​(reputation_value) are searched from the IdArray. A high reputation value indicates that the worker has performed well in past tasks and can complete the task honestly and reliably. Then, a heap sort algorithm is used to select workers with higher reputation values ​​from those matching the task requirements as the final recommendation. Specifically, this method includes the following steps.

[0008] 1) Registration Authority Initialization. The registration authority first initiates the initialization phase. Four parameters, m, n, t, and λ, need to be passed to the registration authority. Here, m and n are used to generate the matrix for the decryption-encryption inner product, and the integer t ∈ Z. * For integer vector encryption, λ is used to generate the system master public key mpk and the system master key msk. Subsequently, the registration authority selects a matrix T. s ∈Z m×(n-m) Then decrypt matrix S s =[I,T s The key is transmitted to the smart contract as the key to decrypt the cryptographic inner product, where I∈Z. m×m It is an identity matrix. The initialized registration structure can be viewed as a quadruple. <mpk,msk,T s S s >

[0009] 2) User Registration for Crowdsourcing Testing. Users first generate a public / private key pair.<sk,pk> The public and private key pair is uploaded to the registration authority. The registration authority uses the master private key to sign the user's PK (player kill) and issues a certificate (Cert). The registered user joins the blockchain network using the certificate (Cert). After joining the blockchain network, the registration authority calculates a corresponding transformation matrix for the registered user. This transformation matrix can convert the similarity ciphertext information into a key-based structure. sencrypted ciphertext. If the registered user is a crowdworker, the registration authority will calculate its conversion matrix with all task requesters, and if the registered user is a task requester, the registration authority will calculate its conversion matrix with all crowdworkers. The conversion matrix calculation formula is shown in formula (1), where is the private key of the worker, is the private key of the task requester, T s is the initial matrix generated in the initialization stage of the registration authority, E is the unit matrix, and A is a random matrix.

[0010]

[0011] 3) Similarity-based crowdworker screening. The crowdworker will first add the field of expertise, convert the specific field keyword into a vector Expertise j , and then use the private key to obtain the encrypted vector Expertise′ j through formula (2). Finally, the crowdworker will store Expertise′ j in the smart contract. Wherein, is the private key of the crowdworker, Expertise′ j is the encrypted vector, Expertise j is the original vector, t is the parameter input in the initialization stage of the registration authority, and e is the noise vector.

[0012]

[0013] When the requester publishes a task, the task information is first converted into a vector Task i using the uni-gram segmentation algorithm, and then the private key is used to obtain the vector Task′ i through formula (3). Finally, the requester will store Task′ i in the smart contract, and when publishing the task, the number of required crowdworkers K needs to be specified. Wherein, is the private key of the crowdworker, Task′ i is the encrypted vector, Task i is the original vector, t is the parameter input in the initialization stage of the registration authority, and e is the noise vector.

[0014]

[0015] The requester calls the smart contract with Task′i as a parameter, and then the smart contract calculates Task′i and each Expertise jinner product, the ciphertext of inner product can be transformed into a new ciphertext under the key S ij s The larger the inner product is, the more similar the field the worker is good at is to the task, which means the worker is more suitable for the task than other workers. Wherein, Expertise' j is the encrypted vector of the field the crowd worker is good at, Task' i is the encrypted vector of the crowd task information, is the transpose of the encrypted vector of the crowd task information, and t is a parameter input in the enrollment authority initialization stage.

[0016]

[0017] 4) The crowd worker sorting based on the reputation value. The purpose of this step is to select the worker with a higher reputation value reputation_value on the basis of the previous step. Based on this, firstly, the worker with a required similarity is constructed into a large top heap, and the comparison benchmark is the reputation value reputation_value of the worker. Then, the worker ID at the top of the heap is taken in turn and saved to an array, and the heap needs to be adjusted every time the worker ID is taken. The worker ID array selected is recommended to the task requester as the final recommendation result.

[0018] Further, the specific steps of the above step 1) are as follows:

[0019] Step 1)-1: initial state;

[0020] Step 1)-2: input four integers m, n, t and λ;

[0021] Step 1)-5: generate an initial matrix Ts of m*(n-m) according to m and n;

[0022] Step 1)-6: splice the matrix Ts and the unit matrix E to generate a decryption matrix Ss;

[0023] Step 1)-7: output the system master key pair <msk, mpk>, the decryption matrix Ss and the initial matrix Ts;

[0024] Step 1)-8: end state.

[0025] Further, the specific steps of the above step 2) are as follows:

[0026] Step 2)-1: initial state;

[0027] Step 2)-2: input the four-tuple <mpk, msk, T s , S​s >.

[0028] Step 2)-3: The crowdsourcing user generates a public-private key pair and sends to the registration authority;

[0029] Step 2)-4: The registration authority signs the user's public key using the system master private key msk to generate a certificate Cert;

[0030] Step 2)-5: Determine the type of registered user, if it is a crowdsourcing worker, then execute step 2)-5, if it is a task requester, then execute step 2)-12;

[0031] Step 2)-6: Define the loop variable i = 0 of the task requester set, and the index of the crowdsourcing worker is cur;

[0032] Step 2)-7: Calculate the conversion matrix M cur,i of the i-th task requester and the current registered crowdsourcing worker;

[0033] Step 2)-8: i = i + 1;

[0034] Step 2)-9: Determine whether i is greater than the total number of task requesters, if yes, then execute step 2)-9, otherwise execute step 2)-6;

[0035] Step 2)-10: The crowdsourcing worker joins the blockchain network with the certificate Cert issued by the registration authority;

[0036] Step 2)-11: The total number of crowdsourcing workers is incremented by one;

[0037] Step 2)-12: The blockchain network initializes a private reputation value 0 for the crowdsourcing worker, and the next step executes step 2)-18;

[0038] Step 2)-13: Define the loop variable j = 0 of the crowdsourcing worker set, and the index of the task requester is cur;

[0039] Step 2)-14: Calculate the conversion matrix M j,cur of the j-th crowdsourcing worker and the current registered task requester;

[0040] Step 2)-15: j = j + 1;

[0041] Step 2)-16: Determine whether j is greater than the total number of crowdsourcing workers, if yes, then execute step 2)-16, otherwise execute step 2)-13;

[0042] Step 2)-17: The crowdsourcing task requester joins the blockchain network with the certificate issued by the registration authority;

[0043] Step 2)-18: The total number of task requesters is incremented by one;

[0044] Step 2)-19: Output the crowd-sourcing user set;

[0045] Step 2)-20: End state.

[0046] Further, the specific steps of step 3) above are as follows:

[0047] Step 3)-1: Start state;

[0048] Step 3)-2: Input the crowd-sourcing user set;

[0049] Step 3)-3: Define the loop variable i of the crowd-sourcing worker set as 0;

[0050] Step 3)-4: For the crowd-sourcing worker Worker i Fill in the Expertise i .

[0051] Step 3)-5: i = i + 1;

[0052] Step 3)-6: Whether i is greater than the total number of crowd-sourcing workers, if yes, execute step 3)-6, otherwise execute step 3)-3;

[0053] Step 3)-7: Task requester Requester j Add the task Task j Information (including the number of workers K required) to the smart contract and publish it on the blockchain network.

[0054] Step 3)-8: Define the similarity array Array and the final similarity-compliant crowd-sourcing worker ID array Ids;

[0055] Step 3)-9: Define the loop variable i of the crowd-sourcing worker set as 0;

[0056] Step 3)-10: Based on formula (4), calculate the similarity between each crowd-sourcing worker Expertise i and the crowd-sourcing task Task j ;

[0057] Step 3)-11: Convert the similarity ciphertext through the conversion matrix M ij (Worker i and Request j conversion matrix) into ciphertext with private key S s ;

[0058] Step 3)-12: Decrypt the similarity ciphertext using the private key S s and save the similarity plaintext to the Array array;

[0059] Step 3) - 13: i = i + 1;

[0060] Step 3) - 14: judge whether i is greater than the total number of crowd workers, if yes, execute Step 3) - 14, otherwise execute Step 3) - 9;

[0061] Step 3) - 15: sort the similarity array in descending order;

[0062] Step 3) - 16: output the top 2K crowd worker IDs in the similarity ranking to the ID array Ids;

[0063] Step 3) - 17: end state.

[0064] Further, the specific steps of the above step 4) are as follows:

[0065] Step 4) - 1: start state;

[0066] Step 4) - 2: input the array Ids of the crowd worker IDs that meet the similarity;

[0067] Step 4) - 3: define variable i = K;

[0068] Step 4) - 4: judge whether i is less than or equal to 2K, if yes, execute Step 4) - 5, otherwise execute Step 4) - 11;

[0069] Step 4) - 5: define variables t = i - 1, l = 2*i, r = 2*i + 1, largest = i;

[0070] Step 4) - 6: judge whether r is less than 2K and the reputation value of worker Ids[r] is greater than the reputation value of worker ID[i] at the same time, if yes, execute Step 4) - 7, otherwise execute Step 4) - 8;

[0071] Step 4) - 7: assign the value of r to largest;

[0072] Step 4) - 8: judge whether l is less than 2K and the reputation value of worker Ids[l] is greater than the reputation value of worker ID[i] at the same time, if yes, execute Step 4) - 9, otherwise execute Step 4) - 10;

[0073] Step 4) - 9: assign the value of l to largest;

[0074] Step 4) - 10: judge whether the value of largest is equal to i, if yes, execute Step 4) - 11, otherwise exchange Ids[i] and Ids[largest], and assign the value of largest to i, execute Step 4) - 4;

[0075] Step 4) - 11 : Assign the value of t to i;

[0076] Step 4) - 12: Determine if the value of i is less than 1, if so execute Step 4) - 13, otherwise execute Step 4) - 4;

[0077] Step 4) - 13: Define an array ids of length k, and pointer variable index = 0;

[0078] Step 4) - 14: Take the top element of the heap, Ids[0], and place it in ids[index];

[0079] Step 4) - 15: index = index + 1;

[0080] Step 4) - 16: Swap Ids[0] with Ids[2K - index], and modify the value of i to 0;

[0081] Step 4) - 17: Determine if i is less than or equal to 2K - index - 1, if so execute Step 4) - 18, otherwise execute Step 4) - 24;

[0082] Step 4) - 18: Define l = 2*i, r = 2*i + 1, largest = i;

[0083] Step 4) - 19: Determine if r is less than 2K and the reputation value of worker Ids[r] is greater than the reputation value of worker Ids[i], if so execute Step 4) - 20, otherwise execute Step 4) - 21;

[0084] Step 4) - 20: Assign the value of r to largest;

[0085] Step 4) - 21: Determine if 1 is less than 2K and the reputation value of worker Ids[l] is greater than the reputation value of worker ID[i], if so execute Step 4) - 22, otherwise execute Step 4) - 23;

[0086] Step 4) - 22: Assign the value of l to largest;

[0087] Step 4) - 23: Determine if largest is equal to i, if so execute Step 4) - 24, otherwise swap Ids[i] and Ids[largest], and assign the value of largest to i, execute Step 4) - 17;

[0088] Step 4) - 24: Determine if index is less than K, if so execute Step 4) - 25, otherwise execute Step 4) - 14;

[0089] Step 4)-25: Output the ids array containing worker IDs;

[0090] Step 4)-26: End state. Attached Figure Description

[0091] Figure 1 This is a flowchart of a crowdsourcing worker recommendation method based on encrypted information in an embodiment of the present invention.

[0092] Figure 2 for Figure 1 Initialization flowchart of the registration agency.

[0093] Figure 3 for Figure 1 Flowchart of user registration process for crowdsourcing testing.

[0094] Figure 4 for Figure 1 Flowchart for similarity calculation and filtering.

[0095] Figure 5 for Figure 1 Flowchart of crowdsourced testing worker ranking based on reputation value. Detailed Implementation

[0096] To better understand the technical content of the present invention, specific embodiments are described below in conjunction with the accompanying drawings.

[0097] Figure 1 This is a flowchart illustrating a crowdsourced worker recommendation method based on encrypted information, as implemented in this invention.

[0098] A crowdsourced worker recommendation method based on encrypted information, characterized by the following steps.

[0099] S1 Registration Authority Initialization: The registration authority needs to perform some initialization tasks, including generating the system master public-private key pair and decryption matrix Ss.

[0100] For S2 crowdsourcing user registration, crowdsourcing workers and task requesters need to generate their own public-private key pairs and send them to the registration authority. The registration authority uses the master private key to sign the user's public key and issue a certificate, which is the user's unique credential for joining the blockchain. For crowdsourcing workers, the registration authority needs to calculate the transformation matrix between the crowdsourcing worker and each task requester; for task requesters, the registration authority needs to calculate the transformation matrix between the task requester and each crowdsourcing worker. Subsequently, crowdsourcing users join the blockchain network with their certificates. If a crowdsourcing worker joins the blockchain network, the blockchain network will assign them an initial private reputation value.

[0101] S3 Similarity-based crowd worker screening, after the crowd worker joins the blockchain network, it needs to manually supplement the field of expertise. When the task requester sends the crowd testing task, the similarity ciphertext is calculated with each crowd worker, and then converted into ciphertext that Ss can decrypt through the conversion matrix. After that, the plaintext is obtained by Ss decryption, and then the similarity is sorted and the high similarity is selected as the screening result.

[0102] S4 Reputation-based crowd worker sorting, after screening the eligible crowd workers, the crowd worker with the highest reputation value is selected as the recommended result. The higher the reputation value of the crowd worker represents that the crowd worker finds more bugs in the historical crowd testing tasks.

[0103] Figure 2 The registration authority is initialized. The registration authority first starts the initialization phase. Four parameters m, n are needed to generate the decryption encryption inner product matrix, an integer t∈Z* is used for integer vector encryption, and λ is used to generate the system master public key mpk and the system master secret key msk. Then the registration authority selects a matrix T s ∈Z m×(n-m) Then S s =[I, T s ] is transmitted to the smart contract as the key for decrypting the encryption inner product, where I∈Z m×m is a unit matrix. The specific steps are as follows:

[0104] Step 1: Start state; Step 2: input four integers m, n, t and λ; Step 3: integer t is used for integer vector encryption; Step 4: generate system master key pair <msk, mpk> according to λ; Step 5: generate an initial matrix Ts of m*(n-m) according to m and n; Step 6: concatenate matrix Ts and unit matrix E to generate decryption matrix Ss; Step 7: output system master key pair <msk, mpk>, decryption matrix Ss and initial matrix Ts; Step 8: end state;

[0105] Figure 3 Crowd testing user registration flowchart. The crowd testing user (including crowd workers and task requesters) first generates a public-private key pair <pk, sk>, and uploads the public-private key pair to the registration authority. The registration authority signs the pk of the crowd testing user with the master private key and issues a certificate Cert. The registered user joins the blockchain network with the certificate Cert. If the registered user is a crowd worker, the registration authority will calculate the conversion matrix of all task requesters. Similarly, if the registered user is a task requester, the registration authority will calculate the conversion matrix of all crowd workers. The specific steps are as follows:

[0106] Step 1: Start state; Step 2: input four-tuple <mpk, msk, Ts , S s ). Step 3: the crowd user generates a public-private key pair and sends it to the registration authority; step 4: the registration authority signs the user's public key using the system master private key msk to generate a certificate Cert; step 5: determine the type of registered user, if it is a crowd worker, then execute step 5, if it is a task requester, then execute step 12; step 6: define the loop variable i = 0 of the task requester set, and the subscript of the current registered crowd worker is cur; step 7: calculate the conversion matrix M cur,i of the i-th task requester and the current registered crowd worker; step 8: i = i + 1; step 9: determine whether i is greater than the total number of task requesters, if yes, then execute step 9, otherwise execute step 6; step 10: the crowd worker joins the blockchain network with the certificate Cert issued by the registration authority; step 11: the total number of crowd workers is incremented by one; step 12: the blockchain network initializes a private reputation value 0 for the crowd worker, and the next step executes step 18; step 13: define the loop variable j = 0 of the crowd worker set, and the subscript of the current registered task requester is cur; step 14: calculate the conversion matrix M j,cur of the j-th crowd worker and the current registered task requester; step 15: j = j + 1; step 16: determine whether j is greater than the total number of crowd workers, if yes, then execute step 16, otherwise execute step 13; step 17: the crowd task requester joins the blockchain network with the certificate issued by the registration authority; step 18: the total number of task requesters is incremented by one; step 19: output the crowd user set; step 20: end state.

[0107] Figure 4 A flowchart for similarity-based crowd worker screening. The crowd worker will first add the field of expertise, then encrypt the crowd task and compile it into a smart contract and publish it on the blockchain, then trigger the smart contract to calculate the similarity between the crowd task and each crowd worker, and finally select the crowd worker with high similarity as the screening result. The specific steps are as follows:

[0108] Step 1: start state; step 2: input the crowd user set; step 3: define the loop variable i = 0 of the crowd worker set; step 4: fill in the field of expertise Experties i for the crowd worker Worker i . Step 5: i = i + 1; step 6: determine whether i is greater than the total number of crowd workers, if yes, then execute step 3)-6, otherwise execute step 3)-3; step 7: the task requester Requester j encrypts the task Task jInformation (including the number of workers K required) is encrypted, compiled into a smart contract and published on the blockchain network. Step 8: define the similarity array Array and the final similarity conforming crowd test worker ID array Ids; Step 9: define the loop variable i of the crowd test worker set i = 0; Step 10: based on formula (4), calculate the similarity ciphertext of each crowd test worker's expertise i and the crowd test task Task j ; Step 11: convert the similarity ciphertext through the conversion matrix M ij (Worker i and Request j conversion matrix) into ciphertext with private key Ss; Step 12: decrypt the similarity ciphertext using the private key Ss and save the similarity plaintext to the Array array; Step 13: i = i + 1; Step 14: determine whether i is greater than the total number of crowd test workers, if so, execute steps 3)-14, otherwise execute steps 3)-9; Step 15: sort the similarity array in descending order; Step 16: output the top 2K crowd test worker IDs in the similarity order and save them to the ID array Ids; Step 17: end state.

[0109] Figure 5 The flow chart of the crowd test worker ranking based on the reputation value. The purpose of this step is to select workers with higher reputation values on the basis of the previous step. Based on this, first construct a large top heap for workers that meet the similarity requirements, and the comparison benchmark is the reputation value of the worker. Then, the top worker ID is saved to the array in turn, and the heap needs to be adjusted every time the worker ID is taken. The specific steps are as follows:

[0110] Step 1: Start state; Step 2: input an array of worker IDs, Ids, that have a similarity score that meets a certain threshold; Step 3: define variable i = K; Step 4: determine if i is less than or equal to 2K, if so then execute Step 5, otherwise execute Step 11; Step 5: define variables t = i - 1, I = 2*i, r = 2*i + 1, largest = i; Step 6: determine if r is less than 2K and the reputation value of worker Ids[r] is greater than the reputation value of worker ID[i], if so then execute Step 7, otherwise execute Step 8; Step 7: assign the value of r to largest; Step 8: determine if 1 is less than 2K and the reputation value of worker Ids[l] is greater than the reputation value of worker ID[i], if so then execute Step 9, otherwise execute Step 10; Step 9: assign the value of I to largest; Step 10: determine if the value of largest is equal to i, if so then execute Step 11, otherwise exchange Ids[i] and Ids[largest] and assign the value of largest to i, execute Step 4; Step 11: assign the value of t to i; Step 12: determine if the value of i is less than 1, if so then execute Step 13, otherwise execute Step 4; Step 13: define an array of length k, ids, and a pointer variable index = 0; Step 14: take the top element of the heap, Ids[0], and place it in ids[index]; Step 15: index = index + 1; Step 16: exchange Ids[0] with Ids[2K - index] and modify the value of i to 0; Step 17: determine if i is less than or equal to 2K - index - 1, if so then execute Step 18, otherwise execute Step 24; Step 18: define I = 2*i, r = 2*i + 1, largest = i; Step 19: determine if r is less than 2K and the reputation value of worker Ids[r] is greater than the reputation value of worker Ids[i], if so then execute Step 20, otherwise execute Step 21; Step 20: assign the value of r to largest; Step 21: determine if 1 is less than 2K and the reputation value of worker Ids[l] is greater than the reputation value of worker ID[i], if so then execute Step 22, otherwise execute Step 23; Step 22: assign the value of I to largest; Step 23: determine if largest is equal to i, if so then execute Step 24, otherwise exchange Ids[i] and Ids[largest] and assign the value of largest to i, execute Step 17; Step 24: determine if index is less than K, if so then execute Step 25, otherwise execute Step 14; Step 25: output the ids array that holds the worker IDs; Step 26: end state.

[0111] In summary, the present application aims at solving the problem that the existing crowd software testing worker recommendation method cannot be used in the blockchain privacy protection environment. By using the similarity-based crowd testing worker screening and the reputation value-based crowd testing worker sorting, the suitable crowd testing worker can be found for the task requester, and the method for ensuring the high-quality completion of the crowd testing task is provided.

Claims

1. A method for recommending crowdsourced workers based on encrypted information, characterized in that, First, we calculate the similarity (match_degree) between each worker's expertise (domain of expertise) and the assigned task in the worker pool. Workers with higher match_degrees are more suitable for the task. Based on this, we select an array of worker IDs (IdArray) with high match_degrees. Second, we search for worker IDs with high reputation_values ​​from the IdArray. A high reputation_value indicates good performance in past tasks. We then use a heap sort algorithm to select workers with high reputation values ​​from those matching the task requirements as the final recommendation. This method helps task requesters find suitable workers reliably without compromising privacy. The method includes the following steps: 1) Registration Authority Initialization: The registration authority first initiates the initialization phase, which requires passing four parameters m, n, t, and λ; where m and n are used to generate the decryption-encryption inner product matrix, and integer t∈Z. * For integer vector encryption, λ is used to generate the system master public key mpk and the system master key msk; subsequently, the registration authority selects a matrix T. s ∈Z m×(n-m) Then decrypt matrix S s =[I,T s The key is transmitted to the smart contract as the key to decrypt the cryptographic inner product, where I∈Z. m×m It is an identity matrix; 2) Crowdtesting User Registration: Crowdtesting users first generate a public-private key password pair.<pk,sk> The public and private key pair is uploaded to the registration authority. The registration authority uses the master private key to sign the user's PK and issues a certificate Cert. The registered user joins the blockchain network with the certificate Cert. After joining the blockchain network, the registration authority calculates the corresponding transformation matrix for the registered user. This transformation matrix can convert the similarity ciphertext information into a key S. s The encrypted text; if the registered user is a crowdsourcing worker, the registration agency will calculate the transformation matrix between them and all task requesters, and similarly, if the registered user is a task requester, the registration agency will calculate the transformation matrix between them and all crowdsourcing workers; the formula for calculating the transformation matrix is ​​shown in formula (1), where It is the worker's private key. It is the private key of the task requester, T s The initial matrix generated during the registration agency initialization phase, where E is the identity matrix and A is a random matrix: 3) Similarity-based selection of crowdsourcing workers: Crowdsourcing workers are first added based on their areas of expertise, and keywords from specific areas are converted into an Expertise vector. j Then use the private key The encryption vector Expertise′ is obtained through formula (2). j Ultimately, the users who participate in the crowdfunding will evaluate Expertise's results. j Stored in a smart contract; the formula (2) used is as follows, where It is the private key of the crowdsourcing workers, Expertise' j The encrypted vector is t, which is the parameter input during the initialization phase of the registration agency, and e is the noise vector. When a requester publishes a task, they first use a uni-gram segmentation algorithm to convert the task information into a vector `Taski`, and then use their private key. The vector Task′ is obtained through formula (3). i Ultimately, the requester will submit Task' i When storing the data in a smart contract and publishing the task, the required number of crowdsourcing workers K needs to be specified. The formula (3) used is as follows, where... It is the private key of the crowdsourcing worker, Task' i The encrypted vector is t, which is the parameter input during the initialization phase of the registration agency, and e is the noise vector. The requester uses Task' i The smart contract is called as a parameter, and then the smart contract calculates Task′ sequentially according to the formula. i With each Expertise j The inner product, the ciphertext of the inner product can be obtained through M. ij Transformed into a new key S s The larger the inner product of the encrypted text, the more similar the worker's area of ​​expertise is to the crowdsourcing task, meaning that the worker is more suitable for the task than other workers. 4) Ranking of Crowdsourced Workers Based on Reputation Value: The purpose of this step is to select workers with higher reputation values ​​based on the previous step. To do this, a max-heap is first constructed for workers whose similarity meets the requirements. The benchmark for comparison is the worker's reputation value. Then, the worker IDs at the top of the heap are taken and stored in an array. The heap needs to be adjusted each time a worker ID is taken. The array of selected worker IDs is used as the final recommendation result and recommended to the task requester.

2. The crowdsourced worker recommendation method based on encrypted information according to claim 1, characterized in that, In step 1), model initialization is performed. The registration agency needs to perform some initialization work, including generating the system master public and private key pair and the decryption matrix Ss.

3. The crowdsourced worker recommendation method based on encrypted information according to claim 1, characterized in that, In step 2), crowdsourcing users register. Crowdsourcing workers and task requesters need to generate their own public-private key pairs and send them to the registration agency. The registration agency uses the master private key to sign the user's public key and issue a certificate. This certificate is the user's unique credential for joining the blockchain. For crowdsourcing workers, the registration agency needs to calculate the transformation matrix between the crowdsourcing worker and each task requester. For task requesters, the registration agency needs to calculate the transformation matrix between the task requester and each crowdsourcing worker. Subsequently, crowdsourcing users join the blockchain network with their certificates. If a crowdsourcing worker joins the blockchain network, the blockchain network will assign them an initial private reputation value.

4. The crowdsourced worker recommendation method based on encrypted information according to claim 1, characterized in that, In step 3), similarity screening is performed. After joining the blockchain network, the crowdsourcing workers need to manually fill in their areas of expertise. When the task requester sends a crowdsourcing task, the similarity ciphertext is calculated with each crowdsourcing worker. Then, it is converted into ciphertext that can be decrypted by Ss through a transformation matrix. After that, the plaintext can be obtained by decrypting it through Ss. Then, the similarity is sorted and the result with the highest similarity is selected.

5. The crowdsourced worker recommendation method based on encrypted information according to claim 1, characterized in that, In step 4), after sorting by reputation value and filtering out the qualified testers, it is necessary to select testers with higher reputation values ​​from these workers as the recommended results. A higher reputation score for a product tester indicates that the tester has discovered more bugs in past product testing tasks.

Citation Information

Patent Citations

  • Crowdsourcing platform laborer selecting method

    CN107239983A

  • An accurate audience selection method based on artificial intelligence

    CN109087123A