CN110020855B - Method, node and storage medium for realizing privacy protection in block chain - Google Patents

Method, node and storage medium for realizing privacy protection in block chain Download PDF

Info

Publication number
CN110020855B
CN110020855B CN201910100728.4A CN201910100728A CN110020855B CN 110020855 B CN110020855 B CN 110020855B CN 201910100728 A CN201910100728 A CN 201910100728A CN 110020855 B CN110020855 B CN 110020855B
Authority
CN
China
Prior art keywords
ciphertext
execution result
plaintext
transaction
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910100728.4A
Other languages
Chinese (zh)
Other versions
CN110020855A (en
Inventor
闫莺
魏长征
赵博然
宋旭阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910100728.4A priority Critical patent/CN110020855B/en
Priority to CN202010671021.1A priority patent/CN111899017A/en
Publication of CN110020855A publication Critical patent/CN110020855A/en
Application granted granted Critical
Publication of CN110020855B publication Critical patent/CN110020855B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords

Abstract

One or more embodiments of the present specification provide a method, a node, and a storage medium for implementing privacy protection in a blockchain, where the method may include: the first block chain link point decrypts the acquired ciphertext transaction to acquire corresponding plaintext transaction content; the first block chain node executes the plaintext transaction content in a trusted execution environment, encrypts an obtained plaintext execution result into a ciphertext execution result and outputs the ciphertext execution result from the trusted execution environment; the first blockchain node executes the storage function code outside the trusted execution environment to store the ciphertext execution result to an external storage space outside the trusted execution environment.

Description

Method, node and storage medium for realizing privacy protection in block chain
Technical Field
One or more embodiments of the present disclosure relate to the field of blockchain technologies, and in particular, to a method, a node, and a storage medium for implementing privacy protection in a blockchain.
Background
The blockchain technique is built on top of a transport network, such as a point-to-point network. Network nodes in a transport network utilize a chained data structure to validate and store data and employ a distributed node consensus algorithm to generate and update data. The nodes in these blockchain networks sometimes need to be increased.
The two biggest challenges in the current enterprise-level blockchain platform technology are privacy and performance, which are often difficult to solve simultaneously. Most solutions trade privacy for loss of performance or do not consider privacy much to pursue performance. Common encryption technologies for solving privacy problems, such as Homomorphic encryption (Homomorphic encryption) and Zero-knowledge proof (Zero-knowledge proof), have high complexity and poor universality, and may cause serious performance loss.
In terms of addressing privacy, a Trusted Execution Environment (TEE) is another approach. The TEE can play a role of a black box in hardware, a code and data operating system layer executed in the TEE cannot be peeped, and the TEE can be operated only through an interface defined in advance in the code. In the aspect of efficiency, due to the black box property of the TEE, plaintext data is operated in the TEE instead of complex cryptography operation in homomorphic encryption, and the efficiency of the calculation process is not lost, so that the safety and privacy of a block chain can be improved to a great extent on the premise of small performance loss by combining with the TEE. The industry is concerned with TEE solutions, and almost all mainstream chip and Software consortiums have their own TEE solutions, including Software-oriented TPM (Trusted Platform Module) and hardware-oriented Intel SGX (Software Guard Extensions), ARM Trustzone (Trusted zone), and AMD PSP (Platform Security Processor).
Disclosure of Invention
In view of the above, one or more embodiments of the present specification provide a method, node, and storage medium for implementing privacy protection in a blockchain.
To achieve the above object, one or more embodiments of the present disclosure provide the following technical solutions:
according to a first aspect of one or more embodiments of the present specification, there is provided a method for implementing privacy protection in a blockchain, including:
the first block chain link point decrypts the acquired ciphertext transaction to acquire corresponding plaintext transaction content;
the first block chain node executes the plaintext transaction content in a trusted execution environment, encrypts an obtained plaintext execution result into a ciphertext execution result and outputs the ciphertext execution result from the trusted execution environment;
the first blockchain node executes the storage function code outside the trusted execution environment to store the ciphertext execution result to an external storage space outside the trusted execution environment.
According to a second aspect of one or more embodiments of the present specification, there is provided a node in a blockchain for implementing privacy protection, including:
the decryption unit is used for decrypting the acquired ciphertext transaction to acquire corresponding plaintext transaction content;
the execution unit is used for executing the plaintext transaction content in a trusted execution environment, encrypting an obtained plaintext execution result into a ciphertext execution result and outputting the ciphertext execution result from the trusted execution environment;
and the storage unit is used for executing the storage function codes outside the trusted execution environment so as to store the ciphertext execution result to an external storage space outside the trusted execution environment.
According to a third aspect of one or more embodiments of the present description, there is provided a computer readable storage medium having stored thereon computer instructions which, when executed by a processor, implement the steps of the method according to the first aspect.
Drawings
Fig. 1 is a flowchart of a method for implementing privacy protection in a blockchain according to an exemplary embodiment.
Fig. 2 is a schematic diagram of a full link privacy protection provided by an example embodiment.
FIG. 3 is a schematic diagram of creating an intelligent contract, provided by an exemplary embodiment.
FIG. 4 is a schematic diagram of invoking an intelligent contract, provided by an exemplary embodiment.
FIG. 5 is a schematic diagram of creating and invoking an intelligent contract according to an exemplary embodiment.
Fig. 6 is a block diagram of a node in a blockchain for implementing privacy protection according to an exemplary embodiment.
Detailed Description
Reference will now be made in detail to the exemplary embodiments, examples of which are illustrated in the accompanying drawings. When the following description refers to the accompanying drawings, like numbers in different drawings represent the same or similar elements unless otherwise indicated. The implementations described in the following exemplary embodiments do not represent all implementations consistent with one or more embodiments of the present specification. Rather, they are merely examples of apparatus and methods consistent with certain aspects of one or more embodiments of the specification, as detailed in the claims which follow.
It should be noted that: in other embodiments, the steps of the corresponding methods are not necessarily performed in the order shown and described herein. In some other embodiments, the method may include more or fewer steps than those described herein. Moreover, a single step described in this specification may be broken down into multiple steps for description in other embodiments; multiple steps described in this specification may be combined into a single step in other embodiments.
Blockchains are generally divided into three types: public chain (Public Blockchain), private chain (PrivateBlockchain) and alliance chain (Consortium Blockchain). In addition, there are various types of combinations, such as private chain + federation chain, federation chain + public chain, and other different combinations. The most decentralized of these is the public chain. The public chain is represented by bitcoin and ether house, and the participators joining the public chain can read the data record on the chain, participate in transaction, compete for accounting right of new blocks, and the like. Furthermore, each participant (i.e., node) is free to join and leave the network and perform related operations. Private chains are the opposite, with the network's write rights controlled by an organization or organization and the data read rights specified by the organization. Briefly, a private chain can be a weakly centralized system with strictly limited and few participating nodes. This type of blockchain is more suitable for use within a particular establishment. A federation chain is a block chain between a public chain and a private chain, and "partial decentralization" can be achieved. Each node in a federation chain typically has a physical organization or organization corresponding to it; participants jointly maintain blockchain operation by authorizing to join the network and forming a benefit-related alliance.
The following describes, with reference to fig. 1, an implementation process of an embodiment of a method for implementing privacy protection in a block chain in this specification:
and 102, decrypting the acquired ciphertext transaction by the first block link point to acquire corresponding plaintext transaction content.
In one embodiment, the ciphertext transaction may be submitted by the client to the first blockchain node. For example, after the user generates the ciphertext transaction at the client, the user submits the ciphertext transaction to the first blockchain node through the client. Taking fig. 2 as an example, the first block link point includes a transaction/query interface, which can interface with the client, so that the client can submit the ciphertext transaction to the first block link point.
The ciphertext transaction may also be forwarded by the second blockchain link point to the first blockchain node. For example, after the user generates the ciphertext transaction at the client, the user submits the ciphertext transaction to the second blockchain node through the client; the second blockchain node then further forwards the ciphertext transaction to the first blockchain node. Taking fig. 2 as an example, the interface may interface with other blockchain nodes, for example, the other blockchain nodes may include the second blockchain node, so that the second blockchain node may forward the ciphertext transaction to the first blockchain node. Similarly, the second block link point may also interface with the client through its own transaction/query interface to receive ciphertext transactions submitted by the client.
For example, in a blockchain network using consensus algorithms such as Proof of workload (POW), Proof of equity (POS), Proof of commission rights (DPOS), etc., a second blockchain node immediately spreads (e.g., broadcasts) the ciphertext transaction submitted by the client to other blockchain nodes in the ethernet network.
For example, in a block chain network using a Practical Byzantine Fault Tolerance (PBFT) mechanism or the like, the bookkeeping node is already agreed before the current round of bookkeeping, so that after the second block chain node receives the ciphertext transaction submitted by the client, if the second block chain node is not the bookkeeping node, the ciphertext transaction is sent to the determined bookkeeping node, and the transaction (including the ciphertext transaction) is packaged and sent to each verification node by the bookkeeping node in a further consensus stage. When the second block link point is the determined accounting node, after the other block link points receive the ciphertext transaction submitted by the client, the ciphertext transaction can be forwarded to the second block link node; the second blockchain link point may then package the ciphertext transaction (or other transactions as well) to each verification node, including the first blockchain node, during the consensus phase.
And 104, executing the plaintext transaction content in a trusted execution environment by the first block chain node, encrypting the obtained plaintext execution result into a ciphertext execution result, and outputting the ciphertext execution result from the trusted execution environment.
In an embodiment, the first block link point may decrypt the ciphertext transaction in a Trusted Execution Environment (TEE). The TEE is a trusted execution environment that is based on a secure extension of the CPU hardware and is completely isolated from the outside. TEE was originally proposed by Global Platform to address the secure isolation of resources on mobile devices, providing a trusted and secure execution environment for applications parallel to the operating system. The Trust Zone technology of ARM realizes the real commercial TEE technology at the earliest.
Along with the rapid development of the internet, the security requirement is higher and higher, and more requirements are provided for the TEE by mobile equipment, cloud equipment and a data center. The concept of TEE has also been developed and expanded at a high rate. The concept now referred to as TEE has been a more generalized TEE than the concept originally proposed. For example, server chip manufacturers Intel, AMD, etc. have introduced hardware-assisted TEE in turn and enriched the concept and characteristics of TEE, which have gained wide acceptance in the industry. The mention of TEE now is more generally directed to such hardware assisted TEE techniques. Unlike the mobile terminal, the cloud access requires remote access, and the end user is not visible to the hardware platform, so the first step of using the TEE is to confirm the authenticity and credibility of the TEE. Therefore, the current TEE technology introduces a remote attestation mechanism which is endorsed by a hardware manufacturer (mainly a CPU manufacturer) and ensures that a user can verify the TEE state through a digital signature technology. Meanwhile, the security requirement which cannot be met by only safe resource isolation is also met, and further data privacy protection is also provided. Commercial TEE including Intel SGX, AMD SEV also provide memory encryption techniques, limiting trusted hardware within the CPU, with the data of the bus and memory being ciphertext to prevent snooping by malicious users. For example, TEE technology such as intel's software protection extensions (SGX) isolates code execution, remote attestation, secure configuration, secure storage of data, and trusted paths for executing code. Applications running in the TEE are secured and are almost impossible to access by third parties.
Taking the Intel SGX technology as an example, SGX provides an enclosure (also called enclave), that is, an encrypted trusted execution area in memory, and a CPU protects data from being stolen. Taking the example that the first block link point adopts a CPU supporting SGX, a part of an EPC (enclosure Page Cache, Enclave Page Cache, or Enclave Page Cache) may be allocated in the Memory by using a newly added processor instruction, and data therein is encrypted by an Encryption Engine MEE (Memory Encryption Engine) in the CPU. The encrypted content in the EPC is decrypted into plaintext only after entering the CPU. Therefore, in the SGX, a user may not trust an operating System, a VMM (Virtual Machine Monitor), or even a BIOS (basic input Output System), and only need to trust the CPU to ensure that private data is not leaked. In practical application, the private data can be encrypted and then transmitted to the enclosure in a ciphertext form, and the corresponding secret key is transmitted to the enclosure through remote certification. Then, the operation is performed by using the data under the encryption protection of the CPU, and the result is returned in a ciphertext form. In this mode, not only can the powerful calculation be utilized, but also data leakage is not worried about.
Assuming that the above-described ciphertext transaction is generated by a user at a client, the client may first generate plaintext transaction content and then encrypt the plaintext transaction content with a key. The encryption can adopt symmetric encryption or asymmetric encryption. Accordingly, the first block link point may decrypt the ciphertext transaction with the corresponding key to obtain plaintext transaction content. If the client side encrypts the plaintext transaction content by using a symmetric encryption mode, namely, the private key of a symmetric encryption algorithm, the first block link point can decrypt the ciphertext transaction by using the private key of the symmetric encryption algorithm correspondingly. The encryption algorithm used for symmetric encryption is, for example, DES algorithm, 3DES algorithm, TDEA algorithm, Blowfish algorithm, RC5 algorithm, IDEA algorithm, etc. The key of the symmetric encryption algorithm may be determined by client and first chunk link node negotiation, for example.
If the plaintext transaction content is encrypted in an asymmetric encryption manner, i.e. by using the private key of the asymmetric encryption algorithm, the first block link point can decrypt the ciphertext transaction by using the private key of the asymmetric encryption algorithm correspondingly. Examples of asymmetric encryption algorithms are RSA, Elgamal, knapsack Algorithm, Rabin, D-H, ECC (elliptic curve encryption Algorithm), etc. The key of the asymmetric encryption algorithm may be, for example, a pair of a public key and a private key generated by the first chunk node, and the public key is sent to the client before step 402, so that the client may encrypt the plaintext transaction content with the key in step 402.
The key of the asymmetric encryption algorithm may also be generated by a key management server. Through a remote certification mode, the key management server sends the private key to the first blockchain node, and specifically, the private key can be transmitted into a surrounding ring of the first blockchain node. The first block link point may comprise a plurality of enclosures and the private key may be passed into a security enclosure of the enclosures; for example, the security circle may be a QE (listening enclosure) circle, rather than an AE (Application enclosure) circle. For asymmetrically encrypted public keys, the client may be sent by a key management server. Therefore, in step 402, the client may encrypt the plaintext transaction content with the public key, and accordingly, the first blockchain node may decrypt the ciphertext transaction with the private key to obtain the plaintext transaction content included in the ciphertext transaction.
The client can also adopt a mode of combining symmetric encryption with asymmetric encryption. For example, the client encrypts the plaintext transaction content by using a symmetric encryption algorithm, that is, encrypts the plaintext transaction content by using a private key of the symmetric encryption algorithm, and encrypts a private key used in the symmetric encryption algorithm by using an asymmetric encryption algorithm. Generally, a public key of an asymmetric encryption algorithm is used to encrypt a private key used in the symmetric encryption algorithm. Therefore, after the first block chain node receives the encrypted transaction, the first block chain node can firstly decrypt by using the private key of the asymmetric encryption algorithm to obtain the private key of the symmetric encryption algorithm, and then decrypt by using the private key of the symmetric encryption algorithm to obtain the plaintext transaction content.
For example, the key management server may send the private key of the asymmetric cryptographic algorithm to the enclosure of the first blockchain node and send the private key of the asymmetric cryptographic algorithm to the client through remote attestation. Therefore, the client can encrypt the plaintext transaction content by using the private key of the symmetric encryption algorithm, that is, encrypt the plaintext transaction content by using the private key of the symmetric encryption algorithm, and encrypt the private key used in the symmetric encryption algorithm by using the public key of the asymmetric encryption algorithm. Further, the client may send the ciphertext transaction and an encrypted private key (obtained by encrypting a private key used in the symmetric encryption algorithm with a public key of the asymmetric encryption algorithm) to the first blockchain node. After the first block link node receives the ciphertext transaction and the encrypted private key, the encrypted private key can be decrypted by using the private key of the asymmetric encryption algorithm to obtain the private key of the symmetric encryption algorithm, and then the ciphertext transaction is decrypted by using the private key of the symmetric encryption algorithm to obtain the plaintext transaction content. The encryption method is generally called digital envelope encryption.
Whether public, private, or alliance, may provide the functionality of an intelligent contract. An intelligent contract on a blockchain is a contract that can be executed on a blockchain system triggered by a transaction. An intelligent contract may be defined in the form of code. Of course, the above-mentioned plaintext transaction contents are not necessarily related to the intelligent contract, for example, the plaintext transaction contents only include transfer information and the like, but by using the plaintext transaction contents related to the intelligent contract, a relatively more complicated processing logic can be implemented.
Taking the ethernet as an example, the support user creates and invokes some complex logic in the ethernet network, which is the biggest challenge of ethernet to distinguish from bitcoin blockchain technology. The core of the ethernet plant as a programmable blockchain is the ethernet plant virtual machine (EVM), each ethernet plant node can run the EVM. The EVM is a well-behaved virtual machine, which means that a variety of complex logic can be implemented through it. The user issuing and invoking smart contracts in the etherhouse is running on the EVM. In fact, what the virtual machine directly runs is virtual machine code (virtual machine bytecode, hereinafter referred to as "bytecode"). The intelligent contracts deployed on the blockchain may be in the form of bytecodes.
For example, as shown in fig. 3, after Bob sends a transaction containing information to create an intelligent contract to the ethernet network, the EVM of node 1 may execute the transaction and generate a corresponding contract instance. The data field of the transaction is stored with the byte code, and the to field of the transaction is an empty account. After the agreement is achieved between the nodes through the consensus mechanism, the contract is successfully created, and the subsequent user can call the contract.
After the contract is created, a contract account corresponding to the intelligent contract appears on the blockchain and has a specific address, and the contract code and the account storage are stored in the contract account. The behavior of the intelligent contract is controlled by the contract code, while the account storage of the intelligent contract preserves the state of the contract. In other words, an intelligent contract causes a virtual account to be generated on a blockchain that contains a contract code and an account store (Storage).
As mentioned above, the data field containing the transaction that created the smart contract holds what may be the byte code of the smart contract. A bytecode consists of a series of bytes, each of which can identify an operation. Based on the multiple considerations of development efficiency, readability and the like, a developer can select a high-level language to write intelligent contract codes instead of directly writing byte codes. The intelligent contract code written by the high-level language is compiled by a compiler to generate byte codes, and the byte codes can be deployed on the block chain. The high-level languages supported by Etherns are many, such as Solidity, Serpent, LLL, etc.
Further, as shown in fig. 4, still taking the ethernet house as an example, after Bob sends a transaction containing the information of invoking the intelligent contract to the ethernet house network, the EVM of node 1 may execute the transaction and generate the corresponding contract instance. The from field of the transaction in fig. 4 is the address of the account from which the intelligent contract was initiated, the "0 x692a70d2 …" in the to field represents the address of the intelligent contract being invoked, the value field is the value in the etherhouse in the tai-currency, and the data field of the transaction holds the method and parameters for invoking the intelligent contract. After invoking the smart contract, the value of balance may change. Subsequently, a certain client can check the current value of balance through a certain block link point.
The intelligent contract can be independently executed at each node in the blockchain network in a specified mode, and all execution records and data are stored on the blockchain, so that after the transaction is completed, transaction certificates which cannot be tampered and cannot be lost are stored on the blockchain.
A schematic diagram of creating an intelligent contract and invoking the intelligent contract is shown in fig. 5. An intelligent contract is created in an Ethernet workshop and needs to be subjected to the processes of compiling the intelligent contract, changing the intelligent contract into byte codes, deploying the intelligent contract to a block chain and the like. The intelligent contract is called in the Ethernet workshop, a transaction pointing to the intelligent contract address is initiated, and the intelligent contract codes are operated in the virtual machine of each node in the Ethernet workshop in a distributed mode.
And the first block link point decrypts the ciphertext transaction to obtain the plaintext transaction content. The clear text transaction content may contain code of the intelligent contract for creating the intelligent contract in the blockchain; the clear text transaction content may contain a contract address of a certain intelligent contract that has been created in the blockchain for invoking the intelligent contract.
Whether used to create or invoke an intelligent contract, a first block link point may pass code that executes the intelligent contract to complete a transaction. The first block link point may execute code of the intelligent contract in a trusted execution environment. When the code of the intelligent contract is positioned in the ciphertext transaction, the first block link point decrypts the ciphertext transaction to obtain the plaintext transaction content, wherein the plaintext transaction content comprises the code of the intelligent contract of the plaintext; when the intelligent contract is created in advance and a ciphertext transaction is used for invoking the intelligent contract, if the intelligent contract is encrypted and stored by the first block link point in advance, the first block link point can read the code of the ciphertext intelligent contract into the trusted execution environment and decrypt the code to obtain the clear intelligent contract. Multiple nested structures can be realized among the intelligent contracts; for example, the code in the intelligent contract 1 calls the intelligent contract 2, and the code in the intelligent contract 2 points to the contract address 3 generated by creating the intelligent contract code, so that when the ciphertext transaction calls the code in the intelligent contract 1, the intelligent contract code in the contract address 3 is indirectly called.
In an embodiment, the ciphertext transaction may have a plurality of corresponding intelligent contracts, and the ciphertext transaction has a processing type respectively labeled for each intelligent contract, so that the first block link point may adopt differentiated processing operations for the intelligent contracts of different processing types in the ciphertext transaction; the plaintext execution result includes a plaintext contract execution result corresponding to each intelligent contract. For example, the code of the intelligent contract may include a type field, and the first block link point may determine that the intelligent contract is a privacy processing type or a plaintext processing type based on a value of the type field included in the code of each intelligent contract; for another example, the privacy identifier may be included in the privacy-processing-type intelligent contract, and the privacy identifier may not be included in the plaintext-processing-type intelligent contract; for another example, a plaintext treatment type intelligent contract may contain a plaintext identifier, and a privacy treatment type intelligent contract may not contain the plaintext identifier; accordingly, the first block link point may distinguish between smart contracts of different processing types based on the above-described differences.
Assuming that the ciphertext transaction has a corresponding first intelligent contract, where the first intelligent contract is marked as a privacy processing type, the first block link point may execute the first intelligent contract in a trusted execution environment to obtain a corresponding plaintext contract execution result, and further encrypt the plaintext contract execution result corresponding to the first intelligent contract by using a key to obtain a ciphertext contract execution result, where the ciphertext contract execution result includes the ciphertext contract execution result, and the ciphertext contract execution result may implement ciphertext storage in an external storage space.
Assuming that the ciphertext transaction has a corresponding second intelligent contract, where the second intelligent contract is marked as a plaintext processing type, the first block link point may execute the second intelligent contract in the trusted execution environment to obtain a corresponding plaintext contract execution result, but no further encryption operation is required, and the ciphertext execution result may include the plaintext contract execution result, and the plaintext contract execution result may implement plaintext storage in an external storage space.
Therefore, when all the intelligent contracts contained in the ciphertext transaction are of privacy processing types, the ciphertext execution result contains ciphertext contract execution results corresponding to the intelligent contracts respectively; when the ciphertext transaction simultaneously comprises the intelligent contracts of the privacy processing type and the plaintext processing type, the ciphertext execution result comprises a ciphertext contract execution result and a plaintext contract execution result which respectively correspond to the intelligent contracts.
The ciphertext transactions may be used to create an intelligent contract and/or invoke an intelligent contract.
When the ciphertext transaction is used for creating the intelligent contract, the to field in the transaction is empty, the data fields can respectively contain a plurality of codes of the intelligent contract to be created, and the codes can be marked with the processing type corresponding to the intelligent contract. Then, for a privacy-handling-type intelligent contract, the first block link point may be created as a privacy-type intelligent contract, and the code of the intelligent contract is stored in the external storage space in a ciphertext form. For a plaintext processing type intelligent contract, the first block link point may be created as a plaintext type intelligent contract, and the code of the intelligent contract is stored in the external storage space in a plaintext form.
When the ciphertext transaction is used to invoke an intelligent contract, n to fields may be included in the transaction to respectively correspond to n different contract invocations, such as the to1 field being the address of the intelligent contract 1 to invoke on the intelligent contract 1, the to2 field being the address of the intelligent contract 2 to invoke on the intelligent contract 2, and so on. Then, for each contract call, the corresponding processing type may be noted in the data field, respectively: when the intelligent contract 1 is marked as a privacy processing type, no matter the intelligent contract 1 is an intelligent contract of a privacy type or a plaintext type, after the intelligent contract 1 is executed and a corresponding contract state is changed, a first block chain node encrypts the contract state and stores the contract state into an external storage space; when the intelligent contract 2 is marked as a plaintext processing type, the intelligent contract 2 should be a plaintext type intelligent contract in general (of course, the case that the intelligent contract 2 is a privacy type intelligent contract is not excluded), and the first block chain node performs plaintext storage on the contract state to an external storage space after executing the intelligent contract 2 and causing a corresponding contract state to change.
Of course, when the ciphertext transaction is used to invoke an intelligent contract, if multiple contract invocations all invoke the same intelligent contract, the transaction may only include a to field, the value of the to field is the address of the invoked intelligent contract, and the data field may include information of multiple invocations that need to be implemented for the same intelligent contract. For example, the called intelligent contract is used for carrying out transfer operation at a specified time, the ciphertext transaction can be written into the address of the intelligent contract in the to field, and the information of each call, such as the time, the transfer object, the transfer amount and the like of each call expected to occur, is written into the data field respectively, and the processing types expected to be adopted are marked respectively; for example, when call 1 wishes to transfer amount M1 to account U1 at time t1, labeled as a type of privacy handling, the first block link point may call the smart contract to complete the transfer and store the contract status encrypted to external storage space, and when call 2 wishes to transfer amount M2 to account U2 at time t2, labeled as a type of plaintext handling, the first block link point may call the smart contract to complete the transfer and store the contract status plaintext to external storage space.
When the ciphertext transaction is used to create and invoke intelligent contracts, all of the created intelligent contracts may correspond to an empty to field, and each invoked intelligent contract may use one or more to fields, as appropriate, which may be referred to above in connection with invoking intelligent contracts. Accordingly, the data field may contain the code of the smart contract to be created, the processing type of the relevant smart contract that may be noted in the code, and the data field may contain the processing type noted for the smart contract that is invoked. The first block link point may create and invoke the intelligent contract accordingly according to the marked processing type, and reference may be made to the above-mentioned embodiments of creating the intelligent contract and invoking the intelligent contract, respectively.
Specifically, the first block link point may use a processor instruction newly added in the CPU, allocate a part of the area EPC in the memory, and encrypt the plaintext code by using an encryption engine MEE in the CPU and store the plaintext code in the EPC. The encrypted content in the EPC enters the CPU and is decrypted into plaintext. And in the CPU, operating the code of the plaintext to finish the execution process.
In SGX technology, the code that executes the intelligent contract may load the EVM into the enclosure. In the remote certification process, the key management server can calculate a hash value of a local EVM code, compare the hash value with the hash value of the EVM code loaded in the first block chain link point, and correctly use a comparison result as a necessary condition for passing the remote certification, thereby completing measurement of the code loaded on the SGX enclosure of the first block chain node. Measured, the correct EVM can execute the intelligent contract code in the SGX.
Generally, the contract state changes after the CPU executes the plaintext code. The contract status is stored in the block chain, and from the perspective of the block link point, is written to a database, such as a local database. The database is typically stored on a storage medium, more commonly a persistent storage medium. The persistent storage medium may be a magnetic disk, a floppy disk, or a memory or the like which can restore data after being powered on so as to be persistently stored.
The operation of writing to the database is represented by a code, such as setstore (key, ENC (value, secret _ key)). In the setstore (key, ENC (value _ key)), the key (key) may be written in the same manner as a conventional key. As for the writing of value, Intel SGX technology may be used, ENC denotes enclave, and secret _ key denotes a key used when writing to the database in SGX technology. The key may be a symmetric encryption key, such as a seal (SimpleEncrypted arithmetric Library) key. The seal key may be sent to the first blockchain node by the key management server after remote certification, and may be obtained by negotiation between each node (e.g., the first blockchain node and other blockchain nodes) in the blockchain. The key may also be a key for asymmetric encryption. The key may be stored in a bounding box of the first blockchain node. The first block link point may comprise a plurality of enclosures and the private key may be passed into a security enclosure of the enclosures; for example, the security circle may be a QE circle, rather than an AE circle.
It can be seen that in the embodiments of the present specification, the first tile link node may create a trusted execution environment and ensure that relevant sensitive information (such as transaction content, execution result, etc.) is only decrypted and read or executed in the trusted execution environment, and is in an encrypted state once leaving the trusted execution environment, so that privacy and security can be ensured in a full link for processing transactions.
And 106, executing the storage function code outside the trusted execution environment by the first blockchain node so as to store the ciphertext execution result to an external storage space outside the trusted execution environment.
The first block link point implements a function by running code for implementing the function. Thus, for functions that need to be implemented in a trusted execution environment, the relevant code needs to be executed as well. For code executed in the trusted execution environment, relevant specifications and requirements of the trusted execution environment need to be met; accordingly, for codes used for realizing a certain function in the related art, the codes need to be rewritten in combination with the specifications and requirements of the trusted execution environment, so that not only is a relatively large development amount present, but also a vulnerability (bug) is easily generated in the rewriting process, and the reliability and stability of function realization are affected.
Therefore, the first block chain node can ensure that the ciphertext execution result is sufficiently safe by encrypting the plaintext execution result into the ciphertext execution result through the key, and only decrypting the ciphertext execution result through the trusted execution environment. On this basis, the first block link point executes the storage function code outside the Trusted execution environment and stores the ciphertext execution result into an external storage space outside the Trusted execution environment, so that the storage function code can be a code for realizing a storage function in the related art, and code rewriting is not required to be performed in combination with the specification and requirements of the Trusted execution environment, that is, safe and reliable storage can be realized for the ciphertext execution result, and not only can the development amount of related codes be reduced on the basis of not influencing the safety and reliability, but also the TCB (Trusted Computing Base) can be reduced by reducing the related code of the Trusted execution environment, so that in the process of combining the TEE technology and the block link technology, the additionally caused safety risk is in a controllable range.
In one embodiment, the first block chain node may execute write cache function code within the trusted execution environment to store the plaintext execution results in a write cache within the trusted execution environment, such as the write cache may correspond to a "cache" as shown in fig. 2. Further, the first block link point encrypts the data in the write cache and outputs the encrypted data from the trusted execution environment to the external storage space. The write cache function code can be stored in the trusted execution environment in a plaintext form, and the cache function code in the plaintext form can be directly executed in the trusted execution environment; alternatively, the write cache function code may be stored outside the trusted execution environment in a ciphertext form, for example, in the above-mentioned external storage space (such as the "storage space" shown in fig. 2), and the write cache function code in the ciphertext form may be read into the trusted execution environment, decrypted in the trusted execution environment to be a plaintext code, and executed.
Write caching refers to a "buffering" mechanism provided to avoid causing a "shock" to an external storage space when data is written to the external storage space. For example, the above write cache may be implemented by using a buffer; of course, the write cache may also be implemented by using a cache, which is not limited in this specification. In fact, because the trusted execution environment is an isolated secure environment and the external storage space is located outside the trusted execution environment, the external storage space can be written into the data in the cache in batch by adopting a cache writing mechanism, so that the interaction times between the trusted execution environment and the external storage space are reduced, and the data storage efficiency is improved. Meanwhile, in the process of continuously executing each plaintext transaction content, the trusted execution environment may need to call generated data (such as a value of a contract state), and if the data to be called is just located in the write cache, the data can be directly read from the write cache, so that on one hand, interaction with an external storage space can be reduced, and on the other hand, a decryption process of the data read from the external storage space is omitted, so that the data processing efficiency in the trusted execution environment is improved.
Of course, the write cache may also be established outside the trusted execution environment, for example, the first block node may execute the write cache function code outside the trusted execution environment, so as to store the ciphertext execution result in the write cache outside the trusted execution environment, and further store the data in the write cache in the external storage space.
In an embodiment, the first chunk chain node may encrypt the plaintext execution result according to a query request initiated by a client, and output the encrypted plaintext execution result from the trusted execution environment to return to the client.
For example, the first block link point may read the ciphertext execution result from the external storage space, decrypt the ciphertext execution result into the plaintext execution result, read into the trusted execution environment, encrypt the plaintext execution result, and output the encrypted plaintext execution result from the trusted execution environment, for example, return the encrypted plaintext execution result to the client through the transaction/query interface shown in fig. 2.
For another example, the first block link point may read the plaintext execution result from a read cache in the trusted execution environment, encrypt the plaintext execution result, and output the encrypted plaintext execution result from the trusted execution environment; and the plaintext execution result is read into the trusted execution environment and stored in the read cache after the ciphertext execution result is decrypted into the plaintext execution result. In other words, after the first blockchain node reads the ciphertext execution result from the external storage space and decrypts the ciphertext execution result into the plaintext execution result, the plaintext execution result may be stored in a read cache in the trusted execution environment by executing a read cache function code in the trusted execution environment, for example, the read cache may correspond to "cache" shown in fig. 2; furthermore, for a query request initiated by the client or for data required by the trusted execution environment when executing the plaintext transaction content, data reading can be preferentially performed from the read cache, and if relevant data can be read, reading from the external storage space is not required, so that the number of interactions with the external storage space is reduced, and a data decryption process is omitted.
The read cache is to store the read data in the read cache space in the trusted execution environment in a plaintext form in order to reduce the number of interactions with the external storage space after reading the data from the external storage space into the trusted execution environment. For example, the above read cache may be implemented by using a cache; of course, the read cache may also be implemented by using a buffer, and this specification does not limit this.
The first chunk link node may support both the read cache mechanism and the write cache mechanism described above. With the continuous development of the cache technology, the same cache may not only be used for implementing data reading or data writing, but even simultaneously support the read-write operation of data, so that the boundary between the read cache and the write cache is sometimes not very clear, and thus fig. 2 only illustrates the cache without specifically distinguishing the specific type thereof, and may be configured and adjusted according to actual requirements.
When the first block link point is determined to be the accounting node through competition or negotiation, the first block link point may initiate consensus to the verification node in the block chain according to the ciphertext transaction and the ciphertext execution result. Specifically, the first block link point may determine the current round of transactions that need to be linked, such as a group of transactions including the above ciphertext transaction, and then the first block link point may generate a state tree, a transaction tree, and a receipt tree by executing each transaction in the group of transactions and according to the group of transactions and information such as a transaction execution result corresponding to each transaction, and record root hashes corresponding to root nodes of the three trees in a block header; then, after the first blockchain node packages the above-mentioned set of transactions and generates a new blockchain, the first blockchain node broadcasts the block or the blockchain header to the verification node in the blockchain network (i.e., the blockchain node except the accounting node in the blockchain network), and initiates a consensus proposal. And the verification node verifies the root hash in the block header by executing the group of transactions, and after the proposal is determined to pass the verification, the block containing the group of transactions is added to the tail end of the original block chain (namely the uplink chain), and the world state is updated according to the execution result of the group of transactions. The first block link point can store the ciphertext execution result by executing the storage function code after the confirmation consensus passes; of course, the information may be stored when the unconfirmed consensus passes, and the rollback may be performed after the problem is found.
When the first blockchain node is a verification node but not a billing node, the first blockchain node may receive a consensus proposal initiated by the billing node, the consensus proposal being related to the ciphertext transaction. For example, the accounting node may be a second blockchain node, and the first blockchain node receives a consensus proposal initiated by the second blockchain node, the consensus proposal including the above ciphertext transaction and other transactions, and further including the root nodes of the three trees. The first block chain node can execute the ciphertext transaction and obtain the corresponding ciphertext execution result through the process described above, execute other transactions and obtain the corresponding execution result, then generate the root nodes of the three trees, and compare the root nodes with the root node contained in the block head in the consensus proposition, so as to determine that the consensus proposition passes the verification if the comparison result is consistent, otherwise, determine that the consensus proposition does not pass the verification. After the verification is passed, the first block chain link point stores the ciphertext execution result by executing the storage function code; similarly, transaction results corresponding to other transactions may be stored.
It should be noted that: each blockchain node in the blockchain network should ensure that the adopted keys are the same when encrypting the plaintext execution results corresponding to the same ciphertext transaction, so that the obtained ciphertext execution results can be ensured to be the same under the condition that the plaintext execution results are the same, and the same root node is generated.
An embodiment of a node for implementing privacy protection in a blockchain in the present specification is described below with reference to fig. 6, where the node includes:
a decryption unit 601, configured to decrypt the obtained ciphertext transaction to obtain corresponding plaintext transaction content;
an executing unit 602, configured to execute the plaintext transaction content in a trusted executing environment, encrypt an obtained plaintext execution result into a ciphertext execution result, and output the ciphertext execution result from the trusted executing environment;
a storage unit 603, configured to execute a storage function code outside the trusted execution environment, so as to store the ciphertext execution result in an external storage space outside the trusted execution environment.
Alternatively to this, the first and second parts may,
the ciphertext transaction is submitted to the node by the client; or the like, or, alternatively,
the ciphertext transaction is forwarded to the node by a second block link point.
Optionally, the node initiates consensus to the verification node in the block chain according to the ciphertext transaction and the ciphertext execution result, so that the verification node stores the ciphertext execution result after passing the verification consensus.
Optionally, the node receives a consensus proposal initiated by an accounting node, wherein the consensus proposal is related to the ciphertext transaction; the node verifies the consensus proposal according to the ciphertext execution result; and after the verification is passed, the node stores the ciphertext execution result by executing the storage function code.
Alternatively to this, the first and second parts may,
the cipher text transaction is encrypted by a private key of a symmetric encryption algorithm, and the node decrypts the cipher text transaction by using the private key of the symmetric encryption algorithm to obtain plaintext transaction content; or the like, or, alternatively,
and the cipher text transaction is encrypted by a public key of an asymmetric encryption algorithm, and the node decrypts the cipher text transaction by using a private key of the asymmetric encryption algorithm to obtain the plaintext transaction content.
Optionally, the ciphertext transaction is encrypted by a private key of a symmetric encryption algorithm, and the private key of the symmetric encryption algorithm is encrypted by a public key of an asymmetric encryption algorithm;
and the node decrypts the encrypted text transaction by using the private key of the symmetric encryption algorithm to obtain the private key of the symmetric encryption algorithm, and decrypts the encrypted text transaction by using the private key of the symmetric encryption algorithm to obtain the plaintext transaction content.
Optionally, the private key of the symmetric encryption algorithm is obtained by negotiation between the generator of the ciphertext transaction and the node, or is obtained by sending from a key management server.
Optionally, the key management server sends the private key of the asymmetric encryption algorithm to the ring of the node through a remote certificate, and sends the public key of the asymmetric encryption algorithm to the generator of the ciphertext transaction.
Optionally, the ciphertext transaction has a plurality of corresponding intelligent contracts, and the ciphertext transaction has a processing type respectively labeled for each intelligent contract; the plaintext execution result comprises a plaintext contract execution result corresponding to each intelligent contract;
when a first intelligent contract corresponding to the ciphertext transaction is marked as a privacy processing type, a plaintext contract execution result corresponding to the first intelligent contract is encrypted by the node through a key to be a ciphertext contract execution result, and the ciphertext execution result comprises the ciphertext contract execution result;
and when the second intelligent contract corresponding to the ciphertext transaction is marked as a plaintext processing type, the ciphertext execution result comprises a plaintext contract execution result corresponding to the second intelligent contract.
Optionally, the ciphertext transaction is used to create an intelligent contract and/or invoke an intelligent contract.
Optionally, the key includes a key of a symmetric encryption algorithm or a key of an asymmetric encryption algorithm.
Optionally, the key of the symmetric encryption algorithm includes a seal key.
Alternatively to this, the first and second parts may,
the seal key is sent by a key management server after the SGX of the node passes the remote certification; or the like, or, alternatively,
and the seal key is obtained by negotiation between the node and other block chain nodes.
Optionally, the key is stored in a surrounding of the node.
Optionally, the node has a plurality of enclosures, and the secret key is stored in the security enclosure.
Optionally, the security enclosure includes a QE enclosure.
Optionally, the node executes a write cache function code in a trusted execution environment, so as to store the plaintext execution result in a write cache in the trusted execution environment;
and the node encrypts the data in the write cache and outputs the encrypted data from the trusted execution environment to be stored in the external storage space.
Optionally, the write cache function code is stored in the trusted execution environment in a plaintext form; or, the write cache function code is stored outside the trusted execution environment in a ciphertext form.
Optionally, the node executes a write cache function code outside the trusted execution environment, so as to store the ciphertext execution result in a write cache outside the trusted execution environment;
wherein the node further stores the data in the write cache to the external storage space.
Optionally, the node encrypts the plaintext execution result according to a query request initiated by a client, and outputs the plaintext execution result from a trusted execution environment to return to the client.
Optionally, the encrypting the plaintext execution result and outputting the encrypted plaintext execution result from a trusted execution environment includes:
the node reads the ciphertext execution result from the external storage space, decrypts the ciphertext execution result into the plaintext execution result, and reads the plaintext execution result into the trusted execution environment; encrypting the plaintext execution result and outputting the encrypted plaintext execution result from a trusted execution environment; or the like, or, alternatively,
the node reads the plaintext execution result from a read cache in a trusted execution environment, encrypts the plaintext execution result and outputs the encrypted plaintext execution result from the trusted execution environment; and the plaintext execution result is read into the trusted execution environment and stored in the read cache after the node executes a read cache function code in a trusted execution environment in advance, reads the ciphertext execution result from the external storage space, decrypts the ciphertext execution result into the plaintext execution result.
In the 90 s of the 20 th century, improvements in a technology could clearly distinguish between improvements in hardware (e.g., improvements in circuit structures such as diodes, transistors, switches, etc.) and improvements in software (improvements in process flow). However, as technology advances, many of today's process flow improvements have been seen as direct improvements in hardware circuit architecture. Designers almost always obtain the corresponding hardware circuit structure by programming an improved method flow into the hardware circuit. Thus, it cannot be said that an improvement in the process flow cannot be realized by hardware physical modules. For example, a Programmable Logic Device (PLD), such as a Field Programmable Gate Array (FPGA), is an integrated circuit whose Logic functions are determined by programming the Device by a user. A digital system is "integrated" on a PLD by the designer's own programming without requiring the chip manufacturer to design and fabricate application-specific integrated circuit chips. Furthermore, nowadays, instead of manually manufacturing an integrated Circuit chip, such Programming is often implemented by "logic compiler" software, which is similar to a software compiler used in program development and writing, but the original code before compiling is also written by a specific Programming Language, which is called Hardware Description Language (HDL), and HDL is not only one but many, such as ABEL (Advanced Boolean Expression Language), AHDL (alternate Hardware Description Language), traffic, CUPL (core universal Programming Language), HDCal, jhddl (Java Hardware Description Language), Lava, Lola, HDL, PALASM, rhyd (Hardware Description Language), and the like, which are currently used in the field-Hardware Language. It will also be apparent to those skilled in the art that hardware circuitry that implements the logical method flows can be readily obtained by merely slightly programming the method flows into an integrated circuit using the hardware description languages described above.
The controller may be implemented in any suitable manner, for example, the controller may take the form of, for example, a microprocessor or processor and a computer-readable medium storing computer-readable program code (e.g., software or firmware) executable by the (micro) processor, logic gates, switches, an Application Specific Integrated Circuit (ASIC), a programmable logic controller, and an embedded microcontroller, examples of which include, but are not limited to, the following microcontrollers: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20, and Silicone Labs C8051F320, the memory controller may also be implemented as part of the control logic for the memory. Those skilled in the art will also appreciate that, in addition to implementing the controller as pure computer readable program code, the same functionality can be implemented by logically programming method steps such that the controller is in the form of logic gates, switches, application specific integrated circuits, programmable logic controllers, embedded microcontrollers and the like. Such a controller may thus be considered a hardware component, and the means included therein for performing the various functions may also be considered as a structure within the hardware component. Or even means for performing the functions may be regarded as being both a software module for performing the method and a structure within a hardware component.
The systems, devices, modules or units illustrated in the above embodiments may be implemented by a computer chip or an entity, or by a product with certain functions. One typical implementation device is a computer. In particular, the computer may be, for example, a personal computer, a laptop computer, a cellular telephone, a camera phone, a smartphone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or a combination of any of these devices.
For convenience of description, the above devices are described as being divided into various units by function, and are described separately. Of course, the functions of the various elements may be implemented in the same one or more software and/or hardware implementations of the present description.
As will be appreciated by one skilled in the art, embodiments of the present invention may be provided as a method, system, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present invention may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
The present invention is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each flow and/or block of the flow diagrams and/or block diagrams, and combinations of flows and/or blocks in the flow diagrams and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
This description may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The specification may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks. In a typical configuration, a computer includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
The memory may include forms of volatile 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 a computer-readable medium.
Computer-readable media, including both non-transitory and non-transitory, removable and non-removable media, may implement information storage by any method or technology. The information may be computer readable instructions, data structures, modules of a program, 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, compact disc read only memory (CD-ROM), Digital Versatile Discs (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 medium that can be used to store information that can be accessed by a computing device. As defined herein, a computer readable medium does not include a transitory computer readable medium such as a modulated data signal and a carrier wave.
It should also be noted that the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising an … …" does not exclude the presence of other like elements in a process, method, article, or apparatus that comprises the element.
The foregoing description has been directed to specific embodiments of this disclosure. Other embodiments are within the scope of the following claims. In some cases, the actions or steps recited in the claims may be performed in a different order than in the embodiments and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In some embodiments, multitasking and parallel processing may also be possible or may be advantageous.
The terminology used in the description of the one or more embodiments is for the purpose of describing the particular embodiments only and is not intended to be limiting of the description of the one or more embodiments. As used in one or more embodiments of the present specification and the appended claims, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It should also be understood that the term "and/or" as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items.
It should be understood that although the terms first, second, third, etc. may be used in one or more embodiments of the present description to describe various information, such information should not be limited to these terms. These terms are only used to distinguish one type of information from another. For example, first information may also be referred to as second information, and similarly, second information may also be referred to as first information, without departing from the scope of one or more embodiments herein. The word "if" as used herein may be interpreted as "at … …" or "when … …" or "in response to a determination", depending on the context.
The above description is only for the purpose of illustrating the preferred embodiments of the one or more embodiments of the present disclosure, and is not intended to limit the scope of the one or more embodiments of the present disclosure, and any modifications, equivalent substitutions, improvements, etc. made within the spirit and principle of the one or more embodiments of the present disclosure should be included in the scope of the one or more embodiments of the present disclosure.

Claims (20)

1. A method for implementing privacy protection in a blockchain, comprising:
the first block chain link point decrypts the acquired ciphertext transaction to acquire corresponding plaintext transaction content; the ciphertext transaction has a plurality of corresponding intelligent contracts, and each intelligent contract comprises a marked processing type;
the first block chain node executes the plaintext transaction content in a trusted execution environment, encrypts an obtained plaintext execution result into a ciphertext execution result and outputs the ciphertext execution result from the trusted execution environment; the plaintext execution result comprises a plaintext contract execution result corresponding to each intelligent contract; when a first intelligent contract corresponding to the ciphertext transaction is marked as a privacy processing type, a plaintext contract execution result corresponding to the first intelligent contract is encrypted by a first block link point through a key to form a ciphertext contract execution result, and the ciphertext execution result comprises the ciphertext contract execution result; when a second intelligent contract corresponding to the ciphertext transaction is marked as a plaintext processing type, the ciphertext execution result comprises a plaintext contract execution result corresponding to the second intelligent contract;
the first blockchain node executes the storage function code outside the trusted execution environment to store the ciphertext execution result to an external storage space outside the trusted execution environment.
2. The method of claim 1, wherein the first and second light sources are selected from the group consisting of,
the ciphertext transaction is submitted to a first blockchain node by a client; or the like, or, alternatively,
and forwarding the ciphertext transaction to the first block chain node by the second block chain link point.
3. The method of claim 1, further comprising:
and the first block chain link point initiates consensus to the verification node in the block chain according to the ciphertext transaction and the ciphertext execution result, so that the verification node stores the ciphertext execution result after verifying the consensus.
4. The method of claim 1, further comprising:
the first block chain node receives a consensus proposal initiated by an accounting node, wherein the consensus proposal is related to the ciphertext transaction;
the first block chain node verifies the consensus proposal according to the ciphertext execution result; and after the verification is passed, the first block chain link point stores the ciphertext execution result by executing the storage function code.
5. The method of claim 1, wherein the first and second light sources are selected from the group consisting of,
the ciphertext transaction is encrypted by a private key of a symmetric encryption algorithm, and a first block chain node decrypts the ciphertext transaction by the private key of the symmetric encryption algorithm to obtain plaintext transaction content; or the like, or, alternatively,
and the ciphertext transaction is encrypted by a public key of an asymmetric encryption algorithm, and the first block chain node decrypts the ciphertext transaction by using a private key of the asymmetric encryption algorithm to obtain the plaintext transaction content.
6. The method of claim 1, the ciphertext transaction being encrypted by a private key of a symmetric encryption algorithm, and the private key of the symmetric encryption algorithm being encrypted by a public key of an asymmetric encryption algorithm;
and the first block chain node decrypts by using the private key of the asymmetric encryption algorithm to obtain the private key of the symmetric encryption algorithm, and decrypts the ciphertext transaction by using the private key of the symmetric encryption algorithm to obtain the plaintext transaction content.
7. The method of claim 5 or 6, wherein the private key of the symmetric encryption algorithm is obtained by the generator of the ciphertext transaction and the first block link node, or is sent by a key management server.
8. The method of claim 6, wherein the key management server sends the private key of the asymmetric cryptographic algorithm to the first blockchain node's bounding box and sends the public key of the asymmetric cryptographic algorithm to the generator of the ciphertext transaction via remote attestation.
9. The method of claim 1, the ciphertext transaction to create an intelligent contract and/or invoke an intelligent contract.
10. The method of claim 1, the key to encrypt the plaintext execution results comprises a key of a symmetric encryption algorithm or a key of an asymmetric encryption algorithm.
11. The method of claim 10, the key of the symmetric encryption algorithm comprising a seal key.
12. The method of claim 11, wherein the first and second light sources are selected from the group consisting of,
the seal key is sent by a key management server after the SGX of the first block chain node passes the remote certification; or the like, or, alternatively,
the seal key is obtained by negotiation between the first block chain link point and other block chain link points.
13. The method of claim 1, a key that encrypts the plaintext execution result is stored in a bounding box of a first blockchain node.
14. The method of claim 1, further comprising:
a first block chain node executes a write cache function code in a trusted execution environment so as to store the plaintext execution result into a write cache in the trusted execution environment;
and the first block chain node encrypts the data in the write cache and outputs the encrypted data from the trusted execution environment to be stored in the external storage space.
15. The method of claim 14, the write cache function code stored in the trusted execution environment in clear text; or, the write cache function code is stored outside the trusted execution environment in a ciphertext form.
16. The method of claim 1, further comprising:
the first block chain node executes a write cache function code outside a trusted execution environment so as to store the ciphertext execution result into a write cache outside the trusted execution environment;
and the first blockchain node further stores the data in the write cache to the external storage space.
17. The method of claim 1, further comprising:
and the first block chain link point encrypts the plaintext execution result according to a query request initiated by the client and outputs the plaintext execution result from the trusted execution environment so as to return to the client.
18. The method of claim 17, the encrypting the plaintext execution result for output from a trusted execution environment, comprising:
the first block chain node reads the ciphertext execution result from the external storage space, decrypts the ciphertext execution result into the plaintext execution result, and reads the plaintext execution result into the trusted execution environment; encrypting the plaintext execution result and outputting the encrypted plaintext execution result from a trusted execution environment; or the like, or, alternatively,
the first block chain node reads the plaintext execution result from a read cache in a trusted execution environment, encrypts the plaintext execution result and outputs the encrypted plaintext execution result from the trusted execution environment; and the plaintext execution result is read into the trusted execution environment and stored in the read cache after the ciphertext execution result is decrypted into the plaintext execution result.
19. A node in a blockchain to implement privacy protection, comprising:
the decryption unit is used for decrypting the acquired ciphertext transaction to acquire corresponding plaintext transaction content; the ciphertext transaction has a plurality of corresponding intelligent contracts, and each intelligent contract comprises a marked processing type;
the execution unit is used for executing the plaintext transaction content in a trusted execution environment, encrypting an obtained plaintext execution result into a ciphertext execution result and outputting the ciphertext execution result from the trusted execution environment; the plaintext execution result comprises a plaintext contract execution result corresponding to each intelligent contract; when a first intelligent contract corresponding to the ciphertext transaction is marked as a privacy processing type, a plaintext contract execution result corresponding to the first intelligent contract is encrypted by a first block link point through a key to form a ciphertext contract execution result, and the ciphertext execution result comprises the ciphertext contract execution result; when a second intelligent contract corresponding to the ciphertext transaction is marked as a plaintext processing type, the ciphertext execution result comprises a plaintext contract execution result corresponding to the second intelligent contract;
and the storage unit is used for executing the storage function codes outside the trusted execution environment so as to store the ciphertext execution result to an external storage space outside the trusted execution environment.
20. A computer readable storage medium having stored thereon computer instructions which, when executed by a processor, carry out the steps of the method according to any one of claims 1 to 18.
CN201910100728.4A 2019-01-31 2019-01-31 Method, node and storage medium for realizing privacy protection in block chain Active CN110020855B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910100728.4A CN110020855B (en) 2019-01-31 2019-01-31 Method, node and storage medium for realizing privacy protection in block chain
CN202010671021.1A CN111899017A (en) 2019-01-31 2019-01-31 Method, node and storage medium for realizing privacy protection in block chain

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910100728.4A CN110020855B (en) 2019-01-31 2019-01-31 Method, node and storage medium for realizing privacy protection in block chain

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202010671021.1A Division CN111899017A (en) 2019-01-31 2019-01-31 Method, node and storage medium for realizing privacy protection in block chain

Publications (2)

Publication Number Publication Date
CN110020855A CN110020855A (en) 2019-07-16
CN110020855B true CN110020855B (en) 2020-05-29

Family

ID=67188989

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202010671021.1A Pending CN111899017A (en) 2019-01-31 2019-01-31 Method, node and storage medium for realizing privacy protection in block chain
CN201910100728.4A Active CN110020855B (en) 2019-01-31 2019-01-31 Method, node and storage medium for realizing privacy protection in block chain

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202010671021.1A Pending CN111899017A (en) 2019-01-31 2019-01-31 Method, node and storage medium for realizing privacy protection in block chain

Country Status (1)

Country Link
CN (2) CN111899017A (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110519260B (en) * 2019-08-23 2020-09-25 联想(北京)有限公司 Information processing method and information processing device
CN110992027B (en) * 2019-11-29 2022-02-25 支付宝(杭州)信息技术有限公司 Efficient transaction method and device for realizing privacy protection in block chain
CN111047443B (en) * 2019-11-29 2021-01-12 支付宝(杭州)信息技术有限公司 User scoring method and device, electronic equipment and computer readable storage medium
CN111310216B (en) * 2020-02-26 2023-03-24 百度在线网络技术(北京)有限公司 Block chain data processing method and device, electronic equipment and medium
CN111090888B (en) * 2020-03-18 2020-07-07 支付宝(杭州)信息技术有限公司 Contract verification method and device
CN111431707B (en) * 2020-03-19 2021-03-26 腾讯科技(深圳)有限公司 Service data information processing method, device, equipment and readable storage medium
CN111461883A (en) * 2020-03-31 2020-07-28 杭州溪塔科技有限公司 Transaction processing method and device based on block chain and electronic equipment
CN111709029A (en) * 2020-05-14 2020-09-25 哈希森林(北京)科技有限公司 Data operation and privacy transaction method based on block chain and trusted computing network
CN112422500B (en) * 2020-09-25 2023-05-16 北京熠智科技有限公司 Cross-platform data transmission method and device, storage medium and electronic device
CN112580112B (en) * 2021-02-26 2021-06-22 北京全息智信科技有限公司 Intelligent contract implementation method and device based on full-chain consensus and local deployment
CN113760999A (en) * 2021-04-30 2021-12-07 支付宝(杭州)信息技术有限公司 Block chain transaction execution method, block chain node and control device
CN115129785A (en) * 2022-06-29 2022-09-30 蚂蚁区块链科技(上海)有限公司 Method and device for maintaining block chain data, electronic equipment and storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106909852A (en) * 2017-03-06 2017-06-30 广东工业大学 Intelligent contract encryption method and device based on triple md5 encryption algorithms
CN109040133A (en) * 2018-09-27 2018-12-18 上海点融信息科技有限责任公司 The method, apparatus and storage medium of intelligent contract are installed in block chain network

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150379510A1 (en) * 2012-07-10 2015-12-31 Stanley Benjamin Smith Method and system to use a block chain infrastructure and Smart Contracts to monetize data transactions involving changes to data included into a data supply chain.
CN106845160B (en) * 2015-12-03 2018-04-20 国家新闻出版广电总局广播科学研究院 A kind of digital copyright management for intelligent operating system(DRM)Method and system
CN105893042A (en) * 2016-03-31 2016-08-24 北京航空航天大学 Intelligent contract implementation method based on block chain
US11209815B2 (en) * 2016-04-01 2021-12-28 Intel Corporation Drone control registration
US10484346B2 (en) * 2017-02-07 2019-11-19 Microsoft Technology Licensing, Llc Establishment of consortium blockchain network
US10691793B2 (en) * 2017-02-20 2020-06-23 AlphaPoint Performance of distributed system functions using a trusted execution environment
US10742393B2 (en) * 2017-04-25 2020-08-11 Microsoft Technology Licensing, Llc Confidentiality in a consortium blockchain network
CN107294709A (en) * 2017-06-27 2017-10-24 阿里巴巴集团控股有限公司 A kind of block chain data processing method, apparatus and system
CN107342858B (en) * 2017-07-05 2019-09-10 武汉凤链科技有限公司 A kind of intelligent contract guard method and system based on trusted context
CN107919954B (en) * 2017-10-20 2019-05-14 浙江大学 A kind of block chain user key guard method and device based on SGX software protecting extended instruction

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106909852A (en) * 2017-03-06 2017-06-30 广东工业大学 Intelligent contract encryption method and device based on triple md5 encryption algorithms
CN109040133A (en) * 2018-09-27 2018-12-18 上海点融信息科技有限责任公司 The method, apparatus and storage medium of intelligent contract are installed in block chain network

Also Published As

Publication number Publication date
CN110020855A (en) 2019-07-16
CN111899017A (en) 2020-11-06

Similar Documents

Publication Publication Date Title
CN110020855B (en) Method, node and storage medium for realizing privacy protection in block chain
CN109831298B (en) Method for safely updating key in block chain, node and storage medium
CN110033368B (en) Method for realizing privacy protection in block chain
CN110033267B (en) Method, node, system and storage medium for implementing privacy protection in block chain
CN110032883B (en) Method, system and node for realizing privacy protection in block chain
CN109936626B (en) Method, node and storage medium for implementing privacy protection in block chain
CN109886682B (en) Method, node and storage medium for realizing contract calling in block chain
CN110008735B (en) Method, node and storage medium for realizing contract calling in block chain
CN110032885B (en) Method, node and storage medium for implementing privacy protection in block chain
CN110060054B (en) Method, node, system and storage medium for implementing privacy protection in block chain
CN110032884B (en) Method for realizing privacy protection in block chain, node and storage medium
CN110020856B (en) Method, node and storage medium for realizing mixed transaction in block chain
CN110020549B (en) Method, node and storage medium for implementing privacy protection in block chain
CN110266644B (en) Receipt storage method and node combining code marking and transaction types
CN110032876B (en) Method, node and storage medium for implementing privacy protection in block chain
CN110263544B (en) Receipt storage method and node combining transaction type and judgment condition
CN110264198B (en) Conditional receipt storage method and node combining code labeling and transaction type
CN110033266B (en) Method, node and storage medium for implementing privacy protection in block chain
CN110264196B (en) Conditional receipt storage method and node combining code labeling and user type
CN110245503B (en) Receipt storage method and node combining code marking and judging conditions
CN110245942B (en) Receipt storage method and node combining user type and judgment condition
CN110245945B (en) Receipt storage method and node combining code marking and user type
CN110245947B (en) Receipt storage method and node combining conditional restrictions of transaction and user types
CN110245504B (en) Receipt storage method and node combined with condition limitation of multi-type dimensionality
CN110008715B (en) Method for realizing privacy protection in block chain, node and storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40011333

Country of ref document: HK

TR01 Transfer of patent right

Effective date of registration: 20200925

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200925

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: Alibaba Group Holding Ltd.

TR01 Transfer of patent right