Specific embodiment
Example embodiments are described in detail here, and the example is illustrated in the accompanying drawings.Following description is related to
When attached drawing, unless otherwise indicated, the same numbers in different drawings indicate the same or similar elements.Following exemplary embodiment
Described in embodiment do not represent all embodiments consistent with this specification one or more embodiment.Phase
Instead, they are only some aspects phases with the one or more embodiments of as detailed in the attached claim, this specification
The example of consistent device and method.
It should be understood that the sequence that might not show and describe according to this specification in other embodiments executes
The step of correlation method.In some other embodiments, step included by method can than described in this specification more
It is more or less.In addition, single step described in this specification, may be broken down into other embodiments multiple steps into
Row description;And multiple steps described in this specification, it may also be merged into single step progress in other embodiments
Description.
Block chain is normally divided into three types: publicly-owned chain (Public Blockchain), privately owned chain (Private
) and alliance's chain (Consortium Blockchain) Blockchain.In addition, there are also a plurality of types of combinations, such as privately owned chain
The different combinations such as+alliance chain, alliance's chain+publicly-owned chain.It is publicly-owned chain that wherein decentralization degree is highest.Publicly-owned chain with than
Special coin, ether mill are representative, and the participant that publicly-owned chain is added can read data record on chain, participate in business and compete newly
Book keeping operation power of block etc..Moreover, each participant's (i.e. node) freely can be added and exit network, and carry out relevant operation.It is private
There is chain then on the contrary, the write-in permission of the network is by some tissue or mechanism controls, reading data permission is by organization prescribed.Simply
For, privately owned chain can be weak center's system, and participating in node has stringent limitation and less.Such block chain is more
It is suitable for using inside particular organization.Alliance's chain is then block chain between publicly-owned chain and privately owned chain, it can be achieved that " part
Decentralization ".Each node usually has corresponding physical mechanism or tissue in alliance's chain;Participant is added by authorization
Enter network and composition interests correlation alliance, it is common to safeguard the operation of block chain.
Whether publicly-owned chain, privately owned chain or alliance's chain may all provide the function of intelligent contract.Intelligence on block chain
Contract is the contract that can be executed by transaction triggering on block catenary system.Intelligent contract can pass through the formal definition of code.
By taking ether mill as an example, user is supported to create in the network of ether mill and call the logic of some complexity, this is ether
Mill is different from the ultimate challenge of bit coin block chain technology.Ether mill is ether mill void as the core of a programmable block chain
Quasi- machine (EVM), each ether mill node can run EVM.EVM is the complete virtual machine of figure spirit, it means that can be with
The logic of various complexity is realized by it.It is exactly to run on EVM that user, which issues in ether mill and call intelligent contract,.It is real
On border, what virtual machine was directly run is virtual machine code (Virtual Machine bytecodes, lower abbreviation " bytecode ").It is deployed on block chain
Intelligent contract can be the form of bytecode.
Such as shown in Fig. 1, after a transaction comprising the intelligent contract information of creation is sent ether mill network by Bob, section
The EVM of point 1 can execute this and trade and generate corresponding contract example." 0x6f8ae93 ... " in 1 in figure represents this
The address of contract, what the data field of transaction saved can be bytecode, and the to field of transaction is sky.Pass through common recognition machine between node
After system is reached an agreement, this contract is successfully created, and can be called in the follow-up process.After contract creation, on block chain
There is a contract account corresponding with the intelligence contract, and possess a specific address, contract code will be stored in the conjunction
About in account.The behavior of intelligent contract is controlled by contract code.In other words, intelligent contract to generate on block chain comprising closing
The about virtual account of code and account storage (Storage).
As shown in Fig. 2, one is used to call the transaction of intelligent contract to be sent to ether mill by Bob still by taking ether mill as an example
After network, the EVM of a certain node can execute this and trade and generate corresponding contract example.The from word traded in 2 in figure
Section is the address of the account of transaction initiator (i.e. Bob), and " 0x6f8ae93 ... " in field represents called intelligence and close
Address about, value field are the value of ether coin, the side of the intelligent contract of the calling that the data field of transaction saves in ether mill
Method and parameter.Intelligent contract in a prescribed manner in block chain network each node disjoint execution, all execution record and
Data are all stored on block chain, so just saving the transaction that can not be distorted, will not lose on block chain after the completion of transaction
Voucher.
Node in block chain network can generate corresponding receipt (receipt) number after executing the transaction that Bob is initiated
According to for recording the relevant receipt information of the transaction.By taking ether mill as an example, node executes the resulting receipt data of trading can be with
Including following content:
Result field indicates the implementing result of transaction;
Gas used field indicates the gas value of transaction consumption;
Logs field indicates that the log that transaction generates, log may further include From field, To field, Topic word
Section and Log data field etc., wherein From field indicates that the account address of the initiator called, To field indicate called pair
As the account address of (such as intelligent contract), Topic field indicate that the theme of log, Log data field indicate daily record data;
Output field indicates the output of transaction.
In general, the receipt data that transaction generates after executing is stored with plaintext version, anyone is it can be seen that receive
According to the content of above-mentioned each receipt field contained by data, the setting and ability of no secret protection.And in some block chains and TEE
In the solution combined, in order to realize secret protection, the full content of receipt data, which is taken as, needs secret protection
Data are stored on block chain.The block chain is stored in data set made of certain logic tissue in the database of node
It closes.The database, as described later, physical support can store medium, such as persistent storage medium.In fact, receipt
May there was only partial content in data is sensitive, and other contents and insensitive, it is only necessary to be carried out for sensitive content hidden
Private protection, other content can disclose, or even may need to implement partial content retrieval in some cases to drive correlation
The implementation of operation, then implementing secret protection for this partial content will affect the implementation of search operaqtion.
Below in conjunction with the conditional receipt storage side for illustrating that the application one combines code mark and user type shown in Fig. 3
The realization process of the embodiment of method:
Step 302, the first block chain node receives the transaction for corresponding to intelligent contract by encryption, the intelligence contract
Code in include by the object indicated of exposure identifier.
In one embodiment, user, can be by adding exposure mark when writing the code of intelligent contract in code
Symbol is to indicate one or more objects, so that the receipt contents in receipt data corresponding to this partial objects can allow for using bright
Text storage (" permissions " herein it is understood that actual needs further combined with trade user type belonging to initiator and
Above-mentioned receipt contents meet situation to preset condition, to determine whether to store with plaintext version), and residue does not mark exposed mark
Knowing receipt contents corresponding to the object of symbol necessarily uses ciphertext to store, to realize corresponding secret protection.
As described above, in the transaction for creating intelligent contract, what data field saved can be the intelligence contract
Bytecode.Bytecode is made of a series of byte, and each byte can identify an operation.Based on development efficiency, readable
Property etc. it is many-sided consider, developer can not directly write bytecode, but select a high level language intelligence contract generation
Code.The code of the intelligent contract of high level language compiles by compiler and generates bytecode, and then the bytecode can portion
It affixes one's name on block chain.There are many high-level language that ether mill is supported, such as Solidity, Serpent, LLL language.
By taking Solidity language as an example, the contract write with it and class (Class) the very phase in Object-Oriented Programming Language
Seemingly, a variety of members, including state variable, function, function modifier, event etc. can be stated in a contract.Be as follows with
The example code 1 for the simple intelligent contract that Solidity language is write:
In the code for the intelligent contract write based on Solidity language, one can be indicated by exposure identifier
Or multiple objects, so that the receipt contents permission in receipt data corresponding to this partial objects is stored with plaintext version, and remaining
Receipt contents necessarily stored with ciphertext form.Similarly, in the generation for the intelligent contract write based on Serpent, LLL language etc.
In code, it again may be by exposing identifier to indicate one or more objects, to realize the stored in clear of relevant receipts content.
Exposure identifier can be to be exclusively used in indicating the receipt field for allowing stored in clear, such as can use keyword
Plain characterizes the exposure identifier.It so, can be corresponding right for the receipt contents for wishing to store with plaintext version
As adding plain (alternatively, can also be associated using other modes with corresponding object) before.
The object that exposure identifier is indicated may include receipt field, than Result field as described above, Gas
The From field that is further included in used field, Logs field, Output field etc. or Logs field, To field,
Topic field, Log data field etc..For example, above-mentioned example code 1 can be adjusted to following example codes 2:
In above-mentioned example code 2, by adding exposure identifier plain in the code forefront of intelligent contract, make
Intelligent contract code be performed after, can trade initiator belong to pre-set user type in the case where, by the receipts of generation
It is stored according to all fields for meeting preset condition in data with plaintext version.
Certainly, in other embodiments, the field for needing stored in clear can also be particularly pointed out.For example, passing through exposure mark
When knowledge symbol is labeled From field, it may make in the case where the initiator that trades belongs to pre-set user type, if generated
Receipt data in the corresponding receipt contents of From field meet preset condition, the corresponding receipt contents of From field are with bright
Literary form is stored, and the subsequent receipt contents that can be directed in the From field implement search operaqtion, for example can count
The trading volume etc. that a certain account is initiated.
It is noted that in above-mentioned example code 2 and its related embodiment, by exposure identifier " plain " institute
The object (all fields or From field) indicated is contract grade object, so that the first block chain node is in storage receipt data
When, the receipt contents of the contract grade object " From field " are all corresponded in receipt data, are allowed to deposit with plaintext version
Storage (premise is that transaction initiator belongs to pre-set user type and relevant receipts content meets preset condition).Especially, work as intelligence
When in the code of contract including multiple events, contract grade object can be adapted for all events in intelligent contract, then with
For From field: trade initiator belong to pre-set user type in the case where, for any one event generate log Logs,
If From field contained by log Logs meets preset condition, which will be stored with plaintext version, and nothing
Exposure identifier need to be added respectively for each event.
Other than receipt field, exposure identifier can be also used for indicating other objects.For example, exposure identifier is indicated
Object may include state variable, and the state variable equally can be contract grade object.It is with state variable " price "
Example, can be adjusted to following example codes 3 for above-mentioned example code 1:
In above-mentioned example code 3, by adding exposure identifier before the type int of state variable " price "
" plain " (alternatively, exposure identifier plain can be placed in after type int), state variable price can be marked
For contract grade object.Correspondingly, each field of the receipt data generated after the code of intelligent contract is performed (generally includes
Topic field, Output field etc.) in, (shape is usually described if there is the receipt contents corresponding to state variable price
The value of state variable price), can be when the initiator that trades belong to pre-set user type, it will be in the receipt that preset condition be met
Appearance is stored with plaintext version.Since state variable " price " belongs to contract grade object in example code 3, so that working as intelligence
When including multiple events in the code of energy contract, contract grade object can be adapted for all events in intelligent contract, then when
When multiple events generate corresponding log Logs respectively, each log Logs (the Topic field in such as log Logs)
All there may be receipt contents relevant to state variable " price " (whether to apply the state variable depending on dependent event
Price), judgement can be compared with preset condition respectively, with the price value in each log Logs of determination whether with bright
Literary form storage, without adding exposure identifier for state variable " price " respectively in each event;Similarly,
Output field also can include receipt contents relevant to state variable " price ".Included for different receipt fields with
The relevant receipt contents of state variable price can use identical or different preset condition to be judged to determine whether to adopt
It is stored with plaintext version, this depends on the configuration rule to " preset condition ", reference can be made to associated description hereafter.
When defining multiple state variables in the code of intelligent contract, above-mentioned contract grade object may include therein
Part or all of state variable.For example, intelligent contract may include following example code 4:
In above-mentioned example code 4, multiple states such as " price ", " price1 " are defined in the code of intelligent contract
Variable, and user can add exposure identifier plain only for state variable " price ", so that the state variable " price "
As contract grade object, and state variable " price1 " is not labeled by exposure identifier then.
Other than contract grade object, the object that exposure identifier is indicated may include: to correspond in intelligent contract to define
At least one event event level object so that trade initiator belong to pre-set user type in the case where, if receipt
Receipt contents in data corresponding at least one event meet preset condition, then corresponding receipt contents are deposited with plaintext version
Storage.Especially, when in intelligent contract including multiple events, the above-mentioned event level pair of at least part event setup can be directed to
As, thus in the case where the initiator that trades belongs to pre-set user type, so that the corresponding receipt contents of this partial event are full
It is stored when sufficient preset condition with plaintext version storage, the corresponding receipt contents of its complementary event with ciphertext form.It is with From field
Example, can be adjusted to following example codes 5 for above-mentioned example code 1:
In above-mentioned example code 5, by the corresponding event functions " event of event currentPrice
The corresponding character from of addition From field in currentPrice (int price) ", and it is sudden and violent used by character from
Dew identifier is different from plain above-mentioned, but is modified by quotation marks character from, then drawing in example code 5
Number it is equivalent to exposed identifier above-mentioned, so that From field is marked as event level object, thus belonged in transaction initiator
It, will if the From field of the corresponding log Logs generated of the event meets preset condition in the case where pre-set user type
From field is stored with plaintext version.Other than above-mentioned event currentPrice, if the code of intelligent contract is also
Comprising another event, then above-mentioned event level object will not influence another event, the corresponding receipt contents of another event
It will be stored with ciphertext form, unless there is " from " for another event addition and the Logs of another event generation
In From field meet preset condition.
Above-mentioned example code 1 can be adjusted to following example codes 6:
In above-mentioned example code 6, by the corresponding event functions " event of event currentPrice
Keyword " plain " is added before currentPrice (int price) ", so that event level object includes the event
All fields in the corresponding log Logs of currentPrice, for example From field above-mentioned, To field, Topic field,
These fields can be compared with preset condition by Log Data field etc. respectively, to belong in transaction initiator default
When user type, the field for meeting preset condition is stored with plaintext version.
Event level object can also include state variable.For the dimension of state variable, above-mentioned example code 6 can be with
It explains are as follows: event currentPrice refers to state variable " price ", sudden and violent by adding before event currentPrice
Reveal identifier " plain ", it can be using state variable price cited in event currentPrice as above-mentioned event level
Object, and determine event currentPrice generate log Logs in receipt contents relevant to state variable price,
Thus in the case where the initiator that trades belongs to pre-set user type, so that the receipt contents determined are when meeting preset condition
It is stored with plaintext version storage, when being unsatisfactory for preset condition with ciphertext form.Since state variable " price " is in example code
Belong to event level object in 6, so that when the event in the code of intelligent contract also comprising another reference state variable " price "
When event1, if the exposure identifier of any rank is not added for event event1, even if the event
Event1 is referred to state variable " price ", and receipt contents caused by event event1 will be deposited with ciphertext form
Storage, and not stored with plaintext version.
When referring to multiple state variables in same event, above-mentioned event level object may include the whole being cited
State variable.For example, above-mentioned example code 4 can be adjusted to following example codes 7:
In above-mentioned example code 7, the corresponding event functions of event currentPrice " event currentPrice
(int price, int price1) " refers to state variable " price " and " price1 ", and by being added before the event
Exposure identifier plain, so that the state variable " price " being cited and " price1 " will receive influence, for the event
All receipt contents relevant to state variable " price " and " price1 " generated, in transaction, initiator belongs to pre-set user
In the case where type, meet storing with plaintext version, not meeting storing with ciphertext form for condition for preset condition.But
It is for other and to be not added with the event of exposed identifier plain, the receipt contents of generation are stored with ciphertext form.
When event level object includes state variable, it can also specifically be designated as one or more states cited in event
Variable.By taking state variable " price " as an example, above-mentioned example code 1 can be adjusted to following example codes 8:
In above-mentioned example code 8, the corresponding event functions of event currentPrice " event currentPrice
(int price) " is referred to state variable " price ", and by being added before the type int of the state variable " price "
Exposure identifier plain, so that the state variable " price " is configured as event level object, and the event level object is only fitted
For event currentPrice, other events that intelligent contract includes are not suitable for it, it may be assumed that belong in transaction initiator default
In the case where user type, the receipt contents relevant to state variable " price " that only event currentPrice is generated, energy
Enough to be stored when meeting preset condition with plaintext version, the other content in receipt data is deposited with ciphertext form
Storage.
Since the event currentPrice in example code 8 only refers to state variable " price ", make its actual effect
State variable " price " configuration for exposing identifier, quoting the event is added with the event is directed in above-mentioned example code 6
It is similar for event level object.And when the event multiple state variables of application simultaneously, it can more clearly from embody the two not
Together, for example above-mentioned example code 4 can be adjusted to following example codes 9:
In above-mentioned example code 9, the corresponding event functions of event currentPrice " event currentPrice
(int price, int price1) " refers to state variable " price " and " price1 " simultaneously, and by state variable
Exposure identifier plain is added before the type int of " price ", can configure event level pair for the state variable " price "
As, and the state variable " price1 " for being not added with exposed identifier plain is not then event level object, so that in transaction initiator
In the case where belonging to pre-set user type, the receipt relevant to state variable " price " of event currentPrice generation
Content is stored when meeting preset condition with plaintext version, receipt contents relevant to state variable " price1 " are then inevitable
It is stored with ciphertext form.
In one embodiment, the corresponding intelligent contract of the received transaction of the first block chain node, can be through advanced language
It says the intelligent contract write, or can be the intelligent contract of bytecode form.Wherein, when intelligent contract is high level language
Intelligent contract when, the first block chain node also passes through compiler and is compiled to the intelligent contract of the high level language, raw
At the intelligent contract of bytecode form, to be executed in credible performing environment.And when the received transaction pair of the first block chain node
When the intelligent contract answered is the intelligent contract of bytecode form, the intelligent contract of the bytecode form can be passed through compiling by client
Device is compiled the intelligent contract of high level language and obtains, and the intelligent contract of the high level language by user in visitor
It writes to obtain on the end of family.
Corresponding intelligent contract of trading received for the first block chain node, can be user in the first block chain node
The intelligent contract of upper generation.When user obtains above-mentioned intelligent contract using high level language, the first block chain node is also
The intelligent contract of the high level language is compiled as to the intelligent contract of bytecode form by compiler;Alternatively, user can also
It can directly write to obtain the intelligent contract of bytecode form on the first block chain node.
Corresponding intelligent contract of trading received for the first block chain node, can generate on the client for user
Intelligent contract.For example, user by corresponding account after client generates the transaction, transaction is committed to by the client
First block chain node.It include transaction/query interface in the first block chain node, which can be with client pair by taking Fig. 4 as an example
It connects, client is allowed to submit above-mentioned transaction to the first block chain node.Than as described above, user can use advanced language
Speech writes intelligent contract on the client, is then compiled by client by intelligent contract of the compiler to the high-level language
It translates, obtains the intelligent contract of corresponding bytecode form.Certainly, client can be directly by the intelligent contract of high level language
It is sent to the first block chain node, so that the first block chain node is compiled as the intelligent contract of bytecode form by compiler.
Corresponding intelligent contract of trading received for the first block chain node, can pass through the second block chain for client
Intelligent contract in the transaction that node is sent, the intelligence contract are usually bytecode form;Certainly, which may be
The intelligent contract of high level language, the then intelligence that the first block chain node can be compiled as bytecode form by compiler are closed
About.
In one embodiment, when in the code of intelligent contract including exposure identifier, the intelligence of high level language is closed
About it can have identical exposed identifier with the intelligent contract of bytecode form.And it should be understood by those skilled in the art that
Be: bytecode can using different from high-level language exposure identifier, such as high level language intelligent contract code
In comprising first identifier symbol, the intelligent contract of bytecode form code in accord with comprising second identifier, then first identifier Fu Yu
There are corresponding relationships between two identifiers, it is ensured that after being compiled as bytecode by high-level language, will not influence the function of exposed identifier
Energy.
Step 304, the first block chain node decrypts the transaction in credible performing environment, to obtain the intelligent contract
Code.
In one embodiment, above-mentioned transaction can be encrypted by way of symmetric encipherment algorithm, can also be used non-
The mode of symmetry algorithm is encrypted.The Encryption Algorithm that symmetric cryptography uses, e.g. DES algorithm, 3DES algorithm, TDEA are calculated
Method, Blowfish algorithm, RC5 algorithm, IDEA algorithm etc..Rivest, shamir, adelman, e.g. RSA, Elgamal, knapsack algorithm,
Rabin, D-H, ECC (elliptic curve encryption algorithm) etc..
In one embodiment, above-mentioned transaction can be carried out by way of symmetric encipherment algorithm combination rivest, shamir, adelman
Encryption.By taking above-mentioned transaction is committed to the first block chain node by client as an example, client can be added using symmetric encipherment algorithm
Close transaction content encrypts transaction content using the key of symmetric encipherment algorithm, and is added with rivest, shamir, adelman cryptographic symmetrical
The key used in close algorithm, for example using the key used in the public key encryption symmetric encipherment algorithm of rivest, shamir, adelman.
In this way, can be first decrypted using the private key of rivest, shamir, adelman after the first block chain node receives the transaction of encryption,
The key of symmetric encipherment algorithm is obtained, and then decrypts to obtain transaction content with the key of symmetric encipherment algorithm.For example, when transaction is used
When creating intelligent contract, transaction content may include the code of the intelligent contract of required creation;When transaction is for calling intelligence
When contract, transaction content may include the account address of called intelligent contract, the method for needing to be passed to and parameter etc..
When transaction is for calling intelligent contract, the calling of multinest structure can be.For example, transaction calls directly intelligence
Can and about 1, and the intelligence and about 1 code have invoked intelligence and about 2, and the code in intelligence and about 2 be directed toward it is intelligent with about 3
Contract address so that transaction actually have invoked indirectly intelligence and about 3 codes, and intelligence and about 3 in code can wrap
Include the object indicated by exposure identifier.In this way, being equivalent to pair for containing in intelligence and about 1 and indicating by exposure identifier
As.Specific implementation process is similar with the above process, and details are not described herein.
Step 306, the first block chain node executes the code of the intelligent contract in the credible performing environment, obtains
Receipt data.
As previously mentioned, the first received transaction of block chain node, such as can be creation and/or call the friendship of intelligent contract
Easily.Such as in ether mill, the first block chain node receives the creation that client is sent and/or calls the transaction of intelligent contract
Afterwards, can check transaction whether effectively, format it is whether correct, whether the signature for verifying transaction legal etc..
In general, the node in ether mill is typically also the node of contention book keeping operation power, and therefore, the first block chain node is made
Node for contention book keeping operation power can be performed locally the transaction.If one in the node of contention book keeping operation power is striven in epicycle
It wins during taking book keeping operation power by force, then becomes accounting nodes.If the first block chain node is in the process of epicycle contention book keeping operation power
In win, just become accounting nodes;Certainly, if if the first block chain node does not have during epicycle contention is kept accounts and weighed
It wins, is not then accounting nodes, and other nodes are likely to become accounting nodes.
Intelligent contract is similar to the class in Object-Oriented Programming, and the contract that the result of execution generates the corresponding intelligence contract is real
Example is similar to and generates the corresponding object of class.It executes in transaction for creating the process of the code of intelligent contract, will create contract account
Family, and contract is disposed in account space.In ether mill, the address of intelligent contract account is address (such as Fig. 1-2 by sender
In " 0xf5e ... ") and transaction random number (nonce) as input, pass through what Encryption Algorithm generated, such as the conjunction in Fig. 1-2
About address " 0x6f8ae93 ... " is generated by the encrypted algorithm of nonce in the address of sender " 0xf5e ... " and transaction.
In general, proved using proof of work (Proof of Work, POW) and equity (Proof of Stake,
POS), equity is appointed to prove the area of support intelligence contract of the common recognition such as (Delegated Proof of Stake, DPOS) algorithm
In block chain network, the node of contention book keeping operation power can execute the friendship after receiving the transaction comprising the intelligent contract of creation
Easily.Contention book keeping operation power node in may one of them epicycle contention keep accounts weigh during win, become accounting nodes.Note
This can be included transaction of intelligent contract by account node and other transaction be packaged together and generate new block, and by the new of generation
Block be sent to other nodes and know together.
For using machines such as practical Byzantine failure tolerance (Practical Byzantine Fault Tolerance, PBFT)
In the block chain network of the support intelligence contract of system, there is the node of book keeping operation power to have agreed upon before epicycle book keeping operation.Therefore,
After one block chain node receives above-mentioned transaction, if itself not being the accounting nodes of epicycle, which can be sent to
Accounting nodes.For the accounting nodes (can be the first block chain node) of epicycle, which is being packaged and is generating new block
During perhaps before or by the transaction with it is other transaction be packaged together and generate new block during or before,
The transaction can be executed.The transaction is packaged (or further including that other transaction are packaged together) and generates new area by the accounting nodes
After block, the new block of generation or block head are sent to other nodes and known together.
As described above, in block chain network using the support intelligence contract of POW mechanism, or using POS, DPOS,
In the block chain network of the support intelligence contract of PBFT mechanism, which can be packaged and generate new by the accounting nodes of epicycle
Block, and the new block back zone build of generation is sent to other nodes and is known together.If other nodes receive institute
It states after block that there is no problem through verifying, which can be appended to original block chain end, to complete to keep accounts
Journey is reached common understanding;If transaction completes deployment of the intelligent contract in block chain network, if handing over for creating intelligent contract
It is easy for calling intelligent contract, then completes the calling and execution of intelligent contract.Other node verification accounting nodes are sent new
Block or block head during, the transaction in the block can also be executed.
The implementation procedure can generally be executed by virtual machine.By taking ether mill as an example, support user in ether mill network
Middle creation and/or the logic for calling some complexity, this is the ultimate challenge that ether mill is different from bit coin block chain technology.Ether
Mill is ether mill virtual machine (EVM, Ethereum Virtual Machine) as the core of a programmable block chain, each
Ether mill node can run EVM.EVM is the complete virtual machine of a figure spirit, it means that can be realized by it various
Complicated logic.It is exactly to run on EVM that user, which issues in ether mill and call intelligent contract,.
In the present embodiment, the first block chain node can be in credible performing environment (Trusted Execution
Environment, TEE) in execute decryption intelligent contract code.Such as shown in Fig. 4, the first block chain node can be divided
For conventional performing environment (being located at left side in figure) and TEE, (as described above, transaction may exist it for the transaction that client is submitted
His source;This is illustrated for sentencing the transaction of client submission) initially enter " transaction/inquiry in conventional performing environment
Interface " is identified, can be left on to be handled in conventional performing environment there is no the transaction of privacy process demand and (here may be used
Recognize whether that privacy handles need with identifier according to contained by the user type of transaction initiator, type of transaction, transaction etc.
Ask), and the transaction transport that privacy process demand will be present is handled into TEE.TEE and conventional performing environment are mutually isolated.
Transaction is in encrypted state before entering TEE, and the transaction content of plaintext is then decrypted as in credible performing environment, thus
Under the premise of ensuring data safety, the transaction content of the plaintext is enabled to realize efficient process in TEE, and raw in TEE
At the receipt data of plaintext.
TEE is the security extension based on CPU hardware, and the credible performing environment completely isolated with outside.TEE be earliest by
The concept that Global Platform is proposed, for solving the security isolation of resource in mobile device, being parallel to operating system is to answer
Credible and secure performing environment is provided with program.The Trust Zone technology of ARM realizes the TEE technology of real commercialization earliest.
Along with the high speed development of internet, safe demand is higher and higher, is not limited only to mobile device, cloud device, data center
More demands all are proposed to TEE.The concept of TEE has also obtained the development and expansion of high speed.Now described TEE compare with
The concept initially proposed has been the TEE of more broad sense.For example, server chips manufacturer Intel, AMD etc. are successively proposed
The TEE of hardware auxiliary and the concept and characteristic for enriching TEE, have been widely recognized in industry.The TEE lifted now is logical
Often more refer to the TEE technology of this kind of hardware auxiliary.Different from mobile terminal, cloud access needs to remotely access, and terminal user is to hard
Part platform is invisible, therefore seeks to the genuine and believable of confirmation TEE using the first step of TEE.Therefore present TEE technology is all drawn
Enter remote proving mechanism, endorsed by hardware vendor (mainly CPU manufacturer) and ensures user to TEE by digital signature technology
State can verify that.It is simultaneously only the demand for security that the resource isolation of safety is also unable to satisfy, further data-privacy protection
Also it is suggested.Including Intel SGX, the commercial TEE including AMD SEV also both provides memory encryption technology, by reliable hardware
It is limited to inside CPU, the data of bus and memory are that ciphertext prevents malicious user from being spied upon.For example, the software of Intel
Protection extends code execution, remote proving, security configuration, the secure storage of data such as (SGX) TEE technology insulation and is used for
Execute the trusted path of code.The application program run in TEE is kept safe, as a consequence it is hardly possible to be accessed by third party.
By taking Intel SGX technology as an example, SGX provides enclosure (enclave, also referred to as enclave), i.e., one adds in memory
Close credible execution region, protects data not to be stolen by CPU.By taking the first block chain node is using the CPU for supporting SGX as an example,
Using newly-increased processor instruction, a part of region EPC (Enclave Page Cache, enclosure page can be distributed in memory
Face caching or enclave page cache), by the crypto engine MEE (Memory Encryption Engine) in CPU to wherein
Data encrypted.The content encrypted in EPC, which only enters after CPU, can just be decrypted into plain text.Therefore, in SGX, user
It can distrust operating system, VMM (Virtual Machine Monitor, monitor of virtual machine), even BIOS (Basic
Input Output System, basic input output system), it is only necessary to trust CPU just and can ensure that private data will not leak.
It in practical application, is transferred in enclosure after private data being encrypted with ciphertext form, and will be corresponding by remote proving
Code key is also passed to enclosure.Then, operation is carried out using data under the encipherment protection of CPU, as a result can be returned with ciphertext form.This
Under kind mode, powerful calculating power not only can use, but also do not have to concern of data and leak.
There are the transaction of privacy process demand for including intelligent contract in the transaction when creating intelligent contract when above-mentioned
Code, the first block chain node can be decrypted to obtain the code of intelligence contract contained by it in TEE to the transaction, and in turn
The code is executed in TEE.When it is above-mentioned there are the transaction of privacy process demand for call intelligent contract when, the first block chain link
Point can execute the code (if called intelligent contract processing encrypted state, needs first in TEE to the intelligence in TEE
Energy contract is decrypted, to obtain corresponding code).Specifically, the first block chain node can use the processing increased newly in CPU
Device instruction, distributes a part of region EPC in memory, is added by the crypto engine MEE in CPU to above-mentioned plaintext code
In the close deposit EPC.The content encrypted in EPC is decrypted into plain text after entering CPU.In CPU, the code of plaintext is carried out
Implementation procedure is completed in operation.For example, executing the plaintext code of intelligent contract in SGX technology, EVM being loaded into enclosure
In.During remote proving, Key Management server can calculate the hash value of local EVM code, and with the first block chain
The hash value of the EVM code loaded in node compares, comparison result correctly as a necessary condition by remote proving, from
And complete the measurement of the code loaded to the first block chain node SGX enclosure.Through excess vol, correct EVM can be held in SGX
The code of the above-mentioned intelligent contract of row.
Step 308, the first block chain node stores the receipt data, to belong to pre-set user type in transaction initiator
When, deposit the part for meeting preset condition in the receipt contents for corresponding to the object that the exposed identifier is indicated with plaintext version
It stores up, remaining receipt contents of the receipt data are stored with ciphertext form.
In the code of intelligent contract, exposure identifier can indicate one or more objects, these objects are in receipt number
There are corresponding receipt contents in.Under the premise of protecting privacy of user, by determining user class belonging to transaction initiator
Type, and the corresponding receipt contents of object that exposure identifier is indicated are made comparisons with preset condition, it can be initiated according to transaction
User type belonging to side and receipt contents meet situation to preset condition, embody in storing process to secret protection
Differentiated demand and processing: trade initiator belong to pre-set user type in the case where, the receipt of preset condition will be met
Content is stored with plaintext version, and other receipt contents are then necessarily stored with ciphertext form.
In one embodiment, there are corresponding external accounts on block chain by user, and initiate to hand over based on the external account
Easily or implement other operations.So, user type, i.e. user type belonging to the external account belonging to transaction initiator.Cause
This, the first block chain node can determine the corresponding external account of the transaction initiator, and by recording on inquiry block chain
The corresponding user type of the external account, using as user type belonging to the transaction initiator.
In one embodiment, external account may include the type field (such as the type field) being recorded on block chain, should
The value of type field corresponds to user type.For example, user type is ordinary user when the value of type field is 00,
When the value of type field is 01, user type is advanced level user, and when the value of type field is 11, user type is pipe
Manage user etc..Therefore, the first block chain node can be based on value by the type field of the above-mentioned external account of reading
Determine corresponding user type.
In one embodiment, when creating above-mentioned external account, user type, which can be configured as, to be associated with to outside this
Account is recorded in the incidence relation between user type and external account in block chain, such as by user type and outside
Above-mentioned incidence relation is established in the account address of portion's account, so that the data structure of external account does not need to change, i.e., it is outer
Portion's account is without including above-mentioned type field.Therefore, the first block chain node can be by reading the pass recorded on block chain
Connection relationship, and based on the corresponding external account of transaction initiator, determine the corresponding above-mentioned pre-set user type of the external account.
In one embodiment, it can modify under certain condition to the user type of external account.For example, management is used
Family can have modification claim, allow the first block chain node according to management Client-initiated change request, change above-mentioned
The corresponding user type of external account.Management user can correspond to external account preset, with administration authority in wound generation block
Family allows management user to carry out Type Change to other ordinary users, advanced level user etc., for example ordinary user is changed
Ordinary user etc. is changed to for advanced level user, by advanced level user.
First block chain node can determine that transaction initiator's is hidden by user type belonging to identification transaction initiator
The intensity of private protection demand: when belonging to pre-set user type, the secret protection demand of transaction initiator can be determined
It is relatively weak, the exposure of receipt data to a certain extent can be received, to realize corresponding Function Extension, thus can be into one
Step combines preset condition expose portion receipt contents;When being not belonging to pre-set user type, it can determine transaction initiator's
Secret protection demand is relatively strong, can not receive the exposure to receipt data, then no matter whether receipt contents meet default item
Part is all made of ciphertext form and is stored.Thus, based on the identification to user type belonging to transaction initiator, can make to be directed to
The storage mode of receipt data meets the actual demand of transaction initiator, can take into account secret protection and Function Extension.For example, general
The demand of the secret protection at general family is relatively lower, relatively higher to the Function Extension demand based on receipt data, then for
Receipt data caused by the transaction that ordinary user initiates, can be on the basis of being judged in conjunction with preset condition, permission portion
Receipt contents are divided to store using plaintext version, to implement Function Extension for the receipt contents of stored in clear.For another example advanced
The demand of the secret protection of user and management user is relatively higher, relatively lower to the Function Extension demand based on receipt data,
So for receipt data caused by advanced level user and management Client-initiated transaction, all receipt contents can be all made of
Ciphertext form storage.
The content of preset condition may include at least one of: include preset content in corresponding receipt contents, corresponding
The values of receipt contents belong to default value section etc..
Preset content may include: specified one or more keywords, for example the keyword may include predefined
State variable, predefined event functions, the information for indicating transaction implementing result etc., so that when receipt contents include as crucial
When the information such as state variable, event functions or the transaction implementing result of word, it is possible to determine that the receipt contents meet preset condition.
Preset content may include: preset value.For example the preset value can be numerical value, which can take with state variable
Value etc. is compared, to determine whether the value of state variable meets expection;For another example the preset value can for numerical value, letter,
The character string of the compositions such as additional character, the character string can with the transaction account address of initiator, transacting targeted side account address,
Log topic etc. is compared, to identify specific transaction initiator, specific transacting targeted side or specific log topic
Deng.By taking preset content is character string as an example, it is assumed that the character string is a certain account address, is belonged in the user as transaction initiator
In the case where pre-set user type, the user can be made to initiate transaction for account address and To field is exposed identifier
When indicating, the To field in the log is stored using plaintext version, and others From field etc. is then deposited using ciphertext form
Storage avoids leakage privacy.
Default value section may indicate that the secret protection conditions of demand of relevant receipts field, such as in scene of transferring accounts,
It default value section can be for numerical value be smaller, the lower numerical intervals of secret protection demand, even if so that open relevant receipts word
Section will not cause serious privacy of user to reveal, but can be used for the relevant operation of automatic trigger such as DAPP client, thus
Certain balance is obtained between secret protection and convenience.
In one embodiment, preset condition may include the corresponding general conditions of all receipt fields in receipt data,
When receipt contents corresponding to the object that i.e. exposed identifier is indicated are in any receipt field in receipt data, it is used for
It is compared with the preset condition.For example, exposure identifier can be indicated when preset condition is " including predetermined keyword "
Object corresponding to receipt contents be compared with keyword contained by the preset condition, with what is determined comprising the keyword
Receipt contents, as the receipt contents for meeting above-mentioned preset condition;Wherein, the receipts corresponding to the object indicated of exposure identifier
When being in a certain receipt field according to content, which may also contain other receipt contents, these receipt contents are with close
Literary form is stored.
In one embodiment, preset condition may include the corresponding dedicated item of each receipt field in receipt data
Part, i.e., each receipt field in receipt data are respectively present corresponding preset condition, need to be indicated according to exposure identifier
Receipt field locating for receipt contents corresponding to object determines corresponding preset condition and implements to compare.Different receipt fields
It is mutually indepedent between corresponding preset condition, but may be identical, it is also possible to it is different.For example, the corresponding preset condition of From field
It can be " whether including preset content ", and the preset content can be preset account address, show to be sent out by account address
The transaction risen, the corresponding preset condition of Topic field can be " whether belonging to default value interval ", and can in Topic field
It may include the state for representing " transfer amounts " under scene of for example transferring accounts to record the value of the state variable of dependent event reference
Variable shows that transfer amounts are in default value interval;So: the receipt contents corresponding to the object indicated of exposure identifier
When being in From field and Topic field simultaneously, whether the receipt contents in From field are suitable for " wrapping with preset condition
Containing preset content " be compared, receipt contents in Topic field are suitable for " whether belonging to default take with preset condition
Value section " is compared.
The mark of overall importance as defined in the programming language that exposure identifier is intelligent contract, as long as thus in intelligence
After exposure identifier is written in contract, just it is difficult to modify the object that the exposure identifier is indicated.And user type then depends on
Trade initiator, unrelated with programming language, even if when so that different transaction initiators calling same intelligence contract, to receipt data
Storage mode (ciphertext or plaintext) be also likely to be present difference.Meanwhile preset condition might not expose locating for identifier
Language is realized based on programming in intelligent contract, thus by being called by different user to intelligent contract, or adjustment is adopted
Preset condition, can be with the limitation of escape exposure identifier, the receipt contents that adjustment needs plaintext or cipher text to store.Such as:
In one embodiment, preset condition can be located in transaction (not in the code of the contained intelligent contract of transaction, can
To be set when creating transaction to the preset condition), even if so that different transaction are the case where calling same intelligent contract
Under, there may also be differences for used preset condition, to meet the demand difference that different exchanges face;Certainly, different to hand over
Identical preset condition can also easily be used.The difference of preset condition can show themselves in that the content of preset condition, preset condition are suitable
Receipt field, the difference whether receipt contents are met at least one dimension in the processing logic that preset condition is judged
It is different.
In one embodiment, preset condition can be located in the intelligent contract that transaction is called, so that transaction can pass through choosing
The intelligent contract called is taken, to determine whether using preset condition;Alternatively, preset condition can be located at the intelligence that transaction is called
In another intelligence and about B that about A is called, so that the intelligent contract called by configuring intelligence and about A, such as will be intelligent
About B is changed to intelligence and about C, i.e., (preset condition as defined in intelligence and about B is changed to replaceable used preset condition
Intelligence and preset condition defined in about C).Intelligent contract can be pre-created by transaction initiator itself or any other user;
Certainly, if intelligent contract needs to make when the Call Condition is satisfied there are corresponding Call Condition
It states transaction and calls the intelligence contract, for example the Call Condition may include: that transaction initiator belongs to default white list, transaction is initiated
Side is not belonging to default blacklist or other conditions.
In one embodiment, preset condition can be located in system contract or chain code, so that the preset condition is applicable
In the global conditions of the All Activity on block chain, and it is different from preset condition contained by above-mentioned transaction or intelligent contract, made
Even if system contract or chain generation can be based in the case that the intelligent contract for obtaining calling of trading or trade does not include preset condition
Preset condition defined in code determines and exposes whether receipt contents corresponding to the object that identifier is indicated are deposited with plaintext version
Storage.
It is and pre- contained by chain code or system contract it is noted that preset condition contained by transaction or intelligent contract
If not contradiction between condition: the two can separately include the preset condition of different dimensions, such as the receipt that preset condition is applicable
Field is different;Alternatively, can be defaulted as preferentially when there is conflict between the preset condition that the two includes using transaction or intelligence
Preset condition contained by contract, or preferentially using preset condition contained by chain code or system contract, this depends on predefined
Selection logic.
By program code (the hereinafter referred to as chain generation for running block chain on calculating equipment (physical machine or virtual machine)
Code), it can be the block chain node in block chain network, such as the first above-mentioned block chain node by the calculating device configuration
Deng.In other words, the first block chain node is by running above-mentioned chain code, to realize corresponding function logic.Therefore, Ke Yi
It, will receipt data storage logic write-in relevant to exposure identifier, user type and preset condition when creating block chain network
In chain code, so that receipt data storage logic may be implemented in each block chain node.With exposure identifier, user type
Relevant with preset condition receipt data storage logic may include: to the recognition logic of user type, to preset condition really
Determine logic, the logic stored based on exposure identifier to receipt contents etc..
First block chain node is used to indicate to the recognition logic of user type: the user type of identification transaction initiator.
Such as: the incidence relation or system that can recorde between predefined external account and user type in system contract close
It can recorde the corresponding relationship between the value and user type of user's type field in about.It can specifically refer to and above know
The associated description of other user type, details are not described herein again.
First block chain node is used to indicate to the determination logic of preset condition: obtaining the object institute that exposure identifier is indicated
The preset condition that corresponding receipt contents are applicable in.Such as: the general conditions for being suitable for all receipt fields are obtained, or are obtained
The conditions of particular application etc. of the locating field of receipt contents corresponding to the object indicated suitable for exposure identifier.It can specifically refer to
The above associated description of preset condition, details are not described herein again.
The logic stored based on exposure identifier to receipt contents is used to indicate the first block chain node: for exposure
Object, exposure not specified object of identifier that identifier is indicated etc., are respectively adopted which kind of mode stores corresponding receipt contents.
Such as: in the case where the initiator that trades belongs to pre-set user type, for exposing receipts corresponding to the object that identifier is indicated
According to content, using close when being stored using plaintext version when the receipt contents meet preset condition, do not meet preset condition
Literary form is stored, and other receipt contents are all made of ciphertext form and are stored in receipt data.
However, the upgrading update of chain code is relatively difficult, so that realizing the storage to receipt data using chain code
There is a problem of that flexibility is low, scalability is insufficient.In order to realize the Function Extension to chain code, as shown in figure 5, can use
The mode that chain code is combined with system contract: chain code for realizing block chain network basic function, and in operational process
Function Extension can be realized by way of system contract.Similar with above-mentioned intelligent contract, system contract includes example
Such as the code of bytecode form, the first block chain node can be by the code of operating system contract (for example, according to unique corresponding
Address " 0x53a98 ... " read the code in the system contract), realize and the function of chain code supplemented.Correspondingly, first
Block chain node can read the code of system contract, define in the code of the system contract and exposure identifier, user class
Type and the relevant receipt data of preset condition store logic;Then, the first block chain node can execute the code of system contract,
To store logic based on receipt data relevant to exposure identifier, user type and preset condition, in transaction initiator
In the case where belonging to pre-set user type, preset condition will be met in the receipt contents for corresponding to the object that exposure identifier is indicated
Part with plaintext version storage, receipt data remaining receipt contents stored with ciphertext form.
It is different from the above-mentioned intelligent contract that block chain is distributed to by user, system contract can not freely be issued by user.The
The system contract that one block chain node is read may include the preset system contract being configured in the wound generation block of block chain network;With
And the administrator (i.e. above-mentioned management user) in block chain network can have the renewal authority for system contract, thus
It is updated for such as above-mentioned preset system contract, then the system contract that above-mentioned first block chain node is read can also wrap
Include system contract after updating accordingly.Certainly, system contract can be implemented once preset system contract by administrator after update
It is obtained after update;Alternatively, system contract obtains after can implementing successive ignition update to preset system contract by administrator after updating
Arrive, for example, by preset system contract update to obtain system and about 1, to system and about 1 update the system that obtains and about 2, system is closed
About 2 updates obtain system and about 3, and the system and about 1, system and about 2, system and about 3 can be considered as system contract after update,
But the first block chain node would generally be subject to the system contract of latest edition, for example the first block chain node can be with system contract
Subject to code in 3, and the code in nonsystematic and about 1 or system and about 2.
Other than the preset system contract for including in wound generation block, administrator can also close delivery system in subsequent block
About, and for the system contract issued it is updated.In short, should be closed by modes such as rights managements to system
Publication about and update and implement a degree of limitation, with ensure block chain network function logic can normal operation, and
It avoids causing unnecessary loss to any user.
First block chain node is encrypted by key pair at least part receipt contents.The encryption can use
Symmetric cryptography can also use asymmetric encryption.If the first block chain node symmetric cryptography mode, i.e., calculated with symmetric cryptography
The symmetric key of method encrypts receipt contents, then client (or other hold the object of key) can use the symmetric encipherment algorithm
Symmetric key encrypted receipt contents are decrypted.
In one embodiment, the symmetric key of the first block chain node symmetric encipherment algorithm encrypts receipt contents
When, which can be provided previously to the first block chain node by client.So, due to only having client (actually should
For the corresponding user of logon account in client) and the first block chain node grasp the symmetric key so that the only client
End can decrypt corresponding encrypted receipt contents, avoid unrelated user even criminal to encrypted receipt contents into
Row decryption.
For example, client, when initiating to trade to the first block chain node, client can use the first of symmetric encipherment algorithm
Beginning key pair transaction content is encrypted, to obtain the transaction;Correspondingly, the first block chain node can be initial by obtaining this
Key, for directly or indirectly being encrypted to receipt contents.For example, which can be by client and the first block
Chain node is negotiated to obtain in advance, perhaps by Key Management server is sent to client and the first block chain node or by visitor
Family end is sent to the first block chain node.When initial key is sent to the first block chain node by client, client can be with
After encrypting by the public key of rivest, shamir, adelman to the initial key, encrypted initial key is sent to the firstth area
Block chain node, and the first block chain node solves the encrypted initial key by the private key of rivest, shamir, adelman
It is close, initial key is obtained, i.e., digital envelope encryption described above, details are not described herein again.
In one embodiment, the first block chain node can encrypt receipt contents using above-mentioned initial key.
Difference transaction use initial keys can be identical so that the All Activity that same user is submitted be all made of the initial key into
Row encryption, or the initial key that different transaction use can be different, for example client can be generated for each transaction is random
One initial key, to promote safety.
In one embodiment, the first block chain node can generate derivative key according to initial key and impact factor, and
Receipt contents are encrypted by the derivative key.It is encrypted compared to initial key is directlyed adopt, derivative key can be with
Increase degree of randomness, to promote the difficulty being broken, facilitates the safeguard protection for optimizing data.Impact factor can be with transaction phase
It closes;For example, impact factor may include trade cryptographic Hash specific bit, such as the first block chain node can by initial key with
First 16 (or first 32,16 latter, rear 32 or other positions) of transaction cryptographic Hash are spliced, and to spliced word
Symbol string carries out Hash operation, to generate derivative key.
In one embodiment, the first block chain node can also use asymmetric encryption mode, i.e., calculated with asymmetric encryption
The public key of method encrypts receipt contents, then correspondingly, client can be decrypted above-mentioned with the private key of the rivest, shamir, adelman
Encrypted receipt contents.The key of rivest, shamir, adelman, such as can be and a pair of of public key and private key are generated by client, and
Public key is sent to the first block chain node in advance, so that the first block chain node can be by the receipt contents public key encryption.
First block chain node is by running the code for realizing a certain function, to realize the function.Therefore, for needing
The function to realize in TEE also needs to execute correlative code.And the code for being executed in TEE, it needs to meet TEE
Related specifications and requirement;Accordingly for the rule for realizing the code of a certain function, needed in the related technology in conjunction with TEE
Model and requirement re-start written in code, and there is only relatively bigger exploitation amounts, and are easy to produce during rewriting
Raw loophole (bug) influences the reliability and stability of function realization.
Therefore, the first block chain node can be by executing store function code, the receipts that will be generated in TEE except TEE
According to data (including needing the receipt contents of the plaintext version of stored in clear, and the receipt of the ciphertext form that needs ciphertext to store
Content) external memory space to except TEE is stored, allow the store function code to be in the related technology for realizing depositing
It stores up the code of function, need to re-start written in code in conjunction with the specification and requirement of TEE, can realize peace for receipt data
Complete reliable storage, on the basis of not influencing safe and reliable degree, can not only reduce the exploitation amount of correlative code, and
TCB (Trusted Computing Base, trusted computing base) can be reduced by reducing the correlative code of TEE, so that TEE
During technology and block chain technology are combined, it is additional caused by security risk be in controlled range.
In one embodiment, the first block chain node can execute write buffer function code in TEE, by above-mentioned receipts
It is stored in the write buffer in TEE according to data, for example the write buffer can correspond to " caching " as shown in Figure 1.Further,
One block chain node exports the data in write buffer from credible performing environment, to store to external memory space.Wherein, it writes slow
Depositing function code can be stored in TEE with plaintext version, and the caching function generation of the plaintext version can be directly executed in TEE
Code;Or, write buffer function code can be stored in except TEE with ciphertext form, for example it is stored in above-mentioned external memory space
(such as " packing+storage " shown in Fig. 4, wherein " packing " indicates the first block chain node except credible performing environment to friendship
Easily be packaged blocking), the write buffer function code of the ciphertext form can be read in TEE, be decrypted in TEE as in plain text
Code, and execute the plaintext code.
Write buffer refers to when writing data into external memory space, in order to avoid causing " the punching to external memory space
Hit " and " buffering " mechanism of offer.For example, can realize above-mentioned write buffer using buffer;Certainly, write buffer can also adopt
It is realized with cache, this specification is limited not to this.In fact, due to the security context that TEE is isolation, and it is external
Memory space is located at except TEE, so that can carry out batch by using write buffer mechanism to the data in caching and outside is written
Memory space promotes data storage efficiency to reduce the interaction times between TEE and external memory space.Meanwhile TEE exists
During constantly executing each item transaction, it may be necessary to transfer generated data, be write if the data that need to be called are located exactly at
In caching, the data can be directly read from write buffer, on the one hand can reduce the friendship between external memory space in this way
Mutually, it on the other hand eliminates to the decrypting process from external memory space data streams read, thus at the data being lifted in TEE
Manage efficiency.
It is of course also possible to write buffer be built on except TEE, for example the first block chain node can execute except TEE
Write buffer function code, thus by the write buffer outside above-mentioned receipt data deposit TEE, and further by the number in write buffer
According to storing to external memory space.
A kind of combination code mark of this specification is introduced below in conjunction with Fig. 6 and the conditional receipt storage of user type saves
The embodiment of point, comprising:
Receiving unit 61 receives the transaction for corresponding to intelligent contract by encryption, wraps in the code of the intelligence contract
Include the object indicated by exposure identifier;
Decryption unit 62 decrypts the transaction in credible performing environment, to obtain the code of the intelligent contract;
Execution unit 63 executes the code of the intelligent contract in the credible performing environment, obtains receipt data;
Storage unit 64 stores the receipt data, to make to correspond to when the initiator that trades belongs to pre-set user type
Meet the part of preset condition in the receipt contents for the object that the exposed identifier is indicated with plaintext version storage, the receipt
Remaining receipt contents of data are stored with ciphertext form.
Optionally, the corresponding intelligent contract of the received transaction of receiving unit 61, comprising:
The intelligent contract of high level language;Or,
The intelligent contract of bytecode form.
Optionally, when the intelligent contract that the corresponding intelligent contract of the received transaction of receiving unit 61 is high level language
When, the node further include:
Compilation unit 65 is compiled by intelligent contract of the compiler to the high level language, generates bytecode
The intelligent contract of form, to be executed in the credible performing environment.
Optionally, when the intelligent contract that the corresponding intelligent contract of the received transaction of the first block chain node is bytecode form
When, the intelligent contract of the bytecode form is compiled by client by intelligent contract of the compiler to high level language
And obtain, the intelligent contract of the high level language is write to obtain by user in the client.
Optionally, the intelligent contract of the high level language and the intelligent contract of the bytecode form have it is identical or
Corresponding exposed identifier.
Optionally, the corresponding intelligent contract of the received transaction of receiving unit 61, comprising:
The intelligent contract that user generates on the first block chain node;Or,
The intelligent contract that user generates on the client;Or,
The intelligent contract in transaction that the client is sent by the second block chain node.
Optionally, the object that the exposed identifier is indicated includes: receipt field and/or state variable.
Optionally, the object that the exposed identifier is indicated includes: contract grade object;Storage unit 64 is specifically used for:
Trade initiator belong to pre-set user type when, will in the receipt data correspond to the contract grade object and
All receipt contents for meeting the preset condition are stored with plaintext version.
Optionally, the object that the exposed identifier is indicated includes: corresponding at least one defined in the intelligent contract
The event level object of a event;Storage unit 64 is specifically used for:
When the initiator that trades belongs to pre-set user type, determine to correspond in the receipt data it is described at least one
The receipt contents of event, and the event level object will be corresponded in the receipt contents determined and meet the preset condition
Part is stored with plaintext version.
Optionally, the first block chain node determines user type belonging to the transaction initiator by following manner:
Determine the corresponding external account of the transaction initiator;
The corresponding user type of the external account recorded on inquiry block chain, as belonging to the transaction initiator
User type.
Optionally, the external account includes the type field being recorded on block chain, the value pair of the type field
User type described in Ying Yu.
Optionally, when creating the external account, the user type is configured as association to the external account, makes
Incidence relation between the user type and the external account is recorded in block chain.
Optionally, further includes:
Changing unit 66 changes the corresponding user type of the external account according to management Client-initiated change request.
Optionally, the preset condition includes at least one of: including preset content in corresponding receipt contents, corresponding
The values of receipt contents belong to default value section.
Optionally,
The preset condition includes the corresponding general conditions of all receipt fields in the receipt data;Or,
The preset condition includes the corresponding conditions of particular application of each receipt field in the receipt data.
Optionally,
The preset condition is located in the transaction;Or,
The preset condition is located in the corresponding intelligent contract of the transaction or the corresponding intelligent contract of the transaction is adjusted
In another intelligence contract;Or,
The preset condition is located in system contract or chain code.
Optionally, storage unit 64 is specifically used for:
The code of reading system contract, define in the code of the system contract with exposure identifier, user type and
The relevant receipt data of preset condition stores logic;
The code of the system contract is executed, will correspond to described when the initiator that trades belongs to pre-set user type
Meet the part of preset condition in the receipt contents for the object that exposure identifier is indicated with plaintext version storage, the receipt data
Remaining receipt contents stored with ciphertext form.
Optionally, the system contract includes: that the preset system contract being recorded in wound generation block or the preset system close
System contract after about corresponding update.
Optionally, storage unit 64 is specifically used for:
First block chain node executes store function code except the credible performing environment, by the receipt data
It stores to the external memory space except the credible performing environment.
Optionally, the key that the first block chain node encrypts the receipt data includes: symmetric encipherment algorithm
The key of key or rivest, shamir, adelman.
Optionally, the key of the symmetric encipherment algorithm includes the initial key that the client provides;Or, described symmetrical
The key of Encryption Algorithm includes the derivative key that the initial key and impact factor generate.
Optionally, the transaction is encrypted by the initial key, and the initial key is by rivest, shamir, adelman
Public key encrypted;Decryption unit 62 is specifically used for:
It is decrypted to obtain the initial key with the private key of the rivest, shamir, adelman, and with the initial key to described
Transaction is decrypted, to obtain the transaction content.
Optionally, the initial key is generated by client;Or, the initial key is sent to by Key Management server
The client.
Optionally, the impact factor is related to the transaction.
Optionally, the impact factor includes: the specific bit of the cryptographic Hash of the transaction.
In the 1990s, the improvement of a technology can be distinguished clearly be on hardware improvement (for example,
Improvement to circuit structures such as diode, transistor, switches) or software on improvement (improvement for method flow).So
And with the development of technology, the improvement of current many method flows can be considered as directly improving for hardware circuit.
Designer nearly all obtains corresponding hardware circuit by the way that improved method flow to be programmed into hardware circuit.Cause
This, it cannot be said that the improvement of a method flow cannot be realized with hardware entities module.For example, programmable logic device
(Programmable Logic Device, PLD) (such as field programmable gate array (Field Programmable Gate
Array, FPGA)) it is exactly such a integrated circuit, logic function determines device programming by user.By designer
Voluntarily programming comes a digital display circuit " integrated " on a piece of PLD, designs and makes without asking chip maker
Dedicated IC chip.Moreover, nowadays, substitution manually makes IC chip, this programming is also used instead mostly " is patrolled
Volume compiler (logic compiler) " software realizes that software compiler used is similar when it writes with program development,
And the source code before compiling also write by handy specific programming language, this is referred to as hardware description language
(Hardware Description Language, HDL), and HDL is also not only a kind of, but there are many kind, such as ABEL
(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description
Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL
(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby
Hardware Description Language) etc., VHDL (Very-High-Speed is most generally used at present
Integrated Circuit Hardware Description Language) and Verilog.Those skilled in the art also answer
This understands, it is only necessary to method flow slightly programming in logic and is programmed into integrated circuit with above-mentioned several hardware description languages,
The hardware circuit for realizing the logical method process can be readily available.
Controller can be implemented in any suitable manner, for example, controller can take such as microprocessor or processing
The computer for the computer readable program code (such as software or firmware) that device and storage can be executed by (micro-) processor can
Read medium, logic gate, switch, specific integrated circuit (Application Specific Integrated Circuit,
ASIC), the form of programmable logic controller (PLC) and insertion microcontroller, the example of controller includes but is not limited to following microcontroller
Device: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20 and Silicone Labs C8051F320 are deposited
Memory controller is also implemented as a part of the control logic of memory.It is also known in the art that in addition to
Pure computer readable program code mode is realized other than controller, can be made completely by the way that method and step is carried out programming in logic
Controller is obtained to come in fact in the form of logic gate, switch, specific integrated circuit, programmable logic controller (PLC) and insertion microcontroller etc.
Existing identical function.Therefore this controller is considered a kind of hardware component, and to including for realizing various in it
The device of function can also be considered as the structure in hardware component.Or even, it can will be regarded for realizing the device of various functions
For either the software module of implementation method can be the structure in hardware component again.
System, device, module or the unit that above-described embodiment illustrates can specifically realize by computer chip or entity,
Or it is realized by the product with certain function.It is a kind of typically to realize that equipment is computer.Specifically, computer for example may be used
Think personal computer, laptop computer, cellular phone, camera phone, smart phone, personal digital assistant, media play
It is any in device, navigation equipment, electronic mail equipment, game console, tablet computer, wearable device or these equipment
The combination of equipment.
For convenience of description, it is divided into various units when description apparatus above with function to describe respectively.Certainly, implementing this
The function of each unit can be realized in the same or multiple software and or hardware when specification.
It should be understood by those skilled in the art that, the embodiment of the present invention can provide as method, system or computer program
Product.Therefore, complete hardware embodiment, complete software embodiment or reality combining software and hardware aspects can be used in the present invention
Apply the form of example.Moreover, it wherein includes the computer of computer usable program code that the present invention, which can be used in one or more,
The computer program implemented in usable storage medium (including but not limited to magnetic disk storage, CD-ROM, optical memory etc.) produces
The form of product.
The present invention be referring to according to the method for the embodiment of the present invention, the process of equipment (system) and computer program product
Figure and/or block diagram describe.It should be understood that every one stream in flowchart and/or the block diagram can be realized by computer program instructions
The combination of process and/or box in journey and/or box and flowchart and/or the block diagram.It can provide these computer programs
Instruct the processor of general purpose computer, special purpose computer, Embedded Processor or other programmable data processing devices to produce
A raw machine, so that being generated by the instruction that computer or the processor of other programmable data processing devices execute for real
The device for the function of being specified in present one or more flows of the flowchart and/or one or more blocks of the block diagram.
This specification can describe in the general context of computer-executable instructions executed by a computer, such as journey
Sequence module.Generally, program module include routines performing specific tasks or implementing specific abstract data types, programs, objects,
Component, data structure etc..This specification can also be practiced in a distributed computing environment, in these distributed computing environment
In, by executing task by the connected remote processing devices of communication network.In a distributed computing environment, program module
It can be located in the local and remote computer storage media including storage equipment.
These computer program instructions, which may also be stored in, is able to guide computer or other programmable data processing devices with spy
Determine in the computer-readable memory that mode works, so that it includes referring to that instruction stored in the computer readable memory, which generates,
Enable the manufacture of device, the command device realize in one box of one or more flows of the flowchart and/or block diagram or
The function of being specified in multiple boxes.
These computer program instructions also can be loaded onto a computer or other programmable data processing device, so that counting
Series of operation steps are executed on calculation machine or other programmable devices to generate computer implemented processing, thus in computer or
The instruction executed on other programmable devices is provided for realizing in one or more flows of the flowchart and/or block diagram one
The step of function of being specified in a box or multiple boxes.In a typical configuration, computer includes at one or more
Manage device (CPU), input/output interface, network interface and memory.
Memory may include the non-volatile memory in computer-readable medium, random access memory (RAM) and/or
The forms such as Nonvolatile memory, such as read-only memory (ROM) or flash memory (flash RAM).Memory is computer-readable medium
Example.
Computer-readable medium includes permanent and non-permanent, removable and non-removable media can be by any method
Or technology come realize information store.Information can be computer readable instructions, data structure, the module of program or other data.
The example of the storage medium of computer includes, but are not limited to phase change memory (PRAM), static random access memory (SRAM), moves
State random access memory (DRAM), other kinds of random access memory (RAM), read-only memory (ROM), electric erasable
Programmable read only memory (EEPROM), flash memory or other memory techniques, read-only disc read only memory (CD-ROM) (CD-ROM),
Digital versatile disc (DVD) or other optical storage, magnetic cassettes, disk storage, quantum memory, based on graphene
Storage medium or other magnetic storage devices or any other non-transmission medium, can be used for storing can be accessed by a computing device
Information.As defined in this article, computer-readable medium does not include temporary computer readable media (transitory media),
Such as the data-signal and carrier wave of modulation.
It should also be noted that, the terms "include", "comprise" or its any other variant are intended to nonexcludability
It include so that the process, method, commodity or the equipment that include a series of elements not only include those elements, but also to wrap
Include other elements that are not explicitly listed, or further include for this process, method, commodity or equipment intrinsic want
Element.In the absence of more restrictions, the element limited by sentence "including a ...", it is not excluded that including described want
There is also other identical elements in the process, method of element, commodity or equipment.
It is above-mentioned that this specification specific embodiment is described.Other embodiments are in the scope of the appended claims
It is interior.In some cases, the movement recorded in detail in the claims or step can be come according to the sequence being different from embodiment
It executes and desired result still may be implemented.In addition, process depicted in the drawing not necessarily require show it is specific suitable
Sequence or consecutive order are just able to achieve desired result.In some embodiments, multitasking and parallel processing be also can
With or may be advantageous.
The term that this specification one or more embodiment uses be only merely for for the purpose of describing particular embodiments, and
It is not intended to be limiting this specification one or more embodiment.In this specification one or more embodiment and the appended claims
Used in the "an" of singular, " described " and "the" be also intended to including most forms, unless context understands earth's surface
Show other meanings.It is also understood that term "and/or" used herein refers to and includes one or more associated list
Any or all of project may combine.
It will be appreciated that though this specification one or more embodiment may using term first, second, third, etc. come
Various information are described, but these information should not necessarily be limited by these terms.These terms are only used to same type of information area each other
It separates.For example, the first information can also be referred to as in the case where not departing from this specification one or more scope of embodiments
Two information, similarly, the second information can also be referred to as the first information.Depending on context, word as used in this is " such as
Fruit " can be construed to " ... when " or " when ... " or " in response to determination ".
The foregoing is merely the preferred embodiments of this specification one or more embodiment, not to limit this theory
Bright book one or more embodiment, all within the spirit and principle of this specification one or more embodiment, that is done is any
Modification, equivalent replacement, improvement etc. should be included within the scope of the protection of this specification one or more embodiment.