Resource allocation method and apparatus for group, and computer-readable storage medium
By adopting a decentralized group resource allocation method in a multi-party collaborative environment, and using technical means such as inadvertent transmission and hash commitment, the problem of difficulty in resource allocation in the existing technology is solved, and the fair, secure, verifiable and high privacy allocation of resources is achieved.
Patent Information
- Application Number
- PCT/CN2023/129098
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-11-01
- Publication Date
- 2025-05-08
AI Technical Summary
When the prior art is allocated in a multi-party collaborative environment, it is difficult to take into account the problems of security, fairness, reliability, verifiability and high privacy.
The decentralized group resource allocation method is adopted to generate non-conflict initial sequence numbers and random sequences by determining the resource set and each allocation object, and obtaining the target sequence numbers using inadvertent transmission methods, thereby achieving fair, secure and high privacy allocation of resources.
In the absence of a trusted third party, the fair and efficient allocation of resources is achieved, ensuring transparency, verifiability, randomness and security of the entire process.
Smart Images

Figure CN2023129098_08052025_PF_FP_ABST
Abstract
Description
Group resource allocation method, device and computer-readable storage medium Technical Field
[0001] The present application belongs to the field of data, and specifically relates to a group resource allocation method, system, device, and computer-readable storage medium. Background Art
[0002] This section is intended to provide a background or context to the embodiments of the application that are recited in the claims. No statement herein is admitted to be prior art by virtue of its inclusion in this section.
[0003] In a multi-party collaborative environment, existing methods rely on a centralized factor to group, allocate, schedule resources, and generate random factors to complete the allocation and matching of resources, roles, etc.
[0004] Existing systems that use decentralized methods for random allocation usually rely directly on blockchain as a centralized data storage and access medium or a medium for generating random factors. The efficiency of random allocation is limited by the performance of the blockchain, or there may be security risks, making it difficult to effectively guarantee fairness and privacy.
[0005] The above methods each have disadvantages in terms of security, reliability, performance, etc. The present invention provides a decentralized, secure, reliable, and verifiable confidential random allocation method that can ensure the fairness of allocation.
[0006] Therefore, how to provide a secure, fair, reliable, verifiable, and highly private resource allocation method is an urgent problem to be solved.
[0007] Application Contents
[0008] In response to the problem in the above-mentioned existing technologies that resource allocation cannot be performed in a manner that takes into account security, fairness, reliability, verifiability, and high privacy, a group resource allocation method, device, and computer-readable storage medium are proposed. Using this method, device, and computer-readable storage medium, the above-mentioned problem can be solved.
[0009] This application provides the following solutions.
[0010] In a first aspect, a group resource allocation method is provided, where the group includes multiple allocation objects, and the method includes: determining a resource set, where the resource set includes N resources carrying a tagged sequence number, where N is a positive integer; each allocation object determines a non-conflicting initial sequence number and generates a random sequence respectively, where the random sequence consists of N tagged sequence numbers; using an oblivious transmission method between each allocation object, so that each allocation object is based on the initial sequence number and obtains an intermediate sequence number from multiple random sequences in an alternating manner according to a set order of the multiple allocation objects until a target sequence number is obtained; each allocation object obtains a target resource from the resource set according to the target sequence number.
[0011] In one embodiment, each allocation object is based on an initial sequence number and obtains an intermediate sequence number from multiple random sequences in an alternating manner according to a set order of the multiple allocation objects, and also includes: each allocation object obtains a corresponding (m+1)th intermediate sequence number from the (m)th random sequence based on the (m)th intermediate sequence number; wherein m is a positive integer between 1 and M in sequence, M is the number of allocation objects, the initial sequence number is used as the first intermediate sequence number, and the (M+1)th intermediate sequence number is used as the target sequence number.
[0012] In one embodiment, the initial sequence number is selected for each assigned object by any designated assigned object to ensure that the initial sequence numbers do not conflict with each other.
[0013] In one embodiment, the group includes multiple distribution objects registered on one or more transmission nodes of the transmission network. An information receiver is deployed on the designated transmission node of the transmission network, serving as a channel for each distribution object to publish information to the group.
[0014] In one embodiment, each allocation object determines an initial serial number that does not conflict with each other, and further includes: each allocation object signs the determined initial serial number, and publishes the signed initial serial number in the group through the information receiver to ensure that the initial serial numbers determined by each allocation object do not conflict with each other.
[0015] In one embodiment, the method further includes: each allocation object makes a hash commitment to the generated random sequence, and publishes the hash commitment in the group through the information receiver.
[0016] In one embodiment, the method further includes: each allocation object adds a confusion factor when making a hash commitment to the random sequence.
[0017] In one embodiment, it includes: in the hash verification stage, each allocation object publishes its random sequence in the group through the information receiver, so that each allocation object verifies the published random sequence based on the previously published hash commitment.
[0018] In one embodiment, it includes: in the hash verification stage, each allocation object publishes its random sequence and confusion factor in the group through the information receiver, so that each allocation object verifies the published random sequence and confusion factor based on the previously published hash commitment.
[0019] In one embodiment, the method includes: each assigned object publishes a key used in the oblivious transfer process in a group through an information receiver, so that each assigned object can verify the interactive information of the oblivious transfer process with each other.
[0020] In one embodiment, the method includes: creating a trusted verification contract on a blockchain; and one or more assigned objects in a group pledging a trusted certificate in the trusted verification contract.
[0021] In one embodiment, the trusted verification contract is configured to: receive the hash commitment, random sequence, confusion factor and corresponding signature published by the designated distribution object within the group; verify whether the hash commitment, random sequence, confusion factor and corresponding signature are consistent; if not, punish the pledged trusted certificate of the designated distribution object within the trusted verification contract.
[0022] In one embodiment, the trusted verification contract is configured to: receive public interaction information between designated distribution objects during an oblivious transmission process; receive the key used by the designated distribution object during the oblivious transmission process; verify the public interaction information during the oblivious transmission process based on the key used during the oblivious transmission process; and if there is inconsistency, punish the pledged trusted certificate of the designated distribution object within the trusted verification contract.
[0023] In one embodiment, the trusted contract is configured to: punish the pledge trusted certificate of the timed-out allocation object within the trusted verification contract based on the time difference between the allocation objects in the process of inadvertent transmission of information.
[0024] In one embodiment, the trusted verification contract is configured to: receive the allocation results signed by each allocation object, and after verifying the signatures, allocate various resources to each allocation object according to the signed allocation results.
[0025] In a second aspect, a group resource allocation device is also provided, comprising: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to execute: the method of the first aspect.
[0026] According to a third aspect, a computer-readable storage medium is provided, wherein the computer-readable storage medium stores a program. When the program is executed by a multi-core processor, the multi-core processor executes the method according to the first aspect.
[0027] One of the advantages of the above embodiment is that it can fairly and efficiently complete the random allocation of resources required by all parties through orderly interaction among the allocation objects without a trusted third party, and can ensure the transparency and verifiability of the entire process, the fairness of randomness, the confidentiality of the results and the security of the process.
[0028] Other advantages of the present application will be explained in more detail with reference to the following description and accompanying drawings.
[0029] It should be understood that the above description is only an overview of the technical solution of this application, so that the technical means of this application can be more clearly understood and implemented in accordance with the contents of the description. In order to make the above and other purposes, features and advantages of this application more obvious and easy to understand, the following examples are used to illustrate the specific implementation methods of this application. BRIEF DESCRIPTION OF THE DRAWINGS
[0030] The advantages and benefits described herein, as well as other advantages and benefits, will be apparent to those skilled in the art upon reading the detailed description of the exemplary embodiments below. The accompanying drawings are provided for illustration purposes only and are not to be considered limiting of the present application. The same reference numerals are used throughout the accompanying drawings to denote the same components. In the accompanying drawings:
[0031] FIG1 is a flow chart of a group resource allocation method provided in an embodiment of the present application;
[0032] FIG2 is a schematic diagram of intra-group interaction of a group resource allocation method provided in an embodiment of the present application;
[0033] FIG3 is a schematic diagram of a group resource allocation system provided in an embodiment of the present application.
[0034] In the drawings, the same or corresponding reference numerals denote the same or corresponding parts. DETAILED DESCRIPTION
[0035] The following describes exemplary embodiments of the present application in more detail with reference to the accompanying drawings. Although the accompanying drawings illustrate exemplary embodiments of the present application, it should be understood that the present application can be implemented in various forms and should not be limited by the embodiments described herein. Rather, these embodiments are provided to enable a more thorough understanding of the present application and to fully convey the scope of the present application to those skilled in the art.
[0036] In the description of the embodiments of the present application, it should be understood that terms such as "including" or "having" are intended to indicate the presence of disclosed features, numbers, steps, actions, components, parts, or a combination thereof in the present specification, and do not exclude the possibility of the presence of one or more other features, numbers, steps, actions, components, parts, or a combination thereof.
[0037] Unless otherwise specified, “ / ” means or. For example, A / B can mean A or B. “And / or” in this article is only a way to describe the association relationship of associated objects, indicating that three relationships can exist. For example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone.
[0038] The terms "first," "second," etc., are used solely to distinguish identical or similar technical features for ease of description and should not be construed as indicating or implying the relative importance or quantity of these technical features. Thus, a feature defined by "first," "second," etc., may explicitly or implicitly include one or more of such features. In the description of the embodiments of this application, unless otherwise specified, the term "plurality" means two or more than two.
[0039] It should also be noted that, in the absence of conflict, the embodiments and features of the embodiments in this application can be combined with each other. The present application will be described in detail below with reference to the accompanying drawings and in combination with the embodiments.
[0040] Figure 1 is a flow chart illustrating a group resource allocation method according to an embodiment of the present application. In this flow, from a device perspective, the execution entity can be one or more electronic devices; from a program perspective, the execution entity can be the programs running on these electronic devices. A group includes multiple allocation targets (e.g., A, B, C, etc.).
[0041] As shown in FIG1 , the method provided in this embodiment may include the following steps:
[0042] Step 210: Determine a resource set, where the resource set includes N resources carrying tag serial numbers.
[0043] Wherein, N is a positive integer;
[0044] For example, there are N resources in resource set R {r1, r2, ..., r N}, there are M allocation objects in the object set P participating in the allocation {p1,p2,…,p M}, k (k≤N) resources in the resource set R are fairly and randomly allocated to the objects in the allocation object set P.
[0045] Furthermore, N independent identifiers are used as independent marking serial numbers for the N resources in the resource set R; for example, numbers 1, 2, 3, ..., N are used.
[0046] Step 220: Each allocation object determines a non-conflicting initial sequence number and generates a random sequence for each allocation object.
[0047] The random sequence consists of N tag numbers.
[0048] Specifically, each allocation object p1, p2, ..., p M Each allocation object shall independently select the initial sequence number of the resource to be selected in the resource set R, and each allocation object shall ensure that the selected initial sequence number does not conflict.
[0049] For example, p i Selected serial number Where i=1,2,3,…,M, and
[0050] In one embodiment, the initial sequence number may be selected for each allocation object by any designated allocation object to ensure that the initial sequence numbers do not conflict with each other.
[0051] Furthermore, each allocation object p1, p2, ..., p M A random sequence of N marking numbers is generated independently.
[0052] For example, the tag sequence numbers in the resource collection are {1, 2, 3}, the allocation object p1 selects the sequence number {2}, generates and commits the sequence {3, 1, 2}, p2 selects the sequence number {3}, generates and commits the sequence {2, 1, 3}, and so on.
[0053] Step 230: Using an oblivious transfer method between the allocation objects, each allocation object is based on an initial sequence number, and intermediate sequence numbers are obtained from multiple random sequences in a set order of the multiple allocation objects until the target sequence number is obtained;
[0054] Step 240: Each allocation object obtains the target resource from the resource set according to the target sequence number.
[0055] Oblivious transfer refers to information transmission methods that rely on oblivious transfer protocols (OTs), which encompass various known oblivious transfer algorithms. Its key features are: after a sender sends multiple (N) messages to a receiver, the receiver receives the desired message (1 out of N) or multiple messages (m out of N) without knowing the contents of the remaining messages (N-1 or Nm). Furthermore, the sender remains unaware of the final message or messages received by the receiver. This protocol aims to protect the data privacy of both the sender and receiver.
[0056] For example, in a financial credit scenario of one embodiment of the present application, it can be used for a financial company to confirm with a big data company whether a certain user is a high-quality customer without revealing the specific occupation of the user. Specifically, the financial company has set a high credit limit for the group of [doctors, civil servants, software engineers], and the big data company knows the occupations of its users. For an existing financial company's customer U, the financial company needs to confirm with the big data company whether U belongs to one of the above occupations, but the big data company cannot reveal to the financial company which of the above occupations U belongs to, nor can the big data company know which groups have high credit limits set by the financial company. In this scenario, the financial company and the big data company interact with data through the oblivious transfer protocol, so that the financial company can understand whether U belongs to the above high credit limit group, and both parties do not need to disclose their respective confidential information.
[0057] In the embodiment of the present application, it is necessary to set a setting order for multiple allocation objects so as to maintain the allocation consistency of the allocation objects.
[0058] In one embodiment, step 230 may further include:
[0059] Each allocation object obtains the corresponding (m+1)th intermediate sequence number from the (m)th random sequence based on the (m)th intermediate sequence number;
[0060] Here, m is a positive integer between 1 and M, M is the number of allocation objects, the initial sequence number is used as the first intermediate sequence number, and the M+1th intermediate sequence number is used as the target sequence number.
[0061] For example, if all the tag sequence numbers in the resource set are {1, 2, 3}, the allocation object p1 selected the sequence number {2} and generated the random sequence {3, 1, 2}, and p2 selected the sequence number {3} and generated the random sequence {2, 1, 3}. In the current step, according to the order of p1 and p2 as the set order, p1 selects the [2]th resource identifier in the random sequence it generated, that is, {1}, and then uses {1} as the intermediate sequence number to perform an oblivious transmission with the allocation object p2 to obtain the [1]th resource identifier, that is, {2}, from the random sequence of the allocation object p2. Therefore, after completing the current step, the allocation object p1 obtains the resource corresponding to the sequence number {2}. Similarly, allocation object p2 follows the order of p1 and p2 as the set order. It first performs an oblivious transfer with p1, uses its pre-selected sequence number {3}, obtains the [3]th resource identifier {2} in p1's random sequence, and then selects the [2]th resource identifier, {1}, in the random sequence generated by allocation object p2. Therefore, allocation object p2 is allocated the resource corresponding to sequence number {1}.
[0062] For another example, refer to Figure 2, which shows the interaction between three allocation objects (A, B, and C) when allocating five resources (whose resource numbers are 1, 2, 3, 4, and 5). ① to ⑤ represent the corresponding independent identifiers of the resources to be allocated, and the rows where each collaborator (i.e., allocation object) is located are the random sequences generated by each. The allocation objects are set in the order A→B→C. The initial sequence number determined by A is 4, and the random sequence generated is 1, 2, 3, 4, 5; the random sequence generated by B is 5, 1, 2, 3, 4; and the random sequence generated by C is 3, 2, 5, 4, 1. First, take A determining its allocated resources as an example. A first obtains the intermediate sequence number 4 from the random sequence number it generates based on the initial sequence number 4. Then, based on the intermediate sequence number 4, A performs an oblivious transfer with B to obtain the next intermediate sequence number 3. Then, based on the next intermediate sequence number 3, A performs an oblivious transfer with C to obtain the next intermediate sequence number 5, which is used as the target sequence number.
[0063] Alternatively, referring to FIG2 , {m i* |i=1,2,3} is a series of signature information sent by each distribution object through the information transmission network N, including hash commitment information, oblivious transmission information, etc., for verification of interactive information.
[0064] Therefore, using oblivious transfer, each participant cannot predict the final allocation result for themselves or other participants during the allocation process, ensuring that the final allocation result is known only to them, thus ensuring confidentiality. If participants need to engage in gambling or competitive actions based on the allocation results before the relevant proof of the final allocation result is published, using oblivious transfer can ensure that all parties can engage in fair gambling and competition without revealing their allocated resources.
[0065] FIG3 is a system diagram of a transmission network provided in an embodiment of the present application.
[0066] In one embodiment, referring to FIG3 , a transmission network N is used for efficient and fair information transmission, which includes a plurality of transmission nodes connected in communication; the transmission network N can specifically be a point-to-point transmission network, which is composed of transmission nodes such as N1, N2, ... that are responsible for receiving, transmitting, and routing information in the transmission network. The above-mentioned information transmission network N can be further described in detail in the CN113595736B patent application filed by the applicant, and the entire content of the application is introduced into the embodiments of the present application. The group includes a plurality of assigned objects (such as A, B, C, etc.) registered in one or more transmission nodes (such as N1, N2, etc.) of the transmission network N. Information receivers are deployed on the designated transmission nodes of the transmission network, which serve as channels for each assigned object to publish information to the group.
[0067] For example, still referring to Figure 3, the group receiver G is set at a designated transmission node of the transmission network N, such as N2 in Figure 3, and is configured to receive information sent by each of the assigned objects (such as A, B, C, etc.) and then publish it in the group.
[0068] In one embodiment, each allocation object determines an initial serial number that does not conflict with each other, and also includes: each allocation object signs the determined initial serial number, and publishes the signed initial serial number in the group through the information recipient, so as to ensure that the initial serial numbers determined by each allocation object do not conflict with each other.
[0069] In one embodiment, the method further includes: each allocation object makes a hash commitment to the generated random sequence, and publishes the hash commitment in the group through the information receiver.
[0070] Hash Commit (Commit Reveal) refers to the practice of publishing a hash value of content to be released at a certain point in the future in advance as a hash commitment. The content is then released at a certain point in time, and the content can be verified to be consistent with the previously announced hash value using a hash function (hash algorithm).
[0071] For example: at time t0, A holds content s, uses any hash algorithm H to calculate the hash commitment c = H(s), and publishes c (Hash Commit); at time t1, A publishes the content s (Reveal), and anyone can use H to verify c′ = H(s) and verify c = c′.
[0072] In this way, it can be ensured that each distribution object cannot deny the content disclosed in advance and the content generated by itself, and cannot arbitrarily adjust or modify the corresponding content during the process.
[0073] In one embodiment, the method further includes: each allocation object adds a confusion factor when making a hash commitment to the random sequence.
[0074] In the embodiment of the present application, when resources are limited (easily cracked by brute force), a confusion factor can be added when generating hash commitments to improve security. For example, p1 uses the Fisher-Yates scrambling algorithm to generate the sequence {r7, r4, r n ,…,r2}, and make a hash commitment c1.
[0075] In one embodiment, a hash commitment is made using one or more of the following methods: performing a hash calculation after concatenating the individual tag numbers in the random sequence, and publishing the hash calculation result in the group; constructing a hash tree based on the individual tag numbers in the random sequence, and publishing the hash tree root as the hash commitment in the group.
[0076] For example, taking the splicing method as an example, the hash commitment c1=Hash(r7|r4|r n |…|r2|X1), where X1 is the confounding factor.
[0077] For example, the Merkle tree (hash tree) and Merkle proof are a tree-shaped data structure, where each leaf node is labeled with the hash of the data block, and nodes other than leaf nodes are labeled with the encrypted hash of their child node labels. The use of Merkle trees can efficiently and securely verify the contents of large data structures, and has been widely used in technical fields related to cryptography and blockchain (such as Bitcoin). Take a typical Merkle tree as an example, where L1 to L4 are the basic data blocks. When the Top Hash is public, the Merkle proof of the data block is: [Hash 0-1 ,Hash1].
[0078] Therefore, when multiple sets of data need to be committed, hash commitments can use Merkle trees, that is, the Merkle tree root is published in advance, and the Merkle proof of the relevant data is published afterwards for verification.
[0079] Alternatively, other methods that can ensure the uniqueness of the sequence and the difficulty of brute force cracking can also be used.
[0080] Furthermore, in the hash verification phase, each allocation object publishes its random sequence in the group through the information receiver, so that each allocation object can verify the published random sequence based on the previously published hash commitment.
[0081] Furthermore, if a confusion factor is used in the hash commitment, in the hash verification stage, each allocation object publishes its random sequence and confusion factor in the group through the information recipient, so that each allocation object can verify the published random sequence and confusion factor with each other based on the previously published hash commitment.
[0082] Furthermore, in order to verify the credibility of the oblivious transfer, each assigned object publishes the key used in the oblivious transfer process in the group through the information receiver, so that each assigned object can verify the interactive information of the oblivious transfer process with each other.
[0083] In one embodiment, to ensure that the above-mentioned allocation results can be verified and enforced, it includes: creating a trusted verification contract on the blockchain; one or more allocation objects in the group pledge trusted credentials in the trusted verification contract.
[0084] Specifically, the trusted verification contract is configured to perform any of the following operations:
[0085] 1. Receive the hash commitment, random sequence, confusion factor, and corresponding signature announced by the designated allocation object in the group; verify whether the hash commitment, random sequence, confusion factor, and corresponding signature are consistent; if not, punish the designated allocation object's pledge trusted certificate in the trusted verification contract.
[0086] 2. Receive public interaction information between designated allocation objects during the oblivious transmission process; receive the key used by the designated allocation object during the oblivious transmission process; verify the public interaction information during the oblivious transmission process based on the key used during the oblivious transmission process; if there is any inconsistency, punish the pledged trusted certificate of the designated allocation object within the trusted verification contract.
[0087] For example, take two participants p1 and p2 using a simple oblivious transfer method. During the oblivious transfer process, the information exchanged between the two parties in the information receiving party includes:
[0088] Publicly transmitted information: S, R i 、c i (ie p1, p2 pre-selected resource number ), encrypted information obtained by encrypting the random sequence content using a key generated based on the above information and undisclosed secret information;
[0089] The last secret information released: y, x i ;
[0090] The trusted verification contract can combine the above information to verify the data of the distribution object during the inadvertent transmission process. If there is any inconsistency, the pledged assets of the reported object can be punished within the contract.
[0091] 3. Based on the time difference between the information exchanged between the allocation objects during the inadvertent transmission process, the pledge trusted certificate of the timed allocation object is punished within the trusted verification contract.
[0092] For example, taking two allocation objects p1 and p2 as an example, the time limit for each step of the allocation interaction process agreed in advance in the contract is 10 seconds. If it is p2's turn to publish an oblivious transmission message or sign the allocation result information in G, if it refuses to perform, p1 can submit p2's most recent valid process information a to the contract. If the contract gives p2 10 minutes to submit self-defense evidence, then if p2 can provide its subsequent process information b within 10 minutes, the contract can impose a timeout penalty on p2's pledged assets based on the time difference between the two pieces of information a and b; if p2 fails to submit self-defense evidence to the contract within 10 minutes, the contract will impose a penalty on p2's pledged assets for refusing to perform process obligations.
[0093] 4. Receive the allocation results signed by each allocation object, verify the signatures, and allocate various resources to each allocation object according to the signed allocation results.
[0094] The following lists various relevant application scenarios in which this application can be utilized. The present invention can provide secure randomness, verifiable fairness, and scalability for multi-party secure and confidential interaction for relevant application scenarios, and has wide application value.
[0095] In one scenario, embodiments of the present application can be used in online random matching scenarios. Specifically, in situations where two or more objects (e.g., user-end devices) need to be matched within a defined group and then collaborate (complete tasks, participate in activities), the method of the present invention can be used to perform fair and confidential matching to avoid disputes over the fairness of the pairing process and to prevent premature leakage of pairing results, which could lead to the parties being informed in advance or refusing to cooperate.
[0096] For example, in a group of 50 individuals, pairing is performed: the number of resources n = 2, the number of resources to be allocated k = 2, and the number of participating individuals m = 50; 25 allocations are performed, resulting in 25 allocation results. One allocation method is: before the allocation begins, 25 pairs of independent identifiers are established, representing 25 teams, such as S = {s|s = 1, 1, 2, 2, …, 24, 25, 25}. The 50 individuals randomly select a number from 1 to 50 as their identifier, without conflict. The 50 individuals independently generate a random sequence based on the set S and obtain their corresponding allocation results according to the method described in this application.
[0097] Furthermore, in the above example, if the matching group is large, for example, n = 5 and m = 1,000,000, the interaction process may be excessively long if all matching is completed according to the above design. This would be extremely inefficient in real-world scenarios. In this case, the group can be grouped as needed based on objective characteristics, such as the hash value of the corresponding public key, the transaction hash value of consecutive blocks on the blockchain, or other external random values, to improve efficiency. Specifically, based on the public keys of the asymmetric keys generated by one million clients, each client first publishes a hash commitment of the public key using the Keccak-256 hash algorithm, then publishes its own public key. The hash value of each public key is then calculated using the SHA-256 hash algorithm. The first 64 bits of the hash value are taken and sorted in ascending order. Based on the sorting results, groups of 20 or 50 are then randomly matched within the groups, using a method similar to the 50-person allocation described above, with groups of 5. This approach can improve interaction efficiency.
[0098] In another scenario, the embodiments of the present application can be used for selecting a master node in a distributed system. Specifically, in a distributed computing task system based on digital signatures for identity authentication, the selection of a master node (Leader) node using the method proposed in the embodiments of the present application can be performed fairly and securely in an adversarial environment without revealing the identity of the computing node.
[0099] In another scenario, embodiments of the present application can be used for fair task allocation. Specifically, the allocation of computing tasks or work tasks to multiple terminals or multiple people to complete confidentially and securely. Examples include the allocation of computing tasks to distributed computers, the dispatching of transportation tasks to vehicles, and the dispatching of work tasks to workers. Alternatively, taking the allocation of vehicle transportation tasks as an example, when grouping in large-scale scenarios, objective factors such as geographic location and vehicle condition can be considered, and a divide-and-conquer strategy can be used to achieve fair and random allocation of tasks and vehicles.
[0100] In another scenario, the embodiments of the present application can be applied to the selection of project judges / online juries / arbitration panel members, and fairly select several subjects from a limited group as arbitration panel members or jury members of an online arbitration case, or review expert members of a project, without leaking the matching information between members and business before the relevant business is completed.
[0101] For example, in a professional group of 10 people, 3 people are randomly selected from 10 candidates as professional reviewers for a project in a certain professional field. At this time, the number of resources n = 3, the number of resources to be allocated k = 3, and the number of participants m = 10. That is, 3 project review seats are randomly allocated to 10 experts. Before the allocation begins, the 10 experts are assigned independent identifiers 1 to 10 in sequence. Each expert pre-selects an identifier number s i =1,2,…,10 and {s i |i=1,2,…,10} do not repeat. The system stipulates that the experts ultimately assigned identification numbers 1, 2, and 3 through the allocation method of the present invention will obtain the three review seats for the project. The 10 experts independently generate random sequences and each obtains an assigned identification according to the invented method, thus completing the fair and random allocation of project review seats. This also ensures that as long as at least one expert does not collude with any other participating party, the allocation results are fair and random. After obtaining the allocation results, only the expert members who have obtained the three review seats know them. This confidentiality can provide effective protection for experts during the project review process, effectively increasing the difficulty and cost of soliciting and accepting bribes, and avoiding compromising the fairness of the review.
[0102] In another scenario, the embodiment of the present application can be used for turn-based multiplayer online competitive games, supporting turn-based online competitive games including chess (chess, flying chess), poker, mahjong, adventure, script-killing, etc. Such as Texas Hold'em, Sichuan Mahjong, military chess, flying chess, Monopoly, Three Kingdoms Kill, Hearthstone, etc. More such as random card dealing, random chess flipping, random role selection, random position allocation, random prop allocation, etc. in e-sports. Using the allocation method designed by the present application, the security and scalability of the entire game process can be improved on the basis of fully ensuring the fairness, randomness and interactive performance of the game. Specifically: security is improved, fairness is improved, interactive performance is improved, and scalability is improved.
[0103] In the description of this specification, the description with reference to the terms "some possible embodiments", "some embodiments", "examples", "specific examples", or "some examples" means that the specific features, structures, materials or characteristics described in conjunction with the embodiment or example are included in at least one embodiment or example of the present application, and the above terms do not necessarily represent the same embodiment or example. Moreover, the specific features, structures, materials or characteristics described can be combined in any one or more embodiments or examples in a suitable manner. In addition, those skilled in the art can combine and combine different embodiments or examples described in this specification and the features of different embodiments or examples without contradiction.
[0104] About the method flow chart of the present application embodiment, some operations are described as the different steps performed in a certain order.Such flow chart belongs to illustrative and non-restrictive.Some steps described in this article can be grouped together and performed in a single operation, or some steps can be divided into multiple sub-steps and can be performed in an order different from that shown in this article.The various steps shown in the flow chart can be realized in any way by any circuit structure and / or tangible mechanism (for example, by the software, hardware (for example, the logical function realized by processor or chip) etc. running on computer equipment and / or its any combination).
[0105] Those skilled in the art will understand that, in the method described in the above specific embodiments, the writing order of each step does not mean a strict execution order, and the specific execution order of each step should be determined by its function and possible internal logic.
[0106] According to some embodiments of the present application, a group-based resource allocation apparatus according to an embodiment of the present application is provided, for executing the group-based resource allocation method shown in FIG1 , the apparatus comprising: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to execute the method described in the above embodiment.
[0107] According to some embodiments of the present application, a non-volatile computer storage medium based on a group resource allocation method is provided, on which computer executable instructions are stored. The computer executable instructions are configured to execute the method described in the above embodiments when executed by a processor.
[0108] Computer-readable media include permanent and non-permanent, removable and non-removable media, and can be implemented by any method or technology to store information. The information can be computer-readable instructions, data structures, program modules, or other data. Examples of computer-readable storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory, read-only memory, electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disc (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information that can be accessed by a computing device. In addition, although the operations of the method of the present application are described in a specific order in the accompanying drawings, this does not require or imply that these operations must be performed in this specific order, or that all shown operations must be performed to achieve the desired result. In addition, certain steps may be omitted, multiple steps may be combined into one step, and / or a step may be broken down into multiple substeps.
[0109] Although the spirit and principles of the present application have been described above with reference to several specific embodiments, it should be understood that the present application is not limited to the specific embodiments disclosed, and the division into various aspects does not mean that the features of these aspects cannot be combined. The present application is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims.
Claims
1. A group resource allocation method, characterized in that: The group includes a plurality of allocation objects, and the method includes: Determine a resource set, where the resource set includes N resources carrying tag numbers, where N is a positive integer; Each allocation object determines an initial serial number that does not conflict with each other and generates a random sequence respectively, wherein the random sequence is composed of N of the marked serial numbers; An oblivious transmission method is used between each allocation object, so that each allocation object obtains an intermediate sequence number from multiple random sequences in an alternating manner based on the initial sequence number and in accordance with the set order of the multiple allocation objects until a target sequence number is obtained; Each allocation object obtains the target resource from the resource set according to the target sequence number.
2. The method according to claim 1, characterized in that Each allocation object obtains an intermediate sequence number from multiple random sequences in an alternating manner based on the initial sequence number and in accordance with the set order of the multiple allocation objects, and further includes: Each allocation object obtains the corresponding (m+1)th intermediate sequence number from the (m)th random sequence based on the (m)th intermediate sequence number; Among them, the m is a positive integer between 1 and M in sequence, M is the number of allocation objects, the initial sequence number is used as the first intermediate sequence number, and the M+1th intermediate sequence number is used as the target sequence number.
3. The method according to claim 1, characterized in that Each allocation object determines an initial sequence number that does not conflict with each other, and also includes: The initial sequence number is selected for each allocation object by the arbitrarily designated allocation object to ensure that the initial sequence numbers do not conflict with each other.
4. The method according to claim 1, characterized in that The group includes a plurality of distribution objects registered in one or more transmission nodes of the transmission network, and an information receiver is deployed on the designated transmission node of the transmission network as a channel for each distribution object to publish information to the group.
5. The method according to claim 4, characterized in that Each allocation object determines an initial sequence number that does not conflict with each other, and also includes: Each allocation object signs the determined initial serial number, and publishes the signed initial serial number in the group through the information receiving party to ensure that the initial serial numbers determined by each allocation object do not conflict.
6. The method according to claim 1, characterized in that The method further comprises: Each allocation object makes a hash commitment to the generated random sequence, and publishes the hash commitment in the group through the information receiver.
7. The method according to claim 6, characterized in that Also includes Each allocation object adds a confusion factor when making a hash commitment on the random sequence.
8. The method according to claim 6, characterized in that include: In the hash verification stage, each allocated object publishes its random sequence in the group through the information receiver, so that each allocated object can verify the published random sequence with each other based on the hash commitment published in advance.
9. The method according to claim 7, characterized in that: include: In the hash verification stage, each allocated object publishes its random sequence and confusion factor in the group through the information receiver, so that each allocated object can verify the published random sequence and confusion factor based on the previously published hash commitment.
10. The method according to claim 1, characterized in that include: Each distribution object publishes the key used in the oblivious transmission process in the group through the information receiver, so that each distribution object can verify the interactive information of the oblivious transmission process with each other.
11. The method according to claim 1, characterized in that: include: Create a trusted verification contract on the blockchain; One or more assigned objects within the group pledge the trusted credentials in the trusted verification contract.
12. The method according to claim 11, characterized in that The trusted verification contract is configured to: Receive the hash commitment, random sequence, confusion factor and corresponding signature published by the designated allocation object in the group; Verifying whether the hash commitment, the random sequence, the confusion factor, and the corresponding signature are consistent; If there is inconsistency, the pledged trusted certificate of the designated allocation object will be punished within the trusted verification contract.
13. The method according to claim 11, characterized in that The trusted verification contract is configured to: receiving public interaction information between designated distribution objects in an oblivious transfer process; receiving a key for use by a designated assignee during an oblivious transfer; Verifying the public interaction information in the oblivious transmission process based on the key used in the oblivious transmission process; If there is inconsistency, the pledged trusted certificate of the designated allocation object will be punished within the trusted verification contract.
14. The method according to claim 11, characterized in that The trusted contract is configured to: According to the time difference of information exchange between each allocation object during the inadvertent transmission process, the pledge trusted certificate of the allocation object that has timed out is punished in the trusted verification contract.
15. The method according to claim 11, characterized in that The trusted verification contract is configured to: Receive the allocation results signed by each allocation object, and after signature verification, allocate various resources to each allocation object according to the signed allocation results.
16. A group-based resource allocation device, characterized in that: include: at least one processor; And, a memory communicatively connected to at least one processor; wherein the memory stores instructions executable by at least one processor, and the instructions are executed by at least one processor to enable the at least one processor to execute: a method as described in any one of claims 1-15.
17. A computer-readable storage medium storing a program, wherein when the program is executed by a multi-core processor, the multi-core processor executes the method according to any one of claims 1 to 15.
Citation Information
Patent Citations
Information transmission methods, systems, devices, and storage media based on blockchain
CN113595736B
Resource allocation method and device based on block chain and computer equipment
CN111724212A
Method and device for obtaining random number and generating random number, and medium
CN111930343A
Execution method for sharing OT protocol and secure multi-party computing method and device
CN115001674A
Multi-party analysis of streaming data with privacy assurances
US11328087B1