Blockchain-based copyright asset authorization method and device and electronic equipment
By combining blockchain and zero-knowledge proof technology, users can verify their credential information during the authorization process, solving the problem of privacy information leakage in blockchain copyright asset authorization and achieving privacy protection for copyright asset authorization.
Patent Information
- Application Number
- CN202210692119.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-06-17
- Publication Date
- 2025-10-17
- Estimated Expiration
- 2042-06-17
AI Technical Summary
Blockchain technology has the problem of privacy information leakage in the copyright asset authorization process.
By combining blockchain technology with zero-knowledge proof technology, users can perform zero-knowledge proof of credential information during the authorization process to verify whether the user has the right to perform the authorization operation, and complete the authorization of copyright assets after the verification is passed, avoiding the disclosure of specific copyright asset information.
It protects privacy information from being leaked during the copyright asset authorization process, ensuring the security and privacy of the authorization process.
Smart Images

Figure CN115174099B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] Embodiments of the present specification relate to the technical field of blockchain, and particularly relate to a copyright asset authorization method and device based on blockchain and an electronic device. BACKGROUND
[0002] Blockchain technology, also known as distributed ledger technology, is a new technology in which a plurality of computing devices jointly participate in "accounting" and jointly maintain a complete distributed database. Due to the characteristics of decentralization, openness and transparency, each computing device can participate in database recording, and data can be quickly synchronized between computing devices, so that blockchain technology is widely applied in many fields.
[0003] Due to the open and transparent nature of blockchain technology, there is a problem of leakage of privacy information related to copyright asset authorization when copyright asset authorization is based on blockchain. SUMMARY
[0004] The present specification provides a copyright asset authorization method and device based on blockchain and an electronic device.
[0005] According to a first aspect of the embodiments of the present specification, a copyright asset authorization method based on blockchain is provided, and the blockchain stores asset summary information of a copyright asset and user-held credential information of the copyright asset; the method comprises:
[0006] receiving an authorization request of a first user authorizing a target copyright asset to a second user; wherein the authorization request comprises first credential information of the first user holding the target copyright asset, and asset summary information of the target copyright asset;
[0007] In response to the authorization request, it is determined whether the asset summary information of the target copyright asset is stored in the blockchain;
[0008] If yes, further zero-knowledge proof is performed on the first credential information of the first user holding the target copyright asset to determine whether the first credential information is stored in the blockchain, and in the case that the first credential information is stored in the blockchain, an asset authorization credential for the target copyright asset is generated for the second user, and the asset authorization credential is stored in the blockchain.
[0009] Optionally, the authorization request further comprises an asset public key of the second user;
[0010] The asset authorization credential for the target copyright asset generated for the second user comprises:
[0011] encrypt asset digest information of the target copyright asset based on an asset public key of the second user;
[0012] perform a calculation on the encrypted asset digest information to obtain asset authorization credentials held by the second user for the target copyright asset.
[0013] Optionally, the first user holds first credential information of the target copyright asset, including:
[0014] encrypt asset digest information of the target copyright asset based on an asset public key of the first user, and then perform a calculation on the encrypted asset digest information to obtain the first credential information.
[0015] Optionally, a smart contract for zero-knowledge proof is deployed on the blockchain; the processing logic corresponding to the contract code in the smart contract includes verification logic corresponding to the zero-knowledge proof.
[0016] The zero-knowledge proof of the first credential information held by the first user for the target copyright asset to determine whether the first credential information is stored in the blockchain includes:
[0017] The verification logic in the smart contract is called to perform a zero-knowledge proof on the first credential information held by the first user for the target copyright asset to determine whether the first credential information is stored in the blockchain.
[0018] Optionally, credential information of copyright assets held by users stored in the blockchain is stored in the distributed ledger of the blockchain in a Merkle tree storage structure.
[0019] The zero-knowledge proof of the first credential information held by the first user for the target copyright asset to determine whether the first credential information is stored in the blockchain includes:
[0020] Based on the first credential information, a to-be-verified root node of a Merkle tree in which the first credential information is located is calculated.
[0021] Determine whether the to-be-verified root node is consistent with the real root node of the Merkle tree.
[0022] If yes, it is determined that the first credential information is stored in the blockchain.
[0023] Optionally, a smart contract for verifying copyright assets published on the blockchain is deployed on the blockchain; the method further includes:
[0024] Receive a verification request initiated by an asset verifier for a target copyright asset; wherein the verification request includes asset digest information of the target copyright asset;
[0025] In response to the verification request, calling verification logic contained in the smart contract, generating a verification confirmation event for the target copyright asset, and storing the generated verification confirmation event in the blockchain; so that a second user holding an asset authorization credential of the target copyright asset acquires the verification confirmation event from the blockchain, and in response to the acquired verification confirmation event, encrypts asset information related to the target copyright asset based on a blockchain account public key of the asset verifier, and further calls the verification logic contained in the smart contract to generate a verification event for the target copyright asset based on the encrypted asset information, and stores the generated verification event in the blockchain; so that the asset verifier acquires the verification confirmation event from the blockchain, and in response to the acquired verification confirmation event, decrypts the encrypted asset information submitted by the second user based on a blockchain account private key corresponding to the blockchain account public key; and performs risk verification on the target copyright asset based on the decrypted asset information.
[0026] Optionally, the authorization request further includes asset information related to the target copyright asset encrypted based on a blockchain account public key of the second user;
[0027] Before the asset information related to the target copyright asset is encrypted based on the blockchain account public key of the asset verifier, further comprising:
[0028] Decrypting the asset information related to the target copyright asset encrypted in the authorization request based on a blockchain account private key of the second user.
[0029] According to a second aspect of the embodiments of the present specification, a copyright asset authorization device based on a blockchain is provided, the blockchain stores asset digest information of a copyright asset and credential information of a merchant holding the copyright asset; the device comprises:
[0030] A receiving unit receives an authorization request of a first user authorizing a target copyright asset to a second user; wherein the authorization request includes first credential information of the first user holding the target copyright asset, and asset digest information of the target copyright asset;
[0031] A responding unit determines whether the asset digest information of the target copyright asset is stored in the blockchain in response to the authorization request;
[0032] The authorization unit, if so, further performs zero-knowledge proof on first credential information of the first user holding the target copyright asset to determine whether the first credential information is stored in the blockchain, and generates asset authorization credentials for the target copyright asset for the second user and stores the asset authorization credentials in the blockchain if it is determined that the first credential information is stored in the blockchain.
[0033] According to a third aspect of an embodiment of the present specification, an electronic device is provided, comprising:
[0034] a processor;
[0035] a memory for storing processor-executable instructions;
[0036] The processor is configured to perform any of the above blockchain-based copyright asset authorization methods.
[0037] According to a fourth aspect of an embodiment of the present specification, a computer-readable storage medium is provided, when the instructions in the computer-readable storage medium are executed by the processor of an electronic device, the electronic device can perform any of the above blockchain-based copyright asset authorization methods.
[0038] Embodiments of the present specification provide a blockchain-based copyright asset authorization scheme, which combines blockchain technology and zero-knowledge proof technology. When performing copyright asset authorization, users can verify whether they have the right to authorize the copyright asset without providing the specific copyright asset to be authorized, by performing zero-knowledge proof on the credential information of the user holding the copyright asset. After verification, the authorization of the copyright asset is completed. Since the authorization process does not disclose the specific copyright asset, private authorization of the copyright asset can be achieved. BRIEF DESCRIPTION OF DRAWINGS
[0039] Figure 1 is an architecture diagram provided by an embodiment of the present specification, which is applicable to a blockchain-based copyright asset management system;
[0040] Figure 2 is a flowchart of a blockchain-based copyright asset publishing method provided by an embodiment of the present specification;
[0041] Figure 3 is a schematic diagram of a Merkle tree provided by an embodiment of the present specification;
[0042] Figure 4 is a flowchart of a blockchain-based copyright asset authorization method provided by an embodiment of the present specification;
[0043] Figure 5is a flowchart of a copyright asset circulation method based on a blockchain provided by an embodiment of the present specification;
[0044] Figure 6 is a hardware structure diagram of a related device provided by an embodiment of the present specification;
[0045] Figure 7 is a module of a copyright asset publishing device based on a blockchain provided by an embodiment of the present specification;
[0046] Figure 8 is a module of a copyright asset authorization device based on a blockchain provided by an embodiment of the present specification;
[0047] Figure 9 is a module of a copyright asset circulation device based on a blockchain provided by an embodiment of the present specification. DETAILED DESCRIPTION
[0048] The exemplary embodiments will be described in detail herein with reference to the attached drawings. In the following description, the same numbers are used to indicate the same or similar components. The embodiments described in the following exemplary embodiments do not represent all the embodiments consistent with the present specification. Rather, they are merely examples of devices and methods consistent with some aspects of the present specification, as detailed in the appended claims.
[0049] The terms used in the present specification are merely for the purpose of describing particular embodiments and are not intended to limit the present specification. As used in the present specification and the appended claims, singular forms “a,” “an” and “the” are intended to include plural forms, unless the context clearly indicates otherwise. It will be further understood that the term “and / or” used herein means and includes any or all possible combinations of one or more associated listed items.
[0050] It should be understood that although the terms first, second, third, etc. can be used in this specification to describe various information, these information should not be limited to these terms. These terms are only used to distinguish information of the same type from each other. For example, without departing from the scope of the present specification, the first information can also be referred to as the second information, and similarly, the second information can also be referred to as the first information. Depending on the context, the word “if” as used herein can be interpreted as “when” or “upon” or “in response to determining”.
[0051] Reference is made to Figure 1 , Figure 1 is a schematic diagram of a network environment related to a blockchain shown in the present specification.
[0052] As shown in Figure 1In the illustrated network environment, there can be included a client-side computing device 101, a server-side 102, and at least one blockchain system; for example, a blockchain system 103, a blockchain system 104, and a blockchain system 105.
[0053] In an embodiment, the client-side computing device 101 can include various different types of client-side computing devices; for example, the client-side terminal device can include a PC terminal device, a mobile terminal device, an Internet of Things device, and other forms of intelligent devices with certain computing capabilities, and the like.
[0054] In an embodiment, at least part of the computing devices in the client-side terminal device 101 can be coupled to the server-side 102 through various communication networks; for example, Figure 1 The device 3 shown in the middle is coupled to the server-side 102.
[0055] It is not difficult to understand that part of the client-side terminal devices 101 can also not be coupled to the server-side 102, but are directly coupled to the blockchain system through various communication networks as blockchain nodes; for example, Figure 1 The device 4 shown in the middle can be coupled to the blockchain system as a blockchain node.
[0056] Among them, the above-mentioned communication network can include wired and / or wireless communication network; for example, it can be a local area network (LAN), a wide area network (WAN), the Internet or a combination thereof based on the wired access network or wireless access network (such as mobile cellular network) provided by the operator.
[0057] In an embodiment, the client-side computing device 101 can also include one or more user-side servers; for example, Figure 1 The device 5 shown in the middle. At least part of the computing devices in the client-side terminal device 101 can be coupled to the user-side server, and the user-side server can be further coupled to the above-mentioned server-side 102; for example, Figure 1 The device 1 and the device 2 shown in the middle are coupled to the device 5, and the device 5 is further coupled to the server-side 102.
[0058] In an embodiment, the above-mentioned user-side server can be implemented by a service entity that builds a user account system; the above-mentioned service entity can include an operating entity of a service carrier that provides various online and / or offline services to users;
[0059] Among them, the above-mentioned service carrier can include a software form of service carrier, and can also include a hardware form of service carrier.
[0060] In one embodiment, the above-mentioned service carrier may include various client software that provides online Internet services; for example, a website, a webpage, an APP, etc.
[0061] In one embodiment, the above-mentioned service carriers may also include various smart devices deployed offline that can provide offline services; for example, smart express lockers deployed in residential areas, office areas, and public places.
[0062] Accordingly, the above-mentioned operating entity may include the operator corresponding to the above-mentioned service carrier; for example, the above-mentioned operating entity may include individuals, organizations, companies and enterprises that operate and manage the above-mentioned service carrier, etc.
[0063] In one embodiment, the server 102 may also be coupled to one or more blockchain systems via various communication networks; for example, Figure 1 The server end 102 shown in the figure can be coupled to the blockchain system 103, the blockchain system 104, the blockchain system 105, and so on.
[0064] In one embodiment, each blockchain system may maintain one or more blockchains (e.g., public blockchains, private blockchains, consortium blockchains, etc.) and include multiple blockchain nodes for hosting the one or more blockchains; for example, Figure 1 Blockchain nodes 1, 2, 3, 4, and i shown in FIG can jointly host one or more blockchains. Cross-chain data access can also be performed between blockchains contained in each blockchain system, and between blockchain systems.
[0065] In one embodiment, blockchain nodes may include full nodes and light nodes. Full nodes can download all blockchain transactions contained in each block in the blockchain and perform consensus verification on the blockchain transactions contained in each blockchain based on the blockchain consensus algorithm.
[0066] Light nodes, on the other hand, do not download the entire blockchain. Instead, they download only the block header data of each block in the blockchain and use the data contained in the block header as a verification root to verify the authenticity of blockchain transactions. Light nodes can be attached to full nodes to access more blockchain functions.
[0067] For example, Figure 1 Each blockchain node in the blockchain system 103 shown in FIG can serve as a full node; and Figure 1 The device 4 directly coupled to the blockchain system shown in the figure can be used as a light node and attached to each full node in the blockchain system 103.
[0068] In an implementation, a blockchain node can be a physical device or a virtual device implemented in a server or a cluster of servers; for example, a blockchain node device can be a physical host in a cluster of servers or a virtual machine created after virtualizing hardware resources of a server or a cluster of servers based on virtualization technology. Each blockchain node can be coupled together to form a network through various types of communication methods (such as TCP / IP) to carry one or more blockchains.
[0069] In an implementation, the server side 102 can include a BaaS platform (also referred to as a BaaS cloud) for providing a blockchain as a service (BaaS). The BaaS platform can provide simple and easy-to-use, one-click deployment, fast verification, and flexible and customizable blockchain services to client-side computing devices coupled to the BaaS platform by providing pre-written software for activities occurring on the blockchain, such as subscription and notification, user verification, database management, and remote update, thereby accelerating the development, testing, and online of blockchain applications and facilitating the landing of commercial application scenarios of blockchain in various industries.
[0070] For example, in one example, the BaaS platform can provide software such as an MQ (Message Queue) service; a client-side computing device coupled to the BaaS platform can subscribe to a smart contract deployed on a certain blockchain in a blockchain system coupled to the BaaS platform, and a contract event generated on the blockchain after triggering the execution of the smart contract; and the BaaS platform can listen to the event generated on the blockchain after triggering the execution of the smart contract, and based on the software related to the MQ service, add the contract event in the form of a notification message to a message queue, so that a client-side computing device subscribed to the message queue can obtain a notification related to the contract event.
[0071] In an implementation, the BaaS platform can also provide enterprise-level platform services based on blockchain technology to help enterprise customers build a secure and stable blockchain environment and easily manage the deployment, operation, maintenance, and development of the blockchain.
[0072] For example, in one example, the BaaS platform can implement rich security policies and multi-tenant isolation environments based on cloud technology, provide advanced security protection based on chip encryption technology, and provide end-to-end high availability services that can be quickly expanded without interruption based on highly reliable data storage.
[0073] In another example, enhanced management functions can also be provided to help customers build enterprise-grade blockchain network environments; and native support for standard blockchain applications and data can also be provided to support mainstream open-source blockchain technologies such as Hyperledger Fabric and Enterprise Ethereum-Quorum to build an open and inclusive technology ecosystem.
[0074] The present specification aims to provide a privacy protection scheme for copyright assets based on a blockchain, which can include publishing of copyright assets, authorization of copyright assets, transfer of copyright assets, etc.
[0075] The copyright assets can include various IP (intellectual property) assets, such as copyright, patent right, trademark right, geographical indication, business secret, integrated circuit layout design right, and plant new variety right, etc.
[0076] In the process of publishing the copyright assets, the owner of the copyright assets can publish the copyright assets in the blockchain through a private publishing manner. The private publishing manner can mean, for example, that the copyright assets can be stored on the chain without revealing the owner and the copyright assets. In this way, although a third party can know that a new copyright asset has been generated on the blockchain, it cannot know who the owner of the copyright asset is or what the specific content of the copyright asset is.
[0077] In the process of authorization of the copyright assets, the authorized party (i.e. the owner of the copyright assets) of the copyright assets can authorize the copyright assets on the blockchain through a private authorization manner. The private authorization manner can mean, for example, that the copyright assets can be authorized to the authorized party without revealing the authorized party, the authorized party, and the copyright assets. In this way, although a third party can know that a copyright asset has been authorized on the blockchain, it cannot know which copyright asset it is, what the specific content of the authorization is, and who the authorized party and the authorized party participating in the authorization are.
[0078] In the process of authorization of the copyright assets, the transfer party (i.e. the owner of the copyright assets) of the copyright assets can transfer the copyright assets on the blockchain through a private transfer manner. The private transfer manner can mean, for example, that the copyright assets can be transferred from the transfer party to the receiving party (i.e. the new owner of the copyright assets) without revealing the transfer party, the receiving party, and the copyright assets. In this way, although a third party can know that a copyright asset has been transferred on the blockchain, it cannot know which copyright asset it is, or who the transfer party and the receiving party participating in the transfer are.
[0079] Since the release, authorization, transfer and other processes of the copyright assets are implemented without leaking relevant privacy information (such as which copyright asset, which participants), the privacy security of the copyright assets in the release, authorization, transfer and other processes can be protected.
[0080] The release, authorization, transfer and other processes of the copyright assets are introduced below.
[0081] First, the registration process of a user on the blockchain is introduced.
[0082] Any user who wants to release a copyright asset needs to register as a copyright user on the blockchain first, and can only release the copyright asset on the blockchain after the registration is completed.
[0083] When registering, the user needs to submit registration information to the blockchain, and the registration information includes: an owner's blockchain account address Addr, a blockchain account public key PK A , a blockchain account private key SK A , an asset public key PK I , an asset private key SK I , and the user's identity digest information.
[0084] Among them, the blockchain account address Addr, the blockchain account public key PK A , and the blockchain account private key SK A are generated by the blockchain and uniquely assigned to the user.
[0085] The asset public key PK I and the asset private key SK I are generated by the user locally (outside the blockchain). For example, the asset public and private keys are generated by the user in the local trusted execution environment TEE of the device. The asset public and private keys are involved in subsequent copyright asset release, authorization, transfer and other operations, and need to be securely stored.
[0086] Among them, the relationship of the asset public and private keys includes that the user's asset public key is a digital digest calculated based on the user's asset private key. For example, PK I = h(SK I ), which means that the digital digest obtained by performing hash calculation on the user's asset private key is the user's public key.
[0087] The user's identity digest information includes a digital digest calculated based on the user's identity information. That is, the identity information is not stored in plaintext on the chain, but the digital digest thereof is stored. The digital digest can include a hash calculated digital digest.
[0088] The identity information needs to be provided in a standard format to ensure the uniqueness of the digital digest. When the user is a company, the identity digest information includes the digest information of the real company entity information. The company entity information can include the company name (usually the official name of the company), the company alias (such as the abbreviation of the company), the certificate information (such as the company social credit code, the certificate number), the attachment information (such as the remarks), and the like.
[0089] The limitation condition of the user registration can include: only the user who has the asset private key SK I can register the account for the corresponding asset public key PK I ; after the registration is completed, only the blockchain address that has the blockchain account private key SK A corresponding to the blockchain account public key PK A can modify the identity digital digest of the user; and the asset public and private keys cannot be modified.
[0090] In order to meet the above limitation condition, the matching relationship between the public and private keys PK A and SK A of the blockchain account needs to be verified by the blockchain; specifically, it can be verified whether the asset public key PK I of the user is a digital digest calculated based on the asset private key SK I of the user, that is, PK I =hash(SK I ); and whether the identity digest information β of the user is a digital digest calculated based on the identity information merchantInfo of the user, that is, β=hash(merchantInfo). If the above verification results are all yes, a copyright user can be created for the user.
[0091] After introducing the user registration, please refer to the flow chart of the publishing method of the copyright asset based on the blockchain shown in Figure 2 , in which the identity digest information of each user and the asset digest information of each copyright asset are stored; the method comprises the following steps:
[0092] Step 210, receiving a publishing request for a target copyright asset; wherein the publishing request includes the identity digest information of a first user and the asset digest information of the target copyright asset; the first user can be the owner of the target copyright asset.
[0093] In this specification, Figure 2 the execution subject of the embodiment shown in may be a node device in the blockchain, or a BaaS platform coupled with the blockchain.
[0094] When the execution subject is a node device of the blockchain, the publishing request can be a blockchain transaction (such as a publishing transaction) sent by the first user to the blockchain directly; or the first user can send a data request to the BaaS platform, and then the BaaS platform can package the data request into a blockchain transaction.
[0095] When the execution subject is the BaaS platform, the publishing request can be a data request sent by the first user to the BaaS platform; and then the BaaS platform can package the data request into a blockchain transaction, and send the blockchain transaction to the blockchain to perform subsequent steps.
[0096] In this specification, when the first user needs to publish a new copyright asset, a publishing request for the target copyright asset can be initiated to the BaaS platform or the blockchain, and the publishing request can carry the identity digest information (β) of the first user and the asset digest information α of the target copyright asset.
[0097] As described above, β = hash(merchantInfo), that is, the identity digest information β is a digital digest calculated based on the identity information merchantInfo (in plain text) of the first user;
[0098] α = hash(assetInfo), that is, the asset digest information α can be a digital digest calculated based on the asset information assetInfo (in plain text) of the target copyright asset.
[0099] In this specification, the identity information and the asset information need to be provided in a standard format to ensure the uniqueness of the digital digest. The identity information has been described in the foregoing embodiments and will not be described here. The asset information can include asset name (usually official IP name), asset alias, asset number (such as IP number of the patent office), attachment information (such as remarks), etc.
[0100] In this specification, the calculation of the digital digest can refer to any calculation method that can map the plain text information to the digital digest. Common calculation methods of the digital digest can include hash calculation, that is, performing hash calculation on the plain text information to obtain a hash digest.
[0101] Since the digital digest is not the original plain text information, even if the identity digest information and the asset digest information are stored on the chain, the corresponding plain text information will not be disclosed, so that the privacy and security of the identity information and the asset information can be ensured.
[0102] Step 220, in response to the publishing request, determining whether the asset digest information of the target copyright asset is stored in the blockchain.
[0103] After receiving the publishing request, the node device of the BaaS platform or the blockchain can query whether the asset digest information has been stored in the blockchain; if the asset digest information has been stored in the blockchain, it means that the target copyright asset has been published, and the publishing cannot be performed again.
[0104] In step 230, if no, the identity digest information of the first user is further proved by zero-knowledge proof to determine whether the identity digest information is stored in the blockchain, and in the case where it is determined that the identity digest information exists in the blockchain, the first user is generated with the first credential information of holding the target copyright asset, the first credential information and the asset digest information of the target copyright asset are stored in the blockchain.
[0105] If the asset digest information is not stored in the blockchain, the BaaS platform or the node device further needs to verify whether the identity digest information of the first user is stored in the blockchain based on the zero-knowledge proof, to verify the authenticity of the identity of the first user.
[0106] In an embodiment, a smart contract for zero-knowledge proof is deployed on the blockchain; the processing logic corresponding to the contract code in the smart contract includes verification logic corresponding to the zero-knowledge proof;
[0107] Correspondingly, the identity digest information of the first user is proved by zero-knowledge proof to determine whether the identity digest information is stored in the blockchain, comprising:
[0108] The verification logic in the smart contract is called to prove the identity digest information of the first user by zero-knowledge proof to determine whether the identity digest information is stored in the blockchain.
[0109] The publishing request can also include the blockchain address of the smart contract, the function name, interface information and the like of the verification logic. Since the smart contract in the blockchain can be executed by itself, the identity digest information of the first user is verified by the smart contract to determine whether it is stored in the blockchain, which is not affected by external factors, thereby ensuring the security and credibility of the verification process.
[0110] In this specification, zero-knowledge proof (zk-SNARK, zero-knowledge Succint Non-interactive Arguments of Knowledge) is a kind of cryptography algorithm; in the verification process of zero-knowledge proof, the verifier cannot learn anything about the statement except that the statement of the prover is correct and effective.
[0111] In the publishing process of the copyright asset based on the blockchain provided in the specification, the BaaS platform or the node device only needs to verify that the identity digest information of the first user is located in the blockchain, and cannot know the plaintext identity information corresponding to the identity digest information; it is also impossible to obtain which user publishes the copyright asset; it is also impossible to obtain what the specific content of the copyright asset is.
[0112] The verification process of zero-knowledge proof is further introduced below.
[0113] In an embodiment, the identity digest information of the user stored in the blockchain is stored in the distributed ledger of the blockchain in a Merkle tree storage structure.
[0114] Correspondingly, the zero-knowledge proof of the identity digest information of the first user to determine whether the identity digest information is stored in the blockchain includes:
[0115] Based on the identity digest information of the first user, the root node to be verified of the Merkle tree where the identity digest information is located is calculated; it is determined whether the root node to be verified is consistent with the real root node of the Merkle tree; if yes, it is determined that the identity digest information is stored in the blockchain.
[0116] In this example, the Merkle tree is a data storage structure in the blockchain, and only the digest information corresponding to the data is stored in the Merkle tree, and the specific data is not stored.
[0117] The above-mentioned calculation of the root node to be verified of the Merkle tree where the identity digest information is located based on the identity digest information of the first user; determining whether the root node to be verified is consistent with the real root node of the Merkle tree, can specifically include:
[0118] Obtaining the root node of the Merkle tree where the identity digest information of the first user is located, and the sibling node information of the path of the identity digest information to the root node;
[0119] According to the identity digest information and the sibling node information, the root node information to be verified is calculated;
[0120] If the root node information to be verified is consistent with the root node information of the Merkle tree, it is determined that the identity digest information is stored in the blockchain.
[0121] Reference Figure 3 The schematic diagram of the Merkle tree is introduced. In Figure 3 Each node stores corresponding digest information; the digest information of the next level node is used to constitute the digest information of the previous level node.
[0122] For example, the digest information Hash(4) of the node 4 and the digest information Hash(5) of the node 5 together constitute the digest information Hash(2) of the node 2, Hash(2) = Hash(Hash(4) + Hash(5));
[0123] Similarly, the digest information Hash(2) of the node 2 and the digest information Hash(3) of the node 3 together constitute the digest information Hash(1) of the root node 1, Hash(1) = Hash(Hash(2) + Hash(3)).
[0124] Suppose the identity digest information provided by the first user corresponds to the node 5, and the identity digest information is denoted as Hash(X);
[0125] Then, as long as the brother node information (the node 4, the node 3) on the path from the node 5 to the root node is obtained, it can be verified whether the identity digest information Hash(X) is consistent with Hash(5) stored by the node 5.
[0126] The calculation process is as follows: according to Hash(X) and Hash(4) stored by the node 4, the digest information of the node 2 is calculated; and according to the calculated digest information of the node 2 and Hash(3) stored by the node 3, the digest information of the root node 1 is calculated.
[0127] If the calculated digest information of the root node 1 is consistent with the digest information stored by the node 1, that is:
[0128] Hash(Hash(Hash(4) + Hash(X)) + Hash(Hash(3) + Hash(7))) = Hash(Hash(Hash(4) + Hash(5)) + Hash(Hash(3) + Hash(7)));
[0129] Then, the identity digest information Hash(X) is consistent with Hash(5) stored by the node 5; and further, it can be determined that the plaintext identity information used to calculate the identity digest information Hash(X) is also consistent with the plaintext identity information used to calculate Hash(5), proving the authenticity of the identity of the first user, and allowing it to publish the copyright asset.
[0130] Through the above calculation process, it can be found that the first user does not need to provide the plaintext identity information to the outside, but only needs to provide the zero-knowledge proof that the identity information is located in the blockchain, so that the BaaS platform or the node device can verify the authenticity of the identity. In this way, even if the specific identity information is not disclosed in the process of publishing the copyright asset by the first user, the publishing of the copyright asset can also be completed, thereby realizing the privacy protection of the identity information of the publisher of the copyright asset.
[0131] After verifying the identity of the first user, the BaaS platform or the node device can generate first credential information of the first user holding the target copyright asset, and store the first credential information and asset digest information of the target copyright asset in the blockchain.
[0132] In an embodiment, the publishing request can further include an asset public key of the first user
[0133] Accordingly, the first credential information of the first user holding the target copyright asset may include:
[0134] based on the asset public key of the first user encrypt the asset digest information a of the target copyright asset; calculate the encrypted asset digest information to obtain the first credential information of the first user holding the target copyright asset, i.e. and store the first credential information in the Merkle tree of the blockchain.
[0135] wherein the asset public key of the first user includes a digital digest calculated based on the asset private key of the first user .
[0136] By applying the above embodiments, the blockchain technology is combined with zero-knowledge proof. When publishing a copyright asset, a user can verify whether the user has the right to publish the copyright asset through zero-knowledge proof without providing the user's own identity information and the content of the copyright asset, and complete the publishing of the copyright asset after the verification is passed. Since the publishing process does not disclose the specific copyright asset and identity information, private publishing of the copyright asset can be realized.
[0137] Since the asset digest information of the copyright asset is finally stored in the chain, although the privacy and security of the copyright asset can be ensured, there is a risk of protecting illegal assets. Therefore, it is necessary to provide an embodiment for verifying the copyright asset corresponding to the asset digest information to ensure that the copyright asset does not have the risk of violation.
[0138] In an embodiment, based on the above Figure 2 embodiment, a smart contract for verifying the copyright asset published on the blockchain is further deployed on the blockchain; accordingly, the above method further includes:
[0139] receiving a verification request initiated by an asset verifier for a target copyright asset; wherein the verification request includes asset digest information of the target copyright asset;
[0140] In response to the verification request, the verification logic included in the smart contract is invoked to generate a verification confirmation event for the target copyright asset and store the generated verification confirmation event in the blockchain; so that the first user holding the target copyright asset obtains the verification confirmation event from the blockchain, and in response to the obtained verification confirmation event, the asset information related to the target copyright asset is encrypted based on the public key of the blockchain account of the asset verifier, and further the verification logic included in the smart contract is invoked to generate a verification event for the target copyright asset based on the encrypted asset information, and the generated verification event is stored in the blockchain; so that the asset verifier obtains the verification confirmation event from the blockchain, and in response to the obtained verification confirmation event, the encrypted asset information submitted by the first user is decrypted based on the private key of the blockchain account corresponding to the public key of the blockchain account; and the target copyright asset is risk verified based on the decrypted asset information.
[0141] In this specification, the asset verifier includes a management party managing copyright assets. The asset information can include the plaintext content of the copyright asset, and can also include the identity information of the copyright asset holder (i.e. the first user mentioned above) and the like.
[0142] Correspondingly, the risk verification of the target copyright asset may, for example, be a compliance check on the plaintext content related to the target copyright asset to determine whether the content of the target copyright asset contains illegal content; and may, for example, be a check on the authenticity of the plaintext content and / or identity information related to the target copyright asset to determine whether the target copyright asset is authentic.
[0143] The following takes the authenticity check as an example for illustration. The risk verification of the target copyright asset by the asset verifier based on the decrypted asset information may include:
[0144] The asset verifier calculates whether the digital digest corresponding to the decrypted plaintext content is consistent with the asset digest information of the target copyright asset stored on the blockchain, and whether the digital digest corresponding to the decrypted identity information is consistent with the digital digest of the first user stored on the blockchain; if both are consistent, it is determined that the risk verification of the target copyright asset is passed, and the verification result that the target copyright asset passes the verification is submitted to the smart contract.
[0145] Here, in order to verify the target copyright asset for the asset verifier, the event mechanism of the smart contract can be used.
[0146] The event mechanism of the smart contract is a way for the smart contract to interact with off-chain entities. For a smart contract deployed on a blockchain, it is usually not possible to directly interact with off-chain entities. For example, after a smart contract call is completed, the smart contract usually cannot send the call result of the smart contract to the initiator of the smart contract call point-to-point.
[0147] The call result (including intermediate results and final call result) generated by the smart contract during the call is usually recorded in the form of an event in the transaction logs of the transaction that calls the smart contract and stored in the storage space of the node device. An off-chain entity that needs to interact with the smart contract can obtain the call result of the smart contract by listening to the above-mentioned transaction logs stored in the storage space of the node device.
[0148] The transaction logs are eventually stored in the MPT receipt tree as part of the receipt of the smart contract call transaction. An off-chain entity that needs to interact with the smart contract can listen to the transaction receipt on the MPT receipt tree stored in the storage space of the node device and obtain the verification confirmation event or verification event generated by the smart contract from the listened transaction receipt. After obtaining the verification confirmation event, the first user needs to submit asset information related to the target copyright asset, but in order to avoid the asset information being obtained by a third party, the asset information needs to be encrypted. Here, in order to ensure that only the asset verifier can decrypt the encrypted asset information, the asset information can be encrypted using the public key of the blockchain account of the asset verifier, so that only the asset verifier can decrypt using the corresponding private key of the blockchain account. Based on this, the asset verifier can decrypt the encrypted asset information submitted by the first user based on the private key of the blockchain account of the asset verifier to obtain the plaintext asset information.
[0149] In addition to the above-mentioned listening to the events of the smart contract through the transaction logs, the first user and the asset verifier can also obtain the verification confirmation event or the verification event by subscribing to the smart contract. After the smart contract generates the verification confirmation event, the first user can be actively pushed the verification confirmation event, and after the smart contract generates the verification event, the asset verifier can be actively pushed the verification event. The subsequent process is the same as the above example.
[0150] Since the plaintext asset information is obtained, the asset verifier can check the asset information to determine whether there is any illegal content. If there is, the asset verifier can submit a verification result that the target copyright asset does not pass the verification to the smart contract.
[0151] In an embodiment, the above method can further include:
[0152] Obtain the risk information generated by the asset verifier when the risk verification fails, and store the risk information in the blockchain.
[0153] In the present specification, after the asset verifier fails to perform risk verification on the target copyright asset, the asset verifier can generate risk information for the target copyright asset, and send the risk information to the blockchain, so that the BaaS platform or the node device stores the risk information in the blockchain.
[0154] In this way, any user can determine whether the target copyright asset is at risk by querying whether the risk information corresponding to the asset summary information is stored in the blockchain, thereby avoiding the loss caused by purchasing a copyright asset at risk.
[0155] After introducing the copyright asset publishing, please refer to the flowchart of the authorization method of the copyright asset based on the blockchain as shown in Figure 4 The blockchain stores asset summary information of the copyright asset and credential information of the user holding the copyright asset; the method comprises:
[0156] Step 410, receiving an authorization request of a first user authorizing a target copyright asset to a second user; wherein the authorization request comprises first credential information of the first user holding the target copyright asset, and asset summary information of the target copyright asset.
[0157] In the present specification, Figure 4 The execution subject of the embodiment shown in
[0158] When the execution subject is the node device of the blockchain, the above authorization request can be a blockchain transaction (such as an authorization transaction) sent directly by the first user to the blockchain; or the first user can first send a data request to the BaaS platform, and then the BaaS platform can package the data request into a blockchain transaction.
[0159] When the execution subject is the BaaS platform, the above authorization request can be a data request sent by the first user to the BaaS platform; and then the BaaS platform can package the data request into a blockchain transaction, and send the blockchain transaction to the blockchain to execute the subsequent steps.
[0160] In the present specification, when the first user needs to authorize the target copyright asset held by the first user to the second user, the first user can initiate an authorization request for the target copyright asset to the BaaS platform or the blockchain, and the authorization request can carry the first credential information (the aforementioned ) of the first user holding the target copyright asset, and the asset summary information a of the target copyright asset.
[0161] As described above, a = hash(assetInfo), that is, the asset digest information a can be a digital digest calculated based on the asset information assetInfo (in plaintext) of the target copyright asset.
[0162] That is, the first credential information includes the asset public key of the first user After encrypting the asset digest information a of the target copyright asset, a digital digest calculated based on the encrypted asset digest information a.
[0163] Among them, the asset public key of the first user includes the asset private key of the first user The digital digest calculated.
[0164] Step 420, in response to the authorization request, determine whether the asset digest information of the target copyright asset is stored in the blockchain.
[0165] After receiving the authorization request, the BaaS platform or the node device of the blockchain can query whether the asset digest information has been stored in the blockchain; if it is not stored in the blockchain, it means that the authorized copyright asset does not exist, and the authorization cannot be performed.
[0166] Step 430, if so, further zero-knowledge proof of the first credential information of the first user holding the target copyright asset to determine whether the first credential information is stored in the blockchain, and generate asset authorization credential for the second user to the target copyright asset and store the asset authorization credential in the blockchain if the first credential information is stored in the blockchain.
[0167] If the asset digest information is stored in the blockchain, the BaaS platform or the node device further needs to verify whether the first credential information of the first user holding the target copyright asset is stored in the blockchain based on the zero-knowledge proof, to verify the authenticity of the first user holding the target copyright asset.
[0168] In an embodiment, a smart contract for zero-knowledge proof is deployed on the blockchain; the processing logic corresponding to the contract code in the smart contract includes verification logic corresponding to the zero-knowledge proof;
[0169] Correspondingly, the zero-knowledge proof of the first credential information of the first user holding the target copyright asset to determine whether the first credential information is stored in the blockchain, comprising:
[0170] call the verification logic in the smart contract to prove the first credential information of the first user holding the target copyright asset in zero-knowledge, to determine whether the first credential information is stored in the blockchain.
[0171] The above authorization request can also include the blockchain address of the above-mentioned smart contract, the function name of the verification logic, the interface information, etc. Since the smart contract in the blockchain can be executed by itself, the first user's first credential information is verified through the smart contract to determine whether it is stored in the blockchain, which is not affected by external factors, thereby ensuring the security and credibility of the verification process.
[0172] In this specification, zero-knowledge proof is a kind of cryptography algorithm; in the verification process of zero-knowledge proof, the verifier cannot learn anything about the statement except that the statement of the prover is correct and valid.
[0173] In the authorization process of the copyright asset based on the blockchain provided in this specification, the BaaS platform or node device only needs to verify that the first credential information is indeed located in the blockchain, and cannot know the real identity of the first user and the second user, so it cannot obtain which specific copyright asset is authorized.
[0174] The following further introduces the verification process of zero-knowledge proof.
[0175] In an embodiment, the credential information of the user holding the copyright asset stored in the blockchain is stored in the distributed ledger of the blockchain in the storage structure of the Merkle tree;
[0176] Correspondingly, the zero-knowledge proof of the first credential information of the first user holding the target copyright asset to determine whether the first credential information is stored in the blockchain includes:
[0177] Based on the first credential information, calculate the to-be-verified root node of the Merkle tree where the first credential information is located; determine whether the to-be-verified root node is consistent with the real root node of the Merkle tree; if so, determine that the first credential information is stored in the blockchain.
[0178] In this example, the Merkle tree is a data storage structure in the blockchain, and only the digest information corresponding to the data is stored in the Merkle tree, without storing specific data.
[0179] The above-mentioned calculation of the to-be-verified root node of the Merkle tree where the first credential information is located based on the first credential information; determine whether the to-be-verified root node is consistent with the real root node of the Merkle tree, can specifically include:
[0180] obtain the root node of the Merkle tree in which the first credential information is located, and sibling node information of a path from the first credential information to the root node;
[0181] According to the first credential information and the sibling node information, calculate the root node information to be verified;
[0182] If the root node information to be verified is consistent with the root node information of the Merkle tree, it is determined that the first credential information is stored in the blockchain.
[0183] Reference Figure 3 The schematic diagram of the Merkle tree is shown. In Figure 3 Each node stores corresponding digest information; the digest information of the next level node is used to constitute the digest information of the upper level node.
[0184] For example, the digest information Hash(4) of node 4 and the digest information Hash(5) of node 5 jointly constitute the digest information Hash(2) of node 2, which is Hash(Hash(4)+Hash(5));
[0185] Similarly, the digest information Hash(2) of node 2 and the digest information Hash(3) of node 3 jointly constitute the digest information Hash(1) of root node 1, which is Hash(Hash(2)+Hash(3)).
[0186] Suppose the digest information of the first credential information corresponds to node 5, and the digest information of the first credential information is Hash(X);
[0187] Then, as long as the sibling node information (node 4, node 3) on the path from node 5 to the root node is obtained, it can be verified whether the digest information Hash(X) of the first credential information is consistent with Hash(5) stored by node 5.
[0188] The calculation process is as follows: according to Hash(X) and Hash(4) stored by node 4, the digest information of node 2 is calculated; and according to the calculated digest information of node 2 and Hash(3) stored by node 3, the digest information of root node 1 is calculated.
[0189] If the calculated digest information of root node 1 is consistent with the digest information stored by node 1, that is:
[0190] Hash(Hash(Hash(4)+Hash(X))+Hash(Hash(3)+Hash(7)))=Hash(Hash(Hash(4)+Hash(5))+Hash(Hash(3)+Hash(7)));
[0191] Then, the digest information Hash (X) of the first credential information is consistent with Hash (5) stored by the node 5; and it can be determined that the first credential information used to calculate the digest information Hash (X) is also consistent with the credential information used to calculate Hash (5), proving the authenticity of the first credential information provided by the first user, and the first user can be allowed to authorize the copyright asset.
[0192] After the BaaS platform or the node device verifies that the first credential information is stored in the blockchain, the asset authorization credential for the target copyright asset can be generated for the second user, and the asset authorization credential is stored in the blockchain. Wherein, storing the asset authorization credential in the blockchain can be stored in the Merkle tree of the blockchain.
[0193] In an embodiment, the authorization request further includes the asset public key of the second user
[0194] Accordingly, the asset authorization credential for the target copyright asset is generated for the second user Comprising:
[0195] Based on the asset public key of the second user Encrypt the asset digest information a of the target copyright asset; calculate the encrypted asset digest information to obtain the asset authorization credential held by the second user for the target copyright asset, that is
[0196] Wherein, the asset public key of the second user is of the first user type as described above Comprising based on the asset private key of the second user The calculated digital digest.
[0197] By applying the above embodiment, the blockchain technology is combined with the zero-knowledge proof, and in the copyright asset authorization, the user can verify whether he has the right to authorize the copyright asset without providing the specific copyright asset, and complete the authorization of the copyright asset after the verification. Since the authorization process does not disclose the specific copyright asset, the private authorization of the copyright asset can be realized.
[0198] Since the asset digest information of the copyright asset is authorized on the chain, the second user also needs to prove that he has the authorization of the copyright asset.
[0199] In an embodiment, based on the above Figure 4 Embodiment, the blockchain also deploys a smart contract for verifying the copyright asset published on the blockchain; accordingly, the above method further comprises:
[0200] Receiving a verification request for a target copyright asset initiated by an asset verification party; wherein the verification request includes asset summary information of the target copyright asset;
[0201] In response to the verification request, the verification logic contained in the smart contract is called to generate a verification confirmation event for the target copyright asset and store the generated verification confirmation event in the blockchain; so that a second user holding the asset authorization certificate of the target copyright asset obtains the verification confirmation event from the blockchain, and in response to the obtained verification confirmation event, encrypts the asset information related to the target copyright asset based on the blockchain account public key of the asset verifier, and further calls the verification logic contained in the smart contract to generate a verification event for the target copyright asset based on the encrypted asset information, and stores the generated verification event in the blockchain; so that the asset verifier obtains the verification confirmation event from the blockchain, and in response to the obtained verification confirmation event, decrypts the encrypted asset information submitted by the second user based on the blockchain account private key corresponding to the blockchain account public key; and performs risk verification on the target copyright asset based on the decrypted asset information.
[0202] Here and the aforementioned Figure 2 The basic difference between the calibration is that Figure 2 The embodiment verifies the published copyright assets to determine the authenticity of the target copyright assets published by the first user; while here the authorized copyright assets are verified to determine whether the second user has the authorization for the target copyright assets. The remaining verification process is the same as the above Figure 2 The verification in is similar and will not be described here.
[0203] In one embodiment, the authorization transaction further includes asset information related to the target copyright asset encrypted based on the second user's blockchain account public key;
[0204] Before encrypting the asset information related to the target copyright asset based on the blockchain account public key of the asset verifier, the method further includes:
[0205] Decrypt the asset information related to the target copyright asset encrypted in the authorization request based on the second user's blockchain account private key.
[0206] Since the asset information of the target copyright asset will never be stored in the blockchain, when authorizing the target copyright asset to a second user, it is also necessary to provide encrypted asset information that only the second user can decrypt, so that the second user can obtain the plaintext asset information and then prove to the asset verification party that it has authorization for the target copyright asset.
[0207] In an embodiment, if the asset verifier fails in the risk verification on the target copyright asset, the authorization exception information for the target copyright asset can be generated and sent to the blockchain. Accordingly, the above method can further include:
[0208] Obtaining the authorization exception information generated by the asset verifier when the risk verification fails, and notarizing the authorization exception information into the blockchain.
[0209] Since the asset digest information of the target copyright asset is notarized in the blockchain, the asset digest information of the target copyright asset in the blockchain can be associated when the authorization exception information is notarized.
[0210] In this way, any user can determine whether the target copyright asset is at risk by querying whether the authorization exception information corresponding to the asset digest information is notarized in the blockchain, thereby avoiding the loss caused by applying for authorization of a copyright asset at risk.
[0211] After introducing the copyright asset authorization, please refer to the flowchart of the copyright asset transfer method based on the blockchain shown in Figure 5 The blockchain notarizes the asset digest information of the copyright asset and the credential information of the user holding the copyright asset; the method includes:
[0212] Step 510, receiving a transfer request for transferring a target copyright asset from a first user to a second user; wherein the transfer request includes first credential information of the first user holding the target copyright asset, and asset digest information of the target copyright asset.
[0213] In this specification, Figure 5 The execution subject of the embodiment shown in
[0214] When the execution subject is a node device in the blockchain, the above transfer request can be a blockchain transaction (such as a transfer transaction) sent directly by the first user to the blockchain; or the first user can first send a data request to the BaaS platform, and then the BaaS platform can package the data request into a blockchain transaction.
[0215] When the execution subject is a BaaS platform, the above transfer request can be a data request sent by the first user to the BaaS platform; and then the BaaS platform can package the data request into a blockchain transaction and send the blockchain transaction to the blockchain to execute the subsequent steps.
[0216] In the present specification, when a first user needs to transfer a target copyright asset held by the first user to a second user, a transfer request for the target copyright asset can be initiated to a BaaS platform or a blockchain, and the transfer request can carry first credential information of the first user holding the target copyright asset (the aforementioned ), and asset digest information a of the target copyright asset.
[0217] As mentioned above, a = hash (assetInfo), that is, the asset digest information a can be a digital digest calculated based on asset information assetInfo (in plain text) of the target copyright asset.
[0218] That is, the first credential information includes an asset public key of the first user based on the asset private key of the first user
[0219] The asset digest information a of the target copyright asset is encrypted, and a digital digest calculated based on the encrypted asset digest information a. The asset public key of the first user
[0220] The asset private key of the first user
[0221] Step 520, in response to the transfer request, determining whether the asset digest information of the target copyright asset is stored in the blockchain.
[0222] Step 530, if yes, further performing zero-knowledge proof on the first credential information of the first user holding the target copyright asset to determine whether the first credential information is stored in the blockchain, and in the case where the first credential information is stored in the blockchain, generating second credential information of the second user holding the target copyright asset, and storing the second credential information in the blockchain.
[0223] If the asset digest information is stored in the blockchain, the BaaS platform or the node device further needs to verify whether the first credential information of the first user holding the target copyright asset is stored in the blockchain based on zero-knowledge proof, to verify the authenticity of the first user holding the target copyright asset.
[0224] In an embodiment, the blockchain is deployed with a smart contract for the zero-knowledge proof; the processing logic corresponding to the contract code in the smart contract comprises verification logic corresponding to the zero-knowledge proof.
[0225] Correspondingly, the zero-knowledge proof of the first credential information of the first user holding the target copyright asset is performed to determine whether the first credential information is stored in the blockchain, comprising:
[0226] The verification logic in the smart contract is called to perform the zero-knowledge proof of the first credential information of the first user holding the target copyright asset to determine whether the first credential information is stored in the blockchain.
[0227] The above circulation transaction can further comprise the blockchain address of the smart contract, the function name of the verification logic, the interface information, and the like. Since the smart contract in the blockchain can be executed by itself, the first credential information of the first user is verified through the smart contract to determine whether it is stored in the blockchain, which is not affected by external factors, thereby ensuring the security and credibility of the verification process.
[0228] In the circulation process of the copyright asset based on the blockchain provided in the present specification, the BaaS platform or the node device only needs to verify that the first credential information is indeed located in the blockchain, and cannot know the real identity of the first user and the second user, so as to obtain the specific copyright asset to be circulated.
[0229] The verification process of the zero-knowledge proof is further introduced below.
[0230] In an embodiment, the credential information of the user holding the copyright asset stored in the blockchain is stored in the distributed ledger of the blockchain in a Merkle tree storage structure.
[0231] Correspondingly, the zero-knowledge proof of the first credential information of the first user holding the target copyright asset is performed to determine whether the first credential information is stored in the blockchain, comprising:
[0232] The first credential information is calculated based on the first credential information to obtain a to-be-verified root node of the Merkle tree where the first credential information is located; it is determined whether the to-be-verified root node is consistent with the real root node of the Merkle tree; if yes, it is determined that the first credential information is stored in the blockchain.
[0233] In this example, the Merkle tree is a data storage structure in the blockchain, and only the digest information corresponding to the data is stored in the Merkle tree, and the specific data is not stored.
[0234] The above calculating the to-be-verified root node of the Merkle tree in which the first credential information is located based on the first credential information; determining whether the to-be-verified root node is consistent with the real root node of the Merkle tree can specifically include:
[0235] Obtaining the root node of the Merkle tree in which the first credential information is located, and the sibling node information of the path of the first credential information to the root node;
[0236] According to the first credential information and the sibling node information, calculating the to-be-verified root node information;
[0237] If the to-be-verified root node information is consistent with the root node information of the Merkle tree, it is determined that the first credential information is stored in the blockchain.
[0238] Since the zero-knowledge proof verification based on the Merkle tree has been introduced in the foregoing Figure 3 , it will not be repeated here.
[0239] After the BaaS platform or the node device verifies that the first credential information is stored in the blockchain, the second credential information holding the target copyright asset can be generated for the second user, and the second credential information is stored in the blockchain to transfer the target copyright asset from the first user to the second user. Wherein, storing the second credential information in the blockchain can include storing the second credential information in the Merkle tree of the blockchain.
[0240] In an embodiment, the flow request further includes the asset public key of the second user
[0241] Correspondingly, the second credential information holding the target copyright asset for the second user includes:
[0242] Based on the asset public key of the second user encrypting the asset digest information a of the target copyright asset; calculating the encrypted asset digest information to obtain the second credential information of the second user holding the target copyright asset, that is
[0243] Wherein, the asset public key of the second user is based on the asset private key of the second user calculated digital digest.
[0244] In an embodiment, in the case of determining that the first credential information is stored in the blockchain, the first credential information stored in the blockchain can be marked as a flow state.
[0245] Correspondingly, the second user is generated a second credential information holding the target copyright asset in the case that the first credential information is stored in the blockchain, comprising:
[0246] In the case that the first credential information is stored in the blockchain, it is further determined whether the first credential information is marked as a transferred state;
[0247] If no (determine that the first credential information is not marked as a transferred state), a second credential information holding the target copyright asset is generated for the second user, and the first credential information is marked as a transferred state.
[0248] On the contrary, if yes (determine that the first credential information is marked as a transferred state), it means that the first user has transferred the target copyright asset to other users before, so the first credential information held by the first user is invalid, and the first user has no right to transfer the target copyright asset.
[0249] In this way, by determining whether the first credential information is marked as a transferred state, the second transfer of the first user to the target copyright asset (transferring the same target copyright asset to different second users) can be avoided.
[0250] Corresponding to each of the foregoing method embodiments, the present specification also provides various device embodiments. The device embodiments can be realized by software, or by hardware or a combination of software and hardware. Taking software realization as an example, as a logical device, it is formed by a processor of a device in which it is located to read a corresponding computer program in a non-volatile memory into a memory for execution. From the hardware level, as shown in Figure 6 , a hardware structure diagram of a device in which the copyright asset transfer device based on a blockchain in the present specification is located, in addition to the processor, network interface, memory and non-volatile memory shown in Figure 6 , the device in which the device in the embodiment is located usually includes other hardware according to the actual function of the copyright asset transfer based on a blockchain, and will not be described again.
[0251] Please refer to Figure 7 , a module diagram of the copyright asset publishing device based on a blockchain provided by an embodiment of the present specification, the device corresponds to Figure 2 the embodiment shown, the identity digest information of each user and the asset digest information of each copyright asset are stored in the blockchain; the device comprises:
[0252] The receiving unit 710 receives a publishing request for a target copyright asset; wherein the publishing request comprises identity digest information of a first user and asset digest information of the target copyright asset;
[0253] The response unit 720, in response to the publishing request, determines whether asset summary information of the target copyright asset is stored in the blockchain;
[0254] The publishing unit 730, if not, further performs zero-knowledge proof on the identity summary information of the first user to determine whether the identity summary information is stored in the blockchain, and generates first credential information of the first user holding the target copyright asset if it is determined that the identity summary information exists in the blockchain, stores the first credential information and the asset summary information of the target copyright asset in the blockchain.
[0255] In an embodiment, the publishing request further includes an asset public key of the first user;
[0256] In the publishing unit 730, the first credential information of the first user holding the target copyright asset includes: encrypting the asset summary information of the target copyright asset based on the asset public key of the first user, and calculating the encrypted asset summary information to obtain the first credential information of the first user holding the target copyright asset.
[0257] In an embodiment, the asset public key of the first user includes a digital summary calculated based on an asset private key of the first user.
[0258] In an embodiment, a smart contract for zero-knowledge proof is deployed on the blockchain; the processing logic corresponding to the contract code in the smart contract includes verification logic corresponding to the zero-knowledge proof;
[0259] In the publishing unit 730, the zero-knowledge proof on the identity summary information of the first user to determine whether the identity summary information is stored in the blockchain includes: calling the verification logic in the smart contract to perform zero-knowledge proof on the identity summary information of the first user to determine whether the identity summary information is stored in the blockchain.
[0260] In an embodiment, the identity summary information of the user stored in the blockchain is stored in the distributed ledger of the blockchain in a Merkle tree storage structure;
[0261] In the publishing unit 730, the zero-knowledge proof on the identity summary information of the first user to determine whether the identity summary information is stored in the blockchain includes: calculating a to-be-verified root node of the Merkle tree where the identity summary information is located based on the identity summary information of the first user; determining whether the to-be-verified root node is consistent with the real root node of the Merkle tree; if yes, it is determined that the identity summary information is stored in the blockchain.
[0262] In an embodiment, the blockchain is deployed with a smart contract for verifying a copyright asset published on the blockchain, and the apparatus further comprises:
[0263] a receiving subunit configured to receive a verification request initiated by an asset verifier for a target copyright asset, wherein the verification request comprises asset digest information of the target copyright asset;
[0264] a verifying subunit configured to, in response to the verification request, invoke verification logic contained in the smart contract, generate a verification confirmation event for the target copyright asset, and store the generated verification confirmation event in the blockchain; so that a first user holding the target copyright asset acquires the verification confirmation event from the blockchain, and in response to the acquired verification confirmation event, encrypts asset information related to the target copyright asset based on a blockchain account public key of the asset verifier, and further invokes the verification logic contained in the smart contract to generate a verification event for the target copyright asset based on the encrypted asset information, and stores the generated verification event in the blockchain; so that the asset verifier acquires the verification confirmation event from the blockchain, and in response to the acquired verification confirmation event, decrypts the encrypted asset information submitted by the first user based on a blockchain account private key corresponding to the blockchain account public key; and performs risk verification on the target copyright asset based on the decrypted asset information.
[0265] In an embodiment, the asset verifier comprises a management party managing the copyright asset.
[0266] In an embodiment, the apparatus further comprises:
[0267] a storage unit configured to acquire risk information generated by the asset verifier when the risk verification fails, and store the risk information in the blockchain.
[0268] Please refer to Figure 8 , a module diagram of a copyright asset authorization apparatus based on a blockchain provided by an embodiment of the present specification, the apparatus corresponding to Figure 4 the embodiment shown in the figure, the blockchain storing asset digest information of a copyright asset and credential information of a user holding the copyright asset; the apparatus comprising:
[0269] a receiving unit 810 configured to receive an authorization request of a first user authorizing a target copyright asset to a second user; wherein the authorization request comprises first credential information of the first user holding the target copyright asset, and asset digest information of the target copyright asset;
[0270] The response unit 820 determines whether asset digest information of the target copyright asset is stored in the blockchain in response to the authorization request.
[0271] The authorization unit 830, if yes, further performs zero-knowledge proof on first credential information of the target copyright asset held by the first user to determine whether the first credential information is stored in the blockchain, and generates asset authorization credential for the target copyright asset for the second user and stores the asset authorization credential in the blockchain in a case where it is determined that the first credential information is stored in the blockchain.
[0272] In an embodiment, the authorization request further includes asset public key of the second user.
[0273] In the authorization unit 830, generating asset authorization credential for the target copyright asset for the second user includes encrypting asset digest information of the target copyright asset based on asset public key of the second user, and performing calculation on the encrypted asset digest information to obtain asset authorization credential for the target copyright asset held by the second user.
[0274] In an embodiment, the first credential information of the target copyright asset held by the first user includes first credential information obtained by performing calculation on encrypted asset digest information of the target copyright asset based on asset public key of the first user.
[0275] In an embodiment, the asset public key of the first user includes a digital digest calculated based on asset private key of the first user; and the asset public key of the second user includes a digital digest calculated based on asset private key of the second user.
[0276] In an embodiment, the blockchain is deployed with a smart contract for zero-knowledge proof; and the processing logic corresponding to the contract code in the smart contract includes verification logic corresponding to the zero-knowledge proof.
[0277] In the authorization unit 830, performing zero-knowledge proof on the first credential information of the target copyright asset held by the first user to determine whether the first credential information is stored in the blockchain includes invoking the verification logic in the smart contract to perform zero-knowledge proof on the first credential information of the target copyright asset held by the first user to determine whether the first credential information is stored in the blockchain.
[0278] In an embodiment, the credential information of the copyright asset held by the user stored in the blockchain is stored in the distributed ledger of the blockchain in a storage structure of a Merkle tree.
[0279] The first user holds the first credential information of the target copyright asset in the authorization unit 830, and the zero-knowledge proof is performed on the first credential information to determine whether the first credential information is stored in the blockchain, including: calculating the to-be-verified root node of the Merkle tree where the first credential information is located based on the first credential information; determining whether the to-be-verified root node is consistent with the real root node of the Merkle tree; if yes, it is determined that the first credential information is stored in the blockchain.
[0280] In an embodiment, the blockchain is deployed with a smart contract for verifying a copyright asset published on the blockchain, and the device further includes:
[0281] The receiving subunit receives a verification request initiated by the asset verifier for the target copyright asset; wherein the verification request includes asset digest information of the target copyright asset;
[0282] The verification subunit, in response to the verification request, calls the verification logic contained in the smart contract, generates a verification confirmation event for the target copyright asset and stores the generated verification confirmation event in the blockchain; so that a second user holding an asset authorization credential of the target copyright asset acquires the verification confirmation event from the blockchain, and in response to the acquired verification confirmation event, encrypts asset information related to the target copyright asset based on a blockchain account public key of the asset verifier, and further calls the verification logic contained in the smart contract to generate a verification event for the target copyright asset based on the encrypted asset information, and stores the generated verification event in the blockchain; so that the asset verifier acquires the verification confirmation event from the blockchain, and in response to the acquired verification confirmation event, decrypts the encrypted asset information submitted by the second user based on a blockchain account private key corresponding to the blockchain account public key; and performs risk verification on the target copyright asset based on the decrypted asset information.
[0283] In an embodiment, the authorization request further includes asset information related to the target copyright asset encrypted based on a blockchain account public key of the second user;
[0284] Before the asset information related to the target copyright asset is encrypted based on the blockchain account public key of the asset verifier in the verification subunit, it further includes: decrypting the asset information related to the target copyright asset encrypted in the authorization request based on a blockchain account private key of the second user.
[0285] See Figure 9 The module diagram of the blockchain-based copyright asset circulation device provided by an embodiment of the present specification corresponds to Figure 5In the illustrated embodiment, the blockchain stores asset abstract information of the copyright asset and user holding information of the copyright asset; and the device comprises:
[0286] The receiving unit 910 receives a transfer request for transferring a target copyright asset from a first user to a second user; wherein the transfer request comprises first holding information of the first user holding the target copyright asset and asset abstract information of the target copyright asset;
[0287] The responding unit 920 determines whether the asset abstract information of the target copyright asset is stored in the blockchain in response to the transfer request;
[0288] The transfer unit 930, if yes, further performs zero-knowledge proof on the first holding information of the first user holding the target copyright asset to determine whether the first holding information is stored in the blockchain, and generates second holding information of the second user holding the target copyright asset and stores the second holding information in the blockchain if it is determined that the first holding information is stored in the blockchain.
[0289] In an embodiment, the transfer request further comprises an asset public key of the second user;
[0290] The transfer unit 930 generates second holding information of the second user holding the target copyright asset, comprising: encrypting the asset abstract information of the target copyright asset based on the asset public key of the second user; and calculating the encrypted asset abstract information to obtain the second holding information of the second user holding the target copyright asset.
[0291] In an embodiment, the first holding information of the first user holding the target copyright asset comprises: encrypting the asset abstract information of the target copyright asset based on the asset public key of the first user, and calculating the encrypted asset abstract information to obtain the first holding information.
[0292] In an embodiment, the asset public key of the first user comprises a digital digest calculated based on an asset private key of the first user; and the asset public key of the second user comprises a digital digest calculated based on an asset private key of the second user.
[0293] In an embodiment, the blockchain is deployed with a smart contract for zero-knowledge proof; and the contract code in the smart contract corresponds to processing logic comprising verification logic corresponding to the zero-knowledge proof;
[0294] The flow unit 930, in the zero-knowledge proof of the first user holding the first credential information of the target copyright asset, determines whether the first credential information is stored in the blockchain, including: calling the verification logic in the smart contract, and performing zero-knowledge proof on the first credential information of the target copyright asset held by the first user to determine whether the first credential information is stored in the blockchain.
[0295] In an embodiment, the credential information of the user holding the copyright asset stored in the blockchain is stored in the distributed ledger of the blockchain in a storage structure of a Merkle tree.
[0296] In the flow unit 930, the first credential information of the first user holding the target copyright asset is zero-knowledge proof, to determine whether the first credential information is stored in the blockchain, including: calculating the to-be-verified root node of the Merkle tree where the first credential information is located based on the first credential information; determining whether the to-be-verified root node is consistent with the real root node of the Merkle tree; if yes, it is determined that the first credential information is stored in the blockchain.
[0297] In the flow unit 930, the second credential information is stored in the blockchain, including: storing the second credential information in the Merkle tree.
[0298] In an embodiment, the flow unit 930 further comprises: in the case where it is determined that the first credential information is stored in the blockchain, marking the first credential information stored in the blockchain as a transferred state.
[0299] In an embodiment, in the flow unit 930, in the case where it is determined that the first credential information is stored in the blockchain, the second user is generated holding the second credential information of the target copyright asset, including:
[0300] In the case where it is determined that the first credential information is stored in the blockchain, it is further determined whether the first credential information is marked as a transferred state; if not, a second credential information holding the target copyright asset is generated for the second user.
[0301] The system, device, module or unit illustrated in the above embodiments can be implemented by a computer chip or entity, or by a product with certain functions. A typical implementation device is a computer, and the specific form of the computer can be a personal computer, a laptop computer, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email transceiver device, a game console, a tablet computer, a wearable device, or a combination of any of these devices.
[0302] The implementation process of the functions and roles of each unit in the above device is specifically described in the implementation process of the corresponding steps in the above method, which will not be repeated here.
[0303] For the device embodiment, since it basically corresponds to the method embodiment, the relevant part can be referred to the part of the method embodiment. The above described device embodiment is only illustrative, and the units described as separate components can or can not be physically separated, and the components displayed as units can or can not be physical units, that is, they can be located in one place or distributed on multiple network units. Part or all of the modules can be selected to achieve the purpose of the scheme of the present specification according to actual needs. Those skilled in the art can understand and implement without creative labor.
[0304] The above Figures 7-9 The internal functional modules and structural diagrams of any one of the devices described above are essentially executed by an electronic device, which includes:
[0305] A processor;
[0306] A memory for storing processor-executable instructions;
[0307] The processor is configured to execute any of the embodiments of the above method.
[0308] In the above embodiment of the electronic device, it should be understood that the processor can be a CPU, and can also be other general-purpose processors, digital signal processors (English: Digital Signal Processor, for short: DSP), application specific integrated circuits (English: Application Specific Integrated Circuit, for short: ASIC) and the like. The general-purpose processor can be a microprocessor or the processor can be any conventional processor, and the aforementioned memory can be a read-only memory (English: read-only memory, for short: ROM), a random access memory (English: random access memory, for short: RAM), a flash memory, a hard disk or a solid state disk. The steps of the method disclosed in combination with the embodiments of the present application can be directly embodied as hardware processor execution or executed by hardware and software modules in the processor.
[0309] The various embodiments in this specification are described in a progressive manner. Similar parts between the various embodiments can be referred to in conjunction with each other. Each embodiment focuses on the differences between the other embodiments. In particular, the electronic device embodiment is generally similar to the method embodiment, so the description is relatively simple. For relevant parts, refer to the partial description of the method embodiment.
[0310] Other embodiments of the present invention will readily occur to those skilled in the art after considering the specification and practicing the invention disclosed herein. This specification is intended to cover any variations, uses, or adaptations of the present invention that follow the general principles of this specification and include common knowledge or customary techniques in the art not disclosed herein. The description and examples are to be considered as exemplary only, with the true scope and spirit of the present invention being indicated by the following claims.
[0311] It should be understood that the present description is not limited to the exact structure that has been described above and shown in the drawings, and that various modifications and changes may be made without departing from the scope thereof. The scope of the present description is limited only by the appended claims.
Claims
1. A blockchain-based copyright asset authorization method, wherein the blockchain stores asset summary information of the copyright asset and user credentials for holding the copyright asset; a smart contract for verifying the copyright asset published on the blockchain is deployed on the blockchain; the method comprises: Receive an authorization request from a first user to authorize a target copyright asset to a second user; wherein the authorization request includes first credential information of the first user holding the target copyright asset and asset summary information of the target copyright asset; In response to the authorization request, determining whether the asset summary information of the target copyright asset is stored in the blockchain; If yes, further performing a zero-knowledge proof on the first credential information of the first user holding the target copyright asset to determine whether the first credential information is stored in the blockchain. If it is determined that the first credential information is stored in the blockchain, generating an asset authorization certificate for the target copyright asset for the second user, and storing the asset authorization certificate in the blockchain; Receiving a verification request for a target copyright asset initiated by an asset verification party; wherein the verification request includes asset summary information of the target copyright asset; In response to the verification request, the verification logic contained in the smart contract is called to generate a verification confirmation event for the target copyright asset and store the generated verification confirmation event in the blockchain; so that a second user holding the asset authorization certificate of the target copyright asset obtains the verification confirmation event from the blockchain, and in response to the obtained verification confirmation event, encrypts the asset information related to the target copyright asset based on the blockchain account public key of the asset verifier, and further calls the verification logic contained in the smart contract to generate a verification event for the target copyright asset based on the encrypted asset information, and stores the generated verification event in the blockchain; so that the asset verifier obtains the verification confirmation event from the blockchain, and in response to the obtained verification confirmation event, decrypts the encrypted asset information submitted by the second user based on the blockchain account private key corresponding to the blockchain account public key; and performs risk verification on the target copyright asset based on the decrypted asset information.
2. The method according to claim 1, wherein the authorization request further includes the asset public key of the second user; Generating an asset authorization certificate for the target copyright asset for the second user includes: encrypting the asset summary information of the target copyright asset based on the asset public key of the second user; The encrypted asset summary information is calculated to obtain an asset authorization certificate for the target copyright asset held by the second user.
3. The method according to claim 2, wherein the first user holds first credential information of the target copyright asset, comprising: After encrypting the asset summary information of the target copyright asset based on the asset public key of the first user, the first credential information is obtained by calculating the encrypted asset summary information.
4. The method according to claim 1, wherein a smart contract for zero-knowledge proof is deployed on the blockchain; and the processing logic corresponding to the contract code in the smart contract includes verification logic corresponding to the zero-knowledge proof; The performing of zero-knowledge proof on the first credential information of the first user holding the target copyright asset to determine whether the first credential information is stored in the blockchain includes: The verification logic in the smart contract is called to perform zero-knowledge proof on the first credential information of the first user holding the target copyright asset to determine whether the first credential information is stored in the blockchain.
5. According to the method of claim 1, the credential information of the user holding the copyright asset stored in the blockchain is stored in the distributed ledger of the blockchain in a Merkle tree storage structure; The performing of zero-knowledge proof on the first credential information of the first user holding the target copyright asset to determine whether the first credential information is stored in the blockchain includes: Calculate, based on the first credential information, a root node to be verified of the Merkle tree where the first credential information is located; Determine whether the root node to be verified is consistent with the real root node of the Merkle tree; If so, it is determined that the first credential information is stored in the blockchain.
6. The method according to claim 1, wherein the authorization request further includes asset information related to the target copyright asset encrypted based on the second user's blockchain account public key; Before encrypting the asset information related to the target copyright asset based on the blockchain account public key of the asset verifier, the method further includes: Decrypt the asset information related to the target copyright asset encrypted in the authorization request based on the second user's blockchain account private key.
7. A blockchain-based copyright asset authorization device, wherein the blockchain stores asset summary information of the copyright asset and information about a merchant's credentials for holding the copyright asset; a smart contract for verifying copyright assets published on the blockchain is deployed on the blockchain; the device comprises: a receiving unit configured to receive an authorization request from a first user to authorize a target copyright asset to a second user; wherein the authorization request includes first credential information indicating that the first user holds the target copyright asset and asset summary information of the target copyright asset; a response unit, in response to the authorization request, determining whether the asset summary information of the target copyright asset is stored in the blockchain; If the target copyright asset is present, the authorization unit further performs a zero-knowledge proof on the first credential information of the first user holding the target copyright asset to determine whether the first credential information is stored in the blockchain. If it is determined that the first credential information is stored in the blockchain, the authorization unit generates an asset authorization certificate for the target copyright asset for the second user, and stores the asset authorization certificate in the blockchain. A receiving subunit receives a verification request for a target copyright asset initiated by an asset verification party; wherein the verification request includes asset summary information of the target copyright asset; The verification sub-unit, in response to the verification request, calls the verification logic contained in the smart contract, generates a verification confirmation event for the target copyright asset and stores the generated verification confirmation event in the blockchain; so that a second user holding the asset authorization certificate of the target copyright asset obtains the verification confirmation event from the blockchain, and in response to the obtained verification confirmation event, encrypts the asset information related to the target copyright asset based on the blockchain account public key of the asset verification party, and further calls the verification logic contained in the smart contract, generates a verification event for the target copyright asset based on the encrypted asset information, and stores the generated verification event in the blockchain; so that the asset verification party obtains the verification confirmation event from the blockchain, and in response to the obtained verification confirmation event, decrypts the encrypted asset information submitted by the second user based on the blockchain account private key corresponding to the blockchain account public key; and performs risk verification on the target copyright asset based on the decrypted asset information.
8. An electronic device comprising: processor; a memory for storing processor-executable instructions; The processor is configured to execute the method according to any one of claims 1 to 6. 9 . A computer-readable storage medium, wherein when instructions in the computer-readable storage medium are executed by a processor of an electronic device, the electronic device is enabled to perform the method according to claim 1 .
Citation Information
Patent Citations
Private use authorization method for blockchain digital assets based on zero knowledge proof
CN111159694A