WO2021088547A1 - Procédé et appareil d'interrogation de données privées de compte basés sur une chaîne de blocs - Google Patents

Procédé et appareil d'interrogation de données privées de compte basés sur une chaîne de blocs Download PDF

Info

Publication number
WO2021088547A1
WO2021088547A1 PCT/CN2020/116917 CN2020116917W WO2021088547A1 WO 2021088547 A1 WO2021088547 A1 WO 2021088547A1 CN 2020116917 W CN2020116917 W CN 2020116917W WO 2021088547 A1 WO2021088547 A1 WO 2021088547A1
Authority
WO
WIPO (PCT)
Prior art keywords
transaction
query
data
contract
blockchain
Prior art date
Application number
PCT/CN2020/116917
Other languages
English (en)
Chinese (zh)
Inventor
刘琦
闫莺
Original Assignee
蚂蚁区块链科技(上海)有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 蚂蚁区块链科技(上海)有限公司 filed Critical 蚂蚁区块链科技(上海)有限公司
Publication of WO2021088547A1 publication Critical patent/WO2021088547A1/fr

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6227Protecting 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 where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2107File encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2141Access 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 querying private data based on a blockchain account.
  • 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 querying private data based on a blockchain account.
  • a method for querying private data based on a blockchain account is proposed, which is applied to a blockchain node; the method includes: When a private data query transaction, read the transaction identifier of a historical transaction related to the target private data contained in the query transaction; obtain the historical transaction according to the transaction identifier, and determine the historical transaction based on the historical transaction
  • the initiator’s blockchain account is used to determine the query authority’s query authority for the target private data according to the query authority recorded in the blockchain account; when the determined query authority is allowed to query, obtain the decrypted
  • the target private data can be viewed by the querying party, and the target private data is read into a trusted execution environment for decryption.
  • a method for querying private data is proposed, which is applied to a blockchain node; the method includes: when receiving a query transaction for target private data sent by the querying party Read the transaction identifier of the historical transaction related to the target privacy data contained in the query transaction, and obtain the historical transaction according to the transaction identifier; when the target privacy data is the historical transaction, Determine the blockchain account of the initiator based on the historical transaction to determine the query authority of the query party for the target private data according to the query authority recorded in the blockchain account; when the target private data In order to distinguish other transaction-related data from the historical transaction, determine the business contract invoked by the historical transaction based on the historical transaction, and execute the permission control logic defined in the business contract to determine that the querying party is The query authority of the target private data; when the determined query authority is allowed to query, the decrypted target private data is obtained for viewing by the querying party, and the target private data is read into the trusted execution environment for decryption .
  • a device for querying private data based on a blockchain account which is applied to a blockchain node; the device includes: a transaction reading unit, when the query is received When a party initiates a query transaction for target privacy data, read the transaction identifier of the historical transaction related to the target privacy data included in the query transaction; the authority query unit obtains the historical transaction according to the transaction identifier, And determine the blockchain account of the initiator based on the historical transaction to determine the query authority of the query party for the target private data according to the query authority recorded in the blockchain account; the data acquisition unit, when When the determined query authority is query permission, the decrypted target private data is obtained for viewing by the querying party, and the target private data is read into a trusted execution environment for decryption.
  • a device for querying private data which is applied to a blockchain node; the device includes: a transaction reading unit, when receiving a target-targeted message sent by the querying party When a private data query transaction is performed, the transaction identifier of a historical transaction related to the target private data contained in the query transaction is read, and the historical transaction is obtained according to the transaction identifier; the first authority query unit, when the transaction identifier is When the target privacy data is the historical transaction, the initiator’s blockchain account is determined based on the historical transaction, so as to determine the query authority for the target privacy according to the query authority recorded in the blockchain account.
  • Data query authority is
  • the second authority query unit when the target privacy data is other transaction-related data that is different from the historical transaction, determine the business contract invoked by the historical transaction based on the historical transaction, and execute the business contract defined in the business contract Permission control logic to determine the query permission of the query party for the target private data; the data acquisition unit, when the determined query permission is allowed to query, obtain the decrypted target private data for the query party Check that the target privacy data is read into the trusted execution environment for decryption.
  • 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 as described in the first aspect.
  • an electronic device including: a processor; a memory for storing executable instructions of the processor; wherein the processor runs the executable instructions To achieve the method described in the second aspect.
  • a computer-readable storage medium is provided, and computer instructions are stored thereon, and when the instructions are executed by a processor, the steps of the method described in the first aspect are implemented.
  • a computer-readable storage medium is provided with computer instructions stored thereon, which when executed by a processor implements the steps of the method described in the second aspect.
  • 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 querying private data based on a blockchain account according to 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 based on a blockchain account according to an exemplary embodiment.
  • Fig. 7 is a flowchart of a method for querying private data based on a smart contract according to an exemplary embodiment.
  • Fig. 8 is a schematic structural diagram of a device provided by an exemplary embodiment.
  • Fig. 9 is a block diagram of a device for querying private data based on a blockchain account according to an exemplary embodiment.
  • Fig. 10 is a schematic structural diagram of another device provided by an exemplary embodiment.
  • Fig. 11 is a block diagram of a device for querying 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
  • 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.
  • 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.
  • accounts can include external accounts and contract accounts.
  • 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 state tree.
  • the account structure supported by the blockchain can be further expanded to meet the needs of various application scenarios. Therefore, the meaning of the existing account fields can be extended, or new fields can be added, so as to set the query authority for the user's private data.
  • the Code field of the external account is used to record the query authority formulated by the corresponding user; or, the newly added field "permission" is used to record the query authority formulated by the corresponding user.
  • Fig. 4 is a flowchart of a method for querying private data based on a blockchain account according to an exemplary embodiment. As shown in Figure 4, this method is applied to blockchain nodes and can include the following steps:
  • Step 402 When receiving a query transaction for target privacy data initiated by the querying party, read the transaction identifier of the historical transaction related to the target privacy data included in the query transaction.
  • a designated smart contract for identifying query transactions can be deployed on the blockchain.
  • the principle of identifying a query transaction may be that when any transaction received by a blockchain node is used to call the designated smart contract, any transaction is regarded as a query transaction.
  • the administrator of the blockchain deploys a distribution contract on the blockchain in advance (for example, initiates a transaction to create a smart contract).
  • the distribution contract is configured with a contract address.
  • the blockchain node receives the to When the field records the contract address, it can be determined that the transaction is a query transaction.
  • the contract address of the distribution contract is written into the preset address list, and when the address recorded in the to field of the received transaction belongs to the address list, it can be determined that the received transaction belongs to the query transaction.
  • the address list can be recorded in the system contract (used to record the address list), or it can be recorded in the chain code. Therefore, when the inquiring party needs to inquire about private data, the to field of the initiated transaction should record the contract address of the aforementioned distribution contract.
  • the transaction types supported by the blockchain can also be expanded to expand the transaction for querying private data, that is, query transaction.
  • a new type field is added to the transaction format.
  • inquiry When "inquiry" is recorded in the type field, it means that the transaction is an inquiry transaction. Therefore, when the inquiring party needs to inquire about private data, the type field of the created transaction should be written "inquiry".
  • the transaction identifier of the historical transaction related to the target privacy data contained in the query transaction can be recorded in the data field of the query transaction or any other existing or newly added fields.
  • 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.
  • 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.
  • the blockchain node when the blockchain node receives the query transaction, it can obtain the historical transaction stored on the blockchain through the hash value, and then determine the historical transaction according to the from field of the historical transaction (used to record the initiator’s account address) The blockchain account of the initiator of the historical transaction.
  • Step 404 Obtain the historical transaction according to the transaction identifier, and determine the blockchain account of the initiator based on the historical transaction, so as to determine that the querying party is directed to the query based on the query authority recorded in the blockchain account.
  • the query authority of the target private data The query authority of the target private data.
  • the query authority may be formulated in the blockchain account in the form of a whitelist.
  • the initiator of a historical transaction may configure a whitelist in its own blockchain account, and the query permission of the user recorded in the whitelist for the private data of the initiator is allowed to query. Then, after determining the blockchain account of the initiator based on historical transactions, the whitelist configured in the blockchain account can be read, and when the querying party is recorded in the whitelist, the querying party for the target private data is determined The permission is to allow query.
  • the transaction types supported by the blockchain can be expanded to extend the transaction used to update the white list, that is, the update transaction.
  • the initiator of a historical transaction needs to update the whitelist maintained in its own blockchain account, it can initiate an update transaction for the whitelist.
  • the blockchain node After the blockchain node receives the update transaction, it will be updated according to the update transaction.
  • the updated content of the included white list updates the white list.
  • the digital envelope encryption method in the embodiment shown in FIG. 3 can also be used, and the decryption process is similar to it, and will not be repeated here.
  • the query authority can be formulated in the blockchain account in the form of query conditions.
  • the initiator of a historical transaction can set query conditions for private data in its own blockchain account. Then, after the initiator’s blockchain account is determined based on historical transactions, it can be judged whether the identity information meets the query conditions recorded in the blockchain account. When the inquirer’s identity information meets the query conditions, it can be determined that the inquirer is targeting the target The query permission for private data is allowed to query.
  • the query conditions can be flexibly set according to actual needs. For example, it can be set such that when the inquiring party's credit score exceeds a preset credit threshold, the inquiry authority of the inquiring party is allowed to inquire. Of course, one or more embodiments of this specification do not limit this.
  • Step 406 When the determined query authority is query permission, the decrypted target private data is obtained for viewing by the querying party, and the target private data is read into a trusted execution environment for decryption.
  • 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 target private data is obtained, and the obtained target private data is read into the trusted execution environment for decryption, so as to be obtained by the querying party.
  • the target privacy data can be obtained according to the transaction identification.
  • the decryption method used is also different (because the encryption method is different).
  • the target privacy 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 process of obtaining historical transactions and decrypting historical transactions is performed when step 404 is performed, that is, obtaining historical transactions according to the transaction identifier, and decrypting historical transactions to obtain plaintext transaction content, thereby Determine the business contract called by the historical transaction based on the content of the plaintext transaction. Therefore, 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.
  • 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 target 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
  • these Private data is encrypted with a specific symmetric key inside the TEE. Therefore, after obtaining these private data, the private data can be decrypted through 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 target private data and decrypting the target private data, the blockchain node can encrypt the decrypted target private data with the symmetric key of the querying party, so that the querying party can use the symmetric key pair used by itself.
  • the target private data is decrypted and viewed, thereby avoiding the target private data from being leaked.
  • 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.
  • a contract receipt indicating that the inquiry party prohibits inquiry of the target private data may be generated to be viewed by the inquiry party.
  • Fig. 5 is a flowchart of a method for querying private data provided by an exemplary embodiment. As shown in Figure 5, this method is applied to blockchain nodes and can include the following steps:
  • Step 502 When receiving a query transaction for target privacy data sent by the querying party, read the transaction identifier of the historical transaction related to the target privacy data contained in the query transaction, and obtain the transaction identifier according to the transaction identifier. Describe historical transactions.
  • Step 504 When the target privacy data is the historical transaction, determine the blockchain account of the initiator based on the historical transaction to determine the query policy according to the query authority recorded in the blockchain account The query authority for the target private data.
  • other transaction-related data may include at least one of the following: transaction receipts corresponding to historical transactions, account attribute information of the initiator of historical transactions, account attribute information of business contracts, contract codes of business contracts, business contracts
  • the contract status data The contract status data.
  • the historical transaction itself is created by the initiator, so the query authority of the historical transaction is controlled by the initiator; and other transaction-related data that is different from the historical transaction is associated with the business contract called by the historical transaction (generated by the business contract, or belongs to Business contract), so the query authority of other transaction-related data is controlled by the deployer of the business contract.
  • the query authority of private data can be flexibly controlled.
  • step 504 reference may be made to the process of step 404 in the embodiment shown in FIG. 3, which will not be repeated here.
  • Step 506 When the target privacy data is other transaction-related data different from the historical transaction, determine the business contract invoked by the historical transaction based on the historical transaction, and execute the permission control logic defined in the business contract To determine the query authority of the querying party for the target private data.
  • 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.
  • each business contract only controls the query authority of private data related to the transaction that invokes itself. Therefore, when a user (as a query party) initiates a query transaction for target private data related to a historical transaction (initiated by any other user), the blockchain node needs to determine the business that controls the query authority of the target private data Contract, and then the business contract can be invoked to achieve permission control.
  • a distribution contract can be deployed on the blockchain in advance to identify whether the transaction received by the blockchain node is a query transaction, and when the received transaction is When querying a 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 authority control code it can be understood as distributing the query transaction to the corresponding business contract.
  • a distribution code may be further defined in 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. Therefore, when the querying party needs to query other transaction-related data except historical transactions, the query transaction created by the querying party is a transaction for invoking the distribution contract.
  • any transaction received by the blockchain node is used to call the distribution contract
  • any transaction can be used as a query transaction.
  • the business contract called by the historical transaction is determined based on the historical transaction, and the distribution contract is called to execute the distribution code defined in the distribution contract, thereby calling the determined business contract (that is, the business contract called by the historical transaction) to execute the authority control code .
  • the blockchain node After the blockchain node obtains the historical transaction stored on the blockchain by querying the hash value of the historical transaction contained in the transaction, it can use the to field of the acquired historical transaction (used to record the call The contract address of the smart contract) determines the business contract called by the historical transaction.
  • 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. Also taking the alliance chain as an example, an administrator with management authority develops the distribution logic (calls the business contract based on the contract address of the business contract called by the historical transaction recorded in the query transaction), and distributes the logic in the form of code distribution Defined in the distribution contract. After completing the development of the distribution contract, the administrator can publish the distribution contract to the alliance chain for deployment (similar to the above-mentioned process of deploying smart contracts).
  • the distribution contract can be deployed through the genesis block of the blockchain, that is, the distribution contract is deployed when the blockchain is built, and the contract code of the distribution contract is recorded in the genesis block.
  • the distribution contract can be deployed in the subsequent process of building the blockchain; for example, the administrator wants to increase the permission query function in the subsequent use process. Then, the administrator can initiate a transaction to create a distribution contract to deploy the distribution contract on the blockchain.
  • the to field of the transaction is an empty string, and the binary code for initializing the contract is specified in the data field. When the contract is called later, the execution result of the code will be the contract 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 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 do not limit the specific content of the permission control rules.
  • the identity information of the inquiring party can be used as the basis for authority control.
  • the inquiry transaction should contain the inquiring party's identity information.
  • 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 the target 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 permission control, then the permission control rules can be set as the identity information of the inquiring party and the identity of the initiator
  • the query party is allowed to query the corresponding private data.
  • 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 identity information of the initiator of the historical transaction can be obtained based on the historical transaction, and then the authority control code defined in the business contract is executed, so as to be based on the identity information of the inquiring party and the identity of the initiator.
  • the information determines the querying authority of the querying party for the target private data.
  • the identity information of the initiator of the historical transaction can be used as the basis for permission control.
  • the permission control rules can be set to allow the inquiring party to query the corresponding information when the initiator’s identity information meets specific conditions. Privacy data. 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.
  • the identity information of the initiator of the historical transaction can be obtained based on the historical transaction, and then the authority control code defined in the business contract is executed to determine that the inquirer is targeting the target according to the identity information of the initiator. Query permissions for private data.
  • Step 508 When the determined query authority is query permission, the target privacy data obtained according to the transaction identifier is read into a trusted execution environment for decryption, so as to be obtained by the querying party.
  • the encryption and decryption process of query transaction and private data is similar to the embodiment shown in FIG. 4, and will not be repeated here.
  • a contract receipt indicating that the inquiry party prohibits inquiry of the target private data may be generated to be viewed by the inquiry party.
  • the process of user B as the inquiring party inquiring about historical transactions 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.
  • 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.
  • TEE hardware-assisted TEE
  • enriched the concepts and features of TEE which has been widely recognized in the industry.
  • 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 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 historical transaction stored on the blockchain according to the hash value.
  • step 616 the blockchain node reads the acquired historical transactions into the TEE for decryption.
  • the target privacy data includes historical transactions
  • the symmetric key used by the user A can be obtained first, and then the historical transaction is decrypted by the symmetric key in the TEE, so as to obtain the historical transaction of the plaintext content.
  • the symmetric key used by user A first obtain the symmetric key used to encrypt historical transactions (the symmetric key is encrypted by the public key used by user A), and pass the public key used with user A in the TEE The corresponding private key decrypts the symmetric key to obtain the decrypted symmetric key.
  • step 618 the blockchain node determines the blockchain account of user A according to the from field of the historical transaction.
  • step 620 the blockchain node determines the query authority of user B according to the query authority recorded in the user A's blockchain account.
  • the query authority may be formulated in the blockchain account in the form of a whitelist.
  • the initiator of a historical transaction may configure a whitelist in its own blockchain account, and the query permission of the user recorded in the whitelist for the private data of the initiator is allowed to query. Then, after determining the initiator’s blockchain account based on the initiator’s identity information contained in the query transaction, the whitelist configured in the blockchain account can be read. When the querying party is recorded in the whitelist, It is determined that the querying authority of the querying party for the target private data is allowed to query.
  • the whitelist configured in user A's blockchain account is shown in Table 1:
  • the transaction types supported by the blockchain can be expanded to extend the transaction used to update the white list, that is, the update transaction.
  • a new type field is added to the transaction format.
  • the type field of the created transaction should be written "update”, and the updated content of the whitelist can be recorded in the update transaction data field or any other existing or new fields.
  • the initiator of a historical transaction needs to update the whitelist maintained in its own blockchain account, it can initiate an update transaction for the whitelist.
  • the blockchain node After the blockchain node receives the update transaction, it will be updated according to the update transaction.
  • the updated content of the included white list updates the white list.
  • the above-mentioned digital envelope method can also be used for encryption, and the decryption process is similar to it, and will not be repeated here.
  • the query authority can be formulated in the blockchain account in the form of query conditions.
  • the initiator of a historical transaction can set query conditions for private data in its own blockchain account. Then, after the initiator’s blockchain account is determined based on the initiator’s identity information contained in the query transaction, it can be determined whether the identity information meets the query conditions recorded in the blockchain account. When the inquirer’s identity information meets the query.
  • the query conditions can be flexibly set according to actual needs. For example, it can be set such that when the inquiring party's credit score exceeds a preset credit threshold, the inquiry authority of the inquiring party is allowed to inquire. Of course, one or more embodiments of this specification do not limit this.
  • Step 622 After determining that the query permission of user B is allowed to query, the blockchain node uses the symmetric key of user B to encrypt the acquired historical transactions.
  • step 624 user B views historical transactions.
  • the blockchain node after the blockchain node encrypts the historical transaction, it can generate an event containing the historical transaction 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 historical transactions. After obtaining the historical transaction, user B uses the symmetric key used by the client to decrypt the historical transaction to obtain the historical transaction in plain text.
  • the blockchain node after the blockchain node encrypts the historical transaction, it can directly return the encrypted historical transaction to the client terminal used by the user B.
  • user B uses the symmetric key used by the client to decrypt the historical transaction to obtain the historical transaction of the plaintext content.
  • the query authority for other transaction-related data is controlled by the initiator of the historical transaction (that is, controlled by the initiator’s blockchain account).
  • the initiator of the historical transaction that is, controlled by the initiator’s blockchain account.
  • the specific implementation process please refer to the above steps 602-624. The principles are similar here. No longer.
  • the process of user B as the inquiring party inquiring the target private data may include the following steps.
  • step 702 the 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 704 the user B uses the digital envelope encryption to query the transaction through the client.
  • Step 706 User B initiates a query transaction to the blockchain node through the client.
  • step 708 the blockchain node decrypts the query transaction in the TEE.
  • steps 704-708 are similar to steps 604-608 in the embodiment shown in FIG. 6, and will not be repeated here.
  • Step 710 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 712 the blockchain node reads the hash value contained in the query transaction.
  • step 714 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 716 the blockchain node sends the from field and to field of the historical transaction to the distribution contract.
  • the distribution contract determines the business contract invoked by the historical transaction according to the to field of the historical transaction.
  • Step 720 the distribution contract calls the business contract.
  • Step 722 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 724 the business contract returns the query authority of user B to the blockchain node.
  • step 726 when the query permission of the user B is allowed to query, the blockchain node obtains other transaction-related data.
  • the blockchain node can obtain other transaction-related data according to the hash value of the historical transaction.
  • a contract receipt regarding user B's forbidden to query the target 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 728 the blockchain node reads other transaction-related data into the TEE for decryption.
  • the target privacy data includes the transaction receipt of the historical transaction
  • the transaction receipt of the historical transaction is encrypted by the symmetric key used by the initiator of the historical transaction. Therefore, after obtaining the transaction receipt of the historical transaction, the symmetric key used by the user A can be obtained first, and then the transaction receipt of the 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 target privacy data includes at least one of user A's account attribute information, business contract account attribute information, business contract contract code, business contract contract status data
  • the specific symmetric key of the blockchain node can be passed in the TEE Decrypt these private data.
  • 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 730 the blockchain node uses user B's symmetric key to encrypt other transaction-related data.
  • step 732 user B views other transaction related data.
  • the blockchain node after the blockchain node encrypts other transaction-related data, it can generate an event containing the other transaction-related data and store it in the blockchain log. Then, user B can use the client to pass the blockchain The callback mechanism to obtain the event, so as to view other transaction-related data. After obtaining other transaction-related data, user B uses the symmetric key used by the client to decrypt other transaction-related data to obtain other transaction-related data in plain text.
  • the blockchain node after the blockchain node encrypts other transaction-related data, it can directly return the encrypted other transaction-related data to the client terminal used by user B.
  • user B uses the symmetric key used by the client to decrypt other transaction-related data to obtain other transaction-related data in plaintext content.
  • this specification also provides an embodiment of a device for querying private data based on a blockchain account.
  • the embodiment of the privacy data query device based on the blockchain account of 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. 8 is a schematic structural diagram of a device provided by an exemplary embodiment.
  • the device includes a processor 802, an internal bus 804, a network interface 806, a memory 808, and a non-volatile memory 810.
  • the processor 802 reads the corresponding computer program from the non-volatile memory 810 to the memory 808 and then runs it to form a privacy data query device based on a blockchain account 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 device for querying private data based on a blockchain account is applied to a blockchain node, and may include the following units.
  • the transaction reading unit 901 when receiving a query transaction for target private data initiated by the querying party, reads the transaction identifier of the historical transaction related to the target private data included in the query transaction.
  • the authority query unit 902 obtains the historical transaction according to the transaction identifier, and determines the blockchain account of the initiator based on the historical transaction, so as to determine the query according to the query authority recorded in the blockchain account
  • the party s query authority for the target private data.
  • the data acquisition unit 903 when the determined query authority is the query permission, acquires the decrypted target private data for viewing by the querying party, and the target private data is read into the trusted execution environment for decryption.
  • a transaction identification unit 904 when any one of the received transactions is used for invoking a designated smart contract, the any one of the transactions is regarded as the query transaction.
  • the target 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 business contract invoked by 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 target privacy data includes the historical transaction and/or the transaction receipt; the target privacy data is decrypted in the following manner: the symmetric key used by the initiator is obtained; The historical transaction and/or the transaction receipt are decrypted by the symmetric key in the execution environment.
  • the symmetric key used by the initiator is obtained in the following manner: a symmetric key used to encrypt the historical transaction is obtained, and the symmetric key is encrypted by a public key used by the initiator;
  • the symmetric key is decrypted by the private key corresponding to the public key used by the initiator to obtain the decrypted symmetric key.
  • the public key used by the initiator is sent to the initiator by the key management server through remote certification, and the trusted execution environment of the blockchain node is established by the SGX architecture, and corresponds to the public key
  • the private key is sent to the circle of blockchain nodes by the key management server through remote certification.
  • the target privacy data includes at least one of account attribute information of the initiator of the historical transaction, account attribute information of the business contract, contract code of the business contract, and contract status data of the business contract 1.
  • Decrypt the target private data in the following manner: decrypt the target private data through the specific symmetric key of the blockchain node in the trusted execution environment.
  • the trusted execution environment of the blockchain node is established by the SGX architecture, and the specific symmetric key is sent by the key management server after the SGX architecture of the blockchain node is remotely certified, or is It is obtained through negotiation between the blockchain node and other blockchain nodes.
  • the symmetric key used to encrypt the query transaction is encrypted by the public key used by the query party.
  • the device After receiving the query transaction, the device further includes: a transaction decryption unit 905, which encrypts the symmetry of the query transaction through a private key corresponding to the public key used by the query party in the trusted execution environment The key decryption is to decrypt the query transaction by using the symmetric key obtained by decryption to obtain the transaction content contained in the query transaction.
  • a transaction decryption unit 905 which encrypts the symmetry of the query transaction through a private key corresponding to the public key used by the query party in the trusted execution environment
  • the key decryption is to decrypt the query transaction by using the symmetric key obtained by decryption to obtain the transaction content contained in the query transaction.
  • the device After decrypting the target private data, the device further includes: a data encryption unit 906, which encrypts the decrypted target private data with the symmetric key of the querying party.
  • a privacy processing unit 907 when the determined query authority is query prohibition, generate a contract receipt indicating that the query party prohibits querying the target private data for viewing by the query party.
  • a whitelist is configured in the blockchain account of the initiator, and the query permission of the user recorded in the whitelist for the private data of the initiator is permitted query; the permission query unit 902 specifically uses in:
  • a transaction receiving unit 908 which receives an update transaction for the whitelist initiated by the initiator; an update unit 909, which performs an update on the whitelist according to the update content of the whitelist included in the update transaction.
  • the whitelist is updated.
  • a query condition for the privacy data of the initiator is recorded in the blockchain account of the initiator; the authority query unit 902 is specifically configured to: when the identity information of the query party meets the query When the condition is used, it is determined that the query authority of the query party for the target private data is allowed to query.
  • this specification also provides an embodiment of a device for querying private data.
  • the embodiments of the private data query device 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. 10 is a schematic structural diagram of a device provided by an exemplary embodiment.
  • the device includes a processor 1002, an internal bus 1004, a network interface 1006, a memory 1008, and a non-volatile memory 1010, and of course, it may also include hardware required for other services.
  • the processor 1002 reads the corresponding computer program from the non-volatile memory 1010 to the memory 1008 and then runs it to form a private data query 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 device for querying private data is applied to a blockchain node, and may include the following units.
  • the transaction reading unit 1101 when receiving a query transaction for target privacy data sent by the querying party, reads the transaction identifier of the historical transaction related to the target privacy data contained in the query transaction, and according to the transaction Identifies the acquisition of the historical transaction.
  • the first authority query unit 1102 when the target privacy data is the historical transaction, determine the blockchain account of the initiator based on the historical transaction to determine the query authority recorded in the blockchain account The query authority for the target private data of the querying party.
  • the second authority query unit 1103 when the target privacy data is other transaction-related data different from the historical transaction, determine the business contract invoked by the historical transaction based on the historical transaction, and execute the definition in the business contract
  • the permission control logic is used to determine the query permission of the querying party for the target private data.
  • the data acquisition unit 1104 when the determined query authority is allowed to query, acquires the decrypted target private data for viewing by the querying party, and the target private data is read into a trusted execution environment for decryption.
  • the other transaction-related data includes at least one of the following: a transaction receipt corresponding to the historical transaction, the account attribute information of the initiator of the historical transaction, the account attribute information of the business contract, the business The contract code of the contract and the 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 Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Technology Law (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Medical Informatics (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

La présente divulgation concerne un procédé et un appareil d'interrogation de données privées de compte basés sur une chaîne de blocs. Le procédé est utilisé dans un nœud de chaîne de blocs et consiste à : lorsqu'une transaction d'interrogation d'une partie initiatrice d'interrogation pour des données privées cibles est reçue, lire un identifiant de transaction d'une transaction historique associée aux données privées cibles incluses dans la transaction d'interrogation ; acquérir la transaction historique en fonction de l'identifiant de transaction, et sur la base de la transaction historique, déterminer un compte de chaîne de blocs de la partie initiatrice de la transaction historique, de façon à déterminer en fonction d'une autorisation d'interrogation enregistrée dans le compte de chaîne de blocs une autorisation d'interrogation de la partie interrogatrice pour les données privées cibles ; lorsque l'autorisation d'interrogation déterminée permet l'interrogation, acquérir les données privées cibles déchiffrées pour une visualisation par la partie interrogatrice, les données privées cibles étant lues dans un environnement d'exécution de confiance pour le déchiffrement.
PCT/CN2020/116917 2019-11-08 2020-09-22 Procédé et appareil d'interrogation de données privées de compte basés sur une chaîne de blocs WO2021088547A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201911085176.0A CN110580414B (zh) 2019-11-08 2019-11-08 基于区块链账户的隐私数据查询方法及装置
CN201911085176.0 2019-11-08

Publications (1)

Publication Number Publication Date
WO2021088547A1 true WO2021088547A1 (fr) 2021-05-14

Family

ID=68815560

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/116917 WO2021088547A1 (fr) 2019-11-08 2020-09-22 Procédé et appareil d'interrogation de données privées de compte basés sur une chaîne de blocs

Country Status (2)

Country Link
CN (2) CN111475829A (fr)
WO (1) WO2021088547A1 (fr)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111475829A (zh) * 2019-11-08 2020-07-31 支付宝(杭州)信息技术有限公司 基于区块链账户的隐私数据查询方法及装置
CN110580418B (zh) * 2019-11-08 2020-04-07 支付宝(杭州)信息技术有限公司 基于区块链账户的隐私数据查询方法及装置
CN111464500B (zh) * 2020-03-06 2023-03-17 深圳壹账通智能科技有限公司 协议数据共享的方法、装置、设备及存储介质
CN111310137B (zh) * 2020-03-23 2022-08-26 杭州溪塔科技有限公司 一种区块链关联数据存证方法、装置及电子设备
CN111461883A (zh) * 2020-03-31 2020-07-28 杭州溪塔科技有限公司 一种基于区块链的交易处理方法、装置和电子设备
CN111538757B (zh) * 2020-04-13 2022-02-11 支付宝(杭州)信息技术有限公司 数据存储方法、查询方法、装置、服务器及介质
CN111737322B (zh) * 2020-07-31 2020-12-04 支付宝(杭州)信息技术有限公司 一种数据共享方法、装置及设备
CN112019344A (zh) * 2020-08-06 2020-12-01 中标慧安信息技术股份有限公司 一种用于区块链的视频监控存证方法
CN112084527B (zh) * 2020-08-18 2024-06-18 中国银联股份有限公司 数据存储及获取方法、装置、设备、介质
CN112286997B (zh) * 2020-11-25 2024-04-16 深圳平安智汇企业信息管理有限公司 基于分布式部署的薪酬数据查询方法及相关设备
CN112581135A (zh) * 2020-12-28 2021-03-30 中国建设银行股份有限公司 区块链交易数据的访问与生成方法、装置及电子设备
CN112732720B (zh) * 2021-01-11 2022-05-24 杭州复杂美科技有限公司 数据存储方法、数据查询方法、计算机设备和存储介质
CN113034138A (zh) * 2021-03-12 2021-06-25 三一智造(深圳)有限公司 一种基于区块链的隐私保护方法
CN113205415B (zh) * 2021-03-26 2022-11-18 广东瑞和通数据科技有限公司 基于rpa和区块链技术的财务流程自动化方法和系统
CN112734431B (zh) * 2021-03-30 2021-06-25 支付宝(杭州)信息技术有限公司 查询Fabric区块链账本数据的方法和装置
CN113407954A (zh) * 2021-05-11 2021-09-17 支付宝(杭州)信息技术有限公司 基于区块链的数据管理方法及装置
CN113114476B (zh) * 2021-06-15 2021-11-16 支付宝(杭州)信息技术有限公司 基于合约的隐私存证方法及装置
CN113449014B (zh) * 2021-06-28 2022-10-14 电子科技大学 一种基于区块链的选择性云数据查询系统
CN113781245B (zh) * 2021-09-10 2023-10-13 杭州宇链科技有限公司 赋能安全生产保险的隐私计算系统及方法
CN115062063B (zh) * 2022-07-28 2022-11-25 恒生电子股份有限公司 基于区块链的数据查询方法和装置
CN115115367B (zh) * 2022-08-30 2023-03-31 平安银行股份有限公司 一种基于区块链的交易信息查询方法、装置及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109936626A (zh) * 2019-02-19 2019-06-25 阿里巴巴集团控股有限公司 区块链中实现隐私保护的方法、节点和存储介质
CN110020549A (zh) * 2019-02-19 2019-07-16 阿里巴巴集团控股有限公司 区块链中实现隐私保护的方法、节点和存储介质
CN110032885A (zh) * 2019-02-19 2019-07-19 阿里巴巴集团控股有限公司 区块链中实现隐私保护的方法、节点和存储介质
CN110099068A (zh) * 2019-05-16 2019-08-06 通链(北京)科技有限公司 基于区块链的开放平台间交互的方法、装置及设备
US20190327082A1 (en) * 2018-04-24 2019-10-24 Duvon Corporation Autonomous exchange via entrusted ledger token and transaction management
CN110580414A (zh) * 2019-11-08 2019-12-17 支付宝(杭州)信息技术有限公司 基于区块链账户的隐私数据查询方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107862215B (zh) * 2017-09-29 2020-10-16 创新先进技术有限公司 一种数据存储方法、数据查询方法及装置
CN109257342B (zh) * 2018-09-04 2020-05-26 阿里巴巴集团控股有限公司 区块链跨链的认证方法、系统、服务器及可读存储介质
CN109785132A (zh) * 2018-12-21 2019-05-21 众安信息技术服务有限公司 一种基于区块链的防伪溯源方法、装置及存储介质
CN110060162B (zh) * 2019-03-29 2023-10-27 创新先进技术有限公司 基于区块链的数据授权、查询方法和装置
CN110263068A (zh) * 2019-05-21 2019-09-20 深圳壹账通智能科技有限公司 一种处理监控数据的方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190327082A1 (en) * 2018-04-24 2019-10-24 Duvon Corporation Autonomous exchange via entrusted ledger token and transaction management
CN109936626A (zh) * 2019-02-19 2019-06-25 阿里巴巴集团控股有限公司 区块链中实现隐私保护的方法、节点和存储介质
CN110020549A (zh) * 2019-02-19 2019-07-16 阿里巴巴集团控股有限公司 区块链中实现隐私保护的方法、节点和存储介质
CN110032885A (zh) * 2019-02-19 2019-07-19 阿里巴巴集团控股有限公司 区块链中实现隐私保护的方法、节点和存储介质
CN110099068A (zh) * 2019-05-16 2019-08-06 通链(北京)科技有限公司 基于区块链的开放平台间交互的方法、装置及设备
CN110580414A (zh) * 2019-11-08 2019-12-17 支付宝(杭州)信息技术有限公司 基于区块链账户的隐私数据查询方法及装置

Also Published As

Publication number Publication date
CN110580414A (zh) 2019-12-17
CN111475829A (zh) 2020-07-31
CN110580414B (zh) 2020-04-07

Similar Documents

Publication Publication Date Title
WO2021088547A1 (fr) Procédé et appareil d'interrogation de données privées de compte basés sur une chaîne de blocs
WO2021088546A1 (fr) Procédé et dispositif d'interrogation de données de confidentialité basés sur un compte de chaîne de blocs
WO2021088548A1 (fr) Procédé et appareil d'interrogation de données de confidentialité sur la base d'un contrat intelligent
WO2021088536A1 (fr) Procédé et appareil d'interrogation de données privées basés sur une autorisation hors chaîne
WO2021082664A1 (fr) Procédé et appareil d'interrogation de données de confidentialité de chaîne de blocs
WO2021179743A1 (fr) Procédé et appareil d'interrogation d'informations de confidentialité de compte dans une chaîne de blocs
WO2020238255A1 (fr) Procédé et appareil de gestion de contrat intelligent en fonction d'une chaîne de blocs et dispositif électronique
WO2021088549A1 (fr) Procédé et appareil de configuration de requête d'autorisation basés sur un code de chaîne
WO2021088533A1 (fr) Procédé et dispositif de partage de données privées
WO2021103794A1 (fr) Procédé permettant de réaliser une transaction de préservation de la vie privée hautement efficace dans une chaîne de blocs, et dispositif
WO2021088535A1 (fr) Procédé et dispositif d'interrogation de données privées basés sur un contrat intelligent
WO2021088543A1 (fr) Procédé et appareil de configuration d'interrogation d'autorisation basée sur un contrat intelligent
WO2020233623A1 (fr) Procédé de stockage de reçu et nœud combinant un type de transaction et un état d'évaluation
WO2020233631A1 (fr) Procédé et nœud de stockage de reçu basés sur le type de transaction
WO2020233626A1 (fr) Procédé et nœud de stockage de reçu combinés à une limitation conditionnelle de types de transactions et d'utilisateurs
WO2020233635A1 (fr) Procédé de stockage de reçu combinant des restrictions conditionnelles de multiples types de dimensions et nœud
WO2020233625A1 (fr) Procédé de stockage de reçus combinant un type d'utilisateur, des conditions de détermination et un nœud
WO2020233628A1 (fr) Procédé et nœud de stockage de reçu basés sur une combinaison d'un type de fonction d'événement et d'une condition d'évaluation
WO2020233619A1 (fr) Procédé et nœud de stockage de reçu en combinaison avec un type d'utilisateur et un type de transaction
WO2020233633A1 (fr) Procédé de stockage de reçus et nœud basé sur une condition de détermination
WO2020233634A1 (fr) Procédé et noeud destinés à une mémoire de réception associant des restrictions de condition de type de transaction et d'événement

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: 20884461

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: 20884461

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 20884461

Country of ref document: EP

Kind code of ref document: A1