CN116800771B - Block chain digital asset batch sharing and verifying method, device and storage medium - Google Patents

Block chain digital asset batch sharing and verifying method, device and storage medium Download PDF

Info

Publication number
CN116800771B
CN116800771B CN202310752920.8A CN202310752920A CN116800771B CN 116800771 B CN116800771 B CN 116800771B CN 202310752920 A CN202310752920 A CN 202310752920A CN 116800771 B CN116800771 B CN 116800771B
Authority
CN
China
Prior art keywords
data
verifiable
node
verification
blockchain
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202310752920.8A
Other languages
Chinese (zh)
Other versions
CN116800771A (en
Inventor
孔兰菊
崔立真
李庆忠
闫中敏
钱进
蒋亚丽
田瑞娇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong University
Original Assignee
Shandong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shandong University filed Critical Shandong University
Priority to CN202310752920.8A priority Critical patent/CN116800771B/en
Publication of CN116800771A publication Critical patent/CN116800771A/en
Application granted granted Critical
Publication of CN116800771B publication Critical patent/CN116800771B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

The application relates to a blockchain digital asset batch sharing and verifying method, a blockchain digital asset batch sharing and verifying device and a storage medium. The application models batch digital assets by taking category as a unit, and aggregates all attribute hashes in the similar assets into an aggregate abstract through an accumulator and stores the aggregate abstract in a blockchain; constructing a verifiable data structure AD-MHT based on the aggregation abstract as a digital asset; the digital asset holder inquires the needed shared data and performs data minimization sharing in batches; constructing a verifiable proof for the shared data by the block chain full node according to the verifiable data structure AD-MHT; the data receiver performs a minimized shared bulk verification of the authenticity of the shared data based on the verifiable proof. The application generates the aggregate abstract for all the attribute hashes of each type of asset through the accumulator, realizes batch verification of whether the data value of the similar asset is tampered or not, designs the verifiable data structure AD-MHT, and supports efficient sharing processing and verification.

Description

Block chain digital asset batch sharing and verifying method, device and storage medium
Technical Field
The present invention relates to the field of blockchain data sharing verification technologies, and in particular, to a blockchain digital asset batch sharing and verification method, device, and storage medium.
Background
In recent years, the development of digital assets (such as electronic certificates, contracts and the like) is faster and faster, however, digital assets face serious privacy disclosure problems in the sharing process due to the fact that digital objects are easy to copy and tamper, and particularly in the current artificial intelligence field, the performance of some learning algorithms is generally proportional to the amount of data used, so that batch collection of data is required. However, digital assets are both important and sensitive as a new production element, where personal privacy, business confidentiality may be involved, and not all data may be shared directly.
Federal learning is used as a distributed machine learning algorithm, which stores data locally at nodes, realizes sharing of data in a non-domain form, effectively avoids privacy leakage caused by data sharing, but cannot ensure that participating nodes are completely honest, and data authenticity is difficult to verify when each node locally selects digital assets for training.
One common principle of many privacy protection regulations, "data minimization," requires that the sharing of bulk digital assets should reveal as little content as possible, while hiding other unnecessary data, while providing proof to ensure that the authenticity of the shared content is verifiable. However, for a complete digital asset, the authenticity of the digital asset is relatively easy to verify by means of an entity anti-counterfeit card or a full text digital signature, but when only part of the data is extracted to be publicly shared, how to verify the authenticity of the part of the data has certain difficulty on the premise that the content of the complete asset is not exposed. At the same time, for a batch of digital assets, simply repeating the application of a single object algorithm to each object naturally results in verification complexity that is linear with the number of objects. In addition, the batch assets can relate to various asset type data, and in the process of minimizing data sharing, the problems of multi-type asset splicing data results and confusion verification are very easy to occur due to benefit driving. This requires that the verification process not only recognize whether the data is authentic, but also verify the correspondence of the data to the asset, ensuring that the shared data comes from the asset type specified in the request, rather than the result of a similar type digital asset splice.
To achieve content verification in the asset minimization sharing process, a simple solution is to construct a conventional Merck Hash Tree (MHT) in each chunk as a verifiable data structure and apply the conventional MHT-based verification method. However, batch verification is more complex than single asset verification, and there are the following problems with using MHT in batch verification: MHT only supports point interrogation of the built tree, and the size of the proof increases as the number of leaf nodes increases; to support queries involving a bulk set of attributes, an exponential number of MHTs need to be constructed for each block, with low verification efficiency.
Thus, in light of the privacy protection and efficient verification requirements in digital asset sharing processes, there is a need for a blockchain digital asset batch sharing and verification method.
Disclosure of Invention
In order to solve the technical problems described above or at least partially solve the technical problems described above, the present invention provides a blockchain digital asset batch sharing and verification method.
In a first aspect, the present invention provides a blockchain digital asset batch sharing and verification method, comprising: modeling the batch of digital assets by taking the category as a unit, and aggregating all attribute hashes in the similar assets into an aggregate abstract through an accumulator and storing the aggregate abstract in a blockchain; constructing a verifiable data structure AD-MHT based on the aggregation abstract as a digital asset; the digital asset holder inquires the needed shared data and performs data minimization sharing in batches; constructing a verifiable proof for the shared data by the block chain full node according to the verifiable data structure AD-MHT; the data receiver performs a minimized shared bulk verification of the authenticity of the shared data based on the verifiable proof.
Preferably, the digital assets are aggregated by category and represented as a series of objects { c 1,c2…cn }, each object c i=<cid,DType,ni,Hi > represents a class of assets, i=1, 2, … n, where cid represents a unique identification of an asset category, DType represents an asset category, n i represents the number of assets of type DType contained in object c i, H i={h_claim1,h_claim2,…h_claimni } is a hash set of attributes consisting of a plurality of h_clam j, each h_clam j represents a hashed value of an attribute in c i, j=1, 2, … n i;
Preferably, the accumulator comprises: keyGen (), setup (), proveDisjoint (), verifyDisjoint () functions, wherein KeyGen () is a key generation function for obtaining a private key and a public key; the function of Setup () includes realizing computation of an aggregate digest, inputting a multiset x= { X 1,…xn } and a public key pk to Setup (), outputting acc (X) = (d A(X),dB (X)), wherein S is a random number, q is a large prime number, and g is a generator of a finite cyclic group.
Preferably, the constructing a verifiable data structure AD-MHT based on the aggregated digest for the digital asset comprises:
The block chain full node distributes various data objects in the block to leaf nodes, and leaf node fields are basic object fields, comprising: object hash, attribute hash set H i, and aggregate digest AGGDIGEST i;
Calculating the maximum Jaccard similarity among the nodes;
iteratively merging nodes with the maximum Jaccard similarity at each layer from bottom to top, and creating a new father node at the upper layer corresponding to the two merged nodes; the formed non-leaf nodes n each include:
Aggregate abstract AGGDIGEST n=acc(Hn),
hashn=hash(hash(hashnl|hashnr)|AggDigestn)、
H n=Hnl∪Hnr, wherein nl and nr are each left and right child nodes of node n;
Judging whether the current tree structure is balanced or not, if so, repeatedly merging similar nodes at the upper layer until a root node is created; if not, adjusting the nodes to ensure the balance of the tree;
The root node of the verifiable data structure AD-MHT is written into the block header.
Preferably, the querying the digital asset holder for the desired shared data and minimizing sharing of the data in bulk comprises: after receiving the data request, the data receiver verifies the identity of the requester according to the identity mark and the public key in the blockchain;
analyzing the request attribute hash set H req, and confirming the shared data content according to the request attribute hash set H req;
Completing data sharing authorization in the blockchain and uploading request information to the blockchain in a transaction form;
The result set R containing the query results is returned to the data requestor.
Preferably, the parsing the request attribute hash set H req, and validating the shared data content according to the request attribute hash set H req includes: traversing each node layer by layer downwards starting from the verifiable data structure AD-MHT root node, if the attribute hash set H i of the current node intersects all the sub-conditions of the request attribute hash set H req, further verifying the subtree thereof, and simultaneously adding a corresponding AGGDIGEST into the verifiable proof VO for reconstructing the verifiable data structure AD-MHT root during result verification; if there is no intersection of a sub-condition in the request attribute hash set H req with the attribute hash set H i of the current node, meaning that all the underlying objects do not satisfy the condition, the blockchain full node will call ProveDisjoint () in the accumulator to generate a mismatch proof pi for the current node with the corresponding aggregate digest AGGDIGEST as input.
Preferably, the blockchain full node constructs a verifiable proof for shared data according to a verifiable data structure AD-MHT comprising: s41: after receiving the shared data, the data receiver initiates a verification request according to the data content;
S42: according to the verification request, the block chain all nodes start from the root node of the verifiable data structure AD-MHT and traverse from top to bottom;
S43: adding the root node into an empty queue;
S44: in the process of executing traversal, judging whether the current queue is empty, if not, entering a loop execution step S45 and subsequent steps, and if the queue is empty, exiting the loop execution step S415, wherein the completion of the proving construction can be verified;
S45: dequeuing the first element in the queue and performing a subsequent operation as the current node;
S46: judging whether the multiple sets of the current node meet the request condition, if so, executing S47 and subsequent steps, and if not, executing S411 and subsequent steps;
s47: judging whether the current node is a leaf node, if so, executing S410, and if not, executing S48 and S49;
s48: writing the aggregate digest of the node into the verifiable certificate VO;
s49: adding child nodes of the node into a queue;
s410: writing the node into a result R;
s411: resolving the request condition into a plurality of sub-conditions;
s412: finding a sub-condition that does not satisfy the verification request;
S413: calling a disjoint function ProveDisjoint () by taking a set H i in the verification request, a sub-condition which does not meet the verification request and a public key as parameters, and generating a non-meeting proof pi;
S414: writing the current node information, the sub-condition unsatisfied and the proof pi into the verifiable proof VO;
S415: the VO construction can be verified.
Preferably, the minimizing the shared batch verification of the authenticity of the shared data by the data receiver according to the verifiable proof comprises:
S51: for each unmatched object in the verifiable proof, taking the unmatched object as a parameter, calling a verification disjoint function VerifyDisjoint (), and describing the unmatched query condition of the asset object by verifying that the sub-condition is disjoint from the set H i in the request;
S52: for the nodes in the result set, reconstructing the corresponding aggregation abstract in the verifiable certificate to verify the root of the AD-MHT;
S53: decrypting the digital signature using the public key to obtain a root stored on the blockchain;
S54: judging whether the root stored in the block chain is the same as the calculated root, if so, executing the step S55, otherwise, executing the step S56;
S55: displaying that the verification is passed;
S56: the display data is not verified.
In a second aspect, the present invention provides a blockchain digital asset batch sharing and verification device, comprising: the processing unit is connected with the storage unit through the bus unit, the storage unit stores a computer program, and the blockchain digital asset batch sharing and verification method is realized when the computer program is read and executed by the processing unit.
In a third aspect, the present invention provides a computer readable storage medium storing a computer program which, when read and executed by a processor, implements the blockchain digital asset batch sharing and verification method.
Compared with the prior art, the technical scheme provided by the embodiment of the invention has the following advantages:
1. The batch digital asset expression model provided by the invention generates the aggregation digest for all the attribute hashes of each type of asset through the accumulator, and the aggregation digest is used for summarizing the attribute hash sets of the asset objects so as to realize batch verification of whether the data values of the similar assets are tampered or not, and the verification of single asset is expanded to the asset verification in a unit of class. In addition, the size of the aggregate digest remains unchanged regardless of the number of elements in the attribute hash set.
2. The invention designs a verifiable data structure AD-MHT which can generate a verifiable certificate for a shared digital asset. The verifiable data structure AD-MHT realizes the aggregation of multi-class asset objects, the objects with the maximum similarity are aggregated to the same upper node, when the objects are not matched with the same verification condition at the same time, the verification and verification expenditure is further reduced, in addition, the verifiable data structure AD-MHT supports the dynamic aggregation of any query attribute, and the efficient sharing processing and verification are realized.
Drawings
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the invention and together with the description, serve to explain the principles of the invention.
In order to more clearly illustrate the embodiments of the invention or the technical solutions of the prior art, the drawings which are used in the description of the embodiments or the prior art will be briefly described, and it will be obvious to a person skilled in the art that other drawings can be obtained from these drawings without inventive effort.
FIG. 1 is a flow chart of a blockchain digital asset batch sharing and verification method of the present invention;
FIG. 2 is a schematic diagram of a batch asset expression model of the present invention;
FIG. 3 is a schematic diagram of a verifiable data structure AD-MHT of the present invention;
FIG. 4 is a flow chart of a method of generating an aggregate digest for a digital asset according to the present invention;
FIG. 5 is a flow chart of a method of constructing a verifiable data structure AD-MHT for a digital asset in accordance with the present invention;
FIG. 6 is a flow chart of the present invention for a digital asset holder to query for desired shared data and to perform data minimization sharing in bulk;
FIG. 7 is a flow chart of a process of generating a verifiable proof for shared data by a blockchain full node of the present invention;
FIG. 8 is a flow chart of the digital asset minimization shared batch verification process of the present invention;
FIG. 9 is a schematic diagram of a blockchain digital asset batch sharing and verification device of the present invention.
Detailed Description
For the purpose of making the objects, technical solutions and advantages of the embodiments of the present invention more apparent, the technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present invention, and it is apparent that the described embodiments are some embodiments of the present invention, but not all embodiments of the present invention. All other embodiments, which can be made by those skilled in the art based on the embodiments of the invention without making any inventive effort, are intended to be within the scope of the invention.
It should be noted that, in this document, the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one … …" does not exclude the presence of other like elements in a process, method, article, or apparatus that comprises the element.
Example 1
As shown in fig. 1, the implementation flow of the blockchain digital asset batch sharing and verification method includes:
S1: modeling the batch of digital assets by category units, and aggregating all attribute hashes in the similar assets into an aggregate digest through an accumulator to be stored in a blockchain. The aggregate abstract is used for summarizing the attribute hash set of the asset object so as to verify whether the attribute values of the similar assets are tampered in batches. In addition, the size of the aggregate digest remains unchanged regardless of the number of elements in the attribute hash set. Referring to fig. 4, the process of step S1 includes:
S11, modeling the batch of digital assets by taking categories as units; specifically, an expression model of a batch of digital assets modeled in asset class units is shown in fig. 2. The invention aggregates digital assets according to categories and represents a series of objects { c 1,c2…cn }, each object c i=<cid,DType,ni,Hi > represents a category of assets, i=1, 2, … n, wherein cid represents a unique identifier of an asset category, DType represents an asset category, n i represents the number of assets of which the type is DType contained in an object c i, H i={h_claim1,h_claim2,…h_claimni } is an attribute hash set consisting of a plurality of h_improvements j, each h_improvement j represents a value obtained by hashing an attribute in c i, and j=1, 2, … n i.
S12, constructing an accumulator. The accumulator includes: keyGen (), setup (), proveDisjoint (), verifyDisjoint (), functions. Wherein:
KeyGen () is a key generation function for obtaining a private key and a public key. KeyGen (1 λ) → (sk, pk): wherein, the method comprises the steps of, wherein, And/>Is two cyclic multiplication groups with the same prime order p, e is bilinear pairing, g is the generator of the finite cyclic group. Inputting a security parameter 1 λ, selecting a random number/>Wherein/>Is a domain under modulo-p addition and modulo-p multiplication operation, generates a key sk=(s), generates a public key/>Q is a large prime number.
Setup () can implement the computation Setup (X, pk) →acc (X) of the aggregate digest: inputting the multiset x= { X 1,…xn } and the public key pk, outputting acc (X) = (d A(X),dB (X)), wherein
The hash set of attributes in the batch asset gets an aggregate digest via Setup (X, pk):
AggDigesti=acc(Hi)=Setup(Hi,pk)。
ProveDisjoint (X 1,X2, pk). Fwdarw.pi.: input public key pk and two multisets X 1,X2, and Then/>Wherein C is a non-0 constant. This means if/>Proof of evidence
VerifyDisjoint (acc (X 1),acc(X2), pi, pk) → {0,1}: inputting the multiple set accumulated value acc (X 1),acc(X2), proving pi and public key pk, the verifier interprets acc (X 1),acc(X2) as (d A(X1),dB(X1)) and (d A(X2),dB(X2)) respectively, and proving valid if and only if the equation of e (d A(X1),dB(X2))=e (pi, g) holds. Wherein ProveDisjoint (), verifyDisjoint () are used for the subsequent authentication process.
S13, aggregating the hashes of the attributes in the batch assets, namely mapping all the attribute hash sets H i={h_claimj in the similar assets to elements in a set cyclic multiplication group through an accumulator to obtain an aggregate abstract, namely: the hash set of attributes in the batch asset gets an aggregate digest via Setup (X, pk):
AggDigesti=acc(Hi)=Setup(Hi,pk)。
s14, storing the aggregate abstract in a blockchain.
As an alternative embodiment, for the above method, they support aggregation of multiple accumulated values or set disjoint proofs based on bilinear pairs and q-DHE assumptions.
S2: the verifiable data structure AD-MHT is built on the basis of the aggregate abstract.
The construction of the verifiable data structure AD-MHT is performed by a full node block-based data object in a bottom-up manner, and comprises the following steps of:
First, S21, the blockchain full node allocates various data objects in the block to leaf nodes, and the leaf node fields are basic object fields, including object hash (for constructing the merck hash tree), attribute hash set H i, and aggregate digest AGGDIGEST i.
S22, calculating the maximum Jaccard similarity among the nodes.
S23, iteratively merging nodes with the maximum Jaccard similarity at each layer from bottom to top, and creating a new father node at the upper layer corresponding to the two merged nodes to realize the maximization of the similarity of child nodes under each node. In the implementation process, in order to furthest combine unmatched objects together during query verification to improve query efficiency, the nodes with the maximum Jaccard similarity are iteratively combined at each layer from bottom to top, and the two combined nodes are used for creating a new father node at the upper layer, so that the similarity maximization of child nodes under each node is realized, and meanwhile, the balance of trees is ensured to improve the query efficiency. In constructing the verifiable data structure AD-MHT, each field of the formed non-leaf node n comprises:
Aggregate abstract AGGDIGEST n=acc(Hn),
hashn=hash(hash(hashnl|hashnr)|AggDigestn)、
H n=Hnl∪Hnr (nl and nr are the left and right child nodes of node n, respectively).
S24, judging whether the current tree structure is balanced, if so, executing the step S25, otherwise, executing the step S26. In the implementation process, whether the absolute value of the height difference of the left subtree and the right subtree of the current tree structure is smaller than or equal to 1 is judged, if so, the current tree structure is balanced, and if not, the current tree structure is unbalanced.
S25, repeatedly merging similar nodes in the upper layer until a root node is created;
s26, adjusting nodes to ensure the balance of the tree;
S27, writing the root node of the verifiable data structure AD-MHT into the block header.
The attribute hash set H i of the verifiable data structure AD-MHT is aggregated at the father node, the aggregated digest is stored in each node as data required for verification, a tree structure is formed by combining the merck hash tree principle, and finally, the root of the verifiable data structure AD-MHT is written as a field of the block head.
S3: the digital asset holder inquires the needed shared data and performs data minimization sharing in batches; referring to fig. 6, the process of step S3 includes:
S31: after receiving the data request, the data receiver verifies the identity of the requester according to the identity mark and the public key in the blockchain;
S32: analyzing the request attribute hash set H req, and confirming the shared data content according to the request attribute hash set H req; in the implementation process, the verification process of the asset can be changed into a search verification process of a tree by the verification data structure AD-MHT, if the current node meets the condition, the subtree is further verified, and if the current node does not meet the verification condition, the verification process means that all the bottom objects are not met, and because the objects with the maximum similarity are aggregated on the same upper node, when the objects are not matched with the same verification condition at the same time, the verification and verification cost can be saved, and the verification efficiency is improved. Specifically, the process of validating the verifiable data structure AD-MHT as shared data according to the request attribute hash set H req includes: each node is traversed layer by layer down starting from the verifiable data structure AD-MHT root node, and if the current node's set of attribute hashes H i meets the condition (i.e., H i intersects all the sub-conditions of H req), its subtree will be further verified, while the corresponding AGGDIGEST is added to the verifiable attestation VO for reconstructing the AD-MHT root during result verification. If the current node's set of attribute hashes H i does not satisfy the condition (i.e., there is one sub-condition in H req that does not intersect with H i), then this means that all of the underlying objects do not satisfy the condition, in which case the blockchain full node will call ProveDisjoint () to generate a mismatch proof pi for the current node with the corresponding aggregate digest AGGDIGEST as input. And once the leaf node is reached, the H i of the leaf node is indicated to meet the query condition and is added to the result set.
S33: completing data sharing authorization in the blockchain and uploading request information to the blockchain in a transaction form;
S34: the result set R is returned to the data requestor.
S4: constructing a verifiable proof for the shared data by the block chain full node according to the verifiable data structure AD-MHT;
as shown in fig. 7, the process of generating a verifiable proof for shared data by a blockchain full node includes:
S41: after receiving the shared data, the data receiver initiates a verification request according to the data content;
S42: according to the verification request, the block chain all nodes start from the root node of the verifiable data structure AD-MHT and traverse from top to bottom;
S43: adding the root node into an empty queue;
S44: in the process of executing the traversal, whether the current queue is empty is judged, if not, the loop execution step S45 and the subsequent steps are entered, if the queue is empty, the loop execution step S415 is exited, and the completion of the proof construction can be verified.
S45: dequeuing the first element in the queue and performing a subsequent operation as the current node;
S46: judging whether the multiple sets of the current node meet the request condition, if yes, executing S47 and subsequent steps, and if not, executing S411 and subsequent steps.
S47: judging whether the current node is a leaf node, if so, executing S410, and if not, executing S48 and S49;
s48: writing the aggregate digest of the node into the verifiable certificate VO;
s49: adding child nodes of the node into a queue;
s410: writing the node into a result R;
s411: resolving the request condition into a plurality of sub-conditions;
s412: finding a sub-condition that does not satisfy the verification request;
S413: calling a disjoint function ProveDisjoint () by taking a set H i in the verification request, a sub-condition which does not meet the verification request and a public key as parameters, and generating a non-meeting proof pi;
S414: writing the current node information, the sub-condition unsatisfied and the proof pi into the verifiable proof VO;
S415: the VO construction can be verified and proved to be completed;
S5: the data receiver performs a minimized shared bulk verification of the authenticity of the shared data based on the verifiable proof.
As shown in fig. 8, the digital asset minimization shared batch verification process is as follows:
S51: for each unmatched object in the verifiable proof, using it as a parameter, a verification disjoint function VerifyDisjoint (), the asset object unmatched query condition is illustrated by the verification sub-condition being disjoint from the set H i in the request.
S52: for the nodes in the result set, reconstructing the corresponding aggregation abstract in the verifiable certificate to verify the root of the AD-MHT;
S53: decrypting the digital signature using the public key to obtain a root stored on the blockchain;
S54: judging whether the root stored in the block chain is the same as the calculated root, if so, executing the step S55, otherwise, executing the step S56;
S55: the verification process not only identifies whether the data is real, but also verifies the corresponding relation between the data and the asset object, and ensures that the shared data comes from the asset type appointed in the request, but not from the similar type digital asset pieced result;
S56: the display data is not verified.
Example 2
Referring to fig. 9, an embodiment of the present invention provides a blockchain digital asset batch sharing and verification device, including: the processing unit is connected with the storage unit through the bus unit, the storage unit stores a computer program, and when the computer program is read and executed by the processing unit, the blockchain digital asset batch sharing and verification method is realized and comprises the following steps: modeling the batch of digital assets by taking the category as a unit, and aggregating all attribute hashes in the similar assets into an aggregate abstract through an accumulator and storing the aggregate abstract in a blockchain; constructing a verifiable data structure AD-MHT based on the aggregation abstract as a digital asset; the digital asset holder inquires the needed shared data and performs data minimization sharing in batches; constructing a verifiable proof for the shared data by the block chain full node according to the verifiable data structure AD-MHT; the data receiver performs a minimized shared bulk verification of the authenticity of the shared data based on the verifiable proof.
Example 3
The embodiment of the invention provides a computer readable storage medium, which stores a computer program, and when the computer program is read and executed by a processor, the method for sharing and verifying blockchain digital assets in batches is realized, and comprises the following steps: modeling the batch of digital assets by taking the category as a unit, and aggregating all attribute hashes in the similar assets into an aggregate abstract through an accumulator and storing the aggregate abstract in a blockchain; constructing a verifiable data structure AD-MHT based on the aggregation abstract as a digital asset; the digital asset holder inquires the needed shared data and performs data minimization sharing in batches; constructing a verifiable proof for the shared data by the block chain full node according to the verifiable data structure AD-MHT; the data receiver performs a minimized shared bulk verification of the authenticity of the shared data based on the verifiable proof.
In the embodiments provided in the present invention, it should be understood that the disclosed structures and methods may be implemented in other manners. For example, the structural embodiments described above are merely illustrative, and for example, the division of the units is merely a logical function division, and there may be other manners of division in actual implementation, for example, multiple units or components may be combined or integrated into another system, or some features may be omitted, or not performed. Alternatively, the coupling or direct coupling or communication connection shown or discussed with each other may be an indirect coupling or communication connection via interfaces, structures or units, which may be in electrical, mechanical or other forms.
The units described as separate units may or may not be physically separate, and units shown as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
In addition, each functional unit in the embodiments of the present invention may be integrated in one processing unit, or each unit may exist alone physically, or two or more units may be integrated in one unit. The integrated units may be implemented in hardware or in software functional units.
The foregoing is only a specific embodiment of the invention to enable those skilled in the art to understand or practice the invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.

Claims (7)

1. A blockchain digital asset batch sharing and verification method, comprising:
Modeling a batch of digital assets in categories, comprising:
The digital assets are aggregated by category and represented as a series of objects { c 1,c2…cn }, each object c i=<cid,DType,ni,Hi > representing a class of assets, i=1, 2, … n, where cid represents a unique identification of an asset category, DType represents an asset category, n i represents the number of assets of type DType contained in object c i, Is a hash set of attributes consisting of a plurality of h-claimas j, each h_claima j represents a value obtained by hashing an attribute in c i, j=1, 2, … n i;
all attribute hashes in the similar assets are aggregated into an aggregate abstract through an accumulator and stored in a blockchain; constructing a verifiable data structure AD-MHT based on the aggregation abstract as a digital asset; the digital asset holder querying the desired shared data and minimizing the sharing of data in batches, comprising:
After receiving the data request, the data holder verifies the identity of the requester according to the identity mark and the public key in the blockchain;
parsing the request attribute hash set H req, confirming the shared data content according to the request attribute hash set H req, traversing each node layer by layer downwards from the verifiable data structure AD-MHT root node, if the attribute hash set H i of the current node has intersection with all sub-conditions of the request attribute hash set H req, further verifying the subtree thereof, and simultaneously adding the corresponding AGGDIGEST into the verifiable proof VO for reconstructing the verifiable data structure AD-MHT root during result verification; if there is no intersection between a sub-condition in the request attribute hash set H req and the attribute hash set H i of the current node, which means that all the bottom objects do not meet the condition, the blockchain full node will call ProveDisjoint () to generate a mismatch proof pi of the current node with the corresponding aggregate digest AGGDIGEST as input;
Completing data sharing authorization in the blockchain and uploading request information to the blockchain in a transaction form;
returning a result set R containing the query result to the data requester;
Constructing a verifiable proof for the shared data by the block chain full node according to the verifiable data structure AD-MHT; the data receiver performs a minimized shared bulk verification of the authenticity of the shared data based on the verifiable proof.
2. The blockchain digital asset batch sharing and verification method of claim 1, wherein the accumulator comprises: keyGen (), setup (), proveDisjoint (), verifyDisjoint () functions, wherein KeyGen () is a key generation function for obtaining a private key and a public key; the function of Setup () includes realizing computation of an aggregate digest, inputting a multiset x= { X 1,…xn } and a public key pk to Setup (), outputting acc (X) = (d A(X),dB (X)), whereinS is a random number, q is a large prime number, and g is a generator of a finite cyclic group.
3. The blockchain digital asset batch sharing and verification method of claim 1, wherein the constructing the verifiable data structure AD-MHT based on the aggregated digest based digital asset comprises:
The block chain full node distributes various data objects in the block to leaf nodes, and leaf node fields are basic object fields, comprising: object hash, attribute hash set H i, and aggregate digest AGGDIGEST i;
Calculating the maximum Jaccard similarity among the nodes;
iteratively merging nodes with the maximum Jaccard similarity at each layer from bottom to top, and creating a new father node at the upper layer corresponding to the two merged nodes; the formed non-leaf nodes n each include:
Aggregate abstract AGGDIGEST n=acc(Hn),
hashn=hash(hash(hashnl|hashnr)|AggDigestn)、
H n=Hnl∪Hnr, wherein nl and nr are each left and right child nodes of node n;
Judging whether the current tree structure is balanced or not, if so, repeatedly merging similar nodes at the upper layer until a root node is created; if not, adjusting the nodes to ensure the balance of the tree;
The root node of the verifiable data structure AD-MHT is written into the block header.
4. The blockchain digital asset batch sharing and verification method of claim 1, wherein the blockchain full node constructs a verifiable proof for shared data according to a verifiable data structure AD-MHT comprising: s41: after receiving the shared data, the data receiver initiates a verification request according to the data content;
S42: according to the verification request, the block chain all nodes start from the root node of the verifiable data structure AD-MHT and traverse from top to bottom;
S43: adding the root node into an empty queue;
S44: in the process of executing traversal, judging whether the current queue is empty, if not, entering a loop execution step S45 and subsequent steps, and if the queue is empty, exiting the loop execution step S415, wherein the completion of the proving construction can be verified;
S45: dequeuing the first element in the queue and performing a subsequent operation as the current node;
S46: judging whether the multiple sets of the current node meet the request condition, if so, executing S47 and subsequent steps, and if not, executing S411 and subsequent steps;
s47: judging whether the current node is a leaf node, if so, executing S410, and if not, executing S48 and S49;
s48: writing the aggregate digest of the node into the verifiable certificate VO;
s49: adding child nodes of the node into a queue;
s410: writing the node into a result R;
s411: resolving the request condition into a plurality of sub-conditions;
s412: finding a sub-condition that does not satisfy the verification request;
S413: calling a disjoint function ProveDisjoint () by taking a set H i in the verification request, a sub-condition which does not meet the verification request and a public key as parameters, and generating a non-meeting proof pi;
S414: writing the current node information, the sub-condition unsatisfied and the proof pi into the verifiable proof VO;
S415: the VO construction can be verified.
5. The blockchain digital asset batch sharing and verification method of claim 1, wherein the data receiver minimizing the shared batch verification of the authenticity of the shared data based on the verifiable proof comprises:
S51: for each unmatched object in the verifiable proof, taking the unmatched object as a parameter, calling a verification disjoint function VerifyDisjoint (), and describing the unmatched query condition of the asset object by verifying that the sub-condition is disjoint from the set H i in the request;
S52: for the nodes in the result set, reconstructing the corresponding aggregation abstract in the verifiable certificate to verify the root of the AD-MHT;
S53: decrypting the digital signature using the public key to obtain a root stored on the blockchain;
S54: judging whether the root stored in the block chain is the same as the calculated root, if so, executing the step S55, otherwise, executing the step S56;
S55: displaying that the verification is passed;
S56: the display data is not verified.
6. A blockchain digital asset batch sharing and verification device, comprising: at least one processing unit, the processing unit is connected with the storage unit through the bus unit, the storage unit stores a computer program, and when the computer program is read and executed by the processing unit, the blockchain digital asset batch sharing and verification method according to any one of claims 1-5 is realized.
7. A computer readable storage medium storing a computer program which, when read by a processor for execution, implements the blockchain digital asset batch sharing and verification method of any of claims 1-5.
CN202310752920.8A 2023-06-25 2023-06-25 Block chain digital asset batch sharing and verifying method, device and storage medium Active CN116800771B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310752920.8A CN116800771B (en) 2023-06-25 2023-06-25 Block chain digital asset batch sharing and verifying method, device and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310752920.8A CN116800771B (en) 2023-06-25 2023-06-25 Block chain digital asset batch sharing and verifying method, device and storage medium

Publications (2)

Publication Number Publication Date
CN116800771A CN116800771A (en) 2023-09-22
CN116800771B true CN116800771B (en) 2024-04-26

Family

ID=88034231

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310752920.8A Active CN116800771B (en) 2023-06-25 2023-06-25 Block chain digital asset batch sharing and verifying method, device and storage medium

Country Status (1)

Country Link
CN (1) CN116800771B (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019035903A1 (en) * 2017-08-16 2019-02-21 Walmart Apollo, Llc Systems and methods for distributed data validation
CN111698322A (en) * 2020-06-11 2020-09-22 福州数据技术研究院有限公司 Medical data safety sharing method based on block chain and federal learning
CN116051276A (en) * 2022-11-13 2023-05-02 李军 Block chain-based decentralised digital asset trading system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019035903A1 (en) * 2017-08-16 2019-02-21 Walmart Apollo, Llc Systems and methods for distributed data validation
CN111698322A (en) * 2020-06-11 2020-09-22 福州数据技术研究院有限公司 Medical data safety sharing method based on block chain and federal learning
CN116051276A (en) * 2022-11-13 2023-05-02 李军 Block chain-based decentralised digital asset trading system

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Authenticated Selective Disclosure of Credentials in Hybrid-Storage Blockchain;Ruijiao Tian等;《2022 IEEE 28th International Conference on Parallel and Distributed Systems》;全文 *
vChain: Enabling Verifiable Boolean Range Queries over Blockchain Databases;Cheng Xu等;《SIGMOd2019》;全文 *
vChain+: Optimizing Verifiable Blockchain Boolean Range Queries;Haixin Wang等;《2022 IEEE 38th International Conference on Data Engineering (ICDE)》;全文 *

Also Published As

Publication number Publication date
CN116800771A (en) 2023-09-22

Similar Documents

Publication Publication Date Title
US20230410215A1 (en) Cryptographic method and system for secure extraction of data from a blockchain
JP6903064B2 (en) Data transfer control method and system based on integrated blockchain
Chepurnoy et al. Edrax: A cryptocurrency with stateless transaction validation
CN110771095B (en) System and method for implementing blockchain-based digital certificates
Chi et al. A secure and efficient data sharing scheme based on blockchain in industrial Internet of Things
US20200175511A1 (en) Constraining injection of unlocking transaction bytecode
CN110800254B (en) System and method for generating digital signature
Khovratovich et al. Sovrin: digital identities in the blockchain era
US11556658B2 (en) Cross-partition calls in partitioned, tamper-evident data stores
US9049185B1 (en) Authenticated hierarchical set operations and applications
CN111611784A (en) Report generation method and device, terminal equipment and storage medium
EP3966998A1 (en) Hash function attacks
CN108269062A (en) Electronic contract production method, device, equipment and medium based on H5
Tamassia et al. Certification and Authentication of Data Structures.
Sakai et al. Attribute-based signatures for unbounded languages from standard assumptions
Zhao et al. Blockchain-based auditable privacy-preserving data classification for internet of things
Camacho et al. Strong accumulators from collision-resistant hashing
Etemad et al. Database outsourcing with hierarchical authenticated data structures
CN116800771B (en) Block chain digital asset batch sharing and verifying method, device and storage medium
US20220239486A1 (en) Knowledge proof
Zhang et al. MMDS: A secure and verifiable multimedia data search scheme for cloud-assisted edge computing
WO2008147400A1 (en) Authentication for operations over an outsourced file system stored by an untrusted unit
Loporchio et al. A survey of set accumulators for blockchain systems
US20240160791A1 (en) Document signing and storage using data models and distributed ledgers
Zhou et al. BCVSE: Verifiable Searchable Encryption Scheme With Blockchain Supporting Fuzzy Query

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant