WO2021114819A1 - 生成和执行智能合约交易的方法及装置 - Google Patents

生成和执行智能合约交易的方法及装置 Download PDF

Info

Publication number
WO2021114819A1
WO2021114819A1 PCT/CN2020/118000 CN2020118000W WO2021114819A1 WO 2021114819 A1 WO2021114819 A1 WO 2021114819A1 CN 2020118000 W CN2020118000 W CN 2020118000W WO 2021114819 A1 WO2021114819 A1 WO 2021114819A1
Authority
WO
WIPO (PCT)
Prior art keywords
participant
contract
key
public key
transaction
Prior art date
Application number
PCT/CN2020/118000
Other languages
English (en)
French (fr)
Inventor
林立
马宝利
Original Assignee
支付宝(杭州)信息技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 支付宝(杭州)信息技术有限公司 filed Critical 支付宝(杭州)信息技术有限公司
Publication of WO2021114819A1 publication Critical patent/WO2021114819A1/zh

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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/18Legal services
    • 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
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/18Legal services
    • G06Q50/188Electronic negotiation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Definitions

  • One or more embodiments of this specification relate to the field of blockchain technology and data security, and in particular to methods and devices for executing smart contract transactions in the blockchain under the premise of protecting private data from leaking.
  • Blockchain technology is an application mode that uses computer technologies such as point-to-point transmission, consensus mechanism, and encryption algorithm to realize distributed storage of data.
  • data storage and recording are realized through transactions.
  • the transaction content of each transaction is jointly maintained by all nodes of the blockchain network, and no party can tamper with the content in the block.
  • a smart contract is a transaction contract that can be automatically executed. It is written into the blockchain in a digital form.
  • the characteristics of the blockchain technology ensure that the entire process of storage, reading, and execution is transparent, traceable, and non-tamperable.
  • each transaction in the blockchain is publicly recorded in the block, and any node can access and read it.
  • any node can access and read it.
  • how to not disclose private information on the premise that the node can verify and execute the transaction normally has become a problem to be solved.
  • One or more embodiments of this specification describe a method for generating and executing smart contract transactions, which can generate and execute smart contract transactions without leaking data privacy.
  • a method for initiating a smart contract transaction to protect privacy data is provided, which is executed by a first participant, and the method includes: determining the first contract identifier of the first smart contract to be invoked.
  • This transaction involves And the private data to be filled in the first smart contract; wherein, each of the m participants is pre-configured with a participant’s private key and a participant’s public key, and the participant’s private
  • the key is generated based on a first cyclic group
  • the participant public key includes a first public key part and a second public key part, wherein the first public key part is generated based on the second cyclic group, and the second public key part is based on
  • the first recurring group and the second recurring group are generated by pairing; each participant also uses a generation method corresponding to the participant's private key to generate key cross terms for other participants; the privacy data Including the first private text; generating first auxiliary information, including the first aggregation result of the first aggregation of the first public key parts of
  • the privacy data further includes a first privacy value; correspondingly, the above method further includes: generating a contract private key and a corresponding contract public key based on the first symmetric key and the first contract identifier; The first homomorphic encryption algorithm is used to encrypt the first privacy value based on the contract public key to generate second encrypted data; the second encrypted data is included in the first transaction content.
  • the first participant performs its key configuration in advance by: taking any first random number, and taking any first element in the first cyclic group; using a predetermined hash mapping function , Mapping the identity of the first participant to the second element in the first cyclic group; based on the first random number, the group operation of the first element and the second element in the first cyclic group , Obtain the participant's private key of the first participant; perform a group operation on the second generator corresponding to the second cyclic group based on the first random number to obtain the first public key of the first participant Part; Based on the pairing between the first element in the first cyclic group and the second generator, the second public key part of the first participant is obtained.
  • the key configuration of the first participant further includes: for any second participant among the m participants, using the hash mapping function to map the identity of the second participant To the third element in the first cyclic group, based on the first random number, the group operation of the first element and the third element in the first cyclic group, and obtain the first participant against the second participant The key cross-term of, and at least publish it to the second participant.
  • the first participant generates the first auxiliary information in the following manner: any second random number is selected, and the second generator corresponding to the second cyclic group is grouped based on the second random number to generate Auxiliary field; first aggregation is performed on the m first public key parts of the m participants based on the second random number to generate a first aggregation result; the auxiliary field and the first aggregation result form the First auxiliary information; correspondingly, the second aggregation result is the result of performing a second aggregation on the m second public key parts of the m participants based on the second random number.
  • the step of generating the first symmetric key may include performing a hash operation on the second aggregation result and the first contract identifier to obtain the first symmetric key.
  • the step of generating a contract private key and a corresponding contract public key may include: performing a predetermined hash operation on the first symmetric key and the first contract identifier to obtain the contract private key;
  • the contract private key performs a group operation on the third generator in the third cyclic group to obtain the contract public key.
  • the process of generating the second encrypted data may include: performing group operations in the third cyclic group based on the selected third random number, the first privacy value, and the contract public key, Obtain the second encrypted data.
  • the method includes, based on the ⁇ zero-knowledge proof protocol, using the contract public key to generate a first proof of the legality of the first privacy value encryption; correspondingly, the first transaction content can be Includes the contract public key and the first proof.
  • the method further includes, based on the bulletproof range proof protocol, generating a second proof that the first privacy value is within the legal range; correspondingly, the first transaction content may include the first Two proof.
  • a method for executing a smart contract transaction that protects privacy data which is executed by a second participant, and the method includes: acquiring transaction content of a first transaction that calls the first smart contract, including: The information of the m participants involved in the transaction, the first auxiliary information, and the first encrypted data; wherein, the m participants include the second participant; each of the m participants is pre-configured with The participant’s private key and the participant’s public key, the participant’s private key is generated based on a first round group, the participant’s public key includes a first public key part and a second public key part, the first public key part is based on The second cyclic group is generated, and the second public key is partly generated based on the pairing between the first cyclic group and the second cyclic group; each participant also uses a generation method corresponding to the participant’s private key for Other participants generate key cross terms; the first auxiliary information includes the first aggregation result of the first public key parts of the m participants,
  • the transaction content of the first transaction further includes second encrypted data obtained by encrypting the first privacy value; in this case, the method further includes, based on the first symmetric key and the The first contract identifier determines the contract private key; the first homomorphic decryption algorithm is used to decrypt the second encrypted data using the contract private key to obtain the first privacy value; correspondingly, the local transaction status is recorded It also includes recording the transaction status according to the first privacy value.
  • the foregoing transaction content is acquired in the following manner: in response to receiving a transaction notification from the first node of the blockchain network, the transaction content of the first transaction is acquired from the blockchain.
  • the private key of the second participant is generated in the following manner: any fourth random number is selected, and the fourth element is randomly selected in the first cyclic group; using a predetermined hash mapping function, The identifier of the second participant is mapped to the fifth element in the first cyclic group; based on the fourth random number, the group operation of the fourth element and the fifth element in the first cyclic group obtains the The participant’s private key of the second participant; correspondingly, any third participation policy among the m participants generates the key cross-term generated by the second participant in the following manner: based on the third participant The arbitrary fifth random number, the arbitrary sixth element in the first cyclic group, and the above-mentioned fifth element, perform group operations in the first cyclic group, and obtain that the third participant is directed to the second participation The key cross entry of the party.
  • the first auxiliary information includes an auxiliary field and the first aggregation result
  • the auxiliary field is generated by performing a group operation on the second generator of the second cyclic group based on a random number; in this way
  • the second aggregation result is restored by the following method: calculating the first pairing result of the third aggregation result and the auxiliary field, and the second pairing result of the fifth element and the first aggregation result Integrating the first pairing result and the second pairing result to obtain the second aggregation result.
  • the step of determining the first symmetric key specifically includes: performing a hash operation on the second aggregation result and the first contract identifier to obtain the first symmetric key.
  • the step of determining the contract private key specifically includes: performing a predetermined hash operation on the first symmetric key and the first contract identifier to obtain the contract private key.
  • the second encrypted data is generated based on the first privacy value and the contract public key corresponding to the contract private key by performing group operations in the third recurring group; in this case, the following methods are used Decrypt to obtain the first privacy value: use the contract private key to obtain the result of group operation on the fourth generator of the third cyclic group using the first privacy value; then traverse the fourth generator As a result of the possible group operation, the first privacy value is restored.
  • the second participant further performs the following steps: acquiring a second privacy text and a second privacy value used to update the transaction status, where the second privacy value and the first privacy value conform to a predetermined relationship Use the first symmetric key to encrypt the second private text to generate third encrypted data; generate the corresponding contract public key based on the contract private key; use the first homomorphic encryption algorithm, based on the contract public key The key encrypts the second privacy value to generate fourth encrypted data; generates a second transaction that calls the first smart contract, fills the second transaction content into the first smart contract, and the second transaction content Including, the information of the m participants, the third encrypted data, and the fourth encrypted data.
  • the step of generating the corresponding contract public key may include: performing a group operation on the third generator in the agreed third cyclic group based on the contract private key to obtain the contract public key.
  • the above method further includes: generating a third proof of the legality of the second privacy value encryption based on the ⁇ zero-knowledge proof protocol using the contract public key; correspondingly, the second transaction
  • the content includes the contract public key and the third certificate.
  • the above method further includes generating a fourth proof based on the bulletproof range proof protocol, where the fourth proof is used to prove that the second privacy value is within the legal range, and that the second privacy value is consistent with the The relative magnitude of the first privacy value is within a predetermined range; correspondingly, the fourth proof may be included in the second transaction content.
  • a device for initiating smart contract transactions that protects privacy data, deployed in a terminal corresponding to a first participant, and the device includes: a determining unit configured to determine the value of the first smart contract to be invoked The first contract identifier, the m participants involved in this transaction, and the private data to be filled in the first smart contract; wherein each of the m participants is pre-configured with a participant’s private key and participation Party public key, the participant’s private key is generated based on a first cyclic group, the participant’s public key includes a first public key part and a second public key part, wherein the first public key part is generated based on the second cyclic group , The second public key is partly generated based on the pairing between the first recurring group and the second recurring group; each participant also uses a generation method corresponding to the participant’s private key to generate data for other participants Key cross term; the privacy data includes a first privacy text; an auxiliary information generating unit configured to generate first auxiliary information,
  • a device for executing smart contract transactions that protects privacy data deployed in a terminal corresponding to a second participant, and the device includes: an acquiring unit configured to acquire the first smart contract that calls the first smart contract.
  • the transaction content of the transaction includes the information of the m participants involved in the transaction, the first auxiliary information, and the first encrypted data; wherein the m participants include the second participant; the m
  • Each of the participants is pre-configured with a participant's private key and a participant's public key, the participant's private key is generated based on the first round group, and the participant's public key includes a first public key part and a second public key part
  • the first public key is partly generated based on the second cyclic group, and the second public key is partly generated based on the pairing between the first cyclic group and the second cyclic group; each participant also uses the The method of generating the private key corresponding to the participant generates a key cross term for other participants; the first auxiliary information includes the first aggregation result
  • a computer-readable storage medium having a computer program stored thereon, and when the computer program is executed in a computer, the computer is caused to execute the methods of the first aspect and the second aspect.
  • a computing device including a memory and a processor, characterized in that executable code is stored in the memory, and when the processor executes the executable code, the first aspect and the first aspect are implemented. Two-sided approach.
  • the private data input to the smart contract is encrypted using a special key design, so that only designated participants can decrypt and see it.
  • the privacy data input to the smart contract is divided into two parts: privacy text and privacy value.
  • privacy text based on the public keys of multiple designated parties, a symmetric key is aggregated to generate a symmetric key, and the symmetric encryption method is used to encrypt it to obtain text encrypted data.
  • private value on the basis of the aforementioned symmetric key, a contract public key-private key pair is generated, and the contract public key is used to encrypt it by homomorphic encryption to obtain numerically encrypted data.
  • the nodes in the blockchain can perform homomorphic operations on the numerically encrypted data. Therefore, the above encryption method does not affect the execution of the contract logic on the chain, and the nodes in the blockchain can still execute the smart contract and modify the variables in it.
  • the special encryption algorithm enables only designated participants to decrypt and restore the plaintext of private text and private values, thereby protecting privacy.
  • Fig. 1 shows a schematic diagram of the execution process of a smart contract transaction according to an embodiment
  • Figure 2 shows a schematic diagram of a privacy protection scheme according to an embodiment
  • Fig. 3 shows a flow chart of a method for initiating a smart contract transaction according to an embodiment
  • Figure 4 shows a schematic diagram of a process in which a node in the blockchain executes the first transaction
  • Fig. 5 shows a flowchart of a method for executing smart contract transactions according to an embodiment
  • Figure 6 shows a flow chart of a second participant initiating a second transaction in one embodiment
  • Fig. 7 shows a schematic block diagram of an apparatus for initiating a smart contract transaction according to an embodiment
  • Fig. 8 shows a schematic block diagram of an apparatus for executing smart contract transactions according to an embodiment.
  • Fig. 1 shows a schematic diagram of the execution process of a smart contract transaction according to an embodiment.
  • multiple institutions A, B, C, and D are involved to jointly complete a business.
  • institution A is an overseas enterprise, and institution B is a domestic branch; institution C is an overseas bank, and institution D is a domestic branch of the bank.
  • institution C and institution D have blockchain identities and can be connected to the blockchain network.
  • overseas institution A mortgages certain assets to overseas bank C in order to authorize its corresponding domestic branch B to obtain the equivalent loan amount from domestic bank D.
  • institution C and institution D can use smart contracts to record and track the entire process of credit granting, borrowing, and repayment with the help of blockchain, without the need for off-chain interaction.
  • institution C can initiate a transaction Tx1 to the blockchain network that calls a smart contract.
  • the smart contract can be a contract developed in advance and deployed to the blockchain, where the definition It has the necessary contract execution logic and has some interface functions for the caller to pass in parameters.
  • Institution C can use the aforementioned interface to fill in necessary information in the transaction Tx1 that calls the contract, including, for example, the authorized execution institution is D, the beneficiary institution is B, the credit line is v, and some other conventions and agreements.
  • Institution C can initiate such a transaction, where the originator field (from field) is its own chain identity (such as account Address), the target field (to field) is the contract address of the above smart contract, and the data field includes the called interface function and the incoming parameters.
  • the originator field from field
  • the target field to field
  • the data field includes the called interface function and the incoming parameters.
  • each node in the blockchain network will execute this transaction. More specifically, for a blockchain platform that supports smart contracts, each node is deployed with a virtual machine, such as the Ethereum virtual machine EVM, to execute the contract logic in the smart contract, and implement the contract on the network through a consensus mechanism The common change of state.
  • a virtual machine such as the Ethereum virtual machine EVM
  • each node in the blockchain network will execute the smart contract in the transaction. More specifically, each node executes the contract logic according to the deployed contract code, and uses the parameters passed in the transaction Tx1 to modify the state of the variables in the smart contract, for example, to update the variable value of the variable representing the credit limit to v.
  • Institution D is authorized to issue loan payments to Institution B.
  • Subsequent institution D can continue to record the transaction with institution B by invoking the transaction of the above-mentioned smart contract.
  • institution D issues payment v1 to institution B or receives repayment v2
  • institution D can initiate a transaction Tx2 calling the smart contract above, and fill in updated information, for example, the counterparty institution is B and the payment is v1 , Or receive repayment v2, and some other supplementary information.
  • Institution C and Institution D can use smart contracts to record the entire multi-party interaction process on the blockchain, and ensure that the records are true, effective and cannot be tampered with.
  • smart contracts involving multiple parties have been described. It can be understood that smart contracts can be applied to various scenarios and realize various functions, and are not limited to the above-mentioned application scenarios. For example, in a scenario, multiple participants can use smart contracts to maintain a common database. When data is updated at each participant, data updates are achieved by calling the smart contract and updating its variables.
  • smart contract transactions are more complicated than ordinary transfer transactions.
  • smart contract transactions may involve multiple parties.
  • smart contract transactions can include more complex data input, which includes not only values such as amounts, but also other content such as text.
  • the input data not only includes the value of the credit line v, but also includes supplementary content such as other agreements and agreements.
  • a privacy protection scheme is proposed for smart contract transactions involving multiple parties.
  • Fig. 2 shows a schematic diagram of a privacy protection scheme according to an embodiment.
  • This scheme uses a special key design to encrypt the private data input to the smart contract, so that only designated participants can decrypt it and see it. More specifically, the private data input to the smart contract is divided into two parts: private text and private value, and the two parts of private data are processed differently. For private text, based on the public keys of multiple designated parties, a symmetric key is aggregated to generate a symmetric key, and the symmetric encryption method is used to encrypt it to obtain text encrypted data.
  • a contract public key private key pair is generated, and the contract public key is used to encrypt it by homomorphic encryption to obtain numerically encrypted data.
  • a proof of the legality of the privacy value can also be generated based on the zero-knowledge proof protocol.
  • the nodes in the blockchain can verify the legality of the privacy value based on the zero-knowledge proof protocol. After the verification is passed, the encrypted data can be synchronized. State operation. Therefore, the above encryption method does not affect the execution of the contract logic on the chain, and the nodes in the blockchain can still execute the smart contract and modify the variables in it. At the same time, the special encryption algorithm enables only designated participants to decrypt and restore the plaintext of private text and private values, thereby protecting privacy.
  • the set U is a set of all possible users who have a blockchain account and may subsequently initiate a predetermined type of smart contract transaction.
  • each participant In the initial configuration phase, each participant must configure its own participant's private key and participant's public key.
  • the configuration of the aforementioned private key and public key depends on the two cyclic groups G 1 and G 2 agreed by the entire system.
  • the participant public key based on the participant private key to generate a first cyclic groups G 1, the participant public key comprises two parts, a first part of a public key and a second public key portion of R A, wherein the first public key based on the second part R
  • the cyclic group G 2 is generated, and the second public key part A is generated based on the pairing between the first cyclic group G 1 and the second cyclic group G 2.
  • the cyclic group can typically consist of a set of points on an elliptic curve over a finite field.
  • Elliptic curve is a kind of mathematical curve, which can generally be expressed as the following binary third-order equation:
  • a and b are coefficients.
  • the operation rules between points can be defined on the elliptic curve. Take two points on the elliptic curve, point P and point Q, connect the two points P and Q to make a straight line L, this straight line will intersect the third point S on the elliptic curve, and cross point S to be perpendicular to the X axis A straight line passing through another point R of the elliptic curve (usually a point where point S is symmetric about the X axis), and point R is defined as the result of the operation on point P and point Q.
  • the latter recording method is used in the rest of this article.
  • the elliptic curve can be limited to the finite field Fp.
  • the finite field Fp is a field containing a finite number of elements, and the number of elements is a prime number p. This prime number p is also called the order of the finite field. Operations in a finite field are defined based on modulo p.
  • the elliptic curve expressed by formula (1) on the finite field Fp is often denoted as Ep(a,b).
  • Ep(a,b) By choosing the coefficients a, b and the finite field p, an elliptic curve can be uniquely defined, and different elliptic curves have different safety characteristics. Common elliptic curves include P-256, secp256k1 and so on.
  • the points contained in the elliptic curve evolve from an infinite number of continuous points on the curve to a point set T containing a finite number of discrete points.
  • the point set T constitutes a cyclic group, namely the Abelian group. The number of concentrated points at this point is the order of the cyclic group.
  • two cyclic groups G 1 and G 2 can be pre-appointed by the system for each participant to generate a key.
  • the two cyclic groups have generators g 1 and g 2 respectively .
  • the system can also agree on the pairing algorithm e between the two cyclic groups G 1 and G 2.
  • the above agreed information can be used as configuration parameters and written into the SDK used by the participants. Therefore, each participant can perform the initial configuration of its own key based on the above agreed parameter information.
  • any participant u i can generate its participant's private key based on the above-mentioned first cyclic group G 1.
  • the participant u i can choose any random number r i ⁇ Z p , which is called the first random number for simplicity.
  • the first random number needs to be within the range of the order Z p of the two cyclic groups.
  • any element X i ⁇ G 1 is also selected in the above-mentioned first cyclic group, which is called the first element.
  • the participant’s own identity u i is mapped to the first cyclic group G 1 to obtain the second element H(u i ) in the first cyclic group .
  • the first element X i and the second element H(u i ) are grouped in the first cyclic group to obtain ⁇ ii as the participant's private key.
  • the participant u i can perform a group operation on the second generator g 2 corresponding to the second cyclic group G 2 based on the selected first random number r i to obtain the first public key part R i .
  • the first public key part is obtained by the following formula:
  • the pairing result between the first element X i in the first cyclic group G 1 and the generator g 2 of the second cyclic group is calculated to obtain the second public key Part A i , namely:
  • each participant also uses a generation method corresponding to the participant's private key to generate key cross-terms for other participants.
  • the aforementioned participant u i can generate a key cross term ⁇ ij for another participant u j (where i ⁇ j).
  • the generation method of the key cross term ⁇ ij corresponds to the generation method of the own private key ⁇ ii , except that the mapping of the self-identification u i is replaced with the mapping of the participating party identification u j .
  • the participant u i still uses the aforementioned hash mapping function H: s ⁇ G 1 to map the participant identifier u j to the first cyclic group G 1 to obtain the first The third element H(u j ) in the cyclic group.
  • the key cross entry of the participant u i to the participant u j is obtained ⁇ ij .
  • the key cross term ⁇ ij can be determined by the following formula:
  • the participant u i can send the key cross term ⁇ ij generated for the participant u j to the participant u j .
  • the participant u i can also publish the key cross entry generated for each other participant in the entire blockchain network.
  • cross-term matrix When each participant generates key cross-terms for other participants, the following cross-term matrix can be formed:
  • the k-th row represents the key cross-terms generated by the k-th participant for other participants; the k-th column represents the key cross-terms generated by each other participant for the k-th participant.
  • the elements on the diagonal correspond to the private keys generated by each participant for themselves, but the private key is held by the participants themselves and is not public.
  • each participant in the total set U composed of possible participants is configured to form the participant's private key, the participant's public key, and generate a key cross term. Based on this key configuration, the encryption and decryption of private data in smart contract transactions can be performed.
  • Fig. 3 shows a flowchart of a method for initiating a smart contract transaction according to an embodiment.
  • the method process can be executed by any participant, and for simplicity, it is called the first participant. It should be understood that the steps performed by the participants mentioned in this article are more specifically executed by the terminal device corresponding to the account of the participant.
  • step 31 the first contract identifier of the first smart contract to be called, the m participants involved in this transaction, and the privacy data to be filled in the first smart contract are determined.
  • the above-mentioned first smart contract is a contract currently to be called by the first participant, and is used to implement the target function expected by the first participant.
  • the first smart contract may be a contract of various types of functions, such as a contract for realizing data storage or interaction, a contract for payment or sale, and so on.
  • the first smart contract is a credit lending contract used by institution C in the scenario in FIG. 1.
  • the first contract identifier T id of the first smart contract may be the contract address of the first smart contract, or may also be other types of id identifiers.
  • the first participant can also determine the m participants involved in this transaction, including the first participant itself. It should be understood that the m participants are a subset S of the total set U formed by all the aforementioned possible participants. Therefore, each of the m participants is pre-configured with the participant’s private key and the participant in the aforementioned manner. Public key. In addition, each participant also uses a generation method corresponding to the participant's private key to generate key cross terms for other participants.
  • the first participant obtains the private data that needs to be filled in the smart contract for this transaction, including the first private text.
  • the privacy data also includes the first privacy value.
  • the first participant divides the privacy data into a text part and a numerical part, so that it can be processed differently later.
  • the privacy value may include, for example, the credit line v; the privacy text may include, for example, currency type, supplementary agreement, other terms, and so on.
  • step 32 the first participant generates the first auxiliary information, which includes the first aggregation result of the first aggregation of the first public key parts of the m participants; then, in step 33, the m participants are Perform a second aggregation corresponding to the first aggregation on the second public key part of, and determine the first symmetric key according to the second aggregation result and the first contract identifier.
  • the first auxiliary information is used in the subsequent decryption stage to be combined with the private key part and the cross-term part to help recover the above-mentioned first symmetric key.
  • the first auxiliary information is generated based on the aggregation of the first public key part.
  • the first auxiliary information can be generated in the following manner.
  • the first participant can choose any random number t, which is called the second random number. Based on the second random number t, a group operation is performed on the second generator g 2 corresponding to the second cyclic group G 2 to generate an auxiliary field c 1 .
  • the auxiliary field can be determined by the following formula:
  • the first participant performs the first aggregation on the m first public key parts of the m participants based on the above-mentioned second random number t to obtain the first aggregation result c 2 .
  • the first aggregation value is exponentiated based on the second random number t to obtain the first aggregation result c 2 , namely:
  • the aforementioned auxiliary field c 1 and the first aggregation result c 2 constitute first auxiliary information.
  • the first symmetric key K passes through the second aggregation result It is obtained by applying a predetermined function operation f 1 to the first contract identifier T id, namely:
  • the function f 1 is a reversely unsolvable function.
  • the above-mentioned function f 1 is a hash function H, so the formula (9) can be written as:
  • the first participant obtains the first symmetric key K, which can be used to encrypt private text.
  • the first participant uses the first symmetric key K to encrypt the first private text M to generate the first encrypted data E 1 .
  • any symmetric encryption algorithm can be used for encryption, such as the AES-GCM algorithm.
  • the private data also includes a private value
  • the corresponding contract private key and contract public key are generated for Encrypt the privacy value.
  • the contract private key SK can be generated first.
  • the contract private key SK is obtained by applying a predetermined functional operation f 2 to the first symmetric key K and the first contract identification T id, namely:
  • Formula function f 2 and Equation (9) (11) f 1 of the same may or may not be the same.
  • f 2 is a reversely unsolvable function. More specifically, in one embodiment, the above-mentioned function f 2 is a hash function H, so formula (11) can be written as:
  • group operations can be performed on the third generator h in the third cyclic group G 3 based on the contract private key SK to obtain the contract public key PK:
  • the third cyclic group G 3 may be another cyclic group different from the aforementioned first cyclic group and the second cyclic group, or may be multiplexed one of them.
  • step 36 the homomorphic encryption algorithm is used to encrypt the first private value based on the contract public key PK to generate the second encrypted data E 2 .
  • homomorphic encryption is an encryption function that performs addition and multiplication operations on plain text before encryption, and performs corresponding operations on cipher text after encryption, and the result is equivalent.
  • PK A public key to encrypt v 1 and v 2 to get with Satisfy with So
  • decrypt with the private key SK A You can get v 1 +v 2 ; decrypt with the private key SK A We can get v 1 -v 2 .
  • the privacy value can be homomorphically encrypted, so that the nodes in the blockchain can directly perform operations specified by the contract logic on the encrypted privacy value without decryption, so that privacy will not be leaked.
  • Numerical value Numerical value.
  • step 36 an existing homomorphic encryption algorithm can be selected, and the first privacy value can be homomorphically encrypted based on the contract public key PK generated in the foregoing steps.
  • the El-Gamal encryption algorithm is improved, and homomorphic encryption is performed based on the improved El-Gamal algorithm.
  • another random number r can be selected, called the third random number, based on the third random number r, the first privacy value v to be encrypted, and the above-mentioned contract public key PK, in the aforementioned third cyclic group G
  • the group operation is performed in 3 to obtain the second encrypted data E 2 .
  • the second encrypted data E 2 can be obtained by the following formula:
  • PK is a public key contract
  • r is the third random number
  • v is the first private value
  • g h to generate a third two-membered cyclic group G 3. It can be verified that the encryption method of the above formula (14) satisfies the homomorphism:
  • the first encrypted data E 1 for encrypting the first private text is obtained, and through the above step 36, the second encrypted data E 2 for encrypting the first private value is obtained.
  • a first transaction Tx1 that calls the above-mentioned first smart contract is generated, and the first transaction content is filled into the first smart contract, where the first transaction content may include: Information, first auxiliary information and first encrypted data E 1 .
  • the first transaction content also includes the above-mentioned second encrypted data E 2 that encrypts the private value.
  • the private text and the private value in the private data are respectively encrypted into the first encrypted data E 1 and the second encrypted data E 2 , and then are filled into the smart contract, so that the smart contract transaction does not leak the private data of the participants.
  • the first participant also generates the first proof ⁇ 1 of the legality of the first privacy value encryption based on the ⁇ zero-knowledge proof protocol.
  • Zero-knowledge proof is a way to prove the authenticity of the information without revealing the plaintext information. For example, if the owner has a private input s, it can generate the public part L(s) based on s, and then publish a zero-knowledge proof ⁇ . Using this zero-knowledge proof, the verifier can verify that the owner has a private input s, and this private s can generate L(s) without revealing the plaintext information of s.
  • a signature is a way of zero-knowledge proof.
  • the private key is the above-mentioned private input s
  • the public key is the corresponding public part L(s)
  • the signature based on the public key is the zero-knowledge proof ⁇ .
  • the verifier can verify that someone has the private key corresponding to the public key without revealing the private key itself.
  • the ⁇ zero-knowledge proof protocol can be used to generate the first proof ⁇ 1 of the legality of the first privacy value encryption by using the contract public key PK.
  • the first proof ⁇ 1 contains signature information based on the public key PK.
  • the above-mentioned contract public key is also included in the first transaction information and published on the chain.
  • the second proof ⁇ 2 whose first privacy value is within the legal range is generated.
  • Range proof is to prove that the value of a variable v is within a predetermined range without revealing the true value of the variable v.
  • Range proof is also a kind of zero-knowledge proof.
  • scope proof protocols among which bulletproof scope proof protocol is a proposal to improve the privacy of confidential transactions in some encrypted digital currency blockchain networks.
  • the bulletproof range proof protocol is adopted, and the above-mentioned contract private key SK is used as a witness to generate the above-mentioned second proof ⁇ 2 , which is used to prove that the first privacy value is within a predefined legal range.
  • the above-mentioned first smart contract is a credit lending contract
  • the above-mentioned first transaction is a transaction that initiates a credit
  • the first privacy value includes a credit line v.
  • the aforementioned predefined legal range is, for example, greater than zero.
  • the second proof ⁇ 2 is included in the first transaction content and published on the chain.
  • the first participant initiates the first transaction in the blockchain network.
  • the first transaction calls the first smart contract, and the transaction content contains the information of m participants, the first auxiliary information, and the The first encrypted data obtained by private text encryption.
  • the transaction content also includes the second encrypted data obtained by encrypting the privacy value.
  • the transaction content further includes the above-mentioned first proof ⁇ 1 and/or second proof ⁇ 2 .
  • FIG. 4 shows a schematic diagram of a process in which a node in the blockchain executes the first transaction.
  • step 41 the first transaction is verified.
  • the verification includes at least verifying the signature of the first transaction by the initiator of the transaction, that is, the above-mentioned first participant.
  • the verification of the signature can be performed using the public key for the signature published in advance by the first participant.
  • the node can verify whether the encryption of the first privacy value is legal based on the first proof.
  • the first participant while publishing the first proof ⁇ 1 , the first participant also discloses the contract public key PK in the transaction. Therefore, the node can use the contract public key PK to verify the encryption legitimacy of the first privacy value based on the first proof ⁇ 1 through the zero-knowledge proof protocol.
  • the node can verify whether the range of the first privacy value meets the predetermined range according to the second proof. For example, in the case where the second proof ⁇ 2 is generated using the bulletproof range proof protocol, the node can verify whether the range of the first privacy value is legal according to the range proof protocol and based on the second proof ⁇ 2. For example, check whether the first privacy value is greater than 0.
  • the node executes the contract logic of the first smart contract in the first transaction, and performs operations related to homomorphic operations on the second encrypted data E 2.
  • the information involved in the privacy text does not affect the execution logic of the contract. Therefore, the node may not process the first encrypted data E 1 and only record it as a part of the transaction content.
  • the execution process of the smart contract involves operations such as reading and writing, modification, and recording of some variables. These variables are encrypted as the second encrypted data E 2 as private values.
  • the second encrypted data E 2 is generated by homomorphic encryption. Therefore, the node can directly perform operations related to homomorphic operations without decrypting it.
  • the homomorphic operation shown in the aforementioned formula (15) can be used; when the targeted value in the second encrypted data needs to be added When the value is subtracted from the previously stored value, the homomorphic operation shown in the aforementioned formula (16) can be used.
  • the first transaction is, for example, a newly created credit loan contract
  • the first privacy value is a parameter value that is first passed in, for example, a credit limit.
  • the second encrypted data homomorphically encrypted for the first privacy value is recorded as the corresponding parameter value for use in subsequent homomorphic operations.
  • the node sends a notification to the m participants involved in the first transaction to notify each participant that the current first transaction is related to them.
  • the node notifies each relevant participant by way of log notification.
  • the node may also directly notify each relevant participant of the transaction content of the first transaction.
  • each participant After each participant receives the notification from the blockchain node, they can execute the smart contract transaction and update their local transaction status. The following describes the process of the relevant participants executing the smart contract transaction.
  • Fig. 5 shows a flow chart of a method for executing a smart contract transaction according to an embodiment, and the process is executed by the second participant among the aforementioned m participants.
  • the second participant is any participant that is different from the first participant among the m participants.
  • the first participant who initiated the above-mentioned first transaction is the institution C illustrated in FIG. 1, the second participant may be the corresponding institution D.
  • step 51 the second participant obtains the transaction content of the first transaction Tx that calls the first smart contract.
  • the second participant receives a log notification from a node of the blockchain, and reads the transaction content of the first transaction from the blockchain according to the log notification.
  • the blockchain node directly sends the transaction content of the first transaction to the relevant participant, so the second participant directly receives the aforementioned transaction content from the node.
  • the transaction content of the first transaction includes the information of the m participants involved in the transaction, the first auxiliary information, the first encrypted data E 1 , and the optional second encrypted data E 2 .
  • the first auxiliary information includes the first aggregation result of the first public key part of the m participants
  • the first encrypted data E 1 is data encrypted for the first private text
  • the second encrypted data E 2 is for the first private text.
  • a privacy value encrypted data Therefore, the second participant needs to use its own participant’s private key and the key cross-terms generated by other participants to restore the first private text corresponding to the first encrypted data with the help of the first auxiliary information. 2.
  • the first privacy value corresponding to the encrypted data includes the information of the m participants involved in the transaction, the first auxiliary information, the first encrypted data E 1 , and the optional second encrypted data E 2 .
  • the first auxiliary information includes the first aggregation result of the first public key part of the m participants
  • the first encrypted data E 1 is data encrypted for the first private text
  • the second participant aggregates the key cross-terms generated by the second participant from the other participation policies of the m participants, and the participant's private key of the second participant, to obtain the third aggregation result.
  • the second participant has a private key ⁇ jj generated based on the first round group G 1 .
  • the second participant u j generates its private key ⁇ jj in the following manner.
  • the second participant can take the fourth random number r j arbitrarily and the fourth element X j in the first cyclic group; then, use a predetermined hash mapping function to map the identity u j of the second participant In the first cyclic group, the fifth element H(u j ) is obtained; based on the fourth random number r j , the group operation of the fourth element X j and the fifth element H(u j ) in the first cyclic group, namely Obtain the participant's private key ⁇ jj of the second participant.
  • the private key of the second participant can be expressed as:
  • the key cross entries formed by each other participant for the second participant are specifically shown in the aforementioned matrix (6).
  • the second participant can determine the key cross term ⁇ kj generated by m-1 other participants among the m participants in the transaction from the above matrix, and the m-1 key cross term ⁇ kj is aggregated together with its own private key ⁇ jj to obtain the third aggregation result ⁇ S , where:
  • each of the participant private key is based on a first cycle of G 1 is generated, the cross key and participant private key item having a corresponding calculation is also based on the first cycle of generation, therefore, the third
  • the result of the aggregation is the element in the first cyclic group.
  • the first auxiliary information is generated based on the aggregation of the first public key part of the m participants, and the first public key part is generated based on the second cyclic group G 2 .
  • the pairing algorithm restores the second aggregation result that aggregates the second public key parts of the m participants.
  • the above-mentioned first auxiliary information includes an auxiliary field c 1 and a first aggregation result c 2 , wherein the auxiliary field c 1 is generated by the second cyclic group G 2 based on the second random number t.
  • the element g 2 is generated by performing a group operation, and the first aggregation result c 2 is generated by aggregating the m first public key parts of the m participants based on the above-mentioned second random number t.
  • the second aggregation result can be restored through the following pairing process: calculating the third aggregation result ⁇ S (in the first cyclic group) and the auxiliary field c 1
  • the first pairing result (in the second cyclic group), the fifth element H(u j ) (in the first cyclic group) used when generating the second participant’s private key, and the first aggregation result c 2 (the second cyclic group)
  • the second pairing result in the group) is combined with the first pairing result and the second pairing result to obtain the second aggregation result.
  • the second aggregation result It can be expressed as:
  • Formula (20) is derived based on the nature of the pairing algorithm between two cyclic groups. specific:
  • step 54 according to the above-mentioned second aggregation result And the first contract identifier T id of the first smart contract to obtain the first symmetric key K.
  • the calculation method of this step 54 is completely the same as that of step 33 in FIG. 3.
  • the first symmetric key K can be calculated according to the aforementioned formula (9).
  • the second aggregation result and the first contract identifier can be hashed according to the aforementioned formula (10) to obtain the first symmetric key K.
  • step 55 the first encrypted data E 1 is decrypted using the above-mentioned first symmetric key K to obtain the first private text.
  • the decryption algorithm corresponding to the symmetric encryption algorithm used in step 34 of FIG. 3 is used to decrypt the first encrypted data to obtain the original first private text.
  • step 56 based on the above-mentioned first symmetric key K and the first contract identifier, a contract private key SK is generated.
  • step 56 The calculation method of this step 56 is completely the same as that of step 35 in FIG. 3.
  • the contract private key SK can be calculated according to the aforementioned formula (11).
  • the first symmetric key and the first contract identifier can be hashed according to the aforementioned formula (12) to obtain the contract private key SK.
  • step 57 the first homomorphic decryption algorithm is used to decrypt the second encrypted data E 2 with the contract private key SK to obtain the first privacy value.
  • the decryption algorithm corresponding to the homomorphic asymmetric encryption algorithm used in step 36 of FIG. 3 is used to decrypt the second encrypted data to obtain the original first privacy value v.
  • the contract private key SK can be used first, and through the following calculations, the data based on the first
  • the privacy value v is the group operation result g v on the fourth generator g of the third cyclic group:
  • step 55 the second participant decrypts the original first privacy text
  • step 57 decrypts the original first privacy value, thereby obtaining all the information entered into the first smart contract through the first transaction. Private data.
  • step 58 the second participant records the local transaction status according to the decrypted first privacy text and the first privacy value.
  • the second participant may be institution D.
  • institution D can obtain the value v of the credit loan amount and other agreement content indicated by the first privacy text. According to these contents, the local transaction status is recorded.
  • the private data filled in the smart contract is divided into private text and private value, and they are processed separately, using different Way to encrypt and decrypt.
  • the process of initiating and executing smart contracts in the above embodiments has at least the following advantages.
  • the first symmetric key is obtained based on the public key aggregation of m participants, and the first encrypted data is obtained by encrypting the private text using the first symmetric key. Even if the number m of participants takes a larger value, it will not cause the data size of the first encrypted data to increase accordingly.
  • the ciphertext size of the first encrypted data is basically constant, and does not increase with the increase of the authorized group size. Compared with the ciphertext generation method that encrypts each participant separately in the conventional technology, this fixed-length ciphertext method can effectively reduce the cost of communication and storage, and is more suitable for frequent communication and multiple storage in the blockchain Scene.
  • the homomorphic encryption method is adopted for the privacy value in the above embodiment, so that the blockchain node can perform homomorphic operations without decryption, without affecting the execution of the contract logic.
  • the second participant decrypts the private data in the first transaction that invokes the first smart contract, so as to execute the first transaction.
  • the second participant can call the first smart contract again to initiate subsequent transactions, thereby updating the state of the variables in it.
  • the second participant is institution D in FIG. 1, after obtaining a credit line of v through the aforementioned first transaction, it can conduct a lending business with institution B. Therefore, structure D can call the first smart contract again to record the loan repayment status with institution B within the credit line v.
  • Figure 6 shows a flow chart of a second participant initiating a second transaction in one embodiment. It can be understood that this process is a process of initiating subsequent transactions of the first transaction after the second participant performs the aforementioned first transaction.
  • step 61 a second privacy text and a second privacy value used to update the transaction status are obtained, where the second privacy value and the aforementioned first privacy value conform to a predetermined relationship.
  • the second privacy text is a newly generated privacy text to be filled in this transaction
  • the second privacy value is a variable value related to the variable corresponding to the aforementioned first privacy value.
  • the second privacy text can be an explanation of the loan business
  • the second privacy value can be the actual loan amount v'issued to institution B, or Institution B’s repayment amount v′′.
  • the second privacy value is related to the aforementioned first privacy value and needs to conform to a predetermined relationship with the first privacy value.
  • the second privacy value v′ or v" must be less than or equal to the first privacy value v.
  • step 62 the second participant encrypts the second private text with the first symmetric key K to generate the third encrypted data E 3 .
  • the first symmetric key K here is the symmetric key obtained by the second participant through the aforementioned step 54 in FIG. 5. Since the second transaction to be initiated by the second participant still calls the first smart contract, which is a continuation of the aforementioned first transaction and has the same group of participants, the key in the aforementioned first transaction can still be used in this transaction.
  • step 63 the second participant generates a corresponding contract public key PK based on the aforementioned contract private key SK.
  • the contract private key SK here is the contract private key obtained by the second participant through step 56 in FIG. 5. Based on the contract private key, using the agreed public key generation method, the corresponding contract public key PK can be easily obtained.
  • step 64 the first homomorphic encryption algorithm is used to encrypt the second privacy value based on the contract public key PK to generate fourth encrypted data E 4 .
  • the encryption process is the same as step 36 in FIG. 3, and will not be repeated.
  • step 65 the second participant generates a second transaction that calls the aforementioned first smart contract, and fills the second transaction content into the first smart contract.
  • the second transaction content includes the same m participants’ Information, the third encrypted data E 3 , and the fourth encrypted data E 4 .
  • the subsequent transactions for the m participants may not Include the first auxiliary information.
  • the second participant may also fill the aforementioned first auxiliary information into the second transaction content again, so as to assist other participants in decryption or verification.
  • the second participant also generates the third proof ⁇ 3 of the legality of the second privacy value encryption based on the ⁇ zero-knowledge proof protocol using the contract public key PK, and combines the contract public key and
  • the third proof ⁇ 3 is included in the aforementioned second transaction content.
  • the method of generating the third proof is similar to the aforementioned first proof, and will not be repeated here.
  • the second participant also generates a fourth proof ⁇ 4 based on the bulletproof range proof protocol.
  • the fourth proof is used to prove that the second privacy value is within the legal range, and that the second privacy value is equal to The relative magnitude of the first privacy value is within a predetermined range. More specifically, in the foregoing credit lending example, the fourth proof not only needs to prove that the second privacy value v'or v” is greater than 0, but also needs to prove that the second privacy value v'or v” is less than or equal to the first privacy value. v, that is, the difference between the first privacy value minus the second privacy value is greater than or equal to zero. Similarly, the second participant includes the fourth proof ⁇ 4 in the above-mentioned second transaction content.
  • each node in the blockchain performs on-chain execution of the first smart contract in the second transaction, and the execution method is similar to that in FIG. 4. Only the differences are described below.
  • the contents of the second transaction in the transaction includes the above-described third proof ⁇ 3, the node according to the third proved second privacy cryptographic checksum value is valid.
  • the node verifies whether the range of the second privacy value meets the predetermined range according to the fourth proof, and whether the second privacy value is consistent with the aforementioned first Whether the relative size of the privacy value is within a predetermined range. For example, the node can verify whether the second privacy value is greater than 0 and whether the first privacy value is greater than or equal to the second privacy value according to the bulletproof range proof protocol.
  • the node executes the contract logic of the first smart contract in the second transaction, and performs a homomorphic operation on the fourth encrypted data E 4.
  • the first privacy value is the credit line v
  • the second privacy value is the loan amount v′.
  • a variable x is also set in the first smart contract, which represents the loanable balance.
  • the encrypted value of the variable x can be obtained by performing a homomorphic operation corresponding to the subtraction on the second encrypted data E 2 and the fourth encrypted data E 4, namely:
  • the second privacy value is the repayment amount v′′.
  • the previously stored E PK (x) and the fourth encrypted data E PK (v′′) can be the same as the addition corresponding to the addition.
  • State operation as the encrypted value of the new loanable balance x, namely:
  • the previously stored encrypted value of the loaned amount and the aforementioned E PK (v′′) can be subjected to a homomorphic operation corresponding to the subtraction as the encrypted value of the new loaned amount.
  • the blockchain node can perform a homomorphic operation on the second privacy value in the second transaction, thereby updating the variable parameters in the first smart contract and realizing the on-chain execution of the second transaction.
  • the transaction can be initiated and executed in a manner similar to the second transaction, so as to continuously record and track the update of each transaction variable in the subsequent transaction.
  • privacy protection in the process of executing smart contract transactions on the chain is realized.
  • a device for initiating a smart contract transaction is provided.
  • the device is deployed in a terminal corresponding to a first participant.
  • the terminal can be embodied as any device or platform with computing and processing capabilities.
  • the initiated transaction involves m participants, each of the m participants is pre-configured with a participant’s private key and a participant’s public key, and the participant’s private key is generated based on the first recurring group.
  • the public key of the participant includes a first public key part and a second public key part, wherein the first public key part is generated based on the second round group, and the second public key part is based on the first round group and the second round group.
  • FIG. 7 shows a schematic block diagram of an apparatus for initiating a smart contract transaction according to an embodiment.
  • the transaction initiating device 700 includes the following units.
  • the determining unit 71 is configured to determine the first contract identifier of the first smart contract to be called, the m participants involved in this transaction, and the private data to be filled in the first smart contract; the private data includes: The first privacy text.
  • the auxiliary information generating unit 72 is configured to generate first auxiliary information, which includes a first aggregation result of the first aggregation of the first public key parts of the m participants.
  • the symmetric key generation unit 73 is configured to perform a second aggregation corresponding to the first aggregation on the second public key parts of the m participants; according to the second aggregation result and the first contract identifier, generate The first symmetric key.
  • the first encryption unit 74 is configured to encrypt the first private text by using the first symmetric key to generate first encrypted data.
  • the first transaction generating unit 77 is configured to generate a first transaction that calls the first smart contract, and fill the first transaction content into the first smart contract, and the first transaction content includes the m participants Information, the first auxiliary information, and the first encrypted data.
  • the privacy data further includes the first privacy value; in this case, the device 700 further includes the following units.
  • the contract key generation unit 75 is configured to generate a contract private key and a corresponding contract public key based on the first symmetric key and the first contract identifier.
  • the second encryption unit 76 is configured to use a first homomorphic encryption algorithm to encrypt the first privacy value based on the contract public key to generate second encrypted data.
  • the first transaction content filled in by the first transaction generating unit 77 includes the second encrypted data.
  • the above-mentioned device 700 further includes a key configuration unit (not shown), which is specifically configured to: take any first random number, and take any first element in the first cyclic group; use a predetermined Hash mapping function to map the identity of the first participant to the second element in the first cyclic group; based on the first random number, the first element and the second element are in the first cyclic group Group operation in the group operation to obtain the participant’s private key of the first participant; perform group operation on the second generator corresponding to the second cyclic group based on the first random number to obtain the first participant’s The first public key part; based on the pairing between the first element in the first cyclic group and the second generator, the second public key part of the first participant is obtained.
  • a key configuration unit (not shown), which is specifically configured to: take any first random number, and take any first element in the first cyclic group; use a predetermined Hash mapping function to map the identity of the first participant to the second element in the first cyclic group; based on the
  • the above-mentioned key configuration unit is further configured to: for any second participant among the m participants, use the hash mapping function to map the identity of the second participant to all the second participants.
  • the third element in the first cyclic group based on the first random number, the group operation of the first element and the third element in the first cyclic group, to obtain the secret of the first participant against the second participant Key cross item and at least publish it to the second participant.
  • the auxiliary information generating unit 72 is specifically configured to: take any second random number, perform a group operation on the second generator corresponding to the second cyclic group based on the second random number, and generate an auxiliary field;
  • the second random number performs a first aggregation on the m first public key parts of the m participants to generate a first aggregation result;
  • the auxiliary field and the first aggregation result constitute the first auxiliary information
  • the second aggregation result is the result of performing a second aggregation on the m second public key parts of the m participants based on the second random number.
  • the symmetric key generation unit 73 is specifically configured to perform a hash operation on the second aggregation result and the first contract identifier to obtain the first symmetric key.
  • the contract key generation unit 75 is specifically configured to: perform a predetermined hash operation on the first symmetric key and the first contract identifier to obtain the contract private key; based on the contract private key Perform a group operation on the third generator in the third cyclic group to obtain the contract public key.
  • the second encryption unit 76 is specifically configured to perform group operations in the third cyclic group based on the selected third random number, the first privacy value, and the contract public key to obtain The second encrypted data.
  • the device further includes a certification generation unit (not shown) configured to generate a first proof of the legality of the first privacy value encryption based on the ⁇ zero-knowledge proof protocol, using the contract public key
  • the first transaction generating unit 77 may include the contract public key and the first proof in the first transaction content.
  • the proof generation unit is further configured to generate a second proof that the first privacy value is within the legal range based on the bulletproof range proof protocol; correspondingly, the first transaction generation unit 77 may The first transaction content includes the second certificate.
  • a device for executing smart contract transactions is provided.
  • the device is deployed in a terminal corresponding to a second participant.
  • the terminal can be embodied as any device or platform with computing and processing capabilities.
  • the executed transaction involves m participants, each of the m participants is pre-configured with a participant’s private key and a participant’s public key, and the participant’s private key is generated based on the first cyclic group.
  • the public key of the participant includes a first public key part and a second public key part, wherein the first public key part is generated based on the second round group, and the second public key part is based on the first round group and the second round group.
  • FIG. 8 shows a schematic block diagram of an apparatus for executing smart contract transactions according to an embodiment.
  • the transaction execution device 800 includes the following units.
  • the obtaining unit 81 is configured to obtain the transaction content of the first transaction invoking the first smart contract, which includes the information of the m participants involved in the transaction, the first auxiliary information, and the first encrypted data; the first auxiliary The information includes the first aggregation result of the first public key part of the m participants, the first encrypted data is data encrypted for the first private text, and the second encrypted data is encrypted for the first private value. data.
  • the aggregation unit 82 is configured to aggregate the key cross entries generated by the second participant and the participant's private key of the second participant by other participation policies among the m participants to obtain a third aggregation result.
  • the restoring unit 83 is configured to restore the first recurring group to the m participants based on the third aggregation result, the first auxiliary information, and the pairing algorithm between the first recurring group and the second recurring group.
  • the symmetric key determining unit 84 determines the first symmetric key according to the second aggregation result and the first contract identifier of the first smart contract.
  • the first decryption unit 85 is configured to decrypt the first encrypted data by using the first symmetric key to obtain the first private text.
  • the recording unit 88 is configured to record the local transaction status at least according to the first privacy text.
  • the transaction content obtained by the obtaining unit further includes second encrypted data obtained by encrypting the first privacy value; in this case, the device 800 further includes the following units.
  • the contract key determining unit 86 is configured to generate a contract private key based on the first symmetric key and the first contract identifier.
  • the second decryption unit 87 is configured to use the first homomorphic decryption algorithm to decrypt the second encrypted data using the contract private key to obtain the first privacy value.
  • the recording unit 88 is further configured to record the local transaction status according to the first privacy value.
  • the acquiring unit 81 is specifically configured to: in response to receiving a transaction notification from the first node of the blockchain network, acquire the transaction content of the first transaction from the blockchain.
  • the device 800 further includes a key configuration unit (not shown), configured to: take any fourth random number, and take any fourth element in the first cyclic group; use a predetermined ha A mapping function is used to map the identity of the second participant to the fifth element in the first cyclic group; based on the fourth random number, the fourth element and the fifth element are in the first cyclic group Group operation to obtain the participant's private key of the second participant.
  • a key configuration unit (not shown), configured to: take any fourth random number, and take any fourth element in the first cyclic group; use a predetermined ha
  • a mapping function is used to map the identity of the second participant to the fifth element in the first cyclic group; based on the fourth random number, the fourth element and the fifth element are in the first cyclic group Group operation to obtain the participant's private key of the second participant.
  • any third participation policy among the m participants generates the key cross term generated by the second participant in the following manner: based on the fifth random number arbitrarily taken by the third participant, in the The arbitrary sixth element in the first cyclic group and the above-mentioned fifth element are grouped in the first cyclic group to obtain the key cross term of the third participant for the second participant.
  • the first auxiliary information includes an auxiliary field and the first aggregation result
  • the auxiliary field is generated by performing a group operation on the second generator of the second cyclic group based on a random number; in this way
  • the reduction unit 83 is specifically configured to: calculate the first pairing result of the third aggregation result and the auxiliary field, and the second pairing result of the fifth element and the first aggregation result, and integrate the first pairing result of the fifth element and the first aggregation result A pairing result and a second pairing result are obtained to obtain the second aggregation result.
  • the symmetric key determining unit 84 is specifically configured to perform a hash operation on the second aggregation result and the first contract identifier to obtain the first symmetric key.
  • the contract key determining unit 86 is specifically configured to perform a predetermined hash operation on the first symmetric key and the first contract identifier to obtain the contract private key.
  • the second encrypted data is generated based on the first privacy value and the contract public key corresponding to the contract private key by performing group operations in the third cyclic group; in this case, the second decryption
  • the unit 87 is specifically configured to: use the contract private key to obtain the result of performing a group operation on the fourth generator of the third cyclic group using the first privacy value; and then traverse the possible group operations of the fourth generator As a result, the first privacy value is restored.
  • the above-mentioned device 800 further includes a second transaction initiation unit, including (not shown): an acquisition module configured to acquire a second privacy text and a second privacy value used to update the transaction status, so The second privacy value conforms to a predetermined relationship with the first privacy value; a third encryption module configured to use the first symmetric key to encrypt the second privacy text to generate third encrypted data; a public key generation module, Is configured to generate the corresponding contract public key based on the contract private key; the fourth encryption module is configured to use the first homomorphic encryption algorithm to encrypt the second private value based on the contract public key to generate a fourth Encrypted data; transaction generation module, configured to generate a second transaction that calls the first smart contract, fill the second transaction content into the first smart contract, and the second transaction content includes the m participants , The third encrypted data, and the fourth encrypted data.
  • a second transaction initiation unit including (not shown): an acquisition module configured to acquire a second privacy text and a second privacy value used to update the transaction status, so
  • the public key generation module is configured to perform a group operation on the third generator in the agreed third cyclic group based on the contract private key to obtain the contract public key.
  • the above-mentioned second transaction initiation unit further includes a certification generation module configured to generate a third proof of the legality of the second privacy value encryption based on the ⁇ zero-knowledge proof protocol, using the contract public key; Yes, the transaction generation module may include the contract public key and the third proof in the second transaction content.
  • the above-mentioned proof generation module is further configured to generate a fourth proof based on the bulletproof range proof protocol, where the fourth proof is used to prove that the second privacy value is within a legal range and that the second privacy value is within a legal range.
  • the relative magnitude of the value and the first privacy value is within a predetermined range; correspondingly, the transaction generation module may include the fourth proof in the second transaction content.
  • the security of the private data in the smart contract transaction is protected without affecting the execution of the smart contract transaction on the blockchain.
  • a computer-readable storage medium having a computer program stored thereon, and when the computer program is executed in a computer, the computer is caused to execute the method described in conjunction with FIG. 3 and FIG. 5.
  • a computing device including a memory and a processor, the memory stores executable code, and when the processor executes the executable code, a combination of FIGS. 3 and 5 is implemented. The method described.
  • the functions described in the present invention can be implemented by hardware, software, firmware, or any combination thereof.
  • these functions can be stored in a computer-readable medium or transmitted as one or more instructions or codes on the computer-readable medium.

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Finance (AREA)
  • Economics (AREA)
  • Tourism & Hospitality (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Accounting & Taxation (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Primary Health Care (AREA)
  • Human Resources & Organizations (AREA)
  • Development Economics (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

一种保护隐私数据的发起和执行智能合约交易的方法和装置。利用上述发起智能合约交易的方法,将输入到智能合约的隐私数据划分隐私文本和隐私数值。对于隐私文本,基于指定的多个参与方的公钥,聚合生成对称密钥,采用对称加密方式进行加密,得到文本加密数据。对于隐私数值,在对称密钥的基础上,生成合约公钥私钥对,利用合约公钥,采用同态加密的方式对其进行加密,得到数值加密数据。当将以上加密后的智能合约交易发布到区块链上时,区块链节点可以对数值加密数据进行同态运算,从而进行链上执行。并且,加密算法的设计使得只有指定的参与方能够解密还原出隐私文本和隐私数值的明文,从而保护了隐私安全。

Description

生成和执行智能合约交易的方法及装置 技术领域
本说明书一个或多个实施例涉及区块链技术领域和数据安全领域,尤其涉及在保护隐私数据不泄露的前提下,在区块链中执行智能合约交易的方法及装置。
背景技术
区块链技术是利用点对点传输、共识机制、加密算法等计算机技术实现数据分布式存储的一种应用模式。在区块链网络中,数据的存储和记录通过交易的方式实现。各个交易的交易内容由区块链网络的所有节点共同维护,任何一方无法对区块中的内容进行篡改。
目前,越来越多的区块链平台支持智能合约,来执行更为丰富的交易。智能合约是一种可以自动执行的交易合约,它以数字化的形式写入区块链中,由区块链技术的特性保障存储、读取、执行整个过程透明可跟踪、不可篡改。
由于上述透明可跟踪的特性,区块链中每条交易公开记录在区块中,任何节点均可以访问读取。当交易涉及个人隐私时,如何在保证节点可以正常对交易进行验证和执行的前提下,不泄露隐私信息,成为有待解决的问题。
因此,希望提供有效的方案,能够在不泄露隐私的情况下生成和执行智能合约交易。
发明内容
本说明书一个或多个实施例描述了一种智能合约交易的生成和执行方法,可以在不泄露数据隐私的情况下,生成和执行智能合约交易。
根据第一方面,提供了一种保护隐私数据的发起智能合约交易的方法,通过第一参与方执行,所述方法包括:确定要调用的第一智能合约的第一合约标识,本次交易涉及的m个参与方,以及有待填入所述第一智能合约的隐私数据;其中,所述m个参与方的每一个各自预先配置有参与方私钥和参与方公钥,所述参与方私钥基于第一循环群生成,所述参与方公钥包括第一公钥部分和第二公钥部分,其中所述第一公钥部分基于第二循环群生成,所述第二公钥部分基于所述第一循环群和第二循环群之间的配对而生成;每个参与方还采用与所述参与方私钥对应的生成方式针对其他参与方生成有密钥交叉 项;所述隐私数据包括第一隐私文本;生成第一辅助信息,其中包括对所述m个参与方的第一公钥部分进行第一聚合的第一聚合结果;对所述m个参与方的第二公钥部分进行与所述第一聚合对应的第二聚合;根据第二聚合结果,以及所述第一合约标识,生成第一对称密钥;利用所述第一对称密钥加密所述第一隐私文本,生成第一加密数据;生成调用所述第一智能合约的第一交易,将第一交易内容填入所述第一智能合约,所述第一交易内容包括,所述m个参与方的信息,所述第一辅助信息,以及所述第一加密数据。
在一个实施例中,隐私数据还包括第一隐私数值;相应的,上述方法还包括:基于所述第一对称密钥和所述第一合约标识,生成合约私钥和对应的合约公钥;使用第一同态加密算法,基于所述合约公钥对所述第一隐私数值进行加密,生成第二加密数据;将所述第二加密数据包含在所述第一交易内容中。
根据一种实施方式,第一参与方通过以下方式,预先进行其密钥配置:任取第一随机数,并在所述第一循环群中任取第一元素;使用预定的哈希映射函数,将所述第一参与方的标识映射到所述第一循环群中的第二元素;基于所述第一随机数,第一元素和第二元素在所述第一循环群中的群操作,得到所述第一参与方的参与方私钥;基于所述第一随机数对所述第二循环群对应的第二生成元进行群操作,得到所述第一参与方的第一公钥部分;基于所述第一循环群中的第一元素和所述第二生成元之间的配对,得到所述第一参与方的第二公钥部分。
在一个实施例中,第一参与方的密钥配置还包括:针对所述m个参与方中任意的第二参与方,使用所述哈希映射函数,将所述第二参与方的标识映射到所述第一循环群中的第三元素,基于所述第一随机数,第一元素和第三元素在所述第一循环群中的群操作,得到第一参与方针对第二参与方的密钥交叉项,并至少将其发布给所述第二参与方。
根据一个实施例,第一参与方通过以下方式生成第一辅助信息:任取第二随机数,基于所述第二随机数对所述第二循环群对应的第二生成元进行群操作,生成辅助字段;基于所述第二随机数对所述m个参与方的m个第一公钥部分进行第一聚合,生成第一聚合结果;所述辅助字段和所述第一聚合结果构成所述第一辅助信息;相应的,第二聚合结果为,基于所述第二随机数对所述m个参与方的m个第二公钥部分进行第二聚合的结果。
根据一个实施例,生成第一对称密钥的步骤可以包括,将所述第二聚合结果和所述第一合约标识进行哈希运算,得到所述第一对称密钥。
在一个实施例中,生成合约私钥和对应的合约公钥的步骤可以包括:将所述第一对称密钥与所述第一合约标识进行预定哈希运算,得到所述合约私钥;基于所述合约私钥对第三循环群中的第三生成元进行群操作,得到所述合约公钥。
根据一种实施方式,生成第二加密数据的过程可以包括:基于选取的第三随机数,所述第一隐私数值,和所述合约公钥,在所述第三循环群中进行群操作,得到第二加密数据。
在一个实施例中,该方法包括,基于Σ零知识证明协议,利用所述合约公钥,生成所述第一隐私数值加密合法性的第一证明;相应的,可以在所述第一交易内容中包括所述合约公钥和所述第一证明。
在一种实施方式中,该方法还包括,基于bulletproof范围证明协议,生成所述第一隐私数值在合法范围内的第二证明;相应的,可以在所述第一交易内容中包括所述第二证明。
根据第二方面,提供了一种保护隐私数据的执行智能合约交易的方法,通过第二参与方执行,所述方法包括:获取调用第一智能合约的第一交易的交易内容,其中包括,该交易涉及的m个参与方的信息,第一辅助信息,以及第一加密数据;其中,所述m个参与方包括所述第二参与方;所述m个参与方的每一个各自预先配置有参与方私钥和参与方公钥,所述参与方私钥基于第一循环群生成,所述参与方公钥包括第一公钥部分和第二公钥部分,所述第一公钥部分基于第二循环群生成,所述第二公钥部分基于所述第一循环群和第二循环群之间的配对而生成;每个参与方还采用与所述参与方私钥对应的生成方式针对其他参与方生成有密钥交叉项;所述第一辅助信息包括所述m个参与方的第一公钥部分的第一聚合结果,所述第一加密数据是对第一隐私文本加密的数据;将所述m个参与方中其他参与方针对该第二参与方生成的密钥交叉项,以及该第二参与方的参与方私钥进行聚合,得到第三聚合结果;根据所述第三聚合结果,所述第一辅助信息,以及所述第一循环群和第二循环群之间的配对算法,还原出对所述m个参与方的第二公钥部分进行聚合的第二聚合结果;根据所述第二聚合结果和所述第一智能合约的第一合约标识,确定第一对称密钥;利用所述第一对称密钥解密所述第一加密数据,得到所述第一隐私文本;至少根据所述第一隐私文本,记录本地交易状态。
根据一个实施例,所述第一交易的交易内容还包括对第一隐私数值加密得到的第二加密数据;在这样的情况下,所述方法还包括,基于所述第一对称密钥和所述第一合约标识,确定合约私钥;使用第一同态解密算法,利用所述合约私钥解密所述第二加密数 据,得到所述第一隐私数值;相应的,所述记录本地交易状态还包括,根据所述第一隐私数值,记录交易状态。
根据一个实施例,上述交易内容通过以下方式获取:响应于从区块链网络的第一节点接收到交易通知,从区块链中获取所述第一交易的交易内容。
根据一种实施方式,第二参与方的私钥通过以下方式生成:任取第四随机数,并在所述第一循环群中任取第四元素;使用预定的哈希映射函数,将所述第二参与方的标识映射到所述第一循环群中的第五元素;基于所述第四随机数,第四元素和第五元素在所述第一循环群中的群操作,得到所述第二参与方的参与方私钥;相应的,所述m个参与方中任意的第三参与方针对该第二参与方生成的密钥交叉项通过以下方式生成:基于该第三参与方任取的第五随机数,在所述第一循环群中任取的第六元素,以及上述第五元素,在所述第一循环群中进行群操作,得到第三参与方针对第二参与方的密钥交叉项。
在一个具体实施例中,所述第一辅助信息包括辅助字段和所述第一聚合结果,所述辅助字段通过基于随机数对第二循环群的第二生成元进行群操作而生成;在这样的情况下,通过以下方式还原出第二聚合结果:计算所述第三聚合结果与所述辅助字段的第一配对结果,以及所述第五元素与所述第一聚合结果的第二配对结果,综合第一配对结果和第二配对结果,得到所述第二聚合结果。
根据一个实施例,确定第一对称密钥的步骤具体包括:对所述第二聚合结果以及所述第一合约标识进行哈希运算,得到所述第一对称密钥。
在一个实施例中,确定合约私钥的步骤具体包括:将所述第一对称密钥与所述第一合约标识进行预定哈希运算,得到所述合约私钥。
在一个实施例中,第二加密数据基于所述第一隐私数值和所述合约私钥对应的合约公钥,在第三循环群中进行群操作而生成;在这样的情况下,通过以下方式解密得到所述第一隐私数值:利用所述合约私钥,得到利用所述第一隐私数值对所述第三循环群的第四生成元进行群操作的结果;然后遍历该第四生成元的可能群操作结果,还原出所述第一隐私数值。
根据一种实施方式,第二参与方还执行以下步骤:获取用于对交易状态进行更新的第二隐私文本和第二隐私数值,所述第二隐私数值与所述第一隐私数值符合预定关系;利用所述第一对称密钥加密所述第二隐私文本,生成第三加密数据;基于所述合约私钥,生成对应的合约公钥;使用第一同态加密算法,基于所述合约公钥对所述第二隐私数值 进行加密,生成第四加密数据;生成调用所述第一智能合约的第二交易,将第二交易内容填入所述第一智能合约,所述第二交易内容包括,所述m个参与方的信息,所述第三加密数据,以及所述第四加密数据。
具体的,在一个实施例中,生成对应的合约公钥的步骤可以包括:基于所述合约私钥对约定的第三循环群中的第三生成元进行群操作,得到所述合约公钥。
在一个实施例中,上述方法还包括:基于Σ零知识证明协议,利用所述合约公钥,生成所述第二隐私数值加密合法性的第三证明;相应的,可以在所述第二交易内容中包括所述合约公钥和所述第三证明。
在一个实施例中,上述方法还包括,基于bulletproof范围证明协议,生成第四证明,所述第四证明用于证明所述第二隐私数值在合法范围内,且所述第二隐私数值与所述第一隐私数值的相对大小在预定范围内;相应的,可以在所述第二交易内容中包括所述第四证明。
根据第三方面,提供了一种保护隐私数据的发起智能合约交易的装置,部署在第一参与方对应的终端中,所述装置包括:确定单元,配置为确定要调用的第一智能合约的第一合约标识,本次交易涉及的m个参与方,以及有待填入所述第一智能合约的隐私数据;其中,所述m个参与方的每一个各自预先配置有参与方私钥和参与方公钥,所述参与方私钥基于第一循环群生成,所述参与方公钥包括第一公钥部分和第二公钥部分,其中所述第一公钥部分基于第二循环群生成,所述第二公钥部分基于所述第一循环群和第二循环群之间的配对而生成;每个参与方还采用与所述参与方私钥对应的生成方式针对其他参与方生成有密钥交叉项;所述隐私数据包括第一隐私文本;辅助信息生成单元,配置为生成第一辅助信息,其中包括对所述m个参与方的第一公钥部分进行第一聚合的第一聚合结果;对称密钥生成单元,配置为对所述m个参与方的第二公钥部分进行与所述第一聚合对应的第二聚合;根据第二聚合结果,以及所述第一合约标识,生成第一对称密钥;第一加密单元,配置为利用所述第一对称密钥加密所述第一隐私文本,生成第一加密数据;第一交易生成单元,配置为生成调用所述第一智能合约的第一交易,将第一交易内容填入所述第一智能合约,所述第一交易内容包括,所述m个参与方的信息,所述第一辅助信息,以及所述第一加密数据。
根据第四方面,提供了一种保护隐私数据的执行智能合约交易的装置,部署在第二参与方对应的终端中,所述装置包括:获取单元,配置为获取调用第一智能合约的第一交易的交易内容,其中包括,该交易涉及的m个参与方的信息,第一辅助信息,以及第 一加密数据;其中,所述m个参与方包括所述第二参与方;所述m个参与方的每一个各自预先配置有参与方私钥和参与方公钥,所述参与方私钥基于第一循环群生成,所述参与方公钥包括第一公钥部分和第二公钥部分,所述第一公钥部分基于第二循环群生成,所述第二公钥部分基于所述第一循环群和第二循环群之间的配对而生成;每个参与方还采用与所述参与方私钥对应的生成方式针对其他参与方生成有密钥交叉项;所述第一辅助信息包括所述m个参与方的第一公钥部分的第一聚合结果,所述第一加密数据是对第一隐私文本加密的数据;聚合单元,配置为将所述m个参与方中其他参与方针对该第二参与方生成的密钥交叉项,以及该第二参与方的参与方私钥进行聚合,得到第三聚合结果;还原单元,配置为根据所述第三聚合结果,所述第一辅助信息,以及所述第一循环群和第二循环群之间的配对算法,还原出对所述m个参与方的第二公钥部分进行聚合的第二聚合结果;对称密钥确定单元,根据所述第二聚合结果和所述第一智能合约的第一合约标识,确定第一对称密钥;第一解密单元,配置为利用所述第一对称密钥解密所述第一加密数据,得到所述第一隐私文本;记录单元,配置为至少根据所述第一隐私文本,记录本地交易状态。
根据第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面和第二方面的方法。
根据第六方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面和第二方面的方法。
根据本说明书一个实施例提供的方法和装置,利用特殊的密钥设计对输入到智能合约的隐私数据进行加密,使得只有指定的参与方能够解密可见。更具体的,将输入到智能合约的隐私数据划分为两部分:隐私文本和隐私数值。对于隐私文本,基于指定的多个参与方的公钥,聚合生成对称密钥,采用对称加密方式对其进行加密,得到文本加密数据。对于隐私数值,在前述对称密钥的基础上,生成合约公钥私钥对,利用其中的合约公钥,采用同态加密的方式对其进行加密,得到数值加密数据。当将以上加密数据填入智能合约,发布到区块链上时,区块链中的节点可以对数值加密数据进行同态运算。因此,以上加密方式不影响合约逻辑的链上执行,区块链中的节点仍然可以对智能合约进行执行,对其中的变量进行修改操作。同时,特殊的加密算法使得只有指定的参与方能够解密还原出隐私文本和隐私数值的明文,从而保护了隐私安全。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出根据一个实施例的智能合约交易的执行过程示意图;
图2示出根据一个实施例的隐私保护方案的示意图;
图3示出根据一个实施例的发起智能合约交易的方法流程图;
图4示出区块链中的节点执行第一交易的过程示意图;
图5示出根据一个实施例的执行智能合约交易的方法流程图;
图6示出在一个实施例中第二参与方发起第二交易的流程图;
图7示出根据一个实施例的发起智能合约交易的装置的示意性框图;
图8示出根据一个实施例的执行智能合约交易的装置的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
图1示出根据一个实施例的智能合约交易的执行过程示意图。在图1的示例中,涉及多个机构A,B,C,D,共同完成一项业务。例如,机构A为境外企业,机构B为其境内的分支机构;机构C为境外银行,机构D为该银行的境内分支机构。并且,机构C和机构D具有区块链的链上身份,可以连接到区块链网络。假定境外机构A向境外银行C抵押一定资产,以便授权其对应的境内分支机构B从境内银行D获得对等额度的贷款金额。那么,机构C和机构D可以利用智能合约的方式,借助于区块链,实现整个授信,借款,还款全过程的记录和追踪,而不需进行链下交互。
具体地,在收到机构A的授信请求后,机构C可以向区块链网络发起一笔调用智能合约的交易Tx1,该智能合约可以是预先开发并部署到区块链中的合约,其中定义了必要的合约执行逻辑,并具有一些接口函数,供调用者传入参数。机构C可以在调用该合约的交易Tx1中,通过上述接口,填入必要的信息,例如包括,授权执行机构为D,受 益机构为B,授信额度为v,以及一些其他的约定和协议。更具体的,在典型的区块链平台(例如以太坊)所支持的交易形式下,机构C可以发起这样一笔交易,其中发起方字段(from字段)为其自身的链上身份(例如账户地址),目标字段(to字段)为上述智能合约的合约地址,data字段中包括调用的接口函数和传入的参数。
在机构C发起上述智能合约交易Tx1后,该交易即通过区块链网络中的各个节点进行传播,最终收录在某个区块中,接入区块链。于是,区块链网络中的各个节点均会执行这笔交易。更具体的,对于支持智能合约的区块链平台来说,每个节点中均部署有虚拟机,例如以太坊虚拟机EVM,来执行智能合约中的合约逻辑,并通过共识机制实现网络上合约状态的共同改变。
对于机构C发起的上述智能合约交易Tx1,区块链网络中的各个节点均会执行该笔交易中的智能合约。更具体的,各个节点按照部署的合约代码,执行合约逻辑,并利用交易Tx1中传入的参数,修改智能合约中的变量状态,例如,将表示授信额度的变量的变量值更新为v。
通过上述交易Tx1,机构D获得授权,向机构B发放贷款款项。后续机构D可以继续通过调用上述智能合约的交易,记录与机构B的款项往来。具体地,在机构D向机构B发放款项v1或收到还款v2时,可以发起调用上述智能合约的交易Tx2,在其中填入更新的信息,例如包括,对方机构为B,发放款项为v1,或收到还款v2,以及一些其他补充信息。
通过以上过程,机构C和机构D可以利用智能合约的方式,在区块链上记录整个多方交互过程,并确保记录的真实、有效、无法篡改。
以上以授信和借贷场景为例,描述了涉及多个参与方的智能合约。可以理解,智能合约可以应用于各种场景,实现各种功能,而不限于上述应用场景。例如,在一种场景下,多个参与方可以利用智能合约维护一个共同的数据库,在每个参与方处有数据更新时,就通过调用智能合约,更新其中的变量来实现数据更新。
通过以上示例性描述可以看到,区块链中涉及智能合约的交易(或简称为智能合约交易)相比于普通转账交易更为复杂。一方面,智能合约交易可能涉及多个参与方,一方面,智能合约交易可以包含更加复杂的数据输入,其中不仅包含金额之类的数值,还可以有诸如文本之类的其他内容。例如,在前述的交易Tx1中,输入数据不仅包括授信额度v的金额数值,还包括其他约定和协议之类的补充内容。以上两个方面,都为智能 合约交易中隐私数据的保护带来更大的困难,提出更高的挑战。
为此,在本说明书的一个或多个实施例中,针对涉及多个参与方的智能合约交易提出一种隐私保护方案。图2示出根据一个实施例的隐私保护方案的示意图。该方案利用特殊的密钥设计对输入到智能合约的隐私数据进行加密,使得只有指定的参与方能够解密可见。更具体的,将输入到智能合约的隐私数据划分为两部分:隐私文本和隐私数值,对这两部分隐私数据进行不同的处理。对于隐私文本,基于指定的多个参与方的公钥,聚合生成对称密钥,采用对称加密方式对其进行加密,得到文本加密数据。对于隐私数值,在前述对称密钥的基础上,生成合约公钥私钥对,利用其中的合约公钥,采用同态加密的方式对其进行加密,得到数值加密数据。可选的,还可以基于零知识证明协议,生成隐私数值合法性的证明。
当将以上加密数据填入智能合约,发布到区块链上时,区块链中的节点可以基于零知识证明协议对隐私数值的合法性进行验证,验证通过后,可以对数值加密数据进行同态运算。因此,以上加密方式不影响合约逻辑的链上执行,区块链中的节点仍然可以对智能合约进行执行,对其中的变量进行修改操作。同时,特殊的加密算法使得只有指定的参与方能够解密还原出隐私文本和隐私数值的明文,从而保护了隐私安全。
下面描述以上构思的具体实现。
首先,描述密钥的初始化配置过程。
假设整个交易系统中有n个参与方构成一个总集合U={u 1,…,u n}。该集合U是具有区块链账户,后续有可能发起预定类型的智能合约交易的所有可能用户的集合。在初始化配置阶段,每一个参与方都要配置自己的参与方私钥和参与方公钥,其中,上述私钥和公钥的配置依赖于整个系统约定的两个循环群G 1和G 2。具体地,参与方私钥基于第一循环群G 1生成,而参与方公钥包括两个部分,第一公钥部分R和第二公钥部分A,其中第一公钥部分R基于第二循环群G 2生成,第二公钥部分A基于第一循环群G 1和第二循环群G 2之间的配对而生成。
下面对循环群的特点进行简单的描述。循环群典型地可以由有限域上的椭圆曲线上的点集构成。椭圆曲线是一种数学上的曲线,一般可以表示为以下的二元三阶方程:
y 2=x 3+ax+b             (1)
其中a、b为系数。
可以在椭圆曲线上定义点之间的操作规则。在椭圆曲线上取两个点,点P和点Q, 连接P、Q两点作一条直线L,这条直线将在椭圆曲线上交于第三点个S,过S点作垂直于X轴的直线,将过椭圆曲线另一点R(一般是S点关于X轴对称的点),R点则被定义为对点P和点Q操作的结果。在一种记录方式中,将以上点操作记为点之间的“加法”,即P+Q=R。在另一种记录方式下,将以上点之间的操作记为点之间的“乘法”,即P*Q=R。本文下文中均采用后一种记录方式。
在以上点P和点Q为同一个点的情况下,直线L即为椭圆曲线在P点上的切线,由此得到的点R可记为:R=P*P=P 2。继续进行多次操作,就可以得到对点P进行幂操作的结果P m=P*P*…*P。
为了更方便的将椭圆曲线用于数据加解密,可以将椭圆曲线限定在有限域Fp中。有限域Fp是包含有限个元素的域,元素的个数为素数p。该素数p又称为有限域的阶。有限域内的运算基于对p取模而定义。
有限域Fp上公式(1)表示的椭圆曲线常记为Ep(a,b)。通过选择系数a,b和有限域p,可以唯一地定义一条椭圆曲线,不同的椭圆曲线具有不同的安全特性。常见的椭圆曲线包括P-256,secp256k1等。
在将椭圆曲线限定到有限域后,椭圆曲线包含的点从曲线上连续的无限数目的点,演变为包含有限数目个离散点的点集T。基于椭圆曲线上点的运算规则,该点集T即构成一个循环群,即阿贝尔群。该点集中点的数目即为该循环群的阶。
具体而言,有限域中的椭圆曲线所构成的循环群,具有以下特点:1.对循环群中任意两个元素P与Q之间的群操作,即P*Q,其结果仍然在该循环群中;2.对循环群中任意单个元素P进行m次群操作,得到的结果P m=P*P*…*P仍然在循环群中;以上的群操作,正向运算非常容易,但是逆向运算几乎不可能;3.循环群中存在生成元g,或称为椭圆曲线的基点,还存在一椭圆曲线的无穷远点O,满足g n=O。
基于循环群的以上特点,可以预先由系统约定两个循环群G 1和G 2,供各个参与方生成密钥所用,其中两个循环群分别具有生成元g 1和g 2。此外,系统还可以约定这两个循环群G 1和G 2之间的配对算法e。以上约定的信息可以作为配置参数,写入参与方使用的SDK中。于是,各个参与方可以基于以上约定的参数信息,进行自身密钥的初始化配置。
例如,任意一个参与方u i,可以基于上述第一循环群G 1生成其参与方私钥。
具体地,该参与方u i可以任取一个随机数r i∈Z p,简单起见称为第一随机数。该第一随机数需要在两个循环群的阶数Z p范围之内。此外,还在上述第一循环群中任取一个 元素X i∈G 1,称为第一元素。
然后,使用预定的哈希映射函数H:s→G 1,将该参与方自身的标识u i映射到第一循环群G 1中,得到第一循环群中的第二元素H(u i)。接着,基于第一随机数r i,第一元素X i和第二元素H(u i)在第一循环群中的群操作,得到σ ii作为参与方私钥。具体的,在一个例子中,对第二元素H(u i)进行第一随机数次群操作,再将结果与第一元素之间进行群操作,得到参与方私钥,即:
Figure PCTCN2020118000-appb-000001
与私钥生成相对的,参与方u i还生成参与方公钥pk i=(R i,A i),其中包括基于第二循环群G 2生成的第一公钥部分R i,基于第一循环群G 1和第二循环群G 2之间的配对生成的第二公钥部分A i
具体而言,参与方u i可以基于上述选取的第一随机数r i对第二循环群G 2对应的第二生成元g 2进行群操作,得到第一公钥部分R i。在一个例子中,第一公钥部分通过下式得到:
Figure PCTCN2020118000-appb-000002
此外,通过两个循环群之间的配对函数e,计算第一循环群G 1中的上述第一元素X i和第二循环群的生成元g 2之间的配对结果,得到第二公钥部分A i,即:
A i=e(X i,g 2)           (4)
如此,每个参与方u i生成了自己的参与方私钥σ ii,和参与方公钥pk i=(R i,A i)。
此外,每个参与方还采用与参与方私钥对应的生成方法,针对其他参与方生成密钥交叉项。例如,上述参与方u i可以针对另一参与方u j(其中i≠j),生成密钥交叉项σ ij。密钥交叉项σ ij的生成方式与自身私钥σ ii的生成方式相对应,只是将其中自身标识u i的映射,替换为所针对的参与方标识u j的映射。
也就是说,针对另一参与方u j,参与方u i仍然使用前述的哈希映射函数H:s→G 1,将参与方标识u j映射到第一循环群G 1中,得到第一循环群中的第三元素H(u j)。随后,基于前述第一随机数r i,第一元素X i和第三元素H(u j)在第一循环群中的群操作,得到参与方u i针对参与方u j的密钥交叉项σ ij。具体的,密钥交叉项σ ij可以通过下式确定:
Figure PCTCN2020118000-appb-000003
参与方u i可以将针对参与方u j生成的密钥交叉项σ ij发送给参与方u j。或者,参与方u i 也可以将其针对各个其他参与方生成的密钥交叉项,公布在整个区块链网络中。
当每个参与方都针对其他参与方生成密钥交叉项,可以形成以下的交叉项矩阵:
Figure PCTCN2020118000-appb-000004
在该矩阵中,第k行表示,第k参与方针对其他参与方生成的密钥交叉项;第k列表示,各个其他参与方针对第k参与方生成的密钥交叉项。对角线上的元素对应于各个参与方为自己生成的私钥,不过该私钥由参与方自己持有,并不公开。
通过以上方式,由可能的参与方构成的总集合U中的每个参与方,均配置形成参与方私钥,参与方公钥,并生成密钥交叉项。基于这样的密钥配置,就可以进行智能合约交易中隐私数据的加解密。
接下来描述保护隐私数据的发起智能合约交易的方法的实施例。
图3示出根据一个实施例的发起智能合约交易的方法流程图。该方法流程可以由任意的参与方执行,简单起见,称为第一参与方。需要理解,本文所提及的参与方执行的步骤,更具体地由参与方账户对应的终端设备执行。
如图3所示,首先,在步骤31,确定要调用的第一智能合约的第一合约标识,本次交易涉及的m个参与方,以及有待填入所述第一智能合约的隐私数据。
上述的第一智能合约为第一参与方当前要调用的合约,用于实现第一参与方预期的目标功能。具体地,该第一智能合约可以是各种功能类型的合约,例如实现数据存储或交互的合约,进行支付或买卖的合约,等等。在一个具体例子中,该第一智能合约为图1场景中机构C使用的授信借贷合约。第一智能合约的第一合约标识T id可以是该第一智能合约的合约地址,或者也可以是其他种类的id标识。
第一参与方还可以确定本次交易涉及的m个参与方,其中包括第一参与方自身。需要理解,该m个参与方是前述所有可能参与方构成的总集合U的一个子集S,因此,该m个参与方的每一个均按照前述方式,预先配置有参与方私钥和参与方公钥。并且,每个参与方还采用与参与方私钥对应的生成方法针对其他参与方生成有密钥交叉项。
此外,第一参与方获取本次交易需要填入到智能合约的隐私数据,其中包括第一隐私文本。在典型的情况下,隐私数据还包括第一隐私数值。也就是说,第一参与方将隐 私数据划分为文本部分和数值部分,以便后续对其进行不同处理。
更具体的,在第一智能合约为前述授信借贷合约的情况下,隐私数值例如可以包括,授信额度v;隐私文本例如可以包括,币种类型,补充协议,其他条款等等。
接着,在步骤32,第一参与方生成第一辅助信息,其中包括对上述m个参与方的第一公钥部分进行第一聚合的第一聚合结果;然后在步骤33,对m个参与方的第二公钥部分进行与第一聚合对应的第二聚合,并根据第二聚合结果,以及第一合约标识,确定第一对称密钥。
需要理解,第一辅助信息用于在后续解密阶段,与私钥部分和交叉项部分相结合,来帮助恢复出上述第一对称密钥。根据各个密钥部分的配置特点,在一个实施例中,基于第一公钥部分的聚合而生成该第一辅助信息。具体的,第一辅助信息可以通过以下方式生成。
首先,第一参与方任取一个随机数t,称为第二随机数。基于该第二随机数t对第二循环群G 2对应的第二生成元g 2进行群操作,生成辅助字段c 1。具体的,辅助字段可以通过下式确定:
Figure PCTCN2020118000-appb-000005
此外,第一参与方基于上述第二随机数t对m个参与方的m个第一公钥部分进行第一聚合,得到第一聚合结果c 2。更具体的,首先对上述m个第一公钥部分R i进行聚合,得到第一聚合值R S=∏ i∈SR i。由于每个第一公钥部分R i对应于第二循环群中的一个元素,因此,对这些元素进行聚合的第一聚合值R S仍然是第二循环群中的元素。然后,基于第二随机数t对该第一聚合值进行幂操作,得到第一聚合结果c 2,即:
Figure PCTCN2020118000-appb-000006
上述辅助字段c 1和第一聚合结果c 2即构成第一辅助信息。
然后在步骤33,对m个第二公钥部分A i进行与第一聚合对应的第二聚合。也就是,类似的,首先将m个第二公钥部分A i进行聚合,得到第二聚合值A S=∏ i∈SA i。然后,基于第二随机数t对该第二聚合值进行幂操作,得到第二聚合结果
Figure PCTCN2020118000-appb-000007
接着,根据第二聚合结果
Figure PCTCN2020118000-appb-000008
以及第一合约标识T id,确定第一对称密钥K。
在一个实施例中,第一对称密钥K通过对第二聚合结果
Figure PCTCN2020118000-appb-000009
和第一合约标识T id施加预定的函数运算f 1而得到,即:
Figure PCTCN2020118000-appb-000010
优选的,该函数f 1为逆向不可解的函数。
更具体的,在一个实施例中,上述函数f 1为哈希函数H,于是公式(9)可以写为:
Figure PCTCN2020118000-appb-000011
通过以上方式,第一参与方得到了第一对称密钥K,该对称密钥可以用于加密隐私文本。
于是,在接下来的步骤34,第一参与方利用该第一对称密钥K,加密第一隐私文本M,生成第一加密数据E 1。该步骤中,可以采用任何对称加密算法进行加密,例如AES-GCM算法。
至此,第一参与方实现了对隐私文本的加密。
在隐私数据还包括隐私数值的情况下,在一个实施例中,在步骤35,基于上述第一对称密钥K和第一合约标识T id,生成对应的合约私钥和合约公钥,用于对隐私数值进行加密。
可以首先生成合约私钥SK。在一个实施例中,通过对第一对称密钥K和第一合约标识T id施加预定的函数运算f 2而得到合约私钥SK,即:
SK=f 2(K,T id)        (11)
其中,公式(11)中的函数f 2与公式(9)中的f 1可以相同也可以不相同。优先地,f 2为逆向不可解的函数。更具体的,在一个实施例中,上述函数f 2为哈希函数H,于是公式(11)可以写为:
SK=H(K,T id)        (12)
在得到合约私钥SK的基础上,可以基于合约私钥SK对第三循环群G 3中的第三生成元h进行群操作,得到合约公钥PK:
PK=h SK         (13)
其中,第三循环群G 3可以是不同于前述第一循环群和第二循环群的另一循环群,也可以是复用其中的一个。
在以上生成合约私钥和公钥的基础上,接下来在步骤36,使用同态加密算法,基于合约公钥PK对第一隐私数值进行加密,生成第二加密数据E 2
如本领域技术人员所知,同态加密是这样一种加密函数,对明文进行加法和乘法运算后再加密,与加密后对密文进行相应的运算,结果是等价的。例如,用同样的公钥PK A加密v 1和v 2得到
Figure PCTCN2020118000-appb-000012
Figure PCTCN2020118000-appb-000013
满足
Figure PCTCN2020118000-appb-000014
Figure PCTCN2020118000-appb-000015
Figure PCTCN2020118000-appb-000016
如此,用私钥SK A解密
Figure PCTCN2020118000-appb-000017
可以得到v 1+v 2;用私钥SK A解密
Figure PCTCN2020118000-appb-000018
可以得到v 1-v 2
由于同态加密的以上特性,可以对隐私数值进行同态加密,以便区块链中的节点可以直接对经过加密的隐私数值进行合约逻辑规定的操作,而不需进行解密,从而不会泄露隐私数值。
已存在多种同态加密算法,步骤36中可以选用已有的同态加密算法,基于前述步骤生成的合约公钥PK,对第一隐私数值进行同态加密。
在一个具体实施例中,对El-Gamal加密算法进行改进,基于该改进的El-Gamal算法进行同态加密。根据该算法,可以选取另一随机数r,称为第三随机数,基于该第三随机数r,要加密的第一隐私数值v,和上述合约公钥PK,在前述第三循环群G 3中进行群操作,得到第二加密数据E 2
更具体的,第二加密数据E 2可以通过以下公式得到:
E 2=(PK r,g vh r)       (14)
上式(14)中,PK为合约公钥,r为第三随机数,v是第一隐私数值,g,h为第三循环群G 3中的两个生成元。可以验证,上述公式(14)的加密方式满足同态性:
Figure PCTCN2020118000-appb-000019
Figure PCTCN2020118000-appb-000020
于是,通过上述步骤34,得到了对第一隐私文本进行加密的第一加密数据E 1,通过上述步骤36,得到了对第一隐私数值进行加密的第二加密数据E 2
从而,接下来,在步骤37,生成调用上述第一智能合约的第一交易Tx1,将第一交易内容填入该第一智能合约,其中第一交易内容可以包括,所述m个参与方的信息,第一辅助信息以及第一加密数据E 1。在隐私数据包含隐私数值的情况下,第一交易内容还包括上述对隐私数值加密的第二加密数据E 2。如此,隐私数据中的隐私文本和隐私数值被分别加密为第一加密数据E 1和第二加密数据E 2,然后填入智能合约中,使得智能合约交易不会泄露参与方的隐私数据。
在一个实施例中,第一参与方还基于Σ零知识证明协议,生成上述第一隐私数值加密合法性的第一证明σ 1
零知识证明是在不泄露明文信息的情况下,证明该信息真实性的一种方式。例如,拥有方拥有一项私密输入s,它可以基于s生成公开部分L(s),然后公开一份零知识证明σ。利用该零知识证明,验证者可以验证拥有方拥有私密输入s,这个私密s可以生成L(s),同时不会泄露s的明文信息。
例如,签名就是一种零知识证明的方式。其中,私钥即上述私密输入s,公钥为对应的公开部分L(s),基于公钥的签名即为零知识证明σ。验证者可以验证某人具有与公钥对应的私钥,且不泄露私钥本身。
在以上调用智能合约的第一交易的场景下,在一个具体实施例中,可以采用Σ零知识证明协议,利用合约公钥PK,生成第一隐私数值加密合法性的第一证明σ 1,该第一证明σ 1包含基于公钥PK的签名信息。相应地,在步骤27填入第一交易信息时,还将上述合约公钥包含在第一交易信息中,公布上链。
在一个实施例中,还基于bulletproof范围证明协议,生成上述第一隐私数值在合法范围内的第二证明σ 2
范围证明,是在不泄露某个变量v的真实数值大小的情况下,证明该变量v的数值在预定范围之内。范围证明也属于零知识证明的一种。已经存在多种范围证明协议,其中bulletproof范围证明协议是在一些加密数字货币区块链网络中,用于提高保密交易的隐私性而提出的方案。在一个具体实施例中,采用bulletproof范围证明协议,使用上述合约私钥SK作为证据(witness),生成上述第二证明σ 2,用于证明第一隐私数值在预定义的合法范围之内。
具体的,在一个例子中,上述第一智能合约为授信借贷合约,上述第一交易为发起授信的交易,其中的第一隐私数值包括授信额度v。在这样的情况下,上述预定义的合法范围例如为大于0。
在生成上述第二证明σ 2的情况下,相应的,将该第二证明σ 2包含在第一交易内容中,公布上链。
通过以上过程,第一参与方在区块链网络中发起了第一交易,该第一交易调用第一智能合约,并在交易内容中包含了m个参与方的信息,第一辅助信息,对隐私文本加密得到的第一加密数据。在隐私数据还包括隐私数值的情况下,交易内容中还包括对 隐私数值加密得到的第二加密数据。可选的,交易内容还包括,上述第一证明σ 1和/或第二证明σ 2
在第一参与方发出该第一交易后,区块链网络中的各个节点均会接收到该笔交易,并执行该交易。图4示出区块链中的节点执行第一交易的过程示意图。
如图4所示,首先在步骤41,对该第一交易进行校验。该校验至少包括,校验交易发起者,即上述第一参与方,对该第一交易的签名。签名的校验可以利用第一参与方预先公布的签名用公钥进行。
在第一交易的交易内容中包括有上述的第一证明σ 1的情况下,节点可以根据该第一证明,校验第一隐私数值的加密是否合法。如前所述,在公开第一证明σ 1的同时,第一参与方还在交易中公开合约公钥PK。于是,节点可以利用该合约公钥PK,通过零知识证明协议,基于第一证明σ 1对第一隐私数值的加密合法性进行校验。
在第一交易的交易内容中包括有上述的第二证明σ 2的情况下,节点可以根据该第二证明,校验第一隐私数值的范围是否符合预定范围。例如,在第二证明σ 2使用bulletproof范围证明协议生成的情况下,节点可以根据该范围证明协议,基于第二证明σ 2,校验第一隐私数值的范围是否合法。例如,校验第一隐私数值是否大于0。
在以上校验均通过的情况下,在步骤42,节点执行第一交易中第一智能合约的合约逻辑,对第二加密数据E 2进行同态运算相关的操作。一般而言,隐私文本中涉及的信息并不影响合约的执行逻辑,因此,节点可以不对第一加密数据E 1进行处理,仅将其作为交易内容的一部分进行记录。但是智能合约的执行过程会涉及一些变量的读写、修改、记录等操作,这部分变量即作为隐私数值被加密为第二加密数据E 2。如前所述,第二加密数据E 2采用同态加密的方式生成,因此,节点可以无需对其进行解密,而直接进行同态运算相关的操作。
例如,当需要对第二加密数据中针对的数值,与之前存储的数值进行求和时,就可以采用前述公式(15)所示的同态运算操作;当需要对第二加密数据中针对的数值,与之前存储的数值进行相减时,就可以采用前述公式(16)所示的同态运算操作。
在一个例子中,第一交易例如是新创建的授信借贷合约,第一隐私数值是针对例如授信额度首次传入的参数值。此时,将针对该第一隐私数值同态加密后的第二加密数据记录为对应参数值,以备后续同态运算所用。
在对上述第一智能合约进行链上执行后,在步骤43,节点向该第一交易涉及的 m个参与方发出通知,以通知各个参与方当前的第一交易与其相关。在一个实施例中,节点通过log通知的方式,通知各个相关参与方。在另一实施例中,节点也可以直接将第一交易的交易内容通知给各个相关参与方。
各个参与方收到区块链节点的通知后,就可以执行该智能合约交易,更新其本地交易状态。下面描述相关参与方执行该智能合约交易的过程。
图5示出根据一个实施例的执行智能合约交易的方法流程图,该流程通过前述m个参与方中的第二参与方执行。该第二参与方是m个参与方中不同于第一参与方的任意一个参与方。例如,在发起上述第一交易的第一参与方为图1所示例的机构C的情况下,第二参与方可以是对应的机构D。
如图5所示,首先在步骤51,第二参与方获取调用第一智能合约的第一交易Tx的交易内容。
在一个实施例中,上述第二参与方从区块链的节点接收到log通知,根据该log通知,从区块链中读取上述第一交易的交易内容。在另一实施例中,区块链节点直接将第一交易的交易内容发送给相关参与方,于是,第二参与方直接从节点接收到上述交易内容。
如前所述,该第一交易的交易内容中包括,该交易涉及的m个参与方的信息,第一辅助信息,第一加密数据E 1,以及可选的第二加密数据E 2。其中,第一辅助信息包括所述m个参与方的第一公钥部分的第一聚合结果,第一加密数据E 1是对第一隐私文本加密的数据,第二加密数据E 2是对第一隐私数值加密的数据。因此,第二参与方需要利用自身的参与方私钥,和其他参与方为其生成的密钥交叉项,借助于第一辅助信息,还原出第一加密数据对应的第一隐私文本,和第二加密数据对应的第一隐私数值。
于是,在步骤52,第二参与方将m个参与方中其他参与方针对该第二参与方生成的密钥交叉项,以及该第二参与方的参与方私钥进行聚合,得到第三聚合结果。
简单清楚起见,用u j表示第二参与方。根据前述的密钥配置过程,第二参与方具有基于第一循环群G 1生成的私钥σ jj
更具体的,第二参与方u j通过以下方式生成其私钥σ jj。首先,第二参与方任取第四随机数r j,并在第一循环群中任取第四元素X j;然后,使用预定的哈希映射函数,将第二参与方的标识u j映射到第一循环群中,得到第五元素H(u j);基于第四随机数r j,第四元素X j和第五元素H(u j)在第一循环群中的群操作,即得到第二参与方的参与方私 钥σ jj。更具体的,第二参与方的私钥可以表示为:
Figure PCTCN2020118000-appb-000021
此外,如前所述,总参与方集合U中的其他参与方还针对该第二参与方生成与私钥形式对应的密钥交叉项。例如,另一参与方u k(这里k=1,…,n且k≠j)针对第二参与方u j生成有密钥交叉项σ kj
Figure PCTCN2020118000-appb-000022
各个其他参与方针对第二参与方形成的密钥交叉项,具体如前述矩阵(6)所示。
于是,第二参与方可以从以上矩阵中,确定出本交易的m个参与方中m-1个其他参与方为其生成的密钥交叉项σ kj,将该m-1个密钥交叉项σ kj,连同自身私钥σ jj进行聚合,得到第三聚合结果σ S,其中:
σ S=∏ k∈Sσ kj        (19)
如前所述,各个参与方私钥是基于第一循环性G 1生成的,密钥交叉项与参与方私钥具有对应的计算方式,也是基于第一循环性生成的,因此,上述第三聚合结果是第一循环群中的元素。
而另一方面,第一辅助信息基于m个参与方的第一公钥部分的聚合而生成,而第一公钥部分基于第二循环群G 2生成。
因此,在接下来的步骤53,可以根据第一循环群中的第三聚合结果,第二循环群中的第一辅助信息,以及第一循环群G 1和第二循环群G 2之间的配对算法,还原出对m个参与方的第二公钥部分进行聚合的第二聚合结果。
更具体的,如前所述,上述第一辅助信息包括辅助字段c 1和第一聚合结果c 2,其中辅助字段c 1通过基于第二随机数t对第二循环群G 2的第二生成元g 2进行群操作而生成,第一聚合结果c 2通过基于上述第二随机数t对m个参与方的m个第一公钥部分进行聚合而生成。
更具体的,如前述公式(7)和公式(8)所示,
Figure PCTCN2020118000-appb-000023
基于以上所示的辅助字段c 1和第一聚合结果c 2,可以通过以下配对过程实现第二聚合结果的还原:计算上述第三聚合结果σ S(第一循环群中)与辅助字段c 1(第二循环群中)的第一配对结果,以及生成第二参与方私钥时使用的第五元素H(u j)(第一循环群中)与第一聚合结果c 2(第二循环群中)的第二配对结果,综合第一配对结果和第二 配对结果,得到第二聚合结果。
具体的,第二聚合结果
Figure PCTCN2020118000-appb-000024
可以表示为:
Figure PCTCN2020118000-appb-000025
公式(20)基于两个循环群之间的配对算法的性质而得出。具体的:
Figure PCTCN2020118000-appb-000026
如此,还原出了第二聚合结果
Figure PCTCN2020118000-appb-000027
于是,在步骤54,根据上述第二聚合结果
Figure PCTCN2020118000-appb-000028
和第一智能合约的第一合约标识T id,得到第一对称密钥K。
该步骤54的计算方式与图3中步骤33完全一致。具体的,可以根据前述公式(9),计算得到第一对称密钥K。更具体的,可以根据前述公式(10),对第二聚合结果以及第一合约标识进行哈希运算,得到所述第一对称密钥K。
接着,在步骤55,利用上述第一对称密钥K解密第一加密数据E 1,得到第一隐私文本。在该步骤中,只需要采用与图3步骤34使用的对称加密算法对应的解密算法,就可以从第一加密数据中解密得到原始的第一隐私文本。
在交易内容中还包括第二加密数据的情况下,接着在步骤56,基于上述第一对称密钥K和所述第一合约标识,生成合约私钥SK。
该步骤56的计算方式与图3中步骤35完全一致。具体的,可以根据前述公式(11),计算得到合约私钥SK。更具体的,可以根据前述公式(12),对第一对称密钥以及第一合约标识进行哈希运算,得到该合约私钥SK。
于是,接着在步骤57,使用第一同态解密算法,利用合约私钥SK解密第二加密数据E 2,得到第一隐私数值。在该步骤中,只需要采用与图3步骤36使用的同态非对称加密算法相对应的解密算法,就可以从第二加密数据中解密得到原始的第一隐私数值v。
具体的,当前述步骤36采用改进的El-Gamal算法进行同态加密,得到公式(14) 形式的第二加密数据E 2时,可以首先使用合约私钥SK,通过以下运算,得到基于第一隐私数值v对第三循环群的第四生成元g进行群操作的结果g v
Figure PCTCN2020118000-appb-000029
然后遍历该第四生成元g的可能群操作结果,还原出第一隐私数值v。
于是,第二参与方在步骤55,解密出了原始的第一隐私文本,在步骤57,解密出了原始的第一隐私数值,从而获得了通过第一交易填入到第一智能合约的全部隐私数据。
于是,在步骤58,第二参与方根据解密出的第一隐私文本和第一隐私数值,记录本地交易状态。
例如,在图1所示的场景中,当第一参与方为机构C,第一交易为新建授信合约时,第二参与方可以是机构D。通过以上解密过程,机构D可以得到授信借贷的金额数值v,以及第一隐私文本指示的其他协议内容。根据这些内容,记录本地交易状态。
通过以上过程可以看到,根据本说明书描述的实施例,在发起和执行智能合约时,将填入到智能合约中的隐私数据划分为隐私文本和隐私数值,对其进行分别处理,用不同的方式进行加密和解密。以上实施例中发起和执行智能合约的过程至少具有以下优势。
首先,通过以上解密过程可以看到,只有发起方所指定的m个参与方,才可以使用自己的参与方私钥和密钥交叉项,还原出解密所需的对称密钥和合约私钥,进而对隐私数据进行解密。如此,实现了涉及多方的智能合约的隐私数据保护。
其次,通过第一加密数据的生成过程可以看到,第一对称密钥基于m个参与方的公钥聚合而得到,第一加密数据使用第一对称密钥对隐私文本加密而得到。即使参与方的数目m取较大的值,也不会导致第一加密数据的数据大小随之增大。换而言之,第一加密数据的密文大小基本为常量,不随授权群组大小增加而增加。相比于常规技术中针对每个参与方分别进行加密的密文产生方式,这样的定长密文的方式可以有效降低通信和存储的代价,更加适合于区块链中频繁通信、多份存储的场景。
此外,以上实施例中对于隐私数值采用同态加密的方式,可以使得区块链节点不需要解密,就可以对其进行同态操作,不影响合约逻辑的执行。
以上描述了第二参与方解密上述调用第一智能合约的第一交易中的隐私数据, 从而执行该第一交易的过程。在一些情况下,第二参与方可以再次调用第一智能合约,发起后续交易,从而更新其中的变量状态。例如,在第二参与方为图1的机构D,通过前述的第一交易获得额度为v的授信后,就可以与机构B进行借贷业务。于是,结构D可以通过后续再次调用第一智能合约,记录与机构B在授信额度v之内的借款还款状况。
图6示出在一个实施例中第二参与方发起第二交易的流程图。可以理解,该流程是在第二参与方执行前述第一交易之后,发起第一交易的后续交易的过程。
如图6所示,首先在步骤61,获取用于对交易状态进行更新的第二隐私文本和第二隐私数值,其中第二隐私数值与前述第一隐私数值符合预定关系。
具体的,第二隐私文本是有待填入本交易的、新产生的隐私文本,第二隐私数值是与前述第一隐私数值对应的变量相关的变量值。例如,当前述的第二参与方D与机构B发生实际借贷业务时,第二隐私文本可以是对借贷业务的说明,第二隐私数值可以是,实际发放给机构B的借款金额v′,或机构B还款的还款金额v″。显然,第二隐私数值与前述的第一隐私数值相关,且需要与第一隐私数值符合预定关系,比如在本例中,第二隐私数值v′或v″需小于或等于第一隐私数值v。
然后,在步骤62,第二参与方利用第一对称密钥K加密第二隐私文本,生成第三加密数据E 3。此处的第一对称密钥K即第二参与方通过前述图5的步骤54还原得到的对称密钥。由于第二参与方将要发起的第二交易仍然调用第一智能合约,是前述第一交易的延续,具有相同的参与方群体,因此,该交易中可以仍然使用前述第一交易中的密钥。
接着,在步骤63,第二参与方基于前述合约私钥SK,生成对应的合约公钥PK。此处的合约私钥SK即第二参与方通过前述图5的步骤56得到的合约私钥。基于该合约私钥,采用约定的公钥生成方法,可以容易地得到对应的合约公钥PK。
具体的,可以采用前述公式(13)的方式,基于合约私钥SK对约定的第三循环群中的第三生成元h进行群操作,得到合约公钥PK=h SK
然后,在步骤64,使用第一同态加密算法,基于合约公钥PK对第二隐私数值进行加密,生成第四加密数据E 4。该加密的过程与前述图3中的步骤36相同,不再赘述。
于是,在步骤65,第二参与方生成调用前述第一智能合约的第二交易,将第二交易内容填入该第一智能合约,所述第二交易内容包括,同样的m个参与方的信息,第三加密数据E 3,以及第四加密数据E 4
需要说明的是,由于m个参与方均可以通过前述第一交易中的第一辅助信息,还原出第一对称密钥和合约私钥,因此,针对该m个参与方的后续交易中可以不再包含该第一辅助信息。不过,可选的,第二参与方也可以将前述第一辅助信息再次填入第二交易内容中,以便辅助其他参与方进行解密或验证。
在一个实施例中,第二参与方还基于Σ零知识证明协议,利用所述合约公钥PK,生成上述第二隐私数值加密合法性的第三证明σ 3,并将所述合约公钥和第三证明σ 3包含在前述第二交易内容中。该第三证明的生成方式与前述的第一证明相似,不再赘述。
在一个实施例中,第二参与方还基于bulletproof范围证明协议,生成第四证明σ 4,所述第四证明用于证明第二隐私数值在合法范围内,并且,所述第二隐私数值与所述第一隐私数值的相对大小在预定范围内。更具体的,在前述授信借贷的例子中,第四证明不仅需要证明第二隐私数值v′或v″大于0,还需要证明,第二隐私数值v′或v″小于或等于第一隐私数值v,即第一隐私数值减去第二隐私数值的差值大于等于0。同样的,第二参与方将该第四证明σ 4包含在上述第二交易内容中。
当第二参与方通过以上方式发起第二交易后,区块链中的各个节点对第二交易中的第一智能合约进行链上执行,执行方式与图4类似。以下仅描述不同之处。
在校验步骤中,在第二交易的交易内容中包括有上述的第三证明σ 3的情况下,节点根据该第三证明,校验第二隐私数值的加密是否合法。
在第二交易的交易内容中包括有上述的第四证明σ 4的情况下,节点根据该第四证明,校验第二隐私数值的范围是否符合预定范围,以及第二隐私数值与前述第一隐私数值的相对大小是否在预定范围。例如,节点可以根据bulletproof范围证明协议,校验第二隐私数值是否大于0,以及第一隐私数值是否大于等于第二隐私数值。
在以上校验均通过的情况下,节点执行第二交易中第一智能合约的合约逻辑,对第四加密数据E 4进行同态运算。
例如,在一个例子中,第一隐私数值为授信额度v,第二隐私数值为借款金额v′。假定第一智能合约中还设定有变量x,表征可借贷余额。在这样的情况下,可以通过对第二加密数据E 2和第四加密数据E 4进行对应于减法的同态运算,得到变量x的加密值,即:
E PK(x)=E PK(v)/E PK(v′)=(PK r/PK r′,g vh r/g v′h r′)=E PK(v-v′)    (22)
在另一例子中,第二隐私数值为还款金额v″。在这样的情况下,可以对之前存 储的E PK(x)和第四加密数据E PK(v″)进行对应于加法的同态运算,作为新的可借贷余额x的加密值,即:
E PK(x)*E PK(v″)=E PK(x+v″)          (23)
此外,还可以对之前存储的已借贷金额的加密值与上述E PK(v″)进行对应于减法的同态运算,作为新的已借贷金额的加密值。
如此,区块链节点可以对第二交易中的第二隐私数值进行同态运算,从而更新第一智能合约中的变量参数,实现第二交易的链上执行。对于针对同样的m个参与方的同样调用前述第一智能合约的后续交易,均可以采用类似于第二交易的方式来发起交易和执行交易,从而持续记录和跟踪后续交易中各个交易变量的更新状况,同时实现在链上执行智能合约交易过程中的隐私保护。
根据另一方面的实施例,提供了一种在发起智能合约交易的装置,该装置部署在第一参与方对应的终端中,该终端可以体现为任何具有计算、处理能力的设备或平台。其中,所发起的交易涉及m个参与方,所述m个参与方的每一个各自预先配置有参与方私钥和参与方公钥,所述参与方私钥基于第一循环群生成,所述参与方公钥包括第一公钥部分和第二公钥部分,其中所述第一公钥部分基于第二循环群生成,所述第二公钥部分基于所述第一循环群和第二循环群之间的配对而生成;每个参与方还采用与所述参与方私钥对应的生成方式针对其他参与方生成有密钥交叉项。在此前提下,图7示出根据一个实施例的发起智能合约交易的装置的示意性框图。如图7所示,该交易发起装置700包括以下单元。
确定单元71,配置为确定要调用的第一智能合约的第一合约标识,本次交易涉及的m个参与方,以及有待填入所述第一智能合约的隐私数据;所述隐私数据包括,第一隐私文本。
辅助信息生成单元72,配置为生成第一辅助信息,其中包括对所述m个参与方的第一公钥部分进行第一聚合的第一聚合结果。
对称密钥生成单元73,配置为对所述m个参与方的第二公钥部分进行与所述第一聚合对应的第二聚合;根据第二聚合结果,以及所述第一合约标识,生成第一对称密钥。
第一加密单元74,配置为利用所述第一对称密钥加密所述第一隐私文本,生成第一加密数据。
第一交易生成单元77,配置为生成调用所述第一智能合约的第一交易,将第一交易内容填入所述第一智能合约,所述第一交易内容包括,所述m个参与方的信息,所述第一辅助信息,以及所述第一加密数据。
在一种实施方式下,隐私数据还包括第一隐私数值;在这样的情况下,装置700还包括以下单元。
合约密钥生成单元75,配置为基于所述第一对称密钥和所述第一合约标识,生成合约私钥和对应的合约公钥。
第二加密单元76,配置为使用第一同态加密算法,基于所述合约公钥对所述第一隐私数值进行加密,生成第二加密数据。
并且,第一交易生成单元77所填入的第一交易内容中包括所述第二加密数据。
根据一种实施方式,上述装置700还包括密钥配置单元(未示出),具体配置为:任取第一随机数,并在所述第一循环群中任取第一元素;使用预定的哈希映射函数,将所述第一参与方的标识映射到所述第一循环群中的第二元素;基于所述第一随机数,第一元素和第二元素在所述第一循环群中的群操作,得到所述第一参与方的参与方私钥;基于所述第一随机数对所述第二循环群对应的第二生成元进行群操作,得到所述第一参与方的第一公钥部分;基于所述第一循环群中的第一元素和所述第二生成元之间的配对,得到所述第一参与方的第二公钥部分。
在一个实施例中,上述密钥配置单元还配置为:针对所述m个参与方中任意的第二参与方,使用所述哈希映射函数,将所述第二参与方的标识映射到所述第一循环群中的第三元素,基于所述第一随机数,第一元素和第三元素在所述第一循环群中的群操作,得到第一参与方针对第二参与方的密钥交叉项,并至少将其发布给所述第二参与方。
根据一个实施例,辅助信息生成单元72具体配置为:任取第二随机数,基于所述第二随机数对所述第二循环群对应的第二生成元进行群操作,生成辅助字段;基于所述第二随机数对所述m个参与方的m个第一公钥部分进行第一聚合,生成第一聚合结果;所述辅助字段和所述第一聚合结果构成所述第一辅助信息;相应的,第二聚合结果为,基于所述第二随机数对所述m个参与方的m个第二公钥部分进行第二聚合的结果。
根据一个实施例,对称密钥生成单元73具体配置为,将所述第二聚合结果和所述第一合约标识进行哈希运算,得到所述第一对称密钥。
在一个实施例中,合约密钥生成单元75具体配置为:将所述第一对称密钥与所 述第一合约标识进行预定哈希运算,得到所述合约私钥;基于所述合约私钥对第三循环群中的第三生成元进行群操作,得到所述合约公钥。
根据一种实施方式,第二加密单元76具体配置为:基于选取的第三随机数,所述第一隐私数值,和所述合约公钥,在所述第三循环群中进行群操作,得到第二加密数据。
在一个实施例中,该装置还包括证明生成单元(未示出),配置为,基于Σ零知识证明协议,利用所述合约公钥,生成所述第一隐私数值加密合法性的第一证明;相应的,第一交易生成单元77可以在所述第一交易内容中包括所述合约公钥和所述第一证明。
在一种实施方式中,该证明生成单元还配置为,基于bulletproof范围证明协议,生成所述第一隐私数值在合法范围内的第二证明;相应的,第一交易生成单元77可以在所述第一交易内容中包括所述第二证明。
根据又一方面的实施例,提供了一种在执行智能合约交易的装置,该装置部署在第二参与方对应的终端中,该终端可以体现为任何具有计算、处理能力的设备或平台。其中,所执行的交易涉及m个参与方,所述m个参与方的每一个各自预先配置有参与方私钥和参与方公钥,所述参与方私钥基于第一循环群生成,所述参与方公钥包括第一公钥部分和第二公钥部分,其中所述第一公钥部分基于第二循环群生成,所述第二公钥部分基于所述第一循环群和第二循环群之间的配对而生成;每个参与方还采用与所述参与方私钥对应的生成方式针对其他参与方生成有密钥交叉项。在此前提下,图8示出根据一个实施例的执行智能合约交易的装置的示意性框图。如图8所示,该交易执行装置800包括以下单元。
获取单元81,配置为获取调用第一智能合约的第一交易的交易内容,其中包括,该交易涉及的m个参与方的信息,第一辅助信息,以及第一加密数据;所述第一辅助信息包括所述m个参与方的第一公钥部分的第一聚合结果,所述第一加密数据是对第一隐私文本加密的数据,所述第二加密数据是对第一隐私数值加密的数据。
聚合单元82,配置为将所述m个参与方中其他参与方针对该第二参与方生成的密钥交叉项,以及该第二参与方的参与方私钥进行聚合,得到第三聚合结果。
还原单元83,配置为根据所述第三聚合结果,所述第一辅助信息,以及所述第一循环群和第二循环群之间的配对算法,还原出对所述m个参与方的第二公钥部分进行 聚合的第二聚合结果。
对称密钥确定单元84,根据所述第二聚合结果和所述第一智能合约的第一合约标识,确定第一对称密钥。
第一解密单元85,配置为利用所述第一对称密钥解密所述第一加密数据,得到所述第一隐私文本。
记录单元88,配置为至少根据所述第一隐私文本,记录本地交易状态。
在一个实施例中,获取单元获取的交易内容还包括对第一隐私数值加密得到的第二加密数据;在这样的情况下,装置800还包括以下单元。
合约密钥确定单元86,配置为基于所述第一对称密钥和所述第一合约标识,生成合约私钥。
第二解密单元87,配置为使用第一同态解密算法,利用所述合约私钥解密所述第二加密数据,得到所述第一隐私数值。
所述记录单元88还配置为,根据所述第一隐私数值,记录本地交易状态。
根据一个实施例,获取单元81具体配置为:响应于从区块链网络的第一节点接收到交易通知,从区块链中获取所述第一交易的交易内容。
根据一种实施方式,该装置800还包括密钥配置单元(未示出),配置为:任取第四随机数,并在所述第一循环群中任取第四元素;使用预定的哈希映射函数,将所述第二参与方的标识映射到所述第一循环群中的第五元素;基于所述第四随机数,第四元素和第五元素在所述第一循环群中的群操作,得到所述第二参与方的参与方私钥。
相应的,所述m个参与方中任意的第三参与方针对该第二参与方生成的密钥交叉项通过以下方式生成:基于该第三参与方任取的第五随机数,在所述第一循环群中任取的第六元素,以及上述第五元素,在所述第一循环群中进行群操作,得到第三参与方针对第二参与方的密钥交叉项。
在一个具体实施例中,所述第一辅助信息包括辅助字段和所述第一聚合结果,所述辅助字段通过基于随机数对第二循环群的第二生成元进行群操作而生成;在这样的情况下,还原单元83具体配置为:计算所述第三聚合结果与所述辅助字段的第一配对结果,以及所述第五元素与所述第一聚合结果的第二配对结果,综合第一配对结果和第二配对结果,得到所述第二聚合结果。
根据一个实施例,对称密钥确定单元84具体配置为:对所述第二聚合结果以及所述第一合约标识进行哈希运算,得到所述第一对称密钥。
在一个实施例中,合约密钥确定单元86具体配置为:将所述第一对称密钥与所述第一合约标识进行预定哈希运算,得到所述合约私钥。
在一个实施例中,第二加密数据基于所述第一隐私数值和所述合约私钥对应的合约公钥,在第三循环群中进行群操作而生成;在这样的情况下,第二解密单元87具体配置为:利用所述合约私钥,得到利用所述第一隐私数值对所述第三循环群的第四生成元进行群操作的结果;然后遍历该第四生成元的可能群操作结果,还原出所述第一隐私数值。
根据一种实施方式,上述装置800还包括,第二交易发起单元,包括(未示出):获取模块,配置为获取用于对交易状态进行更新的第二隐私文本和第二隐私数值,所述第二隐私数值与所述第一隐私数值符合预定关系;第三加密模块,配置为利用所述第一对称密钥加密所述第二隐私文本,生成第三加密数据;公钥生成模块,配置为基于所述合约私钥,生成对应的合约公钥;第四加密模块,配置为使用第一同态加密算法,基于所述合约公钥对所述第二隐私数值进行加密,生成第四加密数据;交易生成模块,配置为生成调用所述第一智能合约的第二交易,将第二交易内容填入所述第一智能合约,所述第二交易内容包括,所述m个参与方的信息,所述第三加密数据,以及所述第四加密数据。
更具体的,在一个实施例中,公钥生成模块配置为:基于所述合约私钥对约定的第三循环群中的第三生成元进行群操作,得到所述合约公钥。
在一个实施例中,上述第二交易发起单元还包括证明生成模块,配置为基于Σ零知识证明协议,利用所述合约公钥,生成所述第二隐私数值加密合法性的第三证明;相应的,交易生成模块可以在所述第二交易内容中包括所述合约公钥和所述第三证明。
在一个实施例中,上述证明生成模块还配置为,基于bulletproof范围证明协议,生成第四证明,所述第四证明用于证明所述第二隐私数值在合法范围内,且所述第二隐私数值与所述第一隐私数值的相对大小在预定范围内;相应的,交易生成模块可以在所述第二交易内容中包括所述第四证明。
通过以上的装置,在不影响区块链对智能合约交易进行链上执行的情况下,保护了其中隐私数据的安全。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图3和图5所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图3和图5所述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

Claims (28)

  1. 一种保护隐私数据的发起智能合约交易的方法,通过第一参与方执行,所述方法包括:
    确定要调用的第一智能合约的第一合约标识,本次交易涉及的m个参与方,以及有待填入所述第一智能合约的隐私数据;其中,所述m个参与方的每一个各自预先配置有参与方私钥和参与方公钥,所述参与方私钥基于第一循环群生成,所述参与方公钥包括第一公钥部分和第二公钥部分,其中所述第一公钥部分基于第二循环群生成,所述第二公钥部分基于所述第一循环群和第二循环群之间的配对而生成;每个参与方还采用与所述参与方私钥对应的生成方式针对其他参与方生成有密钥交叉项;所述隐私数据包括第一隐私文本;
    生成第一辅助信息,其中包括对所述m个参与方的第一公钥部分进行第一聚合的第一聚合结果;
    对所述m个参与方的第二公钥部分进行与所述第一聚合对应的第二聚合;根据第二聚合结果,以及所述第一合约标识,生成第一对称密钥;
    利用所述第一对称密钥加密所述第一隐私文本,生成第一加密数据;
    生成调用所述第一智能合约的第一交易,将第一交易内容填入所述第一智能合约,所述第一交易内容包括,所述m个参与方的信息,所述第一辅助信息,以及所述第一加密数据。
  2. 根据权利要求1所述的方法,所述隐私数据还包括第一隐私数值;所述方法还包括:
    基于所述第一对称密钥和所述第一合约标识,生成合约私钥和对应的合约公钥;
    使用第一同态加密算法,基于所述合约公钥对所述第一隐私数值进行加密,生成第二加密数据;
    将所述第二加密数据包含在所述第一交易内容中。
  3. 根据权利要求1所述的方法,还包括,预先进行所述第一参与方的密钥配置,具体包括:
    任取第一随机数,并在所述第一循环群中任取第一元素;
    使用预定的哈希映射函数,将所述第一参与方的标识映射到所述第一循环群中的第二元素;基于所述第一随机数,第一元素和第二元素在所述第一循环群中的群操作,得到所述第一参与方的参与方私钥;
    基于所述第一随机数对所述第二循环群对应的第二生成元进行群操作,得到所述第 一参与方的第一公钥部分;
    基于所述第一循环群中的第一元素和所述第二生成元之间的配对,得到所述第一参与方的第二公钥部分。
  4. 根据权利要求3所述的方法,其中,预先进行所述第一参与方的密钥配置还包括:
    针对所述m个参与方中任意的第二参与方,使用所述哈希映射函数,将所述第二参与方的标识映射到所述第一循环群中的第三元素,基于所述第一随机数,第一元素和第三元素在所述第一循环群中的群操作,得到第一参与方针对第二参与方的密钥交叉项,并至少将其发布给所述第二参与方。
  5. 根据权利要求1所述的方法,其中,所述生成第一辅助信息包括:
    任取第二随机数,基于所述第二随机数对所述第二循环群对应的第二生成元进行群操作,生成辅助字段;
    基于所述第二随机数对所述m个参与方的m个第一公钥部分进行第一聚合,生成第一聚合结果;
    所述辅助字段和所述第一聚合结果构成所述第一辅助信息;
    所述第二聚合结果为,基于所述第二随机数对所述m个参与方的m个第二公钥部分进行第二聚合的结果。
  6. 根据权利要求1所述的方法,其中,所述生成第一对称密钥包括:
    将所述第二聚合结果和所述第一合约标识进行哈希运算,得到所述第一对称密钥。
  7. 根据权利要求2所述的方法,其中,基于所述第一对称密钥和所述第一合约标识,生成合约私钥和对应的合约公钥,包括:
    将所述第一对称密钥与所述第一合约标识进行预定哈希运算,得到所述合约私钥;
    基于所述合约私钥对第三循环群中的第三生成元进行群操作,得到所述合约公钥。
  8. 根据权利要求7所述的方法,其中,生成第二加密数据包括:
    基于选取的第三随机数,所述第一隐私数值,和所述合约公钥,在所述第三循环群中进行群操作,得到第二加密数据。
  9. 根据权利要求1所述的方法,还包括,
    基于Σ零知识证明协议,利用所述合约公钥,生成所述第一隐私数值加密合法性的第一证明;
    其中,将第一交易内容填入所述第一智能合约包括,在所述第一交易内容中包括所述合约公钥和所述第一证明。
  10. 根据权利要求1所述的方法,还包括,
    基于bulletproof范围证明协议,生成所述第一隐私数值在合法范围内的第二证明;
    其中,将第一交易内容填入所述第一智能合约包括,在所述第一交易内容中包括所述第二证明。
  11. 一种保护隐私数据的执行智能合约交易的方法,通过第二参与方执行,所述方法包括:
    获取调用第一智能合约的第一交易的交易内容,其中包括,该交易涉及的m个参与方的信息,第一辅助信息,以及第一加密数据;其中,所述m个参与方包括所述第二参与方;所述m个参与方的每一个各自预先配置有参与方私钥和参与方公钥,所述参与方私钥基于第一循环群生成,所述参与方公钥包括第一公钥部分和第二公钥部分,所述第一公钥部分基于第二循环群生成,所述第二公钥部分基于所述第一循环群和第二循环群之间的配对而生成;每个参与方还采用与所述参与方私钥对应的生成方式针对其他参与方生成有密钥交叉项;所述第一辅助信息包括所述m个参与方的第一公钥部分的第一聚合结果,所述第一加密数据是对第一隐私文本加密的数据;
    将所述m个参与方中其他参与方针对该第二参与方生成的密钥交叉项,以及该第二参与方的参与方私钥进行聚合,得到第三聚合结果;
    根据所述第三聚合结果,所述第一辅助信息,以及所述第一循环群和第二循环群之间的配对算法,还原出对所述m个参与方的第二公钥部分进行聚合的第二聚合结果;
    根据所述第二聚合结果和所述第一智能合约的第一合约标识,确定第一对称密钥;
    利用所述第一对称密钥解密所述第一加密数据,得到所述第一隐私文本;
    至少根据所述第一隐私文本,记录本地交易状态。
  12. 根据权利要求11所述的方法,其中,所述第一交易的交易内容还包括对第一隐私数值加密得到的第二加密数据;所述方法还包括:
    基于所述第一对称密钥和所述第一合约标识,确定合约私钥;
    使用第一同态解密算法,利用所述合约私钥解密所述第二加密数据,得到所述第一隐私数值;
    所述记录本地交易状态还包括,根据所述第一隐私数值,记录交易状态。
  13. 根据权利要求11所述的方法,其中,获取调用第一智能合约的第一交易的交易内容,包括:
    响应于从区块链网络的第一节点接收到交易通知,从区块链中获取所述第一交易的交易内容。
  14. 根据权利要求11所述的方法,其中,所述第二参与方的私钥通过以下方式生成:
    任取第四随机数,并在所述第一循环群中任取第四元素;
    使用预定的哈希映射函数,将所述第二参与方的标识映射到所述第一循环群中的第五元素;基于所述第四随机数,第四元素和第五元素在所述第一循环群中的群操作,得到所述第二参与方的参与方私钥;
    所述m个参与方中任意的第三参与方针对该第二参与方生成的密钥交叉项通过以下方式生成:基于该第三参与方任取的第五随机数,在所述第一循环群中任取的第六元素,以及上述第五元素,在所述第一循环群中进行群操作,得到第三参与方针对第二参与方的密钥交叉项。
  15. 根据权利要求14所述的方法,其中,所述第一辅助信息包括辅助字段和所述第一聚合结果,所述辅助字段通过基于随机数对第二循环群的第二生成元进行群操作而生成;
    所述还原出对所述m个参与方的第二公钥部分进行聚合的第二聚合结果,包括:
    计算所述第三聚合结果与所述辅助字段的第一配对结果,以及所述第五元素与所述第一聚合结果的第二配对结果,综合第一配对结果和第二配对结果,得到所述第二聚合结果。
  16. 根据权利要求11所述的方法,其中,根据所述第二聚合结果和所述第一智能合约的第一合约标识,确定第一对称密钥,包括:
    对所述第二聚合结果以及所述第一合约标识进行哈希运算,得到所述第一对称密钥。
  17. 根据权利要求12所述的方法,其中,基于所述第一对称密钥和所述第一合约标识,确定合约私钥,包括:
    将所述第一对称密钥与所述第一合约标识进行预定哈希运算,得到所述合约私钥。
  18. 根据权利要求12所述的方法,其中,所述第二加密数据基于所述第一隐私数值和所述合约私钥对应的合约公钥,在第三循环群中进行群操作而生成;
    利用所述合约私钥解密所述第二加密数据,得到所述第一隐私数值,包括:
    利用所述合约私钥,得到利用所述第一隐私数值对所述第三循环群的第四生成元进行群操作的结果;
    遍历该第四生成元的可能群操作结果,还原出所述第一隐私数值。
  19. 根据权利要求12所述的方法,还包括:
    获取用于对交易状态进行更新的第二隐私文本和第二隐私数值,所述第二隐私数值 与所述第一隐私数值符合预定关系;
    利用所述第一对称密钥加密所述第二隐私文本,生成第三加密数据;
    基于所述合约私钥,生成对应的合约公钥;
    使用第一同态加密算法,基于所述合约公钥对所述第二隐私数值进行加密,生成第四加密数据;
    生成调用所述第一智能合约的第二交易,将第二交易内容填入所述第一智能合约,所述第二交易内容包括,所述m个参与方的信息,所述第三加密数据,以及所述第四加密数据。
  20. 根据权利要求19所述的方法,其中,基于所述合约私钥,生成对应的合约公钥,包括:
    基于所述合约私钥对约定的第三循环群中的第三生成元进行群操作,得到所述合约公钥。
  21. 根据权利要求19所述的方法,还包括:
    基于Σ零知识证明协议,利用所述合约公钥,生成所述第二隐私数值加密合法性的第三证明;
    其中,将第二交易内容填入所述第一智能合约包括,在所述第二交易内容中包括所述合约公钥和所述第三证明。
  22. 根据权利要求19所述的方法,还包括,
    基于bulletproof范围证明协议,生成第四证明,所述第四证明用于证明所述第二隐私数值在合法范围内,且所述第二隐私数值与所述第一隐私数值的相对大小在预定范围内;
    其中,将第二交易内容填入所述第一智能合约包括,在所述第二交易内容中包括所述第四证明。
  23. 一种保护隐私数据的发起智能合约交易的装置,部署在第一参与方对应的终端中,所述装置包括:
    确定单元,配置为确定要调用的第一智能合约的第一合约标识,本次交易涉及的m个参与方,以及有待填入所述第一智能合约的隐私数据;其中,所述m个参与方的每一个各自预先配置有参与方私钥和参与方公钥,所述参与方私钥基于第一循环群生成,所述参与方公钥包括第一公钥部分和第二公钥部分,其中所述第一公钥部分基于第二循环群生成,所述第二公钥部分基于所述第一循环群和第二循环群之间的配对而生成;每个参与方还采用与所述参与方私钥对应的生成方式针对其他参与方生成有密钥交叉项;所 述隐私数据包括第一隐私文本;
    辅助信息生成单元,配置为生成第一辅助信息,其中包括对所述m个参与方的第一公钥部分进行第一聚合的第一聚合结果;
    对称密钥生成单元,配置为对所述m个参与方的第二公钥部分进行与所述第一聚合对应的第二聚合;根据第二聚合结果,以及所述第一合约标识,生成第一对称密钥;
    第一加密单元,配置为利用所述第一对称密钥加密所述第一隐私文本,生成第一加密数据;
    第一交易生成单元,配置为生成调用所述第一智能合约的第一交易,将第一交易内容填入所述第一智能合约,所述第一交易内容包括,所述m个参与方的信息,所述第一辅助信息,以及所述第一加密数据。
  24. 根据权利要求23所述的装置,其中,所述隐私数据还包括第一隐私数值,所述装置还包括:
    合约密钥生成单元,配置为基于所述第一对称密钥和所述第一合约标识,生成合约私钥和对应的合约公钥;
    第二加密单元,配置为使用第一同态加密算法,基于所述合约公钥对所述第一隐私数值进行加密,生成第二加密数据;
    所述第一交易生成单元所填入的所述第一交易内容还包括所述第二加密数据。
  25. 一种保护隐私数据的执行智能合约交易的装置,部署在第二参与方对应的终端中,所述装置包括:
    获取单元,配置为获取调用第一智能合约的第一交易的交易内容,其中包括,该交易涉及的m个参与方的信息,第一辅助信息,以及第一加密数据;其中,所述m个参与方包括所述第二参与方;所述m个参与方的每一个各自预先配置有参与方私钥和参与方公钥,所述参与方私钥基于第一循环群生成,所述参与方公钥包括第一公钥部分和第二公钥部分,所述第一公钥部分基于第二循环群生成,所述第二公钥部分基于所述第一循环群和第二循环群之间的配对而生成;每个参与方还采用与所述参与方私钥对应的生成方式针对其他参与方生成有密钥交叉项;所述第一辅助信息包括所述m个参与方的第一公钥部分的第一聚合结果,所述第一加密数据是对第一隐私文本加密的数据;
    聚合单元,配置为将所述m个参与方中其他参与方针对该第二参与方生成的密钥交叉项,以及该第二参与方的参与方私钥进行聚合,得到第三聚合结果;
    还原单元,配置为根据所述第三聚合结果,所述第一辅助信息,以及所述第一循环群和第二循环群之间的配对算法,还原出对所述m个参与方的第二公钥部分进行聚合的 第二聚合结果;
    对称密钥确定单元,根据所述第二聚合结果和所述第一智能合约的第一合约标识,确定第一对称密钥;
    第一解密单元,配置为利用所述第一对称密钥解密所述第一加密数据,得到所述第一隐私文本;
    记录单元,配置为至少根据所述第一隐私文本,记录本地交易状态。
  26. 根据权利要求25所述的装置,其中,所述第一交易的交易内容还包括对第一隐私数值加密得到的第二加密数据;所述装置还包括:
    合约密钥确定单元,配置为基于所述第一对称密钥和所述第一合约标识,生成合约私钥;
    第二解密单元,配置为使用第一同态解密算法,利用所述合约私钥解密所述第二加密数据,得到所述第一隐私数值;
    所述记录单元还配置为,根据所述第一隐私数值,记录本地交易状态。
  27. 一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-22中任一项的所述的方法。
  28. 一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-22中任一项所述的方法。
PCT/CN2020/118000 2019-12-11 2020-09-27 生成和执行智能合约交易的方法及装置 WO2021114819A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201911267595.6A CN112950367B (zh) 2019-12-11 2019-12-11 生成和执行智能合约交易的方法及装置
CN201911267595.6 2019-12-11

Publications (1)

Publication Number Publication Date
WO2021114819A1 true WO2021114819A1 (zh) 2021-06-17

Family

ID=76233981

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/118000 WO2021114819A1 (zh) 2019-12-11 2020-09-27 生成和执行智能合约交易的方法及装置

Country Status (2)

Country Link
CN (1) CN112950367B (zh)
WO (1) WO2021114819A1 (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113568981A (zh) * 2021-09-24 2021-10-29 腾讯科技(深圳)有限公司 一种交易数据处理方法、装置、设备以及介质
CN113722753A (zh) * 2021-08-25 2021-11-30 银清科技有限公司 基于区块链的隐私数据处理方法、装置及系统
CN113726733A (zh) * 2021-07-19 2021-11-30 东南大学 一种基于可信执行环境的加密智能合约隐私保护方法
CN114444106A (zh) * 2022-02-07 2022-05-06 百度在线网络技术(北京)有限公司 相关系数获取方法、装置、电子设备和存储介质
CN114520721A (zh) * 2022-03-22 2022-05-20 杭州博盾习言科技有限公司 多方安全计算隐私求交方法、装置、设备及存储介质
CN115017184A (zh) * 2022-08-10 2022-09-06 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) 一种数据查询方法、装置、介质及设备
CN115529152A (zh) * 2022-06-17 2022-12-27 上海健交科技服务有限责任公司 保持信息隐私的脚本执行结果传输及校验方法和装置
CN115809482A (zh) * 2023-02-01 2023-03-17 上海金仕达软件科技股份有限公司 基于随机数混淆的数据聚合计算方法、装置、介质及设备
CN115994161A (zh) * 2023-03-21 2023-04-21 杭州金智塔科技有限公司 基于多方安全计算的数据聚合系统及方法
CN116912002A (zh) * 2023-09-12 2023-10-20 深圳小米房产网络科技有限公司 一种基于区块链技术的房地产交易系统

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113362065A (zh) * 2021-07-07 2021-09-07 上海特高信息技术有限公司 一种基于分散式私钥的在线签名交易实现方法
CN114357492B (zh) * 2022-01-10 2024-06-25 天津大学 一种基于区块链的医疗数据隐私融合方法及装置
CN115271741A (zh) * 2022-08-03 2022-11-01 国网江苏省电力有限公司南通供电分公司 基于区块链技术的电力基建费用智能支付系统及方法
CN115170132B (zh) * 2022-09-07 2022-12-09 浙江浙商互联信息科技有限公司 适用于高速驿网会员系统的支付方法
CN115549998B (zh) * 2022-09-20 2024-03-19 广西师范大学 一种基于区块链和多密钥同态加密的数据协同方法
CN117150523A (zh) * 2023-08-29 2023-12-01 浙江大学 一种分布式电力协商隐私保护方法及装置、电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106897879A (zh) * 2017-03-06 2017-06-27 广东工业大学 基于pki‑clc异构聚合签密算法的区块链加密方法
CN108848062A (zh) * 2018-05-23 2018-11-20 华东师范大学 车载网中基于区块链的可控匿名的数据安全共享方法
CN109145612A (zh) * 2018-07-05 2019-01-04 东华大学 基于区块链实现防数据篡改、用户共谋的云数据共享方法
CN109451467A (zh) * 2018-10-22 2019-03-08 江西理工大学 一种基于区块链技术的车载自组织网络数据安全共享与存储系统
WO2019070357A1 (en) * 2017-10-06 2019-04-11 Siemens Aktiengesellschaft METHOD AND SYSTEM FOR PLATFORM OF SECURE AND PRIVATE TERM OPERATIONS IN TRANSACTIVE MICROARRAYS
CN110120868A (zh) * 2019-05-27 2019-08-13 浙江工商大学 一种基于区块链技术的智能电网安全数据聚合方法及系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9858401B2 (en) * 2011-08-09 2018-01-02 Biogy, Inc. Securing transactions against cyberattacks
CN106559211B (zh) * 2016-11-22 2019-12-13 中国电子科技集团公司第三十研究所 一种区块链中隐私保护智能合约方法
CN108418783B (zh) * 2017-09-01 2021-03-19 矩阵元技术(深圳)有限公司 一种保护区块链智能合约隐私的方法、介质
CN107682364B (zh) * 2017-11-03 2019-12-03 杭州秘猿科技有限公司 一种许可链隐私交易方法
CN109559117B (zh) * 2018-11-14 2022-05-20 北京科技大学 基于属性基加密的区块链合约隐私保护方法与系统
CN110414981B (zh) * 2019-07-04 2023-05-09 华中科技大学 一种支持ZKPs的同态加密方法和区块链交易金额加密方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106897879A (zh) * 2017-03-06 2017-06-27 广东工业大学 基于pki‑clc异构聚合签密算法的区块链加密方法
WO2019070357A1 (en) * 2017-10-06 2019-04-11 Siemens Aktiengesellschaft METHOD AND SYSTEM FOR PLATFORM OF SECURE AND PRIVATE TERM OPERATIONS IN TRANSACTIVE MICROARRAYS
CN108848062A (zh) * 2018-05-23 2018-11-20 华东师范大学 车载网中基于区块链的可控匿名的数据安全共享方法
CN109145612A (zh) * 2018-07-05 2019-01-04 东华大学 基于区块链实现防数据篡改、用户共谋的云数据共享方法
CN109451467A (zh) * 2018-10-22 2019-03-08 江西理工大学 一种基于区块链技术的车载自组织网络数据安全共享与存储系统
CN110120868A (zh) * 2019-05-27 2019-08-13 浙江工商大学 一种基于区块链技术的智能电网安全数据聚合方法及系统

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113726733A (zh) * 2021-07-19 2021-11-30 东南大学 一种基于可信执行环境的加密智能合约隐私保护方法
CN113726733B (zh) * 2021-07-19 2022-07-22 东南大学 一种基于可信执行环境的加密智能合约隐私保护方法
CN113722753A (zh) * 2021-08-25 2021-11-30 银清科技有限公司 基于区块链的隐私数据处理方法、装置及系统
CN113722753B (zh) * 2021-08-25 2024-05-10 银清科技有限公司 基于区块链的隐私数据处理方法、装置及系统
CN113568981A (zh) * 2021-09-24 2021-10-29 腾讯科技(深圳)有限公司 一种交易数据处理方法、装置、设备以及介质
WO2023045617A1 (zh) * 2021-09-24 2023-03-30 腾讯科技(深圳)有限公司 一种交易数据处理方法、装置、设备以及介质
CN114444106B (zh) * 2022-02-07 2023-03-17 百度在线网络技术(北京)有限公司 相关系数获取方法、装置、电子设备和存储介质
CN114444106A (zh) * 2022-02-07 2022-05-06 百度在线网络技术(北京)有限公司 相关系数获取方法、装置、电子设备和存储介质
CN114520721A (zh) * 2022-03-22 2022-05-20 杭州博盾习言科技有限公司 多方安全计算隐私求交方法、装置、设备及存储介质
CN114520721B (zh) * 2022-03-22 2024-03-29 杭州博盾习言科技有限公司 多方安全计算隐私求交方法、装置、设备及存储介质
CN115529152A (zh) * 2022-06-17 2022-12-27 上海健交科技服务有限责任公司 保持信息隐私的脚本执行结果传输及校验方法和装置
CN115017184A (zh) * 2022-08-10 2022-09-06 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) 一种数据查询方法、装置、介质及设备
CN115809482A (zh) * 2023-02-01 2023-03-17 上海金仕达软件科技股份有限公司 基于随机数混淆的数据聚合计算方法、装置、介质及设备
CN115809482B (zh) * 2023-02-01 2023-05-16 上海金仕达软件科技股份有限公司 基于随机数混淆的数据聚合计算方法、装置、介质及设备
CN115994161A (zh) * 2023-03-21 2023-04-21 杭州金智塔科技有限公司 基于多方安全计算的数据聚合系统及方法
CN116912002A (zh) * 2023-09-12 2023-10-20 深圳小米房产网络科技有限公司 一种基于区块链技术的房地产交易系统
CN116912002B (zh) * 2023-09-12 2023-12-12 深圳小米房产网络科技有限公司 一种基于区块链技术的房地产交易系统

Also Published As

Publication number Publication date
CN112950367A (zh) 2021-06-11
CN112950367B (zh) 2021-09-14

Similar Documents

Publication Publication Date Title
WO2021114819A1 (zh) 生成和执行智能合约交易的方法及装置
US11936774B2 (en) Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
US10673626B2 (en) Threshold secret share authentication proof and secure blockchain voting with hardware security modules
JP2020528224A (ja) 信頼できる実行環境におけるスマート契約動作のセキュアな実行
KR20200066257A (ko) 정보 보호를 위한 시스템 및 방법
KR20200066258A (ko) 정보 보호를 위한 시스템 및 방법
CN111431713B (zh) 一种私钥存储方法、装置和相关设备
US11405365B2 (en) Method and apparatus for effecting a data-based activity
TW202347988A (zh) 用以獲取數位簽署資料之電腦實行方法及系統
CN111429138A (zh) 区块链节点数据安全交互方法及第一交互节点
CN111815322A (zh) 一种基于以太坊的具备可选隐私服务的分布式支付方法
CN113393225B (zh) 数字货币加密支付方法及系统
CN111783136A (zh) 一种数据保护方法、装置、设备和存储介质
US9641333B2 (en) Authentication methods, systems, devices, servers and computer program products, using a pairing-based cryptographic approach
Homoliak et al. An air-gapped 2-factor authentication for smart-contract wallets
US20240187256A1 (en) Systems and methods for enforcing cryptographically secure actions in public, non-permissioned blockchains using bifurcated self-executing programs comprising shared digital signature requirements
CN115134092B (zh) 基于国密算法的智能合约的证书管理控制方法及系统
CN113141249B (zh) 一种门限解密方法、系统及可读存储介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20900274

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20900274

Country of ref document: EP

Kind code of ref document: A1