WO2020233633A1 - Procédé de stockage de reçus et nœud basé sur une condition de détermination - Google Patents
Procédé de stockage de reçus et nœud basé sur une condition de détermination Download PDFInfo
- Publication number
- WO2020233633A1 WO2020233633A1 PCT/CN2020/091412 CN2020091412W WO2020233633A1 WO 2020233633 A1 WO2020233633 A1 WO 2020233633A1 CN 2020091412 W CN2020091412 W CN 2020091412W WO 2020233633 A1 WO2020233633 A1 WO 2020233633A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- transaction
- receipt
- key
- blockchain node
- preset
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3823—Payment protocols; Details thereof insuring higher security of transaction combining multiple encryption tools for a transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/08—Insurance
Definitions
- One or more embodiments of this specification relate to the field of blockchain technology, and in particular to a method and node for storing receipts based on judgment conditions.
- 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. 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 TEE solutions.
- TEE solutions including TPM (Trusted Platform Module) for software and Intel SGX (Software Guard Extensions) for 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 receipt storage method and node based on judgment conditions.
- a method for storing receipts based on judgment conditions including:
- the first blockchain node receives the encrypted transaction
- the first blockchain node decrypts the transaction in the trusted execution environment and executes the obtained transaction content to obtain receipt data
- the first blockchain node stores the receipt data, so that the receipt fields meeting preset conditions in the receipt data are stored in plain text, and the remaining receipt fields are stored in cipher text.
- a receipt storage node based on judgment conditions including:
- the receiving unit receives encrypted transactions
- the decryption unit decrypts the transaction in the trusted execution environment to obtain the transaction content
- the execution unit executes the transaction content to obtain receipt data
- the storage unit stores the receipt data, so that the receipt fields that meet the preset conditions in the receipt data are stored in plain text, and the remaining receipt fields are stored in cipher text.
- an electronic device including:
- a memory for storing processor executable instructions
- the processor implements the method according to the first aspect by running the executable instruction.
- a computer-readable storage medium is provided, and computer instructions are stored thereon, which, when executed by a processor, implement the steps of the method described in the first aspect.
- Fig. 1 is a schematic diagram of implementing privacy protection on blockchain nodes according to an exemplary embodiment.
- Fig. 2 is a flowchart of a method for storing receipts based on judgment conditions according to an exemplary embodiment.
- Fig. 3 is a schematic diagram of creating a smart contract according to an exemplary embodiment.
- Fig. 4 is a schematic diagram of invoking a smart contract provided by an exemplary embodiment.
- Fig. 5 is a schematic diagram of the functional logic of implementing a blockchain network through a system contract and a chain code provided by an exemplary embodiment.
- Fig. 6 is a block diagram of a receipt storage device based on judgment conditions provided by an exemplary embodiment.
- the steps of the corresponding method may not be executed in the order shown and described in this specification.
- the method includes 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.
- Blockchain is generally divided into three types: Public Blockchain, Private Blockchain and Consortium Blockchain.
- the most decentralized one is the public chain.
- 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.
- the alliance chain is a block chain between the public chain and the private chain, which can achieve "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.
- the receipt data obtained by a node executing a transaction can include the following:
- the Result field indicates the execution result of the transaction
- the Gas used field indicates the gas value consumed by the transaction
- the Logs field indicates the log generated by the transaction.
- the log can further include the From field, To field, Topic field, and Log data field, among which the From field indicates the account address of the initiator of the call, and the To field indicates the called object (such as a smart contract)
- the account address and Topic field indicate the subject of the log, and the Log data field indicates the log data;
- the Output field indicates the output of the transaction.
- the receipt data forms a receipt tree.
- the receipt tree is generated through organization, so that when querying or verifying receipt data, the corresponding query or verification efficiency can be greatly improved.
- the MPT Merkle Patricia Tree
- the leaf of the receipt tree is the hash value of the receipt data corresponding to each transaction contained in the block, and the receiptRoot is Root hashes generated sequentially upwards according to the hash value of the receipt data at the leaf.
- other types of tree structures can also be used in other blockchain networks.
- 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, without privacy protection settings and capabilities.
- the receipt data needs to be stored in cipher text.
- the first blockchain node includes the conventional environment on the left (on the left in the figure) and TEE.
- the transaction submitted by the client (or other sources) first enters the "transaction/query interface" in the conventional environment , And then pass the transaction to the TEE for processing.
- TEE is isolated from the normal environment. For example, when a transaction is encrypted, the transaction needs to be transferred to the TEE for decryption as the transaction content in clear text, so that the transaction content in the clear text can be efficiently processed in the TEE and in the TEE under the premise of ensuring data security.
- the receipt data in plaintext is generated in.
- TEE is a secure extension based on CPU hardware and a trusted execution environment 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 needs for TEE.
- the concept of TEE has also been rapidly developed and expanded. Compared with the originally proposed concept, TEE is a broader TEE. For example, server chip manufacturers Intel, AMD, etc. have successively introduced hardware-assisted TEE and enriched the concept and characteristics of TEE, which has been widely recognized in the industry.
- Intel Software Protection Extensions (SGX) and other TEE technologies isolate code execution, remote attestation, secure configuration, secure storage of data, and trusted paths for code execution.
- the applications running in the TEE are protected by security and are almost impossible to be accessed by third parties.
- SGX provides an enclave (also called an enclave), which is an encrypted trusted execution area in the memory, and the CPU protects data from being stolen.
- enclave also called an enclave
- the CPU protects data from being stolen.
- a part of the area EPC Enclave Page Cache, enclave page cache or enclave page cache
- the encryption 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 private data can be encrypted and transmitted to the circle in cipher text, and the corresponding secret key can also be transmitted to the circle through remote certification. Then, the data is used for calculation under the encryption protection of the CPU, and the result will be returned in ciphertext. In this mode, you can use powerful computing power without worrying about data leakage.
- the block chain is a data set stored in a database of a node and organized by a specific logic.
- the database as described later, may be a storage medium, such as a persistent storage medium, on a physical carrier.
- the privacy protection requirements of users in different situations may not be the same, which often depends on the actual situation of the receipt field. Take the transfer scenario as an example.
- the user may allow the transfer amount to be exposed, so it is stored in clear text to drive the client such as DAPP (Decentralized Application) to perform related processing operations;
- DAPP Decentralized Application
- the user may not allow the transfer amount to be exposed, but may be stored in cipher text to achieve privacy protection.
- step 202 the first blockchain node receives the encrypted transaction.
- the user can directly generate a transaction on the first blockchain node; or, the user can generate a transaction on the client, and send the transaction to the first blockchain node through the client; or, the client
- the terminal can send the above transaction to the second blockchain node, and the second blockchain node sends the transaction to the first blockchain node.
- the transactions in this manual can be used to implement relatively simple processing logic, such as similar to the deposit logic and transfer logic in related technologies, that is, the relevant transactions are deposit transactions, transfer transactions, etc. At this time, the above transaction may not be related to the smart contract.
- 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
- bytecode virtual machine code
- the EVM of node 1 can execute the transaction and generate a corresponding contract instance.
- "0x6f8ae93" in the figure 3 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. Smart contracts are executed independently on each node in the blockchain network in a prescribed manner. All execution records and data are stored on the blockchain, so when the transaction is completed, the blockchain will be stored on the blockchain that cannot be tampered with. Lost transaction certificate.
- the transaction content can include the code of the smart contract that needs to be created; when the transaction is used to call a smart contract, the transaction content can include the account address of the smart contract being called, and the required input Methods and parameters, etc.
- Step 204 The first blockchain node decrypts the transaction in the trusted execution environment and executes the obtained transaction content to obtain receipt data.
- the encrypted transaction can be kept in a state of privacy protection, and the transaction content can be prevented from being exposed.
- the transaction content may contain information such as the account address of the transaction initiator and the account address of the transaction target. Encryption processing can ensure that these transaction contents cannot be directly read.
- the foregoing transaction may be encrypted by a symmetric encryption algorithm, or may be encrypted by an asymmetric algorithm.
- the encryption algorithm used by symmetric encryption such as DES algorithm, 3DES algorithm, TDEA algorithm, Blowfish algorithm, RC5 algorithm, IDEA algorithm, etc.
- Asymmetric encryption algorithms such as RSA, Elgamal, knapsack algorithm, Rabin, D-H, ECC (elliptic curve encryption algorithm), etc.
- the foregoing transaction may be encrypted by a combination of a symmetric encryption algorithm and an asymmetric encryption algorithm.
- the client can use a symmetric encryption algorithm to encrypt the transaction content, that is, use the symmetric encryption algorithm key to encrypt the transaction content, and use an asymmetric encryption algorithm to encrypt the symmetric encryption algorithm
- the key used for example, the key used in the public key encryption symmetric encryption algorithm using an asymmetric encryption algorithm.
- the first blockchain node After the first blockchain node receives the encrypted transaction, it can first decrypt it with the private key of the asymmetric encryption algorithm to obtain the key of the symmetric encryption algorithm, and then decrypt it with the key of the symmetric encryption algorithm to obtain the transaction content.
- a transaction When a transaction is used to call a smart contract, it can be a call of multiple nested structures. For example, the transaction directly calls smart contract 1, and the code of smart contract 1 calls smart contract 2, and the code in smart contract 2 points to the contract address of smart contract 3, so that the transaction actually calls the code of smart contract 3 indirectly .
- the specific implementation process is similar to the above process, and will not be repeated here.
- the transaction received by the first blockchain node may be, for example, a transaction for creating and/or invoking a smart contract.
- a transaction for creating and/or invoking a smart contract For example, in Ethereum, after the first blockchain node receives the transaction to create and/or call the smart contract from the client, it can check whether the transaction is valid, the format is correct, and the signature of the transaction is legal.
- the nodes in Ethereum are generally nodes that compete for the right to bookkeeping. Therefore, the first blockchain node as the node that competes for the right to bookkeeping can execute the transaction locally. If one of the nodes competing for the accounting right wins in the current round of the accounting right, it becomes the accounting node. If the first blockchain node wins this round of competition for accounting rights, it becomes the accounting node; of course, if the first blockchain node does not win in this round of competition for accounting rights, it is not Accounting nodes, and other nodes may become accounting nodes.
- a smart contract is similar to a class in object-oriented programming.
- the result of execution generates a contract instance corresponding to the smart contract, similar to the object corresponding to the generated class.
- the process of executing the code used to create a smart contract in a transaction will create a contract account and deploy the contract in the account space.
- the address of the smart contract account is generated from the sender's address ("0xf5e -- in Figure 3-4) and the transaction nonce (nonce) as input, and is generated by an encryption algorithm, such as in Figure 3-4
- the contract address "0x6f8ae93" is generated from the sender's address "0xf5e" and the nonce in the transaction through an encryption algorithm.
- consensus algorithms such as Proof of Work (POW), Proof of Stake (POS), and Delegated Proof of Stake (DPOS) are adopted in blockchain networks that support smart contracts. All nodes competing for the right to account can execute the transaction after receiving the transaction including the creation of a smart contract. One of the nodes competing for the right to bookkeeping may win this round and become the bookkeeping node.
- the accounting node can package the transaction containing the smart contract with other transactions and generate a new block, and send the generated new block to other nodes for consensus.
- the nodes with the right to book accounts have been agreed before this round of bookkeeping. Therefore, after the first blockchain node receives the above transaction, if it is not the accounting node of this round, it can send the transaction to the accounting node.
- accounting nodes which can be the first blockchain node
- the accounting node packages the transaction (or other transactions together) and generates a new block
- the generated new block or block header is sent to other nodes for consensus.
- the accounting nodes in this round can package and package the transaction. Generate a new block, and send the header of the generated new block to other nodes for consensus. If other nodes receive the block and verify that there is no problem, they can append the new block to the end of the original block chain to complete the accounting process and reach a consensus; if the transaction is used to create a smart contract, then The deployment of the smart contract on the blockchain network is completed. If the transaction is used to call the smart contract, the call and execution of the smart contract are completed. In the process of verifying the new block or block header sent by the accounting node, other nodes may also execute the transaction in the block.
- the transaction contains the code of the smart contract
- the first blockchain node can decrypt the transaction in the TEE to obtain the code of the smart contract contained therein, and then Execute this code in TEE.
- the first blockchain node can execute the code in the TEE (if the called smart contract handles the encryption state, the smart contract needs to be executed in the TEE first. Decrypt to get the corresponding code).
- the first blockchain node may use the newly added processor instructions in the CPU to allocate a part of the area EPC in the memory, and encrypt the above-mentioned plaintext code and store it in the EPC through the encryption engine MEE in the CPU.
- the encrypted content in EPC is decrypted into plain text after entering the CPU.
- the plaintext code for executing smart contracts can load the EVM into the enclosure.
- the key management server can calculate the hash value of the local EVM code and compare it with the hash value of the EVM code loaded in the first blockchain node. The correct comparison result is a necessary condition for passing remote certification. , So as to complete the measurement of the code loaded in the SGX circle of the first blockchain node. After measurement, the correct EVM can execute the above smart contract code in SGX.
- Step 206 The first blockchain node stores the receipt data, so that the receipt fields that meet the preset conditions in the receipt data are stored in plain text, and the remaining receipt fields are stored in cipher text.
- the privacy protection requirement of the receipt field is relatively low.
- DAPP Decentralized Application
- the preset conditions may include global conditions applicable to all transactions.
- the receipt data storage logic related to preset conditions can be predefined in the code of the system contract, so that the first blockchain node can execute the code of the system contract to realize the receipt data related to the preset conditions. Storage logic, so that the receipt fields that meet preset conditions in the receipt data are stored in plain text, and the remaining receipt fields are stored in cipher text.
- Receipt data storage logic related to the preset conditions may include: the content of the preset conditions, the receipt fields to which the preset conditions apply, the processing logic for judging whether the receipt fields meet the preset conditions, and whether the receipt fields meet the preset conditions The judgment result implements the logic of the storage operation, etc.
- the content of the preset condition may include at least one of the following: the corresponding receipt field contains the preset content, and the value of the corresponding receipt field belongs to the preset numerical interval.
- the preset content may include: one or more designated keywords.
- the keywords may include predefined state variables, predefined event functions, information indicating the results of transaction execution, and so on.
- the preset content may include: a preset value, for example, the preset value may be a numerical value, and the numerical value may be compared with the value of a state variable, etc., to determine whether the value of the state variable meets expectations; for another example, the preset value may be It is a string composed of numerical values, letters, special symbols, etc., which can be compared with the account address of the transaction initiator, the account address of the transaction target, and the content of the event function to identify the specific transaction initiator, specific The transaction target party or specific event function, etc.
- the preset value range can indicate the privacy protection requirements of the relevant receipt fields.
- the preset value range can be a value range with a smaller value and a lower privacy protection requirement, so that even if the relevant receipt field is disclosed, it will not cause Serious user privacy leakage, but it can be used to automatically trigger related operations such as DAPP client, so as to achieve a certain balance between privacy protection and convenience.
- the preset condition may include a general condition corresponding to all receipt fields in the receipt data, that is, all receipt fields in the receipt data are used for comparison with the preset condition. For example, when the preset condition is "contains preset keywords", all receipt fields in the receipt data can be compared with the keywords contained in the preset conditions to determine the receipt fields containing the keywords, as Receipt fields that meet the above preset conditions.
- the preset condition may include a dedicated condition corresponding to each receipt field in the receipt data, that is, each receipt field in the receipt data has a corresponding preset condition, and each receipt field is used to correspond to The preset conditions are compared.
- the preset conditions corresponding to different receipt fields are independent of each other, but may be the same or different.
- the preset condition corresponding to the From field and the To field may be "whether the preset content is included", and the preset content may be a preset account address, indicating a transaction initiated by or directed to the account address. You can store the From field or To field in plain text.
- the preset condition corresponding to the Topic field can be "whether it belongs to the preset value range", and the value of the state variable referenced by the related event can be recorded in the Topic field.
- it can include a value representing "transfer amount"
- the state variable indicates that when the transfer amount is in the preset value range (usually it can be a small value interval corresponding to a smaller amount), the transfer amount can be stored in plain text.
- the computing device By running the program code of the blockchain (hereinafter referred to as the chain code) on the computing device (physical machine or virtual machine), the computing device can be configured as a blockchain node in the blockchain network, such as the first Blockchain nodes, etc.
- the first blockchain node runs the above chain code to realize the corresponding functional logic. Therefore, when the blockchain network is created, the receipt data storage logic related to the preset conditions described above can be written into the chain code, so that each blockchain node can implement the receipt data storage logic.
- chain code is used to realize the basic functions of the blockchain network, and the function expansion during operation can be achieved through the system Realized by way of contract.
- the system contract includes code in the form of bytecode, for example, the first blockchain node can run the system contract code (for example, according to the unique address "0x53a98" to read the system The code in the contract) to realize the functional supplement of the chain code.
- the system contract read by the first blockchain node may include a preset system contract configured in the genesis block of the blockchain network; and, the administrator in the blockchain network (ie, the above-mentioned management user) may have The update authority of the system contract, so as to update the preset system contract such as the above, the system contract read by the first blockchain node may also include the corresponding updated system contract.
- the updated system contract can be obtained by the administrator after one update of the preset system contract; or, the updated system contract can be obtained by the administrator after multiple iterations of the preset system contract, such as the preset system contract Update the system contract 1, update the system contract 1 to obtain the system contract 2, update the system contract 2 to obtain the system contract 3.
- the system contract 1, the system contract 2, and the system contract 3 can all be regarded as the updated system contract, but the first Blockchain nodes usually follow the latest version of the system contract. For example, the first blockchain node will follow the code in system contract 3 instead of the code in system contract 1 or system contract 2.
- the administrator can also publish system contracts in subsequent blocks and update the published system contracts.
- system contracts in subsequent blocks and update the published system contracts.
- a certain degree of restrictions should be imposed on the issuance and update of system contracts through methods such as authority management to ensure that the functional logic of the blockchain network can operate normally and avoid unnecessary losses to any users.
- the logic of the storage operation is implemented according to the judgment result of whether the receipt field meets the preset condition.
- the preset conditions can be defined and used according to user needs and are not mandatory to be applied globally.
- the preset condition may include: the content of the preset condition, the receipt field to which the preset condition is applicable, the processing logic for judging whether the receipt field meets the preset condition, etc.
- the preset conditions may be located in the transaction, so that the preset conditions adopted by different exchanges may be different, so as to meet the difference in demand faced by different exchanges.
- the difference in the preset conditions may be expressed as a difference in at least one dimension in the content of the preset conditions, the receipt fields to which the preset conditions apply, and the processing logic for judging whether the receipt fields meet the preset conditions.
- the two can respectively contain preset conditions of different dimensions, such as different receipt fields applicable to the preset conditions; or , When there is a conflict between the preset conditions contained in the two, it can default to the default conditions contained in the exchange, or the preset conditions contained in the chain code or system contract, depending on the predefined choice logic.
- the preset condition may be located in the smart contract called by the transaction, or the preset condition may be located in another smart contract called by the smart contract called by the transaction, so that the transaction can be selected by selecting the called smart contract to Determine whether to use the corresponding preset conditions.
- the smart contract can be pre-created by the transaction initiator or any other user; of course, if the smart contract has a corresponding calling condition, then the above-mentioned transaction can call the smart contract only when the calling condition is met.
- the calling condition may include : The transaction initiator belongs to the preset whitelist, the transaction initiator does not belong to the preset blacklist or other conditions.
- the two can respectively contain preset conditions of different dimensions, such as the receipt field for which the preset conditions apply Different; or, when there is a conflict between the preset conditions contained in the two, the preset conditions contained in the smart contract called by the transaction may be preferentially used by default, or the preset conditions contained in the chain code or system contract may be preferentially used. This depends on the predefined selection logic.
- the first blockchain node encrypts the receipt field that meets the preset conditions by using a key.
- the encryption may be symmetric encryption or asymmetric encryption. If the first blockchain node uses symmetric encryption, that is, the symmetric key of the symmetric encryption algorithm is used to encrypt the content of the receipt, the client (or other object holding the key) can use the symmetric key pair of the symmetric encryption algorithm The encrypted receipt field is decrypted.
- the symmetric key may be provided to the first blockchain node in advance by the client. Then, since only the client (actually the user corresponding to the logged-in account on the client) and the first blockchain node have the symmetric key, only the client can decrypt the corresponding encrypted receipt field, avoiding Irrelevant users and even criminals decrypt the encrypted receipt field.
- the client when the client initiates a transaction to the first blockchain node, the client can use the initial key of the symmetric encryption algorithm to encrypt the transaction content to obtain the transaction; accordingly, the first blockchain node can obtain
- the initial key is used to directly or indirectly encrypt the receipt field.
- the initial key can be negotiated in advance by the client and the first blockchain node, or sent by the key management server to the client and the first blockchain node, or sent by the client to the first blockchain node.
- the client can encrypt the initial key with the public key of the asymmetric encryption algorithm, and then send the encrypted initial key to the first block
- the chain node, and the first blockchain node decrypts the encrypted initial key through the private key of the asymmetric encryption algorithm to obtain the initial key, which is the digital envelope encryption described above, which will not be repeated here.
- the first blockchain node may use the aforementioned initial key to encrypt the receipt field.
- Different transactions can use the same initial key, so that all transactions submitted by the same user are encrypted with this initial key, or different transactions can use different initial keys.
- the client can randomly generate an initial key for each transaction. Key to improve security.
- the first blockchain node may generate a derived key according to the initial key and the impact factor, and encrypt the receipt field through the derived key.
- the derived key can increase the degree of randomness, thereby increasing the difficulty of being compromised and helping to optimize the security protection of data.
- the impact factor can be related to the transaction; for example, the impact factor can include the specified bits of the transaction hash value.
- the first blockchain node can associate the initial key with the first 16 bits (or the first 32 bits and the last 16 bits) of the transaction hash value. Bits, last 32 bits, or other bits) are spliced, and the spliced string is hashed to generate a derived key.
- the first blockchain node may also adopt an asymmetric encryption method, that is, encrypt the receipt field with the public key of the asymmetric encryption algorithm, and accordingly, the client may use the private encryption algorithm of the asymmetric encryption algorithm.
- the key decrypts the above encrypted receipt field.
- the key of the asymmetric encryption algorithm for example, can be that the client generates a pair of public and private keys, and sends the public key to the first blockchain node in advance, so that the first blockchain node can use the receipt field Public key encryption.
- the first blockchain node realizes the function by running the code used to realize the function. Therefore, for the functions that need to be implemented in the TEE, the relevant code also needs to be executed. For the code executed in the TEE, it needs to comply with the relevant specifications and requirements of the TEE; accordingly, for the code used to implement a certain function in the related technology, the code needs to be rewritten in combination with the specifications and requirements of the TEE. Large amount of development, and easy to produce loopholes (bugs) in the process of rewriting, affecting the reliability and stability of function implementation.
- the first blockchain node can execute the storage function code outside the TEE to store the receipt data generated in the TEE (including the receipt field in plain text that needs to be stored in plain text, and the receipt field in cipher text that needs to be stored in cipher text.
- TEE Is stored in an external storage space outside the TEE, so that the storage function code can be the code used to implement the storage function in the related technology, and does not need to be rewritten in conjunction with the specifications and requirements of the TEE to achieve safe and reliable receipt data
- the storage of TEE can not only reduce the amount of related code development without affecting security and reliability, but also reduce TCB (Trusted Computing Base) by reducing the related code of TEE, making TEE technology and regional In the process of combining block chain technology, the additional security risks caused are in a controllable range.
- TCB Trusted Computing Base
- the first blockchain node may execute the write cache function code in the TEE to store the above-mentioned receipt data in the write cache in the TEE.
- the write cache may correspond to the one shown in FIG. 1 "Cache".
- the first blockchain node outputs the data in the write cache from the trusted execution environment to be stored in the external storage space.
- the write cache function code can be stored in the TEE in plain text, and the cache function code in the plain text can be directly executed in the TEE; or the write cache function code can be stored outside the TEE in cipher text, such as the above External storage space (such as the "package + storage” shown in Figure 4, where "package” means that the first blockchain node packages the transaction into blocks outside of the trusted execution environment), the cipher text form
- the write cache function code is read into the TEE, decrypted into the plaintext code in the TEE, and executed.
- Write cache refers to a "buffer" mechanism provided to avoid “impact” to the external storage space when data is written to the external storage space.
- the above-mentioned write cache can be implemented by using buffer; of course, the write cache can also be implemented by using cache, which is not limited in this specification.
- the write cache mechanism can be used to write the data in the cache to the external storage space in batches, thereby reducing the gap between the TEE and the external storage space. The number of interactions increases the efficiency of data storage.
- TEE may need to retrieve the generated data.
- the data to be called happens to be in the write cache, the data can be read directly from the write cache.
- the interaction between the external storage space eliminates the decryption process of the data read from the external storage space, thereby improving the data processing efficiency in the TEE.
- the write cache can also be established outside the TEE.
- the first blockchain node can execute the write cache function code outside the TEE, so as to store the above receipt data in the write cache outside the TEE, and further write The data in the cache is stored in an external storage space.
- the receiving unit 61 receives the encrypted transaction
- the decryption unit 62 decrypts the transaction in the trusted execution environment to obtain the transaction content
- the execution unit 63 executes the transaction content to obtain receipt data
- the storage unit 64 stores the receipt data, so that the receipt fields that meet the preset conditions in the receipt data are stored in plain text, and the remaining receipt fields are stored in cipher text.
- the storage unit 64 is specifically configured to:
- the code of the system contract is executed to store the receipt fields meeting preset conditions in the receipt data in plain text, and the remaining receipt fields in cipher text.
- the system contract includes: a preset system contract recorded in the genesis block, or an updated system contract corresponding to the preset system contract.
- the preset condition is in the transaction; or,
- the preset condition is located in the smart contract called by the transaction; or,
- the preset condition is located in another smart contract called by the smart contract called by the transaction.
- the preset conditions include general conditions corresponding to all receipt fields in the receipt data; or,
- the preset condition includes a dedicated condition corresponding to each receipt field in the receipt data.
- the preset condition includes at least one of the following: the corresponding receipt field contains preset content, and the value of the corresponding receipt field belongs to a preset numerical interval.
- the storage unit 64 is specifically configured to:
- the storage function code is executed outside the trusted execution environment to store the receipt data in an external storage space outside the trusted execution environment.
- the key used by the first blockchain node to encrypt the receipt data includes: a key of a symmetric encryption algorithm or a key of an asymmetric encryption algorithm.
- the key of the symmetric encryption algorithm includes an initial key provided by the client; or, the key of the symmetric encryption algorithm includes a derived key generated by the initial key and an influence factor.
- the transaction is encrypted by the initial key, and the initial key is encrypted by a public key of an asymmetric encryption algorithm; the decryption unit 62 is specifically configured to:
- the initial key is generated by the client; or, the initial key is sent to the client by the key management server.
- the impact factor is related to the transaction.
- the impact factor includes: a designated bit of the hash value of the transaction.
- a programmable logic device Programmable Logic Device, PLD
- FPGA Field Programmable Gate Array
- HDL Hardware Description Language
- ABEL Advanced Boolean Expression Language
- AHDL Altera Hardware Description Language
- HDCal JHDL
- Lava Lava
- Lola MyHDL
- PALASM RHDL
- Verilog Verilog
- the controller can be implemented in any suitable manner.
- the controller can take the form of, for example, a microprocessor or a processor and a computer-readable medium storing computer-readable program codes (such as software or firmware) executable by the (micro)processor. , Logic gates, switches, application specific integrated circuits (ASICs), programmable logic controllers and embedded microcontrollers. Examples of controllers include but are not limited to the following microcontrollers: ARC625D, Atmel AT91SAM, Microchip PIC18F26K20 and Silicon Labs C8051F320, the memory controller can also be implemented as part of the memory control logic.
- controller in addition to implementing the controller in a purely computer-readable program code manner, it is entirely possible to program the method steps to make the controller use logic gates, switches, application specific integrated circuits, programmable logic controllers and embedded The same function can be realized in the form of a microcontroller, etc. Therefore, such a controller can be regarded as a hardware component, and the devices included in it for implementing various functions can also be regarded as a structure within the hardware component. Or even, the device for realizing various functions can be regarded as both a software module for realizing the method and a structure within a hardware component.
- 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 may be provided as methods, systems, or computer program products. 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.
- a 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 which tasks are performed by remote processing devices connected through a communication network.
- 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 functions specified in a flow or multiple flows in the flowchart and/or a 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). Memory is an example of computer readable media.
- 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, magnetic 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 in one or more embodiments of this specification to describe various information, 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 certainty”.
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- General Physics & Mathematics (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Storage Device Security (AREA)
Abstract
L'invention concerne un procédé de stockage de reçus et un nœud basé sur une condition de détermination. Le procédé peut comprendre les étapes suivantes : un premier nœud de chaîne de blocs reçoit une transaction chiffrée (202) ; le premier nœud de chaîne de blocs déchiffre la transaction dans un environnement d'exécution de confiance et exécute un contenu de transaction obtenu pour obtenir des données de reçus (204) ; et le premier nœud de chaîne de blocs stocke les données de reçus de façon à ce qu'un champ de reçu, qui remplit une condition prédéfinie dans les données de reçus, soit stocké sous forme de texte en clair, et les champs de reçus restants soient stockés sous forme de texte chiffré (206).
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910419170.6A CN110245943B (zh) | 2019-05-20 | 2019-05-20 | 基于判断条件的收据存储方法和节点 |
CN201910419170.6 | 2019-05-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020233633A1 true WO2020233633A1 (fr) | 2020-11-26 |
Family
ID=67884504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/091412 WO2020233633A1 (fr) | 2019-05-20 | 2020-05-20 | Procédé de stockage de reçus et nœud basé sur une condition de détermination |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110245943B (fr) |
WO (1) | WO2020233633A1 (fr) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110263089B (zh) * | 2019-05-20 | 2021-05-04 | 创新先进技术有限公司 | 结合交易与事件类型的条件限制的收据存储方法和节点 |
CN110245943B (zh) * | 2019-05-20 | 2021-04-23 | 创新先进技术有限公司 | 基于判断条件的收据存储方法和节点 |
WO2020233425A1 (fr) * | 2019-05-20 | 2020-11-26 | 创新先进技术有限公司 | Procédé et nœud de stockage de reçu basés sur une condition de détermination |
JP6830635B1 (ja) * | 2020-02-21 | 2021-02-17 | 株式会社LayerX | データ管理方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107294709A (zh) * | 2017-06-27 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种区块链数据处理方法、装置及*** |
CN109033855A (zh) * | 2018-07-18 | 2018-12-18 | 腾讯科技(深圳)有限公司 | 一种基于区块链的数据传输方法、装置及存储介质 |
CN109034924A (zh) * | 2018-08-16 | 2018-12-18 | 腾讯科技(深圳)有限公司 | 电子票据生成方法、装置、存储介质和计算机设备 |
CN109547477A (zh) * | 2018-12-27 | 2019-03-29 | 石更箭数据科技(上海)有限公司 | 一种数据处理方法及其装置、介质、终端 |
CN109635163A (zh) * | 2018-10-31 | 2019-04-16 | 优信数享(北京)信息技术有限公司 | 一种基于区块链的物品数据管理方法及*** |
CN110245943A (zh) * | 2019-05-20 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 基于判断条件的收据存储方法和节点 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101321100B (zh) * | 2007-06-04 | 2012-11-07 | 华为技术有限公司 | 一种通信方法和***、及家用基站 |
US10192198B2 (en) * | 2014-11-05 | 2019-01-29 | HURU Systems Ltd. | Tracking code generation, application, and verification using blockchain technology |
CN105976231A (zh) * | 2016-06-24 | 2016-09-28 | 深圳前海微众银行股份有限公司 | 基于区块链智能合约的资产管理方法及节点 |
CN106559211B (zh) * | 2016-11-22 | 2019-12-13 | 中国电子科技集团公司第三十研究所 | 一种区块链中隐私保护智能合约方法 |
CN107342858B (zh) * | 2017-07-05 | 2019-09-10 | 武汉凤链科技有限公司 | 一种基于可信环境的智能合约保护方法和*** |
WO2019055290A1 (fr) * | 2017-09-12 | 2019-03-21 | Northwestern University | Réseau de distribution de chaîne de blocs |
CN108573438A (zh) * | 2018-05-09 | 2018-09-25 | 深圳汇创联合自动化控制有限公司 | 一种基于区块链的用户电力自主交易*** |
CN109299217B (zh) * | 2018-11-02 | 2019-10-18 | 符安文 | 一种基于区块链的安全存储和检索方法 |
CN109672693B (zh) * | 2019-02-02 | 2021-06-04 | 江苏通付盾区块链科技有限公司 | 基于区块链的彩票兑奖方法及装置 |
-
2019
- 2019-05-20 CN CN201910419170.6A patent/CN110245943B/zh active Active
-
2020
- 2020-05-20 WO PCT/CN2020/091412 patent/WO2020233633A1/fr active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107294709A (zh) * | 2017-06-27 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种区块链数据处理方法、装置及*** |
CN109033855A (zh) * | 2018-07-18 | 2018-12-18 | 腾讯科技(深圳)有限公司 | 一种基于区块链的数据传输方法、装置及存储介质 |
CN109034924A (zh) * | 2018-08-16 | 2018-12-18 | 腾讯科技(深圳)有限公司 | 电子票据生成方法、装置、存储介质和计算机设备 |
CN109635163A (zh) * | 2018-10-31 | 2019-04-16 | 优信数享(北京)信息技术有限公司 | 一种基于区块链的物品数据管理方法及*** |
CN109547477A (zh) * | 2018-12-27 | 2019-03-29 | 石更箭数据科技(上海)有限公司 | 一种数据处理方法及其装置、介质、终端 |
CN110245943A (zh) * | 2019-05-20 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 基于判断条件的收据存储方法和节点 |
Also Published As
Publication number | Publication date |
---|---|
CN110245943A (zh) | 2019-09-17 |
CN110245943B (zh) | 2021-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020233623A1 (fr) | Procédé de stockage de reçu et nœud combinant un type de transaction et un état d'évaluation | |
WO2020233616A1 (fr) | Procédé de stockage de reçu et nœud utilisant un marquage de code en combinaison avec un type de transaction et un type d'utilisateur | |
WO2020233630A1 (fr) | Procédé et nœud de mémorisation de reçus en fonction du type d'utilisateur | |
WO2020233625A1 (fr) | Procédé de stockage de reçus combinant un type d'utilisateur, des conditions de détermination et un nœud | |
WO2020233642A1 (fr) | Procédé de stockage de reçu conditionnel et nœud qui combinent un marquage de code et une dimension de type | |
WO2020233644A1 (fr) | Procédé de stockage de reçu conditionnel et nœud combinant des dimensions de type de code et d'annotation | |
WO2020233626A1 (fr) | Procédé et nœud de stockage de reçu combinés à une limitation conditionnelle de types de transactions et d'utilisateurs | |
WO2020233643A1 (fr) | Procédé et nœud de stockage de reçu utilisant des informations multidimensionnelles et ayant une restriction | |
WO2020233615A1 (fr) | Procédé de stockage de reçu combinant un type d'utilisateur et un type de fonction d'événement et nœud | |
WO2020233635A1 (fr) | Procédé de stockage de reçu combinant des restrictions conditionnelles de multiples types de dimensions et nœud | |
WO2020233619A1 (fr) | Procédé et nœud de stockage de reçu en combinaison avec un type d'utilisateur et un type de transaction | |
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 | |
WO2020233638A1 (fr) | Procédé et nœud de mémorisation de reçus basés sur un marquage de codes et sur un type de transaction | |
WO2020233613A1 (fr) | Procédé et noeud de stockage de reçu conditionnel qui combinent le marquage de code avec un type de transaction | |
WO2020233637A1 (fr) | Procédé de stockage de reçu combinant un marquage de code avec un type d'utilisateur, et nœud | |
WO2020233622A1 (fr) | Procédé de stockage de reçus et nœud sur la base d'un étiquetage de code et de multiples types de dimensions | |
WO2020233609A1 (fr) | Procédé de stockage de réception conditionnel et nœud combinant le marquage de code avec le type d'utilisateur | |
WO2020233640A1 (fr) | Procédé de mémorisation de reçus et nœud basés sur un marquage de code et condition de détermination | |
WO2020233624A1 (fr) | Procédé de mémorisation de reçus et nœud utilisant un type de transaction en combinaison avec un type de fonction d'événement | |
CN110020549B (zh) | 区块链中实现隐私保护的方法、节点和存储介质 | |
WO2020233612A1 (fr) | Procédé et nœud de stockage de reçu combinant une annotation de code avec des types de transaction et d'événement | |
WO2020233610A1 (fr) | Procédé de stockage de reçu combinant un marquage de code avec un type d'utilisateur et d'événement, et nœud | |
WO2020233631A1 (fr) | Procédé et nœud de stockage de reçu basés sur le type de transaction | |
WO2020233350A1 (fr) | Procédé, nœud et système de mémoire de reçu basés sur des journaux en clair | |
CN111901402A (zh) | 区块链中实现隐私保护的方法、节点和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20810464 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: 20810464 Country of ref document: EP Kind code of ref document: A1 |