WO2021088533A1 - 隐私数据的共享方法及装置 - Google Patents
隐私数据的共享方法及装置 Download PDFInfo
- Publication number
- WO2021088533A1 WO2021088533A1 PCT/CN2020/116409 CN2020116409W WO2021088533A1 WO 2021088533 A1 WO2021088533 A1 WO 2021088533A1 CN 2020116409 W CN2020116409 W CN 2020116409W WO 2021088533 A1 WO2021088533 A1 WO 2021088533A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- contract
- transaction
- business
- query
- code
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Definitions
- One or more embodiments of this specification relate to the field of blockchain technology, and in particular to a method and device for sharing private data.
- Blockchain technology is built on a transmission network (such as a peer-to-peer network).
- the network nodes in the transmission network use chained data structures to verify and store data, and use distributed node consensus algorithms to generate and update data.
- TEE Trusted Execution Environment
- TEE can play the role of a black box in the hardware. Neither the code executed in the TEE nor the data operating system layer can be peeped, and only the pre-defined interface in the code can operate on it.
- plaintext data is calculated in TEE instead of complex cryptographic operations in homomorphic encryption. There is no loss of efficiency in the calculation process. Therefore, the combination with TEE can achieve less performance loss. Under the premise, the security and privacy of the blockchain are greatly improved. At present, the industry is very concerned about the TEE solution.
- TEE solutions including TPM (Trusted Platform Module) in software and Intel SGX (Software Guard Extensions) in hardware. , Software Protection Extension), ARM Trustzone (trust zone) and AMD PSP (Platform Security Processor, platform security processor).
- one or more embodiments of this specification provide a method and device for sharing private data.
- a method for sharing private data is proposed, which is applied to blockchain nodes;
- the method includes: receiving a first creation transaction for a business contract initiated by a user, the first creation transaction including a business code and a permission control code, and the business code is executed when a transaction calling the business contract is received;
- the business contract is deployed so that when a query transaction for private data related to the historical transaction invoking the business contract is received, the business contract is called to execute the authority control defined in the business contract.
- the code determines the query authority of the query party, and obtains the private data for viewing by the query party when the query authority is allowed to query.
- a device for sharing private data which is applied to a blockchain node; the device includes: a first receiving unit that receives a user-initiated first for a business contract A creation transaction, the first creation transaction includes a business code and a permission control code, the business code is executed when a transaction calling the business contract is received; the first deployment unit deploys the business contract so that When receiving a query transaction for private data related to historical transactions invoking the business contract initiated by the querying party, call the business contract to execute the authority control code defined in the business contract to determine the querying party’s query Permission, and obtain the private data for viewing by the inquiring party when the query permission is allowed to query.
- an electronic device including: a processor; a memory for storing executable instructions of the processor; wherein the processor runs the executable instructions In order to realize the method for sharing private data as described in any of the above embodiments.
- a computer-readable storage medium on which computer instructions are stored.
- the instructions are executed by a processor, the privacy data as described in any of the above-mentioned embodiments is realized.
- the steps of the sharing method are realized.
- Fig. 1 is a schematic diagram of creating a smart contract according to an exemplary embodiment.
- Fig. 2 is a schematic diagram of invoking a smart contract provided by an exemplary embodiment.
- Fig. 3 is a schematic diagram of invoking a business contract provided by an exemplary embodiment.
- Fig. 4 is a flowchart of a method for sharing private data provided by an exemplary embodiment.
- Fig. 5 is a flowchart of a method for querying private data provided by an exemplary embodiment.
- Fig. 6 is a flowchart of another method for querying private data provided by an exemplary embodiment.
- Fig. 7 is a schematic structural diagram of a device provided by an exemplary embodiment.
- Fig. 8 is a block diagram of a device for sharing private data provided by an exemplary embodiment.
- the steps of the corresponding method are not necessarily executed in the order shown and described in this specification.
- the method may include more or fewer steps than described in this specification.
- a single step described in this specification may be decomposed into multiple steps for description in other embodiments; and multiple steps described in this specification may also be combined into a single step in other embodiments. description.
- Block chains are generally divided into three types: Public Blockchain, Private Blockchain and Consortium Blockchain.
- the public chain is represented by Bitcoin and Ethereum. Participants who join the public chain can read the data records on the chain, participate in transactions, and compete for the accounting rights of new blocks. Moreover, each participant (ie, node) can freely join and exit the network, and perform related operations.
- the private chain is the opposite.
- the write permission of the network is controlled by an organization or institution, and the data read permission is regulated by the organization.
- the private chain can be a weakly centralized system with strict restrictions and few participating nodes.
- This type of blockchain is more suitable for internal use by specific institutions.
- Consortium chain is a block chain between public chain and private chain, which can realize "partial decentralization".
- Each node in the alliance chain usually has a corresponding entity or organization; participants are authorized to join the network and form a stakeholder alliance to jointly maintain the operation of the blockchain.
- a smart contract on the blockchain is a contract that can be triggered and executed by a transaction on the blockchain system.
- Smart contracts can be defined in the form of codes.
- EVM Ethereum Virtual Machine
- Every Ethereum node can run EVM.
- EVM is a Turing complete virtual machine, which means that various complex logic can be implemented through it.
- Users who publish and call smart contracts in Ethereum run on the EVM.
- the virtual machine directly runs is the virtual machine code (virtual machine bytecode, hereinafter referred to as "byte code").
- the smart contract deployed on the blockchain can be in the form of bytecode.
- the EVM of node 1 can execute the transaction and generate a corresponding contract instance.
- the "0x6f8ae93" in Figure 1 represents the address of this contract, the data field of the transaction can be stored in bytecode, and the to field of the transaction is empty.
- the contract is successfully created and can be called in the subsequent process.
- a contract account corresponding to the smart contract appears on the blockchain and has a specific address, and the contract code will be stored in the contract account.
- the behavior of the smart contract is controlled by the contract code.
- smart contracts enable virtual accounts containing contract codes and account storage (Storage) to be generated on the blockchain.
- the EVM of a certain node can execute the transaction and generate a corresponding contract instance.
- the from field of the transaction in Figure 2 is the address of the account of the transaction initiator (ie Bob), the "0x6f8ae93" in the to field represents the address of the called smart contract, and the value field in Ethereum is the value of Ether ,
- the method and parameters of calling the smart contract are stored in the data field of the transaction.
- the smart contract is executed independently on each node in the blockchain network in a prescribed manner. All execution records and data are stored on the blockchain. Therefore, when the transaction is completed, the blockchain will be stored on the blockchain that cannot be tampered with. Lost transaction certificate.
- the receipt data obtained by a node executing a transaction can include the following content: Result field, indicating the execution result of the transaction; Gas used field, indicating the gas value consumed by the transaction; Logs field, indicating the log generated by the transaction, and the log can be It further includes the From field, To field, Topic field, Log data field, etc.
- the From field represents the account address of the initiator of the call
- the To field represents the account address of the called object (such as a smart contract)
- the Topic field represents the subject of the log.
- the Log data field indicates log data
- the Output field indicates the output of the transaction.
- the receipt data generated after the transaction is executed is stored in plain text, and anyone can see the contents of the above-mentioned receipt fields contained in the receipt data, and there is no privacy protection setting and ability.
- the block chain is a data set stored in a database of a node and organized by a specific logic.
- the physical carrier of the database may be a storage medium, such as a persistent storage medium.
- only part of the content of the receipt data may be sensitive, while other content is not sensitive. Only sensitive content needs to be protected for privacy, and other content can be disclosed. In some cases, it may even be necessary to perform retrieval of part of the content to drive The implementation of related operations, then the implementation of privacy protection for this part of the content will affect the implementation of retrieval operations.
- Step 302 User A creates a transaction for invoking a business contract, and sends the created transaction to the blockchain node.
- User A can invoke the smart contract (ie, business contract) deployed on the blockchain by creating a transaction (including the account address of the called smart contract), so that the blockchain node executes the business contract to complete the corresponding business.
- user A can use digital envelope encryption to encrypt the created transaction, which combines a symmetric encryption algorithm and an asymmetric encryption algorithm.
- the transaction content is encrypted using a symmetric encryption algorithm (that is, the transaction content is encrypted using the symmetric key used by itself), and then the public key of the asymmetric encryption algorithm is used to encrypt the symmetric key.
- Step 304 the blockchain node executes the business contract.
- the blockchain node After receiving the encrypted transaction, the blockchain node reads the transaction into the TEE, first uses the private key of the asymmetric encryption algorithm to decrypt the symmetric key, and then uses the decrypted symmetric key to decrypt the transaction Obtain the transaction content, and then execute the business code of the business contract within the TEE.
- step 306 the blockchain node stores private data related to the transaction.
- the blockchain node after receiving the transaction, the blockchain node (after passing the consensus) will publish the transaction (encrypted in the form of a digital envelope) to the blockchain for certification.
- the blockchain node executes the transaction, it will also encrypt and store the relevant data obtained from the execution of the transaction (publish it on the blockchain for certification, or store it locally); among them, for the transaction corresponding to the transaction
- the receipt can be encrypted with the symmetric key used by user A, and the contract status data obtained in response to the execution of the business contract in response to the transaction can be encrypted with a specific symmetric key inside the TEE.
- data such as user A's account attribute information, business contract account attribute information, and business contract contract code can also be encrypted using a specific symmetric key inside the TEE.
- the data encrypted by these blockchain nodes above all belong to user A's private data on the blockchain, that is, private data related to the transaction created by user A in step 302.
- the user may need to share the privacy data related to the business realized by the blockchain to some specific users for viewing, that is, these specific users can view the privacy related to the historical transactions initiated by the user. data.
- the query authority can be set for the user's private data, so that other users who are allowed to query can view it. Therefore, the business contract can be improved to realize the sharing function of private data.
- the following describes the privacy data sharing scheme of this specification in conjunction with Figure 4.
- FIG. 4 is a flowchart of a method for sharing private data provided by an exemplary embodiment. As shown in Figure 4, this method is applied to blockchain nodes and can include the following steps:
- Step 402 Receive a first creation transaction for a business contract initiated by a user.
- the first creation transaction includes a business code and a permission control code, and the business code is executed when a transaction calling the business contract is received.
- the private data can be associated with the permission control code that controls the query permission of the private data, so that each business contract can control the private data related to the transaction calling itself.
- the development and deployment of business contracts can be completed by roles such as blockchain users, blockchain members, and blockchain administrators. Take the consortium chain as an example.
- Blockchain members or blockchain users, administrators
- accounting authority set up authority control rules, and define the authority control rules in the form of authority control codes in the business contract (also Defined the business code).
- the blockchain member can publish the business contract to the alliance chain through any node device in the alliance chain, and the business contract is specified by the member node device in the alliance chain. (For example, several authoritative node devices with accounting authority designated in the consortium chain) After completing the consensus, they are included in the distributed database (ie, distributed ledger) of the consortium chain.
- the deploying party of the business contract i.e., ordinary users or ordinary members with accounting authority
- Related privacy data i.e., ordinary users or ordinary members with accounting authority
- the consensus algorithms supported in the blockchain can include: the first type of consensus algorithm, that is, the consensus algorithm that node devices need to compete for the accounting right of each round of accounting cycle; for example, Proof of Work (POW) ), Proof of Stake (POS), Delegated Proof of Stake (DPOS) and other consensus algorithms; the second type of consensus algorithm, that is, pre-election of accounting nodes for each round of accounting cycle (no need to compete Accounting rights) consensus algorithms; for example, practical Byzantine Fault Tolerance (PBFT) and other consensus algorithms.
- the first type of consensus algorithm that is, the consensus algorithm that node devices need to compete for the accounting right of each round of accounting cycle
- POW Proof of Work
- POS Proof of Stake
- DPOS Delegated Proof of Stake
- PBFT Practical Byzantine Fault Tolerance
- all node devices that compete for the right to bookkeeping can execute the transaction after receiving the transaction.
- one node device may win this round of contention for the right to bookkeeping and become the bookkeeping node.
- the accounting node can package the received transaction with other transactions to generate the latest block, and send the generated latest block or the block header of the latest block to other node devices for consensus.
- the node device with the right to book accounts has been agreed before this round of bookkeeping. Therefore, after the node device receives the transaction, if it is not the accounting node of this round, it can send the transaction to the accounting node.
- the transaction can be executed during or before the process of packaging the transaction with other transactions to generate the latest block.
- the accounting node After the accounting node generates the latest block, it can send the latest block or the block header of the latest block to other node devices for consensus.
- the accounting node of this round can package the received transaction to generate the latest block, and the generated latest block or the latest block
- the header of the block is sent to other node devices for consensus verification. If other node devices receive the latest block or the block header of the latest block, and there is no problem after verification, the latest block can be appended to the end of the original blockchain to complete the accounting process of the blockchain. In the process of verifying the new block or block header sent by the accounting node, other nodes can also execute the transaction contained in the block.
- Step 404 Deploy the business contract so that when a query transaction for private data related to historical transactions invoking the business contract is received from the querying party, the business contract is invoked to execute the definition in the business contract
- the authority control code of determines the query authority of the query party, and obtains the private data for viewing by the query party when the query authority is allowed to query.
- each business contract only controls the query authority of the private data related to the transaction calling itself. Therefore, when a user (as a query party) initiates a query transaction for private data related to a historical transaction (initiated by any other user), the blockchain node needs to determine a business contract that controls the query authority for private data. Then the business contract can be invoked to achieve permission control.
- a distribution contract can be deployed on the blockchain to identify whether the transaction received by the blockchain node is a query transaction, and when the received transaction is a query During the transaction, the corresponding business contract is further called to execute the authority control code (it can be understood as distributing the query transaction to the corresponding business contract).
- the distribution code can be defined in the distribution contract, and the distribution code is used to call the business contract to execute the permission control code defined in the business contract. Therefore, the query transaction created by the query party is a transaction used to call the distribution contract; then, when any transaction received by the blockchain node is used to call the distribution contract, any transaction can be used as a query transaction and the distribution is called
- the contract executes the distribution code defined in the distribution contract.
- the distribution contract can be designed as a system-level smart contract. Therefore, the development and deployment of the distribution contract can be completed by the administrator of the blockchain. For example, an administrator with management authority develops the distribution logic (calls the business contract according to the contract address of the business contract called by the historical transaction recorded in the query transaction), and defines the distribution logic in the distribution contract in the form of distribution code . After completing the development of the distribution contract, the administrator can construct a second creation transaction for the distribution contract (including the distribution code of the distribution contract) to publish the distribution contract to the alliance chain for deployment.
- an administrator with management authority develops the distribution logic (calls the business contract according to the contract address of the business contract called by the historical transaction recorded in the query transaction), and defines the distribution logic in the distribution contract in the form of distribution code .
- the administrator can construct a second creation transaction for the distribution contract (including the distribution code of the distribution contract) to publish the distribution contract to the alliance chain for deployment.
- the to field is an empty string, and the binary code for initializing the contract is specified in the data field.
- Contract code ie distribution code
- the above-mentioned distribution logic can also be solidified into the chain code in the form of distribution code, and released together with the chain code.
- the administrator needs to deploy later, and the contract code is solidified in the chain code, making the contract code controllable and effectively improving security.
- the operation of distributing the query transaction to the corresponding business contract is completed by the blockchain node itself, rather than by calling a smart contract.
- the type of request initiated on the blockchain by a user who accesses the blockchain may specifically refer to a transaction used in a traditional blockchain.
- the type of request initiated on the blockchain by a user who accesses the blockchain can also be other than a transaction, other forms of instructions, messages, etc. with a standard data structure, one or more embodiments of this specification It is not particularly limited.
- the request initiated on the blockchain by the user accessing the blockchain is taken as an example for description.
- the querying party may only write the transaction identifier of the historical transaction related to the private data to be queried in the query transaction.
- the transaction identifier of the historical transaction can be obtained by offline sharing between the initiator and the inquiring party of the historical transaction, or obtained by any other means.
- the distribution code is used to call the business contract determined according to the transaction identifier of the historical transaction included in the query transaction to execute the authority control code defined in the called business contract.
- a querying party when a querying party creates a query transaction, it can record the hash value (as a transaction identifier) of the historical transaction notified by the initiator of the historical transaction in the data field of the query transaction. Then, when the blockchain node receives the query transaction, it can obtain the historical transaction stored on the blockchain according to the hash value, and then according to the to field of the historical transaction (used to record the contract address of the called smart contract) Determine the business contract invoked by this historical transaction. After determining the business contract called by the historical transaction, the blockchain node calls the distribution contract to execute the distribution code defined in the distribution contract, thereby calling the determined business contract execution authority control code.
- the querying party when constructing the query transaction, can write the transaction identifier of the historical transaction related to the privacy data to be queried and the contract address of the business contract called by the historical transaction in the query transaction; wherein, The transaction identifier of the historical transaction and the contract address of the business contract can be obtained by offline sharing between the initiator and the inquiring party of the historical transaction, or by any other means.
- the distribution code is used to determine the corresponding business contract according to the contract address of the business contract called by the historical transaction contained in the query transaction, and call the determined business contract to execute the corresponding authority control code.
- the query transaction is created by the querying party, and the contract address of the business contract called by the historical transaction contained in the query transaction is declared by the querying party, then the contract address is not necessarily the contract of the business contract actually called by the historical transaction Address, that is, there is a risk that the inquirer may forge the contract address. Therefore, after determining that the query authority of the querying party is allowed to query through the business contract, the blockchain node can obtain the certificate in the blockchain according to the transaction identifier (ie transaction ID, usually the hash value of the transaction) contained in the query transaction According to the historical transaction on the Internet, the contract address of the business contract actually called by the historical transaction is determined based on the acquired historical transaction. When the determined contract address is inconsistent with the contract address of the business contract called by the historical transaction contained in the query transaction, the query authority of the query party is determined to prohibit query, which can effectively exclude the query party from stealing user privacy data by forging the contract address Case.
- the transaction identifier ie transaction ID, usually the hash value of the transaction
- the permission control code may not be defined in the business contract when the business contract is deployed. Therefore, similar to the transformation of the old chain, the previously deployed business contract can be updated in the subsequent process to add the corresponding authority control code to the business contract.
- the authority control code corresponding to the business contract to be updated can be associated with the contract account of the business contract to be updated, so as to realize the function of adding authority control to the business contract.
- the deployer of the target business contract can construct an update transaction for the target business contract.
- the update transaction contains the business code of the target business contract (that is, the business code originally defined in the target business contract) and the target business contract.
- the deployer submits the update transaction to the blockchain node.
- the block chain node After the block chain node receives the update transaction for the target business contract, it will publish the business code and permission control code contained in the update transaction to the block chain for certification, and the contract in the contract account of the target business contract
- the index of the code is modified to the index of the stored business code and authority control code.
- accounts can include external accounts and contract accounts, etc.
- External accounts are usually owned by users (individuals or institutions) and are directly controlled by users, which are also called user accounts.
- Contract accounts correspond to smart contracts in the blockchain and are created by users through external accounts.
- the structures of all types of accounts are similar, for example, they can include the Nonce field, the Balance field, the Code field, and the Storage field.
- the value of the Nonce field of each account starts from 0, and the value of the Nonce field increases in sequence with the transactions initiated by the corresponding account, so that each transaction initiated by the account contains a different value for the Nonce, thereby avoiding repetition. Let's attack.
- the Balance field is used to store the balance.
- the Code field is used to store the contract code of the smart contract (in actual applications, the Code field usually only maintains the hash value of the contract code, so the Code field is usually also called the Codehash field), so the Code field of the external account is usually empty.
- the Storage field is used to store the value of the account at the corresponding node in the status tree.
- the blockchain node publishes the business code and permission control code contained in the update transaction to the blockchain for certification, and calculates the hash value of the business code as the business code
- the index of the access control code and the hash value of the access control code are calculated as the index of the access control code.
- the Code field of the contract account of the target business contract only maintains the hash value of the business code, so the content maintained in the Code field can be modified to the hash value of the business code and the hash value of the authority control code. Then, when the target business contract is subsequently called, the business code and permission control code can be queried according to the content maintained in the Code field, and then read into the EVM of the blockchain node for operation.
- the deployment party of the business contract can construct a transaction for creating and updating the contract (hereinafter referred to as the creation transaction).
- the creation transaction contains the business code of the business contract (the business code originally defined in the business contract). Code) and the authority control code for the private data related to the transaction calling the business contract.
- the deployer submits the creation transaction to the blockchain node.
- the blockchain node After the blockchain node receives the creation transaction of the update contract corresponding to the business contract, it creates an update contract based on the business code and permission control code contained in the creation transaction, and deploys the update contract on the blockchain, and will The renewal contract establishes an association relationship with the business contract. Then, when it is determined that the contract to be called is the business contract later, the update contract is called instead of calling the business contract.
- the permission control rules defined in the form of permission control codes in the business contract can be flexibly set according to actual needs; of course, one or more embodiments of this specification are not specific to the permission control rules.
- Content is restricted.
- the identity information of the inquiring party can be used as the basis for authority control.
- the query transaction should contain the identity information of the query party.
- the identity information of the inquiring party is the account ID (ie account address) of the inquiring party, and the account ID may be recorded in the from field of the inquiry transaction.
- the permission control rule can be set to allow the querying party to query corresponding private data when the identity information of the querying party meets specific conditions.
- the inquiry authority of the inquiring party can be determined to allow the inquiry, or when the inquiring party's credit score exceeds the preset credit threshold, the inquiry authority of the inquiring party can be determined to be allowed Query and so on. Therefore, when determining the query authority of the querying party, the authority control code defined in the business contract can be executed to determine the querying party's query authority for private data according to the identity information of the querying party.
- the identity information of the inquiring party and the identity information of the initiator of the historical transaction can be used together as the basis for authority control.
- the permission control rule can be set to allow the querying party to query corresponding private data when the identity information of the querying party and the identity information of the initiator meet specific conditions.
- the query group and the queried group are recorded in the permission control rules, and members belonging to the query group are allowed to view the private data of the members of the queried group; or, the permission control rules directly record the correspondence of which other users each user can view; or
- the inquiry authority of the inquiry party can be determined to allow inquiry and so on.
- the authority control code defined in the business contract can be executed to determine the querying party's query authority for private data according to the identity information of the querying party and the identity information of the initiator.
- the inquiring party can write the identity information of the initiator of the historical transaction in the created inquiry transaction, or the blockchain node may obtain the historical transaction according to the transaction identifier contained in the inquiry transaction, and obtain it based on the obtained historical transaction.
- the identity information of the initiator of the historical transaction can be used as the basis for authority control.
- the permission control rule can be set to allow the querying party to query corresponding private data when the identity information of the initiator meets specific conditions. For example, when the initiator belongs to a pre-designated set of users that can be queried, the query authority of the inquiring party can be determined to allow the query, or when the credit score of the initiator exceeds the preset credit threshold, the query authority of the inquiring party can be determined to be allowed Query and so on. Therefore, when determining the query authority of the querying party, the authority control code defined in the business contract can be executed to determine the querying party's query authority for private data according to the identity information of the initiator.
- the identity information of the initiator contained in the query transaction is only the identity information declared by the querying party, and the identity information is not necessarily the actual initiator of the historical transaction.
- the identity information of the inquiring party may forge the identity information of the initiator. Therefore, after determining that the query authority of the querying party is allowed to query according to the authority control code, the blockchain node can obtain the history according to the transaction identifier of the historical transaction contained in the query transaction (ie, transaction ID, usually the hash value of the transaction) Transaction, thereby determining the identity information of the initiator of the historical transaction (that is, the actual identity information of the initiator) according to the acquired historical transaction.
- the operation of obtaining private data is prohibited (that is, the query authority is determined to prohibit query), which can effectively exclude the inquirer from forging the identity information of the initiator.
- the query authority is determined to prohibit query
- the inquiry authority of the inquiry party when it is determined that the inquiry authority of the inquiry party is forbidden to inquiry, there is no need to perform the above-mentioned steps of verifying the identity information of the initiator or verifying the contract address of the business contract by obtaining historical transactions.
- the verification step is an unnecessary operation, so the occupation of the processing resources of the blockchain node can be reduced, thereby improving the performance of the blockchain node.
- a contract receipt indicating that the querying party is prohibited from querying private data can be generated for the querying party to view.
- the privacy data may include at least one of the following: historical transactions, transaction receipts corresponding to the historical transactions, account attribute information of the initiator of the historical transaction, account attribute information of the business contract invoked by the historical transaction, and business contract The contract code and the contract status data of the business contract.
- the privacy data is encrypted and stored. Therefore, when it is determined that the query authority of the querying party is allowed to query, the blockchain node can obtain the private data and read the obtained private data into the trusted execution environment for decryption, so that the querying party can obtain it.
- the private data can be obtained according to the transaction identifier of the historical transaction contained in the query transaction.
- the decryption method used is also different (because the encryption method is different).
- the private data includes historical transactions and/or transaction receipts of historical transactions
- both historical transactions and transaction receipts of historical transactions are encrypted with the symmetric key used by the initiator of the historical transaction. Therefore, after obtaining the historical transaction and/or the transaction receipt of the historical transaction, the symmetric key used by the initiator (user A in the embodiment shown in FIG. 3) can be obtained first, and then the symmetric key can be passed in the TEE. The key decrypts historical transactions and/or transaction receipts of historical transactions.
- the symmetric key used to encrypt historical transactions can be obtained first (the symmetric key is encrypted by the public key used by the initiator, that is, the digital envelope is used in the embodiment shown in FIG. 3). Encryption), the symmetric key is decrypted in the TEE through the private key corresponding to the public key used by the initiator to obtain the decrypted symmetric key.
- the symmetric key used by the initiator can be generated by the initiator through a symmetric encryption algorithm, or obtained through negotiation between the initiator and the blockchain node, or sent by the key management server.
- the symmetric encryption algorithm for example, it may be the DES algorithm, the 3DES algorithm, the TDEA algorithm, the Blowfish algorithm, the RC5 algorithm, the IDEA algorithm, and so on.
- the public key used by the initiator is sent to the initiator by the key management server through remote certification, the TEE of the blockchain node is established by the SGX architecture, and the private key corresponding to the public key is sent to the blockchain by the key management server through remote certification Enclave of nodes (enclave, also called enclave).
- the asymmetric encryption algorithm used to generate the public key and the private key can be, for example, RSA, Elgamal, knapsack algorithm, Rabin, D-H, ECC (elliptic curve encryption algorithm), etc.
- the privacy data includes at least one of the account attribute information of the initiator of the historical transaction, the account attribute information of the business contract, the contract code of the business contract, and the contract status data of the business contract.
- the data is encrypted with a specific symmetric key inside the TEE. Therefore, after obtaining these private data, the private data can be decrypted by the specific symmetric key of the blockchain node in the TEE.
- the SGX structure of the blockchain node is sent by the key management server after remote certification, or it is negotiated between the blockchain node and other blockchain nodes.
- the querying party when the querying party initiates a query transaction, it can also use the symmetric key used by itself to encrypt the created query transaction, and use its own symmetric key to encrypt the created query transaction.
- the public key encrypts the symmetric key. Therefore, after receiving the query transaction, the blockchain node first decrypts the symmetric key of the encrypted query transaction through the private key corresponding to the public key used by the querying party in the TEE, and then queries the transaction through the symmetric key pair obtained by decryption Decryption is performed to obtain the transaction content contained in the query transaction.
- the blockchain node After obtaining the private data and decrypting the private data, the blockchain node can encrypt the decrypted private data with the symmetric key of the querying party, so that the querying party can perform the private data with the symmetric key used by the querying party. Decrypt and view, so as to avoid the leakage of private data.
- the sources of the symmetric key, public key, and private key used for privacy protection of the query party are similar to those described above, and will not be repeated here.
- the asymmetric keys (public key and private key) used in this process can be the asymmetric keys used for the privacy protection of the initiator as described above.
- user A can share privacy data related to the transaction (in this scenario as a historical transaction) to user B, or user B can view the privacy Data needs.
- the process of user B as the inquiring party inquiring about private data may include the following steps.
- step 502 the user B creates a query transaction by using the client terminal.
- the to field of the query transaction records the contract address of the distribution contract.
- the hash value (ie transaction ID) and the from field of the historical transaction can also be recorded in the data field (or other fields) of the query transaction.
- the hash value of the historical transaction, the address of the initiator, and the contract address of the business contract can be obtained by offline sharing between user B and user A, or obtained by any other means.
- step 504 the user B uses the digital envelope encryption to query the transaction through the client.
- Step 506 User B initiates a query transaction to the blockchain node through the client.
- step 508 the blockchain node decrypts the query transaction in the TEE.
- TEE is a secure extension based on CPU hardware and a trusted execution environment that is completely isolated from the outside.
- TEE was first proposed by Global Platform to solve the security isolation of resources on mobile devices, and parallel to the operating system to provide a trusted and secure execution environment for applications.
- ARM's Trust Zone technology is the first to realize the real commercial TEE technology.
- security requirements are getting higher and higher.
- Not only mobile devices, cloud devices, and data centers have put forward more demands on TEE.
- the concept of TEE has also been rapidly developed and expanded. Compared with the originally proposed concept, the TEE referred to now is a more generalized TEE. For example, server chip manufacturers Intel, AMD, etc.
- TEE hardware-assisted TEE
- enriched the concept and characteristics of TEE which has been widely recognized in the industry.
- the TEE mentioned now usually refers more to this kind of hardware-assisted TEE technology.
- cloud access requires remote access, and the end user is invisible to the hardware platform. Therefore, the first step in using TEE is to confirm the authenticity of TEE. Therefore, the current TEE technology has introduced a remote certification mechanism, which is endorsed by hardware manufacturers (mainly CPU manufacturers) and through digital signature technology to ensure that users can verify the state of the TEE.
- security needs that can't be met by only secure resource isolation, further data privacy protection has also been proposed.
- TEEs including Intel SGX and AMD SEV also provide memory encryption technology to limit the trusted hardware to the CPU, and the data on the bus and memory are ciphertexts to prevent malicious users from snooping.
- TEE technologies such as Intel’s Software Protection Extensions (SGX) isolate code execution, remote attestation, secure configuration, secure storage of data, and trusted paths for code execution.
- the applications running in TEE are protected by security and are almost impossible to be accessed by third parties.
- SGX provides a circle, that is, an encrypted trusted execution area in the memory, and the CPU protects data from being stolen.
- the SGX-supported CPU used by the blockchain node as an example.
- EPC Enclave Page Cache, Enclave Page Cache, Enclave Page Cache
- the engine MEE Memory Encryption Engine
- SGX users can distrust the operating system, VMM (Virtual Machine Monitor), and even BIOS (Basic Input Output System). They only need to trust the CPU to ensure that private data will not leakage.
- the key of the asymmetric encryption algorithm can be generated by the key management server.
- the key management server sends the private key to the blockchain node, specifically, it can be passed into the circle of the blockchain node.
- Blockchain nodes can contain multiple enclosures, and the above private key can be passed into the security enclosures in these enclosures; for example, the security enclosure can be a QE (Quoting Enclave) enclosure instead of AE (Application Enclave) ) Encircle the circle.
- QE Quoting Enclave
- AE Application Enclave
- the client can use the symmetric encryption algorithm to encrypt the created transaction, that is, use the symmetric key of the symmetric encryption algorithm to encrypt the transaction content, and use the asymmetric encryption algorithm to encrypt the symmetric key used in the symmetric encryption algorithm.
- the public key of the asymmetric encryption algorithm is used to encrypt the symmetric key used in the symmetric encryption algorithm.
- the above encryption method is called digital envelope encryption.
- step 510 the blockchain node determines that the received transaction is a query transaction for invoking the distribution contract.
- the blockchain node after receiving any transaction, the blockchain node reads the content of the to field of the transaction.
- the content of the to field is the contract address of the distribution contract, it means that the transaction is used to call the distribution contract, and then it can be determined that the transaction is a query transaction.
- Step 512 the blockchain node calls the distribution contract.
- Step 514 The distribution contract determines the business contract invoked by the historical transaction according to the to field of the historical transaction recorded in the query transaction.
- Step 516 Distribute the contract and call the business contract.
- Step 518 The business contract determines the query authority of user B according to the from field of the query transaction and the from field of the historical transaction.
- the identity information of the inquiring party and the initiator of the historical transaction are jointly used as the basis for permission control as an example.
- the permission control rules (defined in the business contract in the form of permission control codes) record the query group and the queried group, and members belonging to the query group are allowed to view the private data of the queried group members; or, directly record in the permission control rules
- Each user can view the corresponding relationship of which other users.
- the account address is used as the user's identity information.
- the blockchain node executes the authority control code defined in the business contract to determine according to the account address of the querying party (the content of the from field of the query transaction) and the account address of the initiator of the historical transaction (the content of the from field of the historical transaction) User B's query authority.
- Step 520 The business contract returns user B's query authority to the blockchain node.
- Step 522 After determining that the query permission of user B is allowed to query, the blockchain node verifies the from field and to field of the historical transaction.
- the address of the initiator and the contract address of the business contract recorded in the query transaction are filled in by user B. Therefore, the address of the initiator should be understood as the address of the initiator of the historical transaction declared by user B.
- the contract The address should be understood as the contract address of the business contract called by the historical transaction declared by user B.
- the address of the actual initiator of the historical transaction is not necessarily the address of the initiator declared by user B
- the contract address of the business contract actually called by the historical transaction is not necessarily the address of the contract declared by user B, that is, user B forged Possible.
- user B can deploy a business contract on the blockchain by deploying a business contract as described above.
- the permission control code defined in the business contract allows user B to view user A’s private data; then, user B can change
- the contract address of the business contract invoked by the historical transaction initiated by the user A is filled in as the contract address of the aforementioned business contract deployed by the user B. Therefore, when it is determined that the query permission of user B is allowed to query, the blockchain node can further verify the address of the initiator of the historical transaction declared by user B and the contract address, thereby ensuring the security of private data.
- the blockchain node After the blockchain node determines that user B's query permission is allowed to query, it can obtain historical transactions from the blockchain according to the hash value of the historical transaction (the certificate is stored on the blockchain), and read The content recorded in the from field of historical transactions and the to field of historical transactions. If the content of the read from field is the same as the content of the from field declared in the query transaction, the operation of obtaining private data can be further performed; otherwise, the obtaining is prohibited Operation of private data. In the same way, if the content of the read to field is the same as the content of the to field declared in the query transaction, the operation of obtaining private data can be further performed; otherwise, the operation of obtaining private data is prohibited.
- the above verification step is an unnecessary operation, so there is no need to perform the above verification step, thereby reducing the occupation of the processing resources of the blockchain node. In turn, the performance of blockchain nodes is improved.
- a contract receipt regarding user B's forbidden to query private data can be generated for user B to view.
- the blockchain node returns to user B a query-forbidden receipt to inform user B that the query permission is forbidden to query.
- step 524 the blockchain node obtains private data according to the hash value of the historical transaction.
- step 526 the blockchain node reads the private data into the TEE for decryption.
- private data is encrypted and stored.
- the encryption method used is also different. Therefore, it is possible to obtain private data (for example, according to the hash value of historical transactions) and read the obtained private data into a trusted execution environment for decryption, so as to be obtained by the inquiring party.
- both historical transactions and transaction receipts of historical transactions are encrypted with the symmetric key used by the initiator of the historical transaction. Therefore, after obtaining the historical transaction and/or transaction receipt of the historical transaction, the symmetric key used by user A can be obtained first, and then the transaction receipt of the historical transaction and/or historical transaction can be decrypted by the symmetric key in the TEE .
- the symmetric key used to encrypt historical transactions (the symmetric key is encrypted by the public key used by user A) can be obtained first, and the public key used with user A can be used in the TEE The corresponding private key decrypts the symmetric key to obtain the decrypted symmetric key.
- the specific symmetric key pair of the blockchain node can be used in the TEE These private data are decrypted.
- the specific symmetric key can be a seal (Simple Encrypted Arithmetic Library) key, which can be sent to the blockchain node by the key management server after being remotely attested, or it can be between each blockchain node After negotiation, the blockchain node uses the seal key to encrypt and decrypt private data.
- the key management server sends the symmetric key to the blockchain node, or the symmetric key negotiated between the various blockchain nodes may not be the above-mentioned seal key, but the root key (root key). ), and the above-mentioned seal key may be a derived key of the root key.
- the root key can irreversibly derive several versions of derived keys in turn, and any two adjacent keys can irreversibly derive a low version key from a higher version key, thereby forming a chained key Derivative structure.
- the root key and the version factor of 0xFF the decimal value is 255, that is, the version number of the key that needs to be generated; of course, You can also use other values
- hash calculation to obtain the key key-255 with the version number 255; by hashing the key key-255 and the version factor 0xFE, the key key- with the version number 254 is obtained. 254; ...
- the key key-0 By hashing the key key-1 and the version factor 0x00, the key key-0 with the version number of 0 is obtained. Due to the characteristics of the hash algorithm, the calculation between the high version key and the low version key is irreversible. For example, the key key-0 can be calculated from the key key-1 and the version factor 0x00, but the key cannot be passed through the key. -0 and version factor 0x00 deduces the key key-1.
- a certain version of the derived key can be designated as the above-mentioned seal key to encrypt private data.
- the seal key can also be version updated, and based on the above-mentioned features, it should be updated from the lower version key to the higher version key, so that even if the lower version key is leaked, the higher version key cannot be reversed. Version key to ensure sufficient data security.
- step 528 the blockchain node uses the user B's symmetric key to encrypt the private data.
- Step 530 User B views the private data.
- the blockchain node after the blockchain node encrypts the private data, it can generate an event containing the private data and store it in the blockchain log. Then, user B can use the client to use the callback mechanism of the blockchain to Obtain the event to view the private data. After obtaining the private data, the user B uses the symmetric key used by the client to decrypt the private data to obtain the private data of the plaintext content.
- the blockchain node after the blockchain node encrypts the private data, it can directly return the encrypted private data to the client used by the user B.
- user B uses the symmetric key used by the client to decrypt the private data to obtain the private data of the plaintext content.
- the query transaction created by user B contains the hash value, from field, and to field of the historical transaction. According to the above analysis, it can be seen that the query transaction can also only include the hash value of the historical transaction. , There is no need to write the contents of the from and to fields. Description will be given below in conjunction with FIG. 6. As shown in Fig. 6, the process of user B as the inquiring party inquiring about private data may include the following steps.
- Step 602 User B creates a query transaction through the client terminal used.
- the to field of the query transaction records the contract address of the distribution contract, and the hash value (ie transaction ID) of the historical transaction can also be recorded in the data field (or other fields) of the query transaction.
- the hash value of historical transactions can be obtained by offline sharing between user B and user A, or obtained by any other means.
- step 604 the user B uses the digital envelope encryption to query the transaction through the client.
- step 606 the user B initiates a query transaction to the blockchain node through the client.
- step 608 the blockchain node decrypts the query transaction in the TEE.
- step 610 the blockchain node determines that the received transaction is a query transaction for invoking the distribution contract.
- the blockchain node after receiving any transaction, the blockchain node reads the content of the to field of the transaction.
- the content of the to field is the contract address of the distribution contract, it means that the transaction is used to call the distribution contract, and then it can be determined that the transaction is a query transaction.
- Step 612 the blockchain node reads the hash value contained in the query transaction.
- step 614 the blockchain node obtains the from field and to field of the historical transaction according to the hsah value.
- the content of the from field of the historical transaction is the address of the initiator of the historical transaction (in this embodiment, the identity information of the initiator), and the content of the to field of the historical transaction is the contract of the business contract invoked by the historical transaction address.
- step 616 the blockchain node sends the from field and to field of the historical transaction to the distribution contract.
- Step 618 The distribution contract determines the business contract invoked by the historical transaction according to the to field of the historical transaction.
- Step 620 the distribution contract calls the business contract.
- Step 622 The business contract determines the query authority of user B according to the from field of the query transaction and the from field of the historical transaction.
- the identity information of the inquiring party and the initiator of the historical transaction are used as the basis for permission control as an example.
- the permission control rules (defined in the business contract in the form of permission control codes) record the query group and the queried group, and members belonging to the query group are allowed to view the private data of the queried group members; or, directly record in the permission control rules
- Each user can view the corresponding relationship of which other users.
- the account address is used as the user's identity information.
- the blockchain node executes the authority control code defined in the business contract to determine according to the account address of the querying party (the content of the from field of the query transaction) and the account address of the initiator of the historical transaction (the content of the from field of the historical transaction) User B's query authority.
- Step 624 The business contract returns the query authority of user B to the blockchain node.
- Step 626 When the query permission of user B is allowed to query, the blockchain node obtains private data.
- the blockchain node can obtain private data according to the hash value of the historical transaction.
- a contract receipt regarding user B's forbidden to query private data can be generated for user B to view.
- the blockchain node returns to user B a query-forbidden receipt to inform user B that the query permission is forbidden to query.
- step 628 the blockchain node reads the private data into the TEE for decryption.
- step 630 the blockchain node uses the user B's symmetric key to encrypt the private data.
- step 614 the process of obtaining historical transactions and decrypting historical transactions is executed when step 614 is executed, that is, obtaining historical transactions according to the hash value of historical transactions, and decrypting historical transactions to obtain historical transactions. Clear text transaction content, so as to read the from field and to field of historical transactions. Therefore, in this case, when it is determined that the query permission is allowed to query, (no need to perform the operations of obtaining historical transactions and decrypting historical transactions) directly obtain the decrypted historical transactions for the querying party to view.
- Step 632 User B views the private data.
- this specification also provides an embodiment of a device for sharing private data.
- the embodiments of the device for sharing private data in this specification can be applied to electronic equipment.
- the device embodiments can be implemented by software, or can be implemented by hardware or a combination of software and hardware.
- Taking software implementation as an example as a logical device, it is formed by reading the corresponding computer program instructions in the non-volatile memory into the memory through the processor of the electronic device where it is located.
- FIG. 7 is a schematic structural diagram of a device provided by an exemplary embodiment.
- the device includes a processor 702, an internal bus 704, a network interface 706, a memory 708, and a non-volatile memory 710.
- the processor 702 reads the corresponding computer program from the non-volatile memory 710 to the memory 708 and then runs it to form a private data sharing device on a logical level.
- one or more embodiments of this specification do not exclude other implementations, such as logic devices or a combination of software and hardware, etc. That is to say, the execution subject of the following processing flow is not limited to each
- the logic unit can also be a hardware or a logic device.
- the privacy data sharing device is applied to a blockchain node, and may include the following units.
- the first receiving unit 81 receives a first creation transaction for a business contract initiated by a user.
- the first creation transaction includes a business code and a permission control code.
- the business code is received when a transaction calling the business contract is received. carried out.
- the first deployment unit 82 deploys the business contract so that when a query transaction for private data related to the historical transaction invoking the business contract is received from the querying party, the business contract is invoked to execute the business
- the authority control code defined in the contract determines the inquiry authority of the inquiry party, and obtains the private data for viewing by the inquiry party when the inquiry authority is allowed to inquire.
- a second receiving unit 83 which receives a second creation transaction for the distribution contract, the second creation transaction includes the distribution code of the distribution contract, and the distribution code is used to invoke the business contract to execute The authority control code defined in the business contract; the second deployment unit 84, deploys the distribution contract; wherein, when any transaction received is used to call the distribution contract, the any transaction is used as the query transaction.
- the distribution code is used to call a business contract determined according to the transaction identifier of the historical transaction included in the query transaction to execute the authority control code defined in the called business contract; or, the The distribution code is used to determine the corresponding business contract according to the contract address of the business contract called by the historical transaction contained in the query transaction, and call the determined business contract to execute the corresponding authority control code.
- a third receiving unit 85 which receives an update transaction for the business contract, the update transaction contains the business code of the business contract, and the privacy related to the transaction calling the business contract Data access control code;
- the first associating unit 86 publishes the business code and the authority control code contained in the update transaction to the blockchain for certification, and modifies the index of the contract code in the contract account of the business contract to the certified business Index of codes and access control codes.
- a fourth receiving unit 87 which receives a creation transaction corresponding to the update contract of the business contract, the creation transaction includes the business code of the business contract, and the information related to and invoking the business contract.
- the authority control code for transaction-related privacy data the second association unit 88, deploys the update contract, and establishes an association relationship between the update contract and the business contract, so that when it is determined that the contract to be called is the business contract When calling the update contract instead of calling the business contract.
- the authority control code of the business contract is used to determine the query authority of the query party for the private data according to the identity information of the query party; or the authority control code of the business contract is used to determine the query authority of the private data according to the The identity information of the querying party and the identity information of the initiator of the historical transaction determine the querying authority of the querying party for the private data; or, the authority control code of the business contract is used to determine the authority of the business contract according to the identity of the initiator
- the information determines the query authority of the querying party for the private data; wherein the identity information of the initiator obtains the historical transaction according to the transaction identifier included in the query transaction, and is obtained based on the historical transaction; or,
- the query transaction includes the identity information of the initiator.
- the privacy data includes at least one of the following: the historical transaction, the transaction receipt corresponding to the historical transaction, the account attribute information of the initiator of the historical transaction, and the information of the business contract invoked by the historical transaction Account attribute information, contract code of the business contract, and contract status data of the business contract.
- a typical implementation device is a computer.
- the computer may be, for example, a personal computer, a laptop computer, a cell phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or Any combination of these devices.
- the embodiments of the present invention can be provided as a method, a system, or a computer program product. Therefore, the present invention may adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Moreover, the present invention may adopt the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program codes.
- computer-usable storage media including but not limited to disk storage, CD-ROM, optical storage, etc.
- program modules include routines, programs, objects, components, data structures, etc. that perform specific tasks or implement specific abstract data types.
- This specification can also be practiced in distributed computing environments. In these distributed computing environments, tasks are performed by remote processing devices connected through a communication network. In a distributed computing environment, program modules can be located in local and remote computer storage media including storage devices.
- These computer program instructions can also be stored in a computer-readable memory that can guide a computer or other programmable data processing equipment to work in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture including the instruction device.
- the device implements the functions specified in one process or multiple processes in the flowchart and/or one block or multiple blocks in the block diagram.
- These computer program instructions can also be loaded on a computer or other programmable data processing equipment, so that a series of operation steps are executed on the computer or other programmable equipment to produce computer-implemented processing, so as to execute on the computer or other programmable equipment.
- the instructions provide steps for implementing the functions specified in one process or multiple processes in the flowchart and/or one block or multiple blocks in the block diagram.
- the computer includes one or more processors (CPU), input/output interfaces, network interfaces, and memory.
- the memory may include non-permanent memory in a computer-readable medium, random access memory (RAM) and/or non-volatile memory, such as read-only memory (ROM) or flash memory (flash RAM).
- RAM random access memory
- ROM read-only memory
- flash RAM flash memory
- Computer-readable media include permanent and non-permanent, removable and non-removable media, and information storage can be realized by any method or technology.
- the information can be computer-readable instructions, data structures, program modules, or other data.
- Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disc (DVD) or other optical storage, Magnetic cassettes, disk storage, quantum memory, graphene-based storage media or other magnetic storage devices or any other non-transmission media can be used to store information that can be accessed by computing devices. According to the definition in this article, computer-readable media does not include transitory media, such as modulated data signals and carrier waves.
- first, second, third, etc. may be used to describe various information in one or more embodiments of this specification, the information should not be limited to these terms. These terms are only used to distinguish the same type of information from each other.
- first information may also be referred to as second information, and similarly, the second information may also be referred to as first information.
- word “if” as used herein can be interpreted as "when” or “when” or "in response to determination”.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Business, Economics & Management (AREA)
- Health & Medical Sciences (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Medical Informatics (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
Claims (16)
- 一种隐私数据的共享方法,应用于区块链节点;所述方法包括:接收用户发起的针对业务合约的第一创建交易,所述第一创建交易中包含业务代码和权限控制代码,所述业务代码在接收到调用所述业务合约的交易时被执行;部署所述业务合约,以使得在接收到查询方发起的针对与调用所述业务合约的历史交易相关的隐私数据的查询交易时,调用所述业务合约以执行所述业务合约中定义的权限控制代码确定所述查询方的查询权限,并在所述查询权限为允许查询时获取所述隐私数据以由所述查询方查看。
- 根据权利要求1所述的方法,还包括:接收针对分发合约的第二创建交易,所述第二创建交易中包含所述分发合约的分发代码,所述分发代码用于调用业务合约以执行该业务合约中定义的权限控制代码;部署所述分发合约;其中,当接收到的任一交易用于调用所述分发合约时,将所述任一交易作为所述查询交易。
- 根据权利要求2所述的方法,所述分发代码用于调用根据所述查询交易中包含的所述历史交易的交易标识确定出的业务合约,以执行所调用的业务合约中定义的权限控制代码;或者,所述分发代码用于根据所述查询交易中包含的所述历史交易调用的业务合约的合约地址确定相应的业务合约,并调用确定出的业务合约以执行相应的权限控制代码。
- 根据权利要求1所述的方法,还包括:接收针对所述业务合约的更新交易,所述更新交易中包含所述业务合约的业务代码,和针对与调用所述业务合约的交易相关的隐私数据的权限控制代码;将所述更新交易中包含的业务代码和权限控制代码发布至区块链上进行存证,并将所述业务合约的合约账户中合约代码的索引修改为所存证的业务代码和权限控制代码的索引。
- 根据权利要求1所述的方法,还包括:接收对应于所述业务合约的更新合约的创建交易,所述创建交易中包含所述业务合约的业务代码,和针对与调用所述业务合约的交易相关的隐私数据的权限控制代码;部署所述更新合约,并将所述更新合约与所述业务合约建立关联关系,以使得在确定出待调用合约为所述业务合约时,调用所述更新合约以代替调用所述业务合约。
- 根据权利要求1所述的方法,所述业务合约的权限控制代码用于根据所述查询方的身份信息确定所述查询方针 对所述隐私数据的查询权限;或者,所述业务合约的权限控制代码用于根据所述查询方的身份信息和所述历史交易的发起方的身份信息确定所述查询方针对所述隐私数据的查询权限;或者,所述业务合约的权限控制代码用于根据所述发起方的身份信息确定所述查询方针对所述隐私数据的查询权限;其中,所述发起方的身份信息根据所述查询交易中包含的交易标识获取所述历史交易,并基于所述历史交易得到;或者,所述查询交易中包含所述发起方的身份信息。
- 根据权利要求1所述的方法,所述隐私数据包括以下至少之一:所述历史交易、对应于所述历史交易的交易收据、所述历史交易的发起方的账户属性信息、所述历史交易调用的业务合约的账户属性信息、所述业务合约的合约代码、所述业务合约的合约状态数据。
- 一种隐私数据的共享装置,应用于区块链节点;所述装置包括:第一接收单元,接收用户发起的针对业务合约的第一创建交易,所述第一创建交易中包含业务代码和权限控制代码,所述业务代码在接收到调用所述业务合约的交易时被执行;第一部署单元,部署所述业务合约,以使得在接收到查询方发起的针对与调用所述业务合约的历史交易相关的隐私数据的查询交易时,调用所述业务合约以执行所述业务合约中定义的权限控制代码确定所述查询方的查询权限,并在所述查询权限为允许查询时获取所述隐私数据以由所述查询方查看。
- 根据权利要求8所述的装置,还包括:第二接收单元,接收针对分发合约的第二创建交易,所述第二创建交易中包含所述分发合约的分发代码,所述分发代码用于调用业务合约以执行该业务合约中定义的权限控制代码;第二部署单元,部署所述分发合约;其中,当接收到的任一交易用于调用所述分发合约时,将所述任一交易作为所述查询交易。
- 根据权利要求9所述的装置,所述分发代码用于调用根据所述查询交易中包含的所述历史交易的交易标识确定出的业务合约,以执行所调用的业务合约中定义的权限控制代码;或者,所述分发代码用于根据所述查询交易中包含的所述历史交易调用的业务合约的合约地址确定相应的业务合约,并调用确定出的业务合约以执行相应的权限控制代码。
- 根据权利要求8所述的装置,还包括:第三接收单元,接收针对所述业务合约的更新交易,所述更新交易中包含所述业务合约的业务代码,和针对与调用所述业务合约的交易相关的隐私数据的权限控制代码;第一关联单元,将所述更新交易中包含的业务代码和权限控制代码发布至区块链上进行存证,并将所述业务合约的合约账户中合约代码的索引修改为所存证的业务代码和权限控制代码的索引。
- 根据权利要求8所述的装置,还包括:第四接收单元,接收对应于所述业务合约的更新合约的创建交易,所述创建交易中包含所述业务合约的业务代码,和针对与调用所述业务合约的交易相关的隐私数据的权限控制代码;第二关联单元,部署所述更新合约,并将所述更新合约与所述业务合约建立关联关系,以使得在确定出待调用合约为所述业务合约时,调用所述更新合约以代替调用所述业务合约。
- 根据权利要求8所述的装置,所述业务合约的权限控制代码用于根据所述查询方的身份信息确定所述查询方针对所述隐私数据的查询权限;或者,所述业务合约的权限控制代码用于根据所述查询方的身份信息和所述历史交易的发起方的身份信息确定所述查询方针对所述隐私数据的查询权限;或者,所述业务合约的权限控制代码用于根据所述发起方的身份信息确定所述查询方针对所述隐私数据的查询权限;其中,所述发起方的身份信息根据所述查询交易中包含的交易标识获取所述历史交易,并基于所述历史交易得到;或者,所述查询交易中包含所述发起方的身份信息。
- 根据权利要求8所述的装置,所述隐私数据包括以下至少之一:所述历史交易、对应于所述历史交易的交易收据、所述历史交易的发起方的账户属性信息、所述历史交易调用的业务合约的账户属性信息、所述业务合约的合约代码、所述业务合约的合约状态数据。
- 一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器通过运行所述可执行指令以实现如权利要求1-7中任一项所述的方法。
- 一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实 现如权利要求1-7中任一项所述方法的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911085010.9 | 2019-11-08 | ||
CN201911085010.9A CN110580245B (zh) | 2019-11-08 | 2019-11-08 | 隐私数据的共享方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021088533A1 true WO2021088533A1 (zh) | 2021-05-14 |
Family
ID=68815531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/116409 WO2021088533A1 (zh) | 2019-11-08 | 2020-09-21 | 隐私数据的共享方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110580245B (zh) |
WO (1) | WO2021088533A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110580245B (zh) * | 2019-11-08 | 2020-03-10 | 支付宝(杭州)信息技术有限公司 | 隐私数据的共享方法及装置 |
CN111200613B (zh) * | 2020-01-07 | 2022-06-07 | 北京链道科技有限公司 | 一种基于端到端模型的代码可信执行方法 |
CN111311216A (zh) * | 2020-03-16 | 2020-06-19 | 北京意锐新创科技有限公司 | 适用于支付设备的账单共享方法和装置 |
CN111506901B (zh) * | 2020-04-16 | 2023-09-05 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、终端及存储介质 |
CN111814198B (zh) * | 2020-09-11 | 2021-03-23 | 支付宝(杭州)信息技术有限公司 | 一种基于区块链的用户隐私数据提供方法及装置 |
CN112287392B (zh) * | 2020-11-23 | 2023-06-02 | 广东科学技术职业学院 | 一种具备保护隐私信息的智能合约实现方法及系统 |
CN112819468A (zh) * | 2021-02-24 | 2021-05-18 | 浙江蓝景科技有限公司 | 智能合约的处理方法、装置和电子设备 |
CN114172667A (zh) * | 2021-06-15 | 2022-03-11 | 支付宝(杭州)信息技术有限公司 | 基于合约的隐私存证方法及装置 |
CN114117522B (zh) * | 2021-11-23 | 2024-05-28 | 上海交通大学 | 基于区块链和可信执行环境的车联网数据共享实现方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107767265A (zh) * | 2017-11-07 | 2018-03-06 | 中积有限公司 | 一种数据共享方法及服务器 |
CN109523385A (zh) * | 2018-12-07 | 2019-03-26 | 深圳市智税链科技有限公司 | 在区块链网络中查询交易信息的方法、记账节点和介质 |
CN110020549A (zh) * | 2019-02-19 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 区块链中实现隐私保护的方法、节点和存储介质 |
US20190334716A1 (en) * | 2018-04-27 | 2019-10-31 | The University Of Akron | Blockchain-empowered crowdsourced computing system |
CN110580245A (zh) * | 2019-11-08 | 2019-12-17 | 支付宝(杭州)信息技术有限公司 | 隐私数据的共享方法及装置 |
-
2019
- 2019-11-08 CN CN201911085010.9A patent/CN110580245B/zh active Active
-
2020
- 2020-09-21 WO PCT/CN2020/116409 patent/WO2021088533A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107767265A (zh) * | 2017-11-07 | 2018-03-06 | 中积有限公司 | 一种数据共享方法及服务器 |
US20190334716A1 (en) * | 2018-04-27 | 2019-10-31 | The University Of Akron | Blockchain-empowered crowdsourced computing system |
CN109523385A (zh) * | 2018-12-07 | 2019-03-26 | 深圳市智税链科技有限公司 | 在区块链网络中查询交易信息的方法、记账节点和介质 |
CN110020549A (zh) * | 2019-02-19 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 区块链中实现隐私保护的方法、节点和存储介质 |
CN110580245A (zh) * | 2019-11-08 | 2019-12-17 | 支付宝(杭州)信息技术有限公司 | 隐私数据的共享方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110580245A (zh) | 2019-12-17 |
CN110580245B (zh) | 2020-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021088546A1 (zh) | 基于区块链账户的隐私数据查询方法及装置 | |
WO2021088547A1 (zh) | 基于区块链账户的隐私数据查询方法及装置 | |
WO2021088548A1 (zh) | 基于智能合约的隐私数据查询方法及装置 | |
WO2021088536A1 (zh) | 基于链下授权的隐私数据查询方法及装置 | |
WO2021082664A1 (zh) | 区块链隐私数据的查询方法及装置 | |
WO2020238255A1 (zh) | 基于区块链的智能合约管理方法及装置、电子设备 | |
WO2021088549A1 (zh) | 基于链代码的权限查询配置方法及装置 | |
WO2021088533A1 (zh) | 隐私数据的共享方法及装置 | |
WO2021179743A1 (zh) | 区块链中账户隐私信息的查询方法及装置 | |
WO2021103794A1 (zh) | 在区块链中实现隐私保护的高效交易方法及装置 | |
WO2021088535A1 (zh) | 基于智能合约的隐私数据查询方法及装置 | |
WO2021088543A1 (zh) | 基于智能合约的权限查询配置方法及装置 | |
WO2020238959A1 (zh) | 基于区块高度实现动态加密的方法及装置 | |
WO2020233631A1 (zh) | 基于交易类型的收据存储方法和节点 | |
WO2020233615A1 (zh) | 结合用户类型与事件函数类型的收据存储方法和节点 | |
WO2020233635A1 (zh) | 结合多类型维度的条件限制的收据存储方法和节点 | |
WO2020233619A1 (zh) | 结合用户类型与交易类型的收据存储方法和节点 | |
WO2020233628A1 (zh) | 结合事件函数类型和判断条件的收据存储方法和节点 | |
WO2020238955A1 (zh) | 基于交易偏移量实现动态加密的方法及装置 | |
WO2020233627A1 (zh) | 多类型维度的收据存储方法和节点 | |
WO2020233633A1 (zh) | 基于判断条件的收据存储方法和节点 | |
WO2020233634A1 (zh) | 结合交易与事件类型的条件限制的收据存储方法和节点 | |
WO2020238958A1 (zh) | 基于合约状态的修改次序实现动态加密的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20885682 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20885682 Country of ref document: EP Kind code of ref document: A1 |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205 DATED 30/06/2022) |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20885682 Country of ref document: EP Kind code of ref document: A1 |