US20210184836A1 - Providing data authorization based on blockchain - Google Patents
Providing data authorization based on blockchain Download PDFInfo
- Publication number
- US20210184836A1 US20210184836A1 US17/185,522 US202117185522A US2021184836A1 US 20210184836 A1 US20210184836 A1 US 20210184836A1 US 202117185522 A US202117185522 A US 202117185522A US 2021184836 A1 US2021184836 A1 US 2021184836A1
- Authority
- US
- United States
- Prior art keywords
- data
- target data
- smart contract
- blockchain node
- transaction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/02—Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
- G06Q20/0658—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed locally
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Definitions
- One or more implementations of the present specification relate to the field of blockchain technologies, and in particular, to a smart contract-based data authorization method and apparatus.
- a blockchain technology (also referred to as a distributed ledger technology) is a decentralized distributed database technology, and is characterized by decentralization, openness and transparency, tamper-resistance, trustworthiness, etc., and therefore, is applicable to many application scenarios that require high data reliability.
- one or more implementations of the present specification provide a smart contract-based data authorization method and apparatus.
- a smart contract-based data authorization method includes the following: receiving, by a blockchain node, a data acquisition transaction submitted by a data user, where the data acquisition transaction is used to request to obtain target data held by a data owner; and executing, by the blockchain node, a data authorization smart contract invoked to perform the data acquisition transaction, where the data authorization smart contract is used to obtain the target data when it is confirmed that the data user is authorized, so that the data user obtains at least one of the target data and an operation result obtained after a predetermined operation is performed on the target data.
- a smart contract-based data authorization apparatus includes the following: a receiving unit, configured to enable a blockchain node to receive a data acquisition transaction submitted by a data user, where the data acquisition transaction is used to request to obtain target data held by a data owner; and an execution unit, configured to enable the blockchain node to execute a data authorization smart contract invoked to perform the data acquisition transaction, where the data authorization smart contract is used to obtain the target data when it is confirmed that the data user is authorized, so that the data user obtains at least one of the target data and an operation result obtained after a predetermined operation is performed on the target data.
- an electronic device includes the following: a processor; and a memory, configured to store an instruction that can be executed by the processor, where the processor runs the executable instruction to implement the method according to the first aspect.
- a computer-readable storage medium stores a computer instruction, and when the instruction is executed by a processor, the steps in the method according to the first aspect are implemented.
- FIG. 1 is a schematic diagram illustrating an example environment, according to an example implementation
- FIG. 2 is a schematic diagram illustrating a concept framework, according to an example implementation
- FIG. 3 is a flowchart illustrating a smart contract-based data authorization method, according to an example implementation
- FIG. 4 is a schematic diagram illustrating end-to-end data authorization implemented based on a blockchain network, according to an example implementation
- FIG. 5 is an interaction flowchart illustrating end-to-end data authorization implemented based on a blockchain network, according to an example implementation
- FIG. 6 is a schematic structural diagram illustrating a device, according to an example implementation
- FIG. 7 is a block diagram illustrating a smart contract-based data authorization apparatus, according to an example implementation.
- steps of a corresponding method are not necessarily performed according to the sequence shown and described in the present specification.
- the method can include more or less steps than those described in the present specification.
- an individual step described in the present specification can be divided into a plurality of steps in other implementations for description.
- a plurality of steps described in the present specification can also be combined into a single step for description in other implementations.
- FIG. 1 is a schematic diagram illustrating an example environment, according to an example implementation.
- an entity is allowed to participate in a blockchain network 102 in an example environment 100 .
- the blockchain network 102 can be a public blockchain network, a private blockchain network, or a consortium blockchain network.
- the example environment 100 can include computing devices 104 , 106 , 108 , 110 , and 112 , and a network 114 .
- the network 114 can include a local area network (LAN), a wide area network (WAN), the Internet, or a combination of LAN, WAN and Internet, and is connected to a website, user equipment (e.g., a computing device), and a backend system.
- the network 114 can be accessed through at least one of wired communication or wireless communication.
- the computing devices 106 and 108 can be nodes (not shown) in a cloud computing system, or each of the computing devices 106 and 108 can be a standalone cloud computing system, including a plurality of computers interconnected through a network and operating as a distributed processing system.
- the computing devices 104 to 108 can run any suitable computing system, so as to serve as nodes in the blockchain network 102 .
- the computing devices 104 to 108 can include but are not limited to a server, a desktop computer, a notebook computer, a tablet, and a smartphone.
- the computing devices 104 to 108 can belong to a related entity and are configured to implement a corresponding service.
- the service can be used to manage a transaction of one entity or a transaction between a plurality of entities.
- each of the computing devices 104 to 108 stores a blockchain ledger corresponding to the blockchain network 102 .
- the computing device 104 can be (or include) a network server configured to provide a browser function, and the network server can provide visual information related to the blockchain network 102 based on the network 114 .
- the computing device 104 may not participate in block verification, but monitor the blockchain network 102 to determine when other nodes (e.g., the computing devices 106 and 108 ) reach a consensus, and therefore, generate a corresponding blockchain visual user page if other nodes reach a consensus.
- the computing device 104 can receive a request from a client device (e.g., the computing device 110 or the computing device 112 ) for the blockchain visual user page.
- a client device e.g., the computing device 110 or the computing device 112
- a node in the blockchain network 102 can also serve as a client device.
- a user of the computing device 108 can send the request to the computing device 104 by using a browser running on the computing device 108 .
- the computing device 104 can generate the blockchain visual user page (e.g., a webpage) based on the stored blockchain ledger, and send the blockchain visual user page generated to the requesting client device.
- the blockchain network 102 is a private blockchain network or a consortium blockchain network
- the request for the blockchain visual user page can include user authorization information.
- the computing device 104 can perform verification on the user authorization information, and return the corresponding blockchain visual user page after the verification succeeds.
- the blockchain visual user page can be displayed on the client device (e.g., a user interface 116 shown in FIG. 1 ).
- the client device e.g., a user interface 116 shown in FIG. 1
- display content on the user interface 116 can be updated accordingly.
- interaction between the user and the user interface 116 can result in a request for another user interface, for example, displaying a block list, block details, a transaction list, transaction details, an account list, account details, a contract list, contract details, or a search result page generated after the user searches the blockchain network.
- FIG. 2 is a schematic diagram illustrating a concept framework, according to an example implementation.
- the concept framework 200 includes an entity layer 202 , a hosting service layer 204 , and a blockchain network layer 206 .
- the entity layer 202 can include three entities: an entity 1 , an entity 2 , and an entity 3 , and each entity has its own transaction management system 208 .
- the hosting service layer 204 can include an interface 210 corresponding to each transaction management system 208 .
- each transaction management system 208 communicates with the corresponding interface 210 over a network (e.g., the network 114 in FIG. 1 ) using a protocol (e.g., Hypertext Transfer Protocol Secure (HTTPS)).
- HTTPS Hypertext Transfer Protocol Secure
- each interface 210 can provide a communication connection between a transaction management system 208 corresponding to each interface and the blockchain network layer 206 . More specifically, the interface 210 can communicate with a blockchain network 212 of the blockchain network layer 206 .
- communication between the interface 210 and the blockchain network layer 206 can be implemented through remote procedure calls (RPCs).
- the interface 210 can provide an API interface to the transaction management system 208 for accessing the blockchain network 212 .
- the blockchain network 212 is provided in the form of an equalized network including a plurality of nodes 214 .
- Each of the nodes 214 is respectively configured to permanently store a blockchain ledger 216 formed by blockchain data.
- FIG. 2 shows only one blockchain ledger 216 , but a plurality of blockchain ledgers 216 or copies thereof can exist in the blockchain network 212 .
- each node 214 can maintain one blockchain ledger 216 or a copy thereof.
- a transaction described in the present specification refers to data that is created by a user by using a client of a blockchain network and needs to be finally published to a distributed database of the blockchain network.
- Transactions in the blockchain include a transaction in a narrow sense and a transaction in a broad sense.
- the transaction in the narrow sense refers to a value transfer published by a user in the blockchain.
- the transaction can be a transfer initiated by the user in the blockchain.
- the transaction in the broad sense refers to service data with a service intention that is published by a user in the blockchain.
- an operator can create a consortium blockchain based on an actual service need, and deploy some other types of online services (e.g., a rental service, a vehicle scheduling service, an insurance claim service, a credit service, and a medical service) that are not related to a value transfer in the consortium blockchain.
- the transaction can be a service message or a service request with a service intention that is published by a user in the consortium blockchain.
- a public blockchain there are three types of blockchains: a public blockchain, a private blockchain, and a consortium blockchain.
- a private blockchain a private blockchain
- a consortium blockchain a public blockchain
- the public blockchain has the highest degree of decentralization.
- a bitcoin blockchain and an Ethereum blockchain are representatives of the public blockchain. Participants of the public blockchain can read data records in the blockchain, participate in transactions, compete for accounting rights of new blocks, etc.
- each participant i.e., node
- writing permission of the private blockchain network is controlled by a certain organization or agency, and data reading permission is specified by the organization.
- the private blockchain network can be a weakly centralized system, a strict restriction is imposed on participating nodes, and there are a few participating nodes.
- This type of blockchain is more suitable for use within a specified organization.
- the consortium blockchain is a blockchain between the public blockchain and the private blockchain, and can implement “partial decentralization”. Each node in the consortium blockchain network usually has a corresponding organization. Participants join the network through authorization and form an interest-related consortium to jointly maintain operations of the blockchain network.
- a user can create and invoke some complex logic in the Ethereum network, which is the biggest challenge of Ethereum different from the bitcoin blockchain technology.
- the core of Ethereum is an Ethereum virtual machine (EVM), and each Ethereum node can run the EVM.
- EVM is a Turing-complete virtual machine, through which various types of complex logic can be implemented.
- the smart contract published or invoked by a user in Ethereum can be run by the EVM.
- FIG. 3 is a flowchart illustrating a smart contract-based data authorization method, according to an example implementation. As shown in FIG. 3 , the method is applied to a blockchain node and can include the following steps:
- Step 302 A blockchain node receives a data acquisition transaction submitted by a data user, where the data acquisition transaction is used to request to obtain target data held by a data owner.
- the data user can directly generate the data acquisition transaction on the blockchain node.
- the data user can generate the data acquisition transaction on a client, and send the data acquisition transaction to the blockchain node by using the client.
- the data user can send the data acquisition transaction to another blockchain node, and the another blockchain node sends the data acquisition transaction to the blockchain node.
- the data acquisition transaction is transmitted to each blockchain node in the blockchain network, and each blockchain node executes the data acquisition transaction.
- nodes that compete for an accounting right can execute a blockchain transaction after receiving the blockchain transaction.
- One of the nodes that compete for the accounting rights may win in the current round, and becomes an accounting node.
- the accounting node can pack the data acquisition transaction with other transactions to generate a new block, and send the new block generated to other nodes for consensus.
- a node with accounting rights can be predetermined before the current round of accounting. Therefore, after receiving the data acquisition transaction, the blockchain node can send the data acquisition transaction to the accounting node if the blockchain node itself is not the accounting node of the current round.
- the accounting node of the current round (which can be the previous blockchain node) can execute the data acquisition transaction when or before packing the data acquisition transaction to generate a new block or when or before packing the data acquisition transaction with other transactions to generate a new block.
- the accounting node packs the data acquisition transaction (or packs the data acquisition transaction with other transactions) to generate a new block, and then sends the new block generated or a block header to other nodes for consensus.
- the accounting node of the current round can pack the data acquisition transaction to generate a new block, and send the new block generated or a block header to other nodes for consensus. If the other nodes verify that there is no problem after receiving the block, the new block can be appended to the end of an original blockchain, so that the accounting process is completed and a consensus is reached. If the data acquisition transaction is used to invoke a data authorization smart contract, invocation and execution of the data authorization smart contract are completed. When performing verification on a new block or a block header sent by the accounting node, another node can also execute a data acquisition transaction in the block.
- Step 304 The blockchain node executes a data authorization smart contract invoked to perform the data acquisition transaction, where the data authorization smart contract is used to obtain the target data when it is confirmed that the data user is authorized, so that the data user obtains at least one of the target data and an operation result obtained after a predetermined operation is performed on the target data.
- a corresponding contract account is formed in the blockchain, and the contract account has a specified contract address.
- the data acquisition transaction can include the contract address in a TO field of the data acquisition transaction to invoke the data authorization smart contract.
- each node receives the data acquisition transaction, reads the TO field of the data acquisition transaction, and invokes the data authorization smart contract, which specifically means reading code of the data authorization smart contract into an EVM of the blockchain node for execution.
- the data acquisition transaction can include information about the target data, for example, a hash value or any other description information of the target data, provided that the information can relate to the target data.
- the information about the target data can be included in a DATA field of the data acquisition transaction.
- content in the DATA field can be used as input information of the data authorization smart contract.
- the data authorization smart contract can include a corresponding list of authorized parties for recording information about authorized objects of data held by the data owner, namely, information about the authorized parties. In this case, if the data authorization smart contract confirms that the data user is in the list of authorized parties, it can be confirmed that the data user is authorized. In a management method of the list of authorized parties, one-time authorization can be performed on all data held by the data owner, and content of the list of authorized parties is not affected even when the data held by the data owner increases or decreases, in other words, an update to the data held by the data owner can be compatible.
- the data authorization smart contract When the data authorization smart contract is being created, information about the list of authorized parties can be written into contract code, so that content of the list of authorized parties cannot be changed. In this case, the data authorization smart contract may need to be replaced or a version thereof may need to be updated, to update the list of authorized parties. Or, the data authorization smart contract can have one or more corresponding states, and the blockchain node can maintain values of the one or more states. When a state value is information about an authorized party, the one or more states are equivalent to the list of authorized parties.
- the data owner can submit a blockchain transaction in the blockchain network, and the blockchain transaction can invoke an authorization interface defined in the data authorization smart contract, so that content of the list of authorized parties can be updated after the data authorization smart contract is executed, without a need to replace the data authorization smart contract or update a version thereof.
- the data authorization smart contract can invoke another smart contract, and code or a state of the another smart contract can be used to record the list of authorized parties.
- a new smart contract can be created, where code of the new smart contract includes an updated list of authorized parties, and then the data authorization smart contract invokes a contract address of the new smart contract (the invoked contract address can be used as a state of the data authorization smart contract, and a value of the state can change).
- the list of authorized parties is written into the state corresponding to the another smart contract, as described above, only a value of the state needs to be updated, to update the list of authorized parties, without a need to update the contract address invoked by the data authorization smart contract.
- the contract address can be permanently written into code of the data authorization smart contract, or can be written into a state of the data authorization smart contract.
- the data user can temporarily request authorization from the data owner.
- the data user can submit an authorization request transaction to the blockchain network, and the authorization request transaction invokes a request interface defined in the data authorization smart contract.
- the blockchain node can invoke the request interface defined in the data authorization smart contract, so that the data authorization smart contract writes an authorization request event into a transaction log.
- the data owner can respond to the authorization request event written into the transaction log. For example, when it is determined that the data user can be authorized, the data owner can submit an authorization confirmation transaction to the blockchain network, and the authorization confirmation transaction invokes an authorization interface defined in the data authorization smart contract.
- the blockchain node can invoke the authorization interface defined in the data authorization smart contract, so that the data authorization smart contract marks the data user as authorized.
- the data user can be added to the list of authorized parties. A process of adding the data user to the list of authorized parties is described above, and details are omitted here for simplicity.
- the data user can request to obtain the data held by the data owner at any time, in other words, the data user is authorized in the long term.
- the data authorization smart contract only confirms that the data user is authorized for a current operation, and the data authorization smart contract can respond to a data acquisition request of the data user this time.
- the data user is unauthorized, and the data user needs to request authorization from the data owner again.
- the list of authorized parties belongs to long-term authorization compared with the latter situation, the list of authorized parties doesn't necessarily mean permanent authorization.
- the data owner can update the list of authorized parties to remove one or more authorized parties, so that the one or more authorized parties are unauthorized.
- each authorized party in the list of authorized parties can have a certain quantity of remaining authorization duration and/or the quantity of remaining authorizations. When the remaining authorization duration or the quantity of remaining authorizations is reset to 0, a corresponding authorized party can be automatically removed from the list of authorized parties, which is equivalent to an “aging” mechanism implemented on an authorized party in the list of authorized parties.
- the data user can include the information about the target data in the authorization request transaction, and the information about the target data can be written into the authorization request event in the transaction log, so that the data owner learns an authorization range requested by the data user. If the authorization request transaction does not include any data information, authorization for all data held by the data owner is requested by the data user. Accordingly, the data owner can add the information about the target data to the authorization confirmation transaction to indicate that the data user is authorized for the target data. If the authorization confirmation transaction submitted by the data owner does not include any data information, the data owner authorizes the data user for all data. Therefore, in some situations, the information about the target data included in the data acquisition transaction of the data user can be inconsistent with an authorization range (i.e., data that the data user is authorized) obtained by the data user. In this case, the data acquisition transaction may not be normally executed or the data authorization smart contract cannot successfully obtain the target data specified in the data acquisition transaction.
- the target data can be directly provided to the data user.
- the data authorization smart contract can write the target data into the transaction log of the data acquisition transaction, so that the data user can obtain the target data by monitoring the transaction log.
- the blockchain node can encrypt the target data, so that encrypted target data is written into the transaction log.
- a data user holding a key can read and decrypt the encrypted target data to obtain the target data, and an unrelated user cannot decrypt the encrypted target data. Therefore, it can be ensured that the data user obtains the target data, and the situation that target data is written into the transaction log in plaintext and obtained by an unrelated person can be avoided. As such, leakage of the target data is alleviated, and interests of the data owner are protected.
- the data authorization smart contract can perform the predetermined operation on the target data, and provide the operation result to the data user.
- the predetermined operation can be any operation desired by the data user, and is not limited in the present specification.
- an operation rule of the predetermined operation can be predefined in the data authorization smart contract.
- One or more operation rules can be defined in the data authorization smart contract.
- the data user can specify a needed operation rule in the data acquisition transaction (e.g., the data user adds an identifier corresponding to the operation rule to the DATA field of the data acquisition transaction).
- an operation rule of the predetermined operation can be transferred into the data authorization smart contract by the data acquisition transaction.
- the operation rule of the predetermined operation can be written into the DATA field of the data acquisition transaction, and then transferred into the data authorization smart contract.
- the corresponding operation result is obtained after the predetermined operation is performed on the target data
- the data user cannot inversely deduce a value of the target data from the operation result
- the data user can be prevented from directly obtaining the target data while a data acquisition requirement of the data user is satisfied.
- the data user can be prevented from leaking the target data and jeopardizing interests of the data owner, ensuring that the target data is always held only by the data owner.
- Data held by the data owner can have different privacy levels.
- data at different privacy levels can be processed in different ways.
- the data owner can separately hold data at a relatively low privacy level and data at a relatively high privacy level.
- the target data when the target data is at the low privacy level, the target data can be provided to the data user, in other words, the data owner does not care whether the data at the low privacy level is leaked.
- the target data is at the high privacy level, a predetermined operation needs to be performed on the target data, so that a corresponding operation result is provided to the data user, ensuring that the data at the high privacy level is not leaked.
- the target data at the low privacy level can be directly provided to the data user, the predetermined operation is performed on the target data at the high privacy level, and the operation result is then provided to the data user.
- the predetermined operation can be implemented on all target data, and then the operation result is provided to the data user.
- At least one of the target data and the operation result can be written into the transaction log by the data authorization smart contract using an event mechanism.
- a transaction execution result event is formed in the transaction log, so that the data user can monitor the transaction execution result event to obtain at least one of the target data and the operation result.
- a rule of the monitoring process is similar to that of monitoring the authorization request event by the data owner. Therefore, details are omitted here for simplicity.
- the target data can be stored in a database corresponding to the blockchain node, so that after the data authorization smart contract is executed, the target data can be directly read from the database and provided to the data user.
- the target data can be encrypted, and corresponding encrypted target data is stored in the database, so that the unrelated person can only obtain the encrypted target data at most, thereby alleviating leakage of the target data.
- the target data can be encrypted in a trusted execution environment (TEE). Because the target data can be any data requested by the data user and held by the data owner, any data held by the data owner can be encrypted in a similar way.
- the TEE is a trusted execution environment based on a secure extension of CPU hardware that is isolated from the outside.
- the TEE was first proposed by the Global Platform to alleviate a problem of resource security isolation on a mobile device, and is parallel to a trusted and secure execution environment provided by an operating system to an application.
- TEE technologies such as Intel's Software Protection Extensions (SGX) isolate code execution, remote attestation, secure configuration, secure storage of data, and trusted paths for executing code. Security of an application running in the TEE is protected, and the application is almost impossible to be accessed by a third party.
- SGX Software Protection Extensions
- the Intel SGX technology is used as an example.
- the blockchain node can allocate an enclave page cache (EPC) in a memory by using a processor instruction added to a CPU, load an EVM into the EPC, and confirm, through remote attestation, that code of the loaded EVM is consistent with code of an EVM at a key management server (e.g., comparing hash values).
- EPC enclave page cache
- the blockchain node encrypts the target data by using a memory encryption engine (MME) in the CPU, and stores encrypted target data into the EPC.
- MME memory encryption engine
- the encrypted content in the EPC can be decrypted to a plaintext only after entering the CPU.
- the target data in plaintext is encrypted to obtain the encrypted target data, so as to be stored in the database corresponding to the blockchain node.
- the blockchain node can execute the data authorization smart contract in the trusted execution environment, to read the encrypted target data into the trusted execution environment for decryption, and then the data authorization smart contract performs a predetermined operation on the target data.
- the blockchain node separately encrypts the obtained encrypted target data and the code of the data authorization smart contract by using the MME in the CPU, and stores encrypted target data and encrypted code into the EPC.
- the encrypted content in the EPC can be decrypted only after entering the CPU.
- the encrypted target data can be decrypted to the target data in plaintext, and a predetermined operation is performed on the target data by executing the code of the data authorization smart contract. Therefore, encryption and decryption are performed for the target data in the TEE, and the code of the data authorization smart contract is executed, so that a secure and reliable environment can be provided, and interference from external factors is reduced.
- the blockchain node can encrypt the target data by using a symmetric encryption key.
- the key can be sent by the key management server to the blockchain node.
- the key can be obtained through negotiation between blockchain nodes.
- the key can be an asymmetric encryption key. Implementations are not limited in the present specification.
- the key can be stored in a security enclave created on the blockchain node.
- the security enclave can be a quoting enclave (QE) instead of an application enclave (AE).
- the data owner can store the target data in a blockchain by submitting a private certificate transaction to the blockchain network.
- Transaction content of the privacy certificate transaction includes the target data in plaintext.
- the transaction content of the privacy certificate transaction can be encrypted by using a key, so that after a block where the privacy certificate transaction is located is added to the blockchain, the target data cannot be obtained by viewing the transaction content of the privacy certificate transaction.
- a key can be maintained in the trusted execution environment of the blockchain node, so that the blockchain node can decrypt the privacy certificate transaction in the trusted execution environment after receiving the privacy certificate transaction submitted by the data owner, to obtain the target data included in the transaction content.
- the data owner can encrypt the transaction content through symmetric encryption or asymmetric encryption. Implementations are not limited in the present specification.
- the key can be generated through negotiation between the blockchain node and the data owner; or the key can be generated by the key management server and sent to the data owner and the blockchain node.
- the data owner can store the target data in a blockchain by submitting a certificate transaction to the blockchain network.
- Transaction content of the certificate transaction can include at least one of creating and invoking a smart contract, so that after receiving the certificate transaction submitted by the data owner, the blockchain node can execute the corresponding transaction content in the trusted execution environment, for example, executing code of the smart contract that needs to be created, invoked, or created and invoked, to generate the target data.
- the blockchain node can encrypt the target data and store the encrypted target data in the database. Because the target data appears in plaintext only in the trusted execution environment, and appears in ciphertext in an environment other than the trusted execution environment, there is no need to worry about leakage of the target data in plaintext.
- the target data can be stored through a channel off the blockchain by the data owner, and the blockchain node stores only a digital digest of the target data.
- the digital digest can be a hash value of the target data.
- the data authorization smart contract can obtain the target data from the channel off the blockchain by using a cross-chain technology, and provide at least one of the target data and the operation result to the data user.
- the data authorization smart contract can invoke an oracle smart contract, so that the oracle smart contract obtains the target data from the channel off the blockchain, and then the data authorization smart contract can write the obtained target data into the transaction log of the data acquisition transaction by using the event mechanism, and/or perform the predetermined operation on the target data and then write the operation result into the transaction log of the data acquisition transaction by using the event mechanism, so that the data user can monitor the transaction log to obtain at least one of the target data and the operation result.
- data held by the data owner and requested by the data user in the present specification should be understood as a generalized concept, for example, a value, a character, an image, audio, a video, code, a program, or a model (e.g., an artificial intelligence model). Implementations are not limited in the present specification.
- FIG. 4 is a schematic diagram illustrating end-to-end data authorization implemented based on a blockchain network, according to an example implementation.
- nodes such as N 1 , N 2 , N 3 , N 4 , and N 5 exist in a blockchain network
- the blockchain network can be a consortium blockchain network composed of a service platform and several partners.
- nodes such as N 1 , N 2 , N 4 , and N 5 correspond to several supply chain financial enterprises directly or indirectly
- node N 3 corresponds to the service platform
- a user can obtain, based on the service platform, target data of each supply chain financial enterprise or an operation result obtained based on the target data.
- nodes such as N 1 , N 2 , N 4 , and N 5 correspond to several merchants directly or indirectly
- node N 3 corresponds to the service platform
- a user can obtain, based on the service platform, invoices issued by the merchants, some information in the invoices, or an operation result obtained based on the invoice information.
- Implementations are not limited in the present specification. For ease of understanding, the following uses the supply chain financial scenario as an example for description.
- asset amounts are data that needs to be kept confidential for the enterprises C 1 and C 2 , and cannot be separately provided by the enterprises C 1 and C 2 to user Ua, and therefore, user Ua cannot calculate the average asset amount.
- data privacy of the enterprises C 1 and C 2 is not exposed, and interests of a data user (e.g., user Ua) and a data owner (e.g., the enterprises C 1 and C 2 ) are protected while a data acquisition requirement of user Ua is satisfied.
- an interaction procedure between user Ua, a blockchain node, and enterprises C 1 and C 2 can include the following steps:
- Step 501 User Ua generates an authorization request transaction and submits the authorization request transaction to a blockchain network.
- a computing device used by user Ua can run a client, generate the authorization request transaction based on the client, and submit the authorization request transaction to the blockchain network. Or, after generating the authorization request transaction on a client, user Ua can upload the authorization request transaction to a service platform 40 , and the service platform 40 submits the authorization request transaction to the blockchain network. Or, user Ua can initiate an authorization request to a service platform 40 , so that the service platform 40 generates the authorization request transaction and submits the authorization request transaction to the blockchain network.
- the purpose of submitting the authorization request transaction to the blockchain network is to request the enterprises C 1 and C 2 to grant a related right to user Ua, so that user Ua can finally obtain the previously described average asset amount.
- the authorization request transaction can include data description information describing data that user Ua hopes to separately request authorization from the enterprises C 1 and C 2 .
- the data description information can separately describe an asset amount of enterprise C 1 and an asset amount of enterprise C 2 . Accordingly, user Ua can be authorized for the asset amount of enterprise C 1 and the asset amount of enterprise C 2 , but is unauthorized for other data.
- the authorization request transaction may not include data description information, to indicate that user Ua hopes to separately request to obtain authorization for all data from the enterprises C 1 and C 2 , so that user Ua is authorized for all data held by the enterprises C 1 and C 2 , including the previously described asset amounts.
- the following describes subsequent steps by using an example that the authorization request transaction includes the data description information.
- the authorization request transaction is originally submitted to a certain node in the blockchain network.
- the authorization request transaction can be usually submitted to node N 3 by the service platform 40 , and certainly can also be submitted to other nodes.
- the computing device used by user Ua can submit the authorization request transaction to a certain node.
- a consensus can be made between nodes, and an agreed authorization request transaction can be executed on each node.
- POW, POS, DPOS, PBFT, or another consensus mechanism in a related technology can be used in the consensus process. Implementations are not limited in the present specification.
- Step 502 The blockchain node assists, by invoking a request interface of smart contract T 1 , user Ua in obtaining data authorization, and writes an authorization request event into a transaction log.
- each node in the blockchain network needs to execute the authorization request transaction.
- the blockchain node reads an account address filled in a TO field of the authorization request transaction, to invoke smart contract T 1 .
- Code of smart contract T 1 can logically generate a plurality of interfaces to implement different functions, and the authorization request transaction can specifically specify an interface that needs to be invoked. For example, when the authorization request transaction invokes the request interface of smart contract T 1 , related authorization can be requested.
- the authorization request transaction can include the previously described data description information, information about user Ua (e.g., a signature of user Ua), information about the enterprises C 1 and C 2 (e.g., public keys of the enterprises C 1 and C 2 ), etc., so that after the request interface of smart contract T 1 is invoked, the authorization request event can be written into the transaction log of the authorization request transaction.
- Content of the authorization request event can include the data description information, the information about user Ua, the information about the enterprises C 1 and C 2 , etc., to indicate that user Ua hopes to obtain target data corresponding to the data description information from the enterprises C 1 and C 2 .
- Step 503 The enterprises C 1 and C 2 monitor the authorization request event.
- the enterprises C 1 and C 2 can access any corresponding blockchain node to learn the authorization request event based on an event monitoring responding mechanism, so as to determine the target data that user Ua hopes to obtain from the enterprises C 1 and C 2 .
- Step 504 The enterprises C 1 and C 2 separately generate authorization request transactions and submit the authorization request transactions to the blockchain network.
- the enterprises C 1 and C 2 can separately generate and submit the authorization confirmation transactions, to indicate that the enterprises C 1 and C 2 agree to provide the target data such as the asset amounts to user Ua.
- Enterprise C 1 is used as an example:
- the authorization confirmation transaction generated by enterprise C 1 can include data description information corresponding to target data that enterprise C 1 agrees to provide to user Ua, a public key of user Ua, a signature of enterprise C 1 , etc.
- the authorization confirmation transaction can include information such as a transaction number of the authorization request transaction, to indicate that enterprise C 1 agrees a related request of the authorization request transaction.
- Step 505 The blockchain node invokes an authorization interface of smart contract T 1 , updates an authorization state of user Ua, and writes an authorization state update event into a transaction log.
- smart contract T 1 includes several predefined interfaces.
- TO fields can separately include a contract address of smart contract T 1 , and can specify a wish to invoke the authorization interface.
- Smart contract T 1 can confirm, by running code corresponding to the authorization interface, that the enterprises C 1 and C 2 separately agree to grant a right to user Ua for the target data such as the asset amounts, so as to update the authorization state of user Ua to “authorized”.
- the authorized state of user Ua can be recorded in a plurality of forms, which depends on a rule defined in smart contract T 1 . Details are omitted here for simplicity.
- smart contract T 1 can write the corresponding authorization state update event into the transaction log to indicate that user Ua has obtained authorization for the asset amounts of the enterprises C 1 and C 2 .
- Step 506 User Ua monitors the authorization state update event.
- user Ua can monitor, based on the event monitoring responding mechanism, the transaction log in the blockchain node that corresponds to the authorization confirmation transactions, and determine, based on the detected authorization state update event, that user Ua has obtained authorization for asset amounts of the enterprises C 1 and C 2 .
- Step 507 User Ua generates a data acquisition transaction and submits the data acquisition transaction to the blockchain network.
- user Ua can generate and submit the data acquisition transaction in a plurality of ways. For example, user Ua independently generates and submits the data acquisition transaction, user Ua independently generates the data acquisition transaction and then the service platform submits the data acquisition transaction, or the service platform generates and submits the data acquisition transaction. Details are omitted here for simplicity.
- the data acquisition transaction can include data description information describing that user Ua hopes to obtain the average asset amount of the enterprises C 1 and C 2 (which can specifically include data description information of the asset amounts of the enterprises C 1 and C 2 and indicate that an operation rule used is averaging).
- the data acquisition transaction can include the transaction number of the authorization request transaction or a transaction number of the authorization confirmation transaction, and can also indirectly indicate that user Ua hopes to obtain the average asset amount of the enterprises C 1 and C 2 .
- Step 508 The blockchain node invokes a data interface of smart contract T 1 , and writes a transaction execution result event into a transaction log.
- the data interface of smart contract T 1 is invoked to indicate, to smart contract T 1 , that user Ua hopes to obtain the average asset amount of the enterprises C 1 and C 2 .
- Smart contract T 1 can search for the authorization state of user Ua.
- smart contract T 1 can write the authorization request event into the transaction log, to temporarily request authorization from the enterprises C 1 and the enterprise C 2 through a process similar to steps 502 to 505 .
- the data acquisition transaction is equivalent to an authorization request function and a data acquisition function, and a related operation and step of the authorization request transaction can be omitted.
- smart contract T 1 can obtain the asset amounts of the enterprises C 1 and C 2 .
- smart contract T 1 can read encrypted asset amounts and decrypt the asset amounts in the trusted execution environment at the blockchain node to obtain the asset amounts in plaintext.
- smart contract T 1 can obtain the values of the asset amounts by using a cross-chain technology.
- smart contract T 1 can invoke oracle smart contract T 2 , so that oracle smart contract T 2 can separately read the asset amounts of the enterprises C 1 and C 2 from the channels off the blockchain, and return the asset amounts to smart contract T 1 .
- Step 509 User Ua monitors the transaction execution result event.
- user Ua can monitor the transaction log of the data acquisition transaction based on the event monitoring responding mechanism, to detect the transaction execution result event. If the data acquisition transaction is successfully implemented, user Ua can obtain the average asset amount M of the enterprises C 1 and C 2 from the transaction execution result event, so that a requirement of user Ua on the average asset amount can be satisfied, and leakage of the values of the asset amounts of the enterprises C 1 and C 2 can be alleviated.
- FIG. 6 is a schematic structural diagram illustrating a device, according to an example implementation.
- the device includes a processor 602 , an internal bus 604 , a network interface 606 , a memory 608 , and a non-volatile memory 610 , and certainly can further include other hardware needed by services.
- the processor 602 reads a corresponding computer program from the non-volatile memory 610 into the memory 608 and then runs the corresponding computer program, so as to form a smart contract-based data authorization apparatus in terms of logic.
- a logical device or a combination of hardware and software a combination of hardware and software.
- an execution body of the following processing procedure is not limited to each logical unit, and can also be hardware or a logical device.
- the smart contract-based data authorization apparatus can include the following: a receiving unit 701 , configured to enable a blockchain node to receive a data acquisition transaction submitted by a data user, where the data acquisition transaction is used to request to obtain target data held by a data owner; and an execution unit 702 , configured to enable the blockchain node to execute a data authorization smart contract invoked to perform the data acquisition transaction, where the data authorization smart contract is used to obtain the target data when it is confirmed that the data user is authorized, so that the data user obtains at least one of the target data and an operation result obtained after a predetermined operation is performed on the target data.
- the data authorization smart contract has a corresponding list of authorized parties, and it is confirmed that the data user is authorized when the data authorization smart contract confirms that the data user is in the list of authorized parties.
- the apparatus further includes the following: an authorization request unit 703 , configured to enable the blockchain node to invoke a request interface defined in the data authorization smart contract based on an authorization request transaction submitted by the data user, so that the data authorization smart contract writes an authorization request event into a transaction log for monitoring by the data owner; and an authorization confirmation unit 704 , configured to enable the blockchain node to invoke an authorization interface defined in the data authorization smart contract based on an authorization confirmation transaction submitted by the data owner, so that the data authorization smart contract marks the data user as authorized.
- an authorization request unit 703 configured to enable the blockchain node to invoke a request interface defined in the data authorization smart contract based on an authorization request transaction submitted by the data user, so that the data authorization smart contract writes an authorization request event into a transaction log for monitoring by the data owner
- an authorization confirmation unit 704 configured to enable the blockchain node to invoke an authorization interface defined in the data authorization smart contract based on an authorization confirmation transaction submitted by the data owner, so that the data authorization smart contract marks the data user as authorized.
- the target data when the target data is at a low privacy level, the target data is provided to the data user; or when the target data is at a high privacy level, the predetermined operation is performed on the target data, so that the corresponding operation result is provided to the data user.
- an operation rule of the predetermined operation is predefined in the data authorization smart contract; or an operation rule of the predetermined operation is transferred into the data authorization smart contract by the data acquisition transaction.
- At least one of the target data and the operation result is written into a transaction execution result event in a transaction log by the data authorization smart contract, so that the data user performs monitoring and acquisition.
- the apparatus further includes the following: a data encryption unit 705 , configured to enable the blockchain node to encrypt the target data in a trusted execution environment to obtain encrypted target data, so that the encrypted target data is stored in a database corresponding to the blockchain node; and a data operation unit 706 , configured to enable the blockchain node to execute the data authorization smart contract in the trusted execution environment, so that the data authorization smart contract performs the predetermined operation after the encrypted target data is read into the trusted execution environment and decrypted.
- a data encryption unit 705 configured to enable the blockchain node to encrypt the target data in a trusted execution environment to obtain encrypted target data, so that the encrypted target data is stored in a database corresponding to the blockchain node
- a data operation unit 706 configured to enable the blockchain node to execute the data authorization smart contract in the trusted execution environment, so that the data authorization smart contract performs the predetermined operation after the encrypted target data is read into the trusted execution environment and decrypted.
- the apparatus further includes the following: a transaction decryption unit 707 , configured to enable the blockchain node to decrypt, after receiving a privacy certificate transaction submitted by the data owner, the privacy certificate transaction in the trusted execution environment to obtain the target data included in transaction content; or a data generation unit 708 , configured to enable the blockchain node to execute, after receiving a certificate transaction submitted by the data owner, corresponding transaction content in the trusted execution environment to generate the target data.
- a transaction decryption unit 707 configured to enable the blockchain node to decrypt, after receiving a privacy certificate transaction submitted by the data owner, the privacy certificate transaction in the trusted execution environment to obtain the target data included in transaction content
- a data generation unit 708 configured to enable the blockchain node to execute, after receiving a certificate transaction submitted by the data owner, corresponding transaction content in the trusted execution environment to generate the target data.
- the blockchain node stores a digital digest of the target data
- the target data is stored through a channel off the blockchain by the data owner
- the data authorization smart contract invokes an oracle smart contract, so that the oracle smart contract obtains the target data from the channel off the blockchain, and the data authorization smart contract performs the predetermined operation.
- the system, apparatus, module, or unit illustrated in the previous implementations can be specifically implemented by using a computer chip or an entity, or can be implemented by using a product having a certain function.
- a typical implementation device is a computer, and the computer can be specifically a personal computer, a laptop computer, a cellular phone, a camera phone, a smartphone, a personal digital assistant, a media player, a navigation device, an email receiving and sending device, a game console, a tablet, a wearable device, or any combination of these devices.
- a computer includes one or more processors (CPU), an input/output interface, a network interface, and a memory.
- the memory can include a non-persistent memory, a random access memory (RAM), a non-volatile memory, and/or another form that are in a computer readable medium, for example, a read-only memory (ROM) or a flash memory (flash RAM).
- ROM read-only memory
- flash RAM flash memory
- the computer readable medium includes persistent, non-persistent, movable, and unmovable media that can store information by using any method or technology.
- the information can be a computer readable instruction, a data structure, a program module, or other data.
- Examples of a computer storage medium include but are not limited to a phase change random access memory (PRAM), a static RAM (SRAM), a dynamic RAM (DRAM), a RAM of another type, a read-only memory (ROM), an electrically erasable programmable ROM (EEPROM), a flash memory or another memory technology, a compact disc ROM (CD-ROM), a digital versatile disc (DVD) or another optical storage, a cassette tape, a magnetic disk storage, a quantum memory, a storage medium based on grapheme, another magnetic storage device, or any other non-transmission medium.
- the computer storage medium can be used to store information that can be accessed by the computing device. Based on the definition in the present specification, the computer readable medium does not include transitory media such
- first, second, third, etc. can be used in one or more implementations of the present specification to describe various types of information, the information is not limited to these terms. These terms are only used to differentiate between information of the same type. For example, without departing from the scope of one or more implementations of the present specification, first information can also be referred to as second information, and similarly, the second information can be referred to as the first information. Depending on the context, for example, the word “if” used here can be explained as “while”, “when”, or “in response to determining”.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Finance (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
Description
- This application is a continuation of and claims the benefit of priority of U.S. patent application Ser. No. 16/779,228, filed Jan. 31, 2020, which is a continuation of PCT Application No. PCT/CN2020/072038, filed on Jan. 14, 2020, which claims priority to Chinese Patent Application No. 201910704682.7, filed on Jul. 31, 2019, and each application is hereby incorporated by reference in its entirety.
- One or more implementations of the present specification relate to the field of blockchain technologies, and in particular, to a smart contract-based data authorization method and apparatus.
- A blockchain technology (also referred to as a distributed ledger technology) is a decentralized distributed database technology, and is characterized by decentralization, openness and transparency, tamper-resistance, trustworthiness, etc., and therefore, is applicable to many application scenarios that require high data reliability.
- In view of this, one or more implementations of the present specification provide a smart contract-based data authorization method and apparatus.
- To achieve the previous objective, one or more implementations of the present specification provide the following technical solutions:
- According to a first aspect of one or more implementations of the present specification, a smart contract-based data authorization method is provided, and includes the following: receiving, by a blockchain node, a data acquisition transaction submitted by a data user, where the data acquisition transaction is used to request to obtain target data held by a data owner; and executing, by the blockchain node, a data authorization smart contract invoked to perform the data acquisition transaction, where the data authorization smart contract is used to obtain the target data when it is confirmed that the data user is authorized, so that the data user obtains at least one of the target data and an operation result obtained after a predetermined operation is performed on the target data.
- According to a second aspect of one or more implementations of the present specification, a smart contract-based data authorization apparatus is provided, and includes the following: a receiving unit, configured to enable a blockchain node to receive a data acquisition transaction submitted by a data user, where the data acquisition transaction is used to request to obtain target data held by a data owner; and an execution unit, configured to enable the blockchain node to execute a data authorization smart contract invoked to perform the data acquisition transaction, where the data authorization smart contract is used to obtain the target data when it is confirmed that the data user is authorized, so that the data user obtains at least one of the target data and an operation result obtained after a predetermined operation is performed on the target data.
- According to a third aspect of one or more implementations of the present specification, an electronic device is provided, and includes the following: a processor; and a memory, configured to store an instruction that can be executed by the processor, where the processor runs the executable instruction to implement the method according to the first aspect.
- According to a fourth aspect of one or more implementations of the present specification, a computer-readable storage medium is provided, where the computer-readable storage medium stores a computer instruction, and when the instruction is executed by a processor, the steps in the method according to the first aspect are implemented.
-
FIG. 1 is a schematic diagram illustrating an example environment, according to an example implementation; -
FIG. 2 is a schematic diagram illustrating a concept framework, according to an example implementation; -
FIG. 3 is a flowchart illustrating a smart contract-based data authorization method, according to an example implementation; -
FIG. 4 is a schematic diagram illustrating end-to-end data authorization implemented based on a blockchain network, according to an example implementation; -
FIG. 5 is an interaction flowchart illustrating end-to-end data authorization implemented based on a blockchain network, according to an example implementation; -
FIG. 6 is a schematic structural diagram illustrating a device, according to an example implementation; -
FIG. 7 is a block diagram illustrating a smart contract-based data authorization apparatus, according to an example implementation. - Example implementations are described in detail here, and examples of the example implementations are presented in the accompanying drawings. When the following description relates to the accompanying drawings, unless specified otherwise, same numbers in different accompanying drawings represent same or similar elements. Implementations described below do not represent all implementations consistent with one or more implementations of the present specification. On the contrary, the implementations are only examples of apparatuses and methods that are described in the appended claims in detail and consistent with some aspects of one or more implementations of the present specification.
- It is worthwhile to note that in other implementations, steps of a corresponding method are not necessarily performed according to the sequence shown and described in the present specification. In some other implementations, the method can include more or less steps than those described in the present specification. In addition, an individual step described in the present specification can be divided into a plurality of steps in other implementations for description. However, a plurality of steps described in the present specification can also be combined into a single step for description in other implementations.
-
FIG. 1 is a schematic diagram illustrating an example environment, according to an example implementation. As shown inFIG. 1 , an entity is allowed to participate in ablockchain network 102 in anexample environment 100. Theblockchain network 102 can be a public blockchain network, a private blockchain network, or a consortium blockchain network. Theexample environment 100 can includecomputing devices network 114. In an implementation, thenetwork 114 can include a local area network (LAN), a wide area network (WAN), the Internet, or a combination of LAN, WAN and Internet, and is connected to a website, user equipment (e.g., a computing device), and a backend system. In an implementation, thenetwork 114 can be accessed through at least one of wired communication or wireless communication. - In some situations, the
computing devices computing devices - In an implementation, the
computing devices 104 to 108 can run any suitable computing system, so as to serve as nodes in theblockchain network 102. For example, thecomputing devices 104 to 108 can include but are not limited to a server, a desktop computer, a notebook computer, a tablet, and a smartphone. In an implementation, thecomputing devices 104 to 108 can belong to a related entity and are configured to implement a corresponding service. For example, the service can be used to manage a transaction of one entity or a transaction between a plurality of entities. - In an implementation, each of the
computing devices 104 to 108 stores a blockchain ledger corresponding to theblockchain network 102. Thecomputing device 104 can be (or include) a network server configured to provide a browser function, and the network server can provide visual information related to theblockchain network 102 based on thenetwork 114. In some situations, thecomputing device 104 may not participate in block verification, but monitor theblockchain network 102 to determine when other nodes (e.g., thecomputing devices 106 and 108) reach a consensus, and therefore, generate a corresponding blockchain visual user page if other nodes reach a consensus. - In an implementation, the
computing device 104 can receive a request from a client device (e.g., thecomputing device 110 or the computing device 112) for the blockchain visual user page. In some situations, a node in theblockchain network 102 can also serve as a client device. For example, a user of thecomputing device 108 can send the request to thecomputing device 104 by using a browser running on thecomputing device 108. - In response to the request, the
computing device 104 can generate the blockchain visual user page (e.g., a webpage) based on the stored blockchain ledger, and send the blockchain visual user page generated to the requesting client device. If theblockchain network 102 is a private blockchain network or a consortium blockchain network, the request for the blockchain visual user page can include user authorization information. Before generating the blockchain visual user page and sending the blockchain visual user page to the requesting client device, thecomputing device 104 can perform verification on the user authorization information, and return the corresponding blockchain visual user page after the verification succeeds. - The blockchain visual user page can be displayed on the client device (e.g., a
user interface 116 shown inFIG. 1 ). When the blockchain ledger is updated, display content on theuser interface 116 can be updated accordingly. In addition, interaction between the user and theuser interface 116 can result in a request for another user interface, for example, displaying a block list, block details, a transaction list, transaction details, an account list, account details, a contract list, contract details, or a search result page generated after the user searches the blockchain network. -
FIG. 2 is a schematic diagram illustrating a concept framework, according to an example implementation. As shown inFIG. 2 , theconcept framework 200 includes anentity layer 202, ahosting service layer 204, and ablockchain network layer 206. For example, theentity layer 202 can include three entities: anentity 1, anentity 2, and anentity 3, and each entity has its owntransaction management system 208. - In an implementation, the
hosting service layer 204 can include aninterface 210 corresponding to eachtransaction management system 208. For example, eachtransaction management system 208 communicates with thecorresponding interface 210 over a network (e.g., thenetwork 114 inFIG. 1 ) using a protocol (e.g., Hypertext Transfer Protocol Secure (HTTPS)). In some examples, eachinterface 210 can provide a communication connection between atransaction management system 208 corresponding to each interface and theblockchain network layer 206. More specifically, theinterface 210 can communicate with ablockchain network 212 of theblockchain network layer 206. In some examples, communication between theinterface 210 and theblockchain network layer 206 can be implemented through remote procedure calls (RPCs). In some examples, theinterface 210 can provide an API interface to thetransaction management system 208 for accessing theblockchain network 212. - As described here, the
blockchain network 212 is provided in the form of an equalized network including a plurality ofnodes 214. Each of thenodes 214 is respectively configured to permanently store ablockchain ledger 216 formed by blockchain data.FIG. 2 shows only oneblockchain ledger 216, but a plurality ofblockchain ledgers 216 or copies thereof can exist in theblockchain network 212. For example, eachnode 214 can maintain oneblockchain ledger 216 or a copy thereof. - It is worthwhile to note that a transaction described in the present specification refers to data that is created by a user by using a client of a blockchain network and needs to be finally published to a distributed database of the blockchain network. Transactions in the blockchain include a transaction in a narrow sense and a transaction in a broad sense. The transaction in the narrow sense refers to a value transfer published by a user in the blockchain. For example, in a conventional bitcoin blockchain network, the transaction can be a transfer initiated by the user in the blockchain. The transaction in the broad sense refers to service data with a service intention that is published by a user in the blockchain. For example, an operator can create a consortium blockchain based on an actual service need, and deploy some other types of online services (e.g., a rental service, a vehicle scheduling service, an insurance claim service, a credit service, and a medical service) that are not related to a value transfer in the consortium blockchain. In such a consortium blockchain, the transaction can be a service message or a service request with a service intention that is published by a user in the consortium blockchain.
- Generally, there are three types of blockchains: a public blockchain, a private blockchain, and a consortium blockchain. In addition, there is a combination of a plurality of types, for example, a private blockchain+a consortium blockchain, or a consortium blockchain+a public blockchain. The public blockchain has the highest degree of decentralization. A bitcoin blockchain and an Ethereum blockchain are representatives of the public blockchain. Participants of the public blockchain can read data records in the blockchain, participate in transactions, compete for accounting rights of new blocks, etc. Furthermore, each participant (i.e., node) can freely join and exit the network and perform related operations. On the contrary, writing permission of the private blockchain network is controlled by a certain organization or agency, and data reading permission is specified by the organization. Briefly, the private blockchain network can be a weakly centralized system, a strict restriction is imposed on participating nodes, and there are a few participating nodes. This type of blockchain is more suitable for use within a specified organization. The consortium blockchain is a blockchain between the public blockchain and the private blockchain, and can implement “partial decentralization”. Each node in the consortium blockchain network usually has a corresponding organization. Participants join the network through authorization and form an interest-related consortium to jointly maintain operations of the blockchain network.
- The public blockchain network, the private blockchain network, and the consortium blockchain network can provide a function of a smart contract. A smart contract in a blockchain network is a contract that can be triggered by a transaction in the blockchain system. The smart contract can be defined in a form of code.
- Taking Ethereum as an example, a user can create and invoke some complex logic in the Ethereum network, which is the biggest challenge of Ethereum different from the bitcoin blockchain technology. As a programmable blockchain, the core of Ethereum is an Ethereum virtual machine (EVM), and each Ethereum node can run the EVM. The EVM is a Turing-complete virtual machine, through which various types of complex logic can be implemented. The smart contract published or invoked by a user in Ethereum can be run by the EVM.
- However, in the technical solutions of the present specification, a smart contract is published and invoked on a blockchain node, so that secure end-to-end data authorization can be implemented between a data owner and a data user. The following describes the technical solutions of the present specification with reference to implementations.
-
FIG. 3 is a flowchart illustrating a smart contract-based data authorization method, according to an example implementation. As shown inFIG. 3 , the method is applied to a blockchain node and can include the following steps: - Step 302: A blockchain node receives a data acquisition transaction submitted by a data user, where the data acquisition transaction is used to request to obtain target data held by a data owner.
- The data user can directly generate the data acquisition transaction on the blockchain node. Or, the data user can generate the data acquisition transaction on a client, and send the data acquisition transaction to the blockchain node by using the client. Or, after generating the data acquisition transaction on a client, the data user can send the data acquisition transaction to another blockchain node, and the another blockchain node sends the data acquisition transaction to the blockchain node. Certainly, after a consensus on the data acquisition transaction is reached, the data acquisition transaction is transmitted to each blockchain node in the blockchain network, and each blockchain node executes the data acquisition transaction.
- Generally, in a blockchain network using consensus algorithms such as proof of work (POW), proof of stake (POS), and delegated proof of stake (DPOS), nodes that compete for an accounting right can execute a blockchain transaction after receiving the blockchain transaction. One of the nodes that compete for the accounting rights may win in the current round, and becomes an accounting node. Using the previous data acquisition transaction as an example, the accounting node can pack the data acquisition transaction with other transactions to generate a new block, and send the new block generated to other nodes for consensus.
- In a blockchain network using mechanisms such as practical Byzantine fault tolerance (PBFT), a node with accounting rights can be predetermined before the current round of accounting. Therefore, after receiving the data acquisition transaction, the blockchain node can send the data acquisition transaction to the accounting node if the blockchain node itself is not the accounting node of the current round. The accounting node of the current round (which can be the previous blockchain node) can execute the data acquisition transaction when or before packing the data acquisition transaction to generate a new block or when or before packing the data acquisition transaction with other transactions to generate a new block. The accounting node packs the data acquisition transaction (or packs the data acquisition transaction with other transactions) to generate a new block, and then sends the new block generated or a block header to other nodes for consensus.
- As described above, in the blockchain network using the POW mechanism or in the blockchain network using POS, DPOS, and PBFT mechanisms, the accounting node of the current round can pack the data acquisition transaction to generate a new block, and send the new block generated or a block header to other nodes for consensus. If the other nodes verify that there is no problem after receiving the block, the new block can be appended to the end of an original blockchain, so that the accounting process is completed and a consensus is reached. If the data acquisition transaction is used to invoke a data authorization smart contract, invocation and execution of the data authorization smart contract are completed. When performing verification on a new block or a block header sent by the accounting node, another node can also execute a data acquisition transaction in the block.
- Step 304: The blockchain node executes a data authorization smart contract invoked to perform the data acquisition transaction, where the data authorization smart contract is used to obtain the target data when it is confirmed that the data user is authorized, so that the data user obtains at least one of the target data and an operation result obtained after a predetermined operation is performed on the target data.
- After the data authorization smart contract is created, a corresponding contract account is formed in the blockchain, and the contract account has a specified contract address. For example, the data acquisition transaction can include the contract address in a TO field of the data acquisition transaction to invoke the data authorization smart contract. As described above, after blockchain nodes in the blockchain network reach a consensus, each node receives the data acquisition transaction, reads the TO field of the data acquisition transaction, and invokes the data authorization smart contract, which specifically means reading code of the data authorization smart contract into an EVM of the blockchain node for execution.
- The data acquisition transaction can include information about the target data, for example, a hash value or any other description information of the target data, provided that the information can relate to the target data. For example, the information about the target data can be included in a DATA field of the data acquisition transaction. When the data acquisition transaction invokes the data authorization smart contract, content in the DATA field can be used as input information of the data authorization smart contract.
- The data authorization smart contract can include a corresponding list of authorized parties for recording information about authorized objects of data held by the data owner, namely, information about the authorized parties. In this case, if the data authorization smart contract confirms that the data user is in the list of authorized parties, it can be confirmed that the data user is authorized. In a management method of the list of authorized parties, one-time authorization can be performed on all data held by the data owner, and content of the list of authorized parties is not affected even when the data held by the data owner increases or decreases, in other words, an update to the data held by the data owner can be compatible.
- When the data authorization smart contract is being created, information about the list of authorized parties can be written into contract code, so that content of the list of authorized parties cannot be changed. In this case, the data authorization smart contract may need to be replaced or a version thereof may need to be updated, to update the list of authorized parties. Or, the data authorization smart contract can have one or more corresponding states, and the blockchain node can maintain values of the one or more states. When a state value is information about an authorized party, the one or more states are equivalent to the list of authorized parties. The data owner can submit a blockchain transaction in the blockchain network, and the blockchain transaction can invoke an authorization interface defined in the data authorization smart contract, so that content of the list of authorized parties can be updated after the data authorization smart contract is executed, without a need to replace the data authorization smart contract or update a version thereof. Or, the data authorization smart contract can invoke another smart contract, and code or a state of the another smart contract can be used to record the list of authorized parties. If the list of authorized parties is immutably written into the code of the another smart contract, when the list of authorized parties needs to be updated, a new smart contract can be created, where code of the new smart contract includes an updated list of authorized parties, and then the data authorization smart contract invokes a contract address of the new smart contract (the invoked contract address can be used as a state of the data authorization smart contract, and a value of the state can change). If the list of authorized parties is written into the state corresponding to the another smart contract, as described above, only a value of the state needs to be updated, to update the list of authorized parties, without a need to update the contract address invoked by the data authorization smart contract. The contract address can be permanently written into code of the data authorization smart contract, or can be written into a state of the data authorization smart contract.
- The data user can temporarily request authorization from the data owner. For example, the data user can submit an authorization request transaction to the blockchain network, and the authorization request transaction invokes a request interface defined in the data authorization smart contract. As such, after executing the authorization request transaction, the blockchain node can invoke the request interface defined in the data authorization smart contract, so that the data authorization smart contract writes an authorization request event into a transaction log. Then, through an event monitoring responding mechanism, the data owner can respond to the authorization request event written into the transaction log. For example, when it is determined that the data user can be authorized, the data owner can submit an authorization confirmation transaction to the blockchain network, and the authorization confirmation transaction invokes an authorization interface defined in the data authorization smart contract. As such, after executing the authorization confirmation transaction, the blockchain node can invoke the authorization interface defined in the data authorization smart contract, so that the data authorization smart contract marks the data user as authorized. In one situation where the data user is marked as authorized, the data user can be added to the list of authorized parties. A process of adding the data user to the list of authorized parties is described above, and details are omitted here for simplicity. Provided that the data user is in the list of authorized parties, the data user can request to obtain the data held by the data owner at any time, in other words, the data user is authorized in the long term. In the other situation, the data authorization smart contract only confirms that the data user is authorized for a current operation, and the data authorization smart contract can respond to a data acquisition request of the data user this time. However, after a current data acquisition transaction is completed, the data user is unauthorized, and the data user needs to request authorization from the data owner again.
- Although the list of authorized parties belongs to long-term authorization compared with the latter situation, the list of authorized parties doesn't necessarily mean permanent authorization. For example, the data owner can update the list of authorized parties to remove one or more authorized parties, so that the one or more authorized parties are unauthorized. For another example, each authorized party in the list of authorized parties can have a certain quantity of remaining authorization duration and/or the quantity of remaining authorizations. When the remaining authorization duration or the quantity of remaining authorizations is reset to 0, a corresponding authorized party can be automatically removed from the list of authorized parties, which is equivalent to an “aging” mechanism implemented on an authorized party in the list of authorized parties.
- The data user can include the information about the target data in the authorization request transaction, and the information about the target data can be written into the authorization request event in the transaction log, so that the data owner learns an authorization range requested by the data user. If the authorization request transaction does not include any data information, authorization for all data held by the data owner is requested by the data user. Accordingly, the data owner can add the information about the target data to the authorization confirmation transaction to indicate that the data user is authorized for the target data. If the authorization confirmation transaction submitted by the data owner does not include any data information, the data owner authorizes the data user for all data. Therefore, in some situations, the information about the target data included in the data acquisition transaction of the data user can be inconsistent with an authorization range (i.e., data that the data user is authorized) obtained by the data user. In this case, the data acquisition transaction may not be normally executed or the data authorization smart contract cannot successfully obtain the target data specified in the data acquisition transaction.
- After the data authorization smart contract obtains the target data, the target data can be directly provided to the data user. For example, the data authorization smart contract can write the target data into the transaction log of the data acquisition transaction, so that the data user can obtain the target data by monitoring the transaction log. The blockchain node can encrypt the target data, so that encrypted target data is written into the transaction log. In this case, a data user holding a key can read and decrypt the encrypted target data to obtain the target data, and an unrelated user cannot decrypt the encrypted target data. Therefore, it can be ensured that the data user obtains the target data, and the situation that target data is written into the transaction log in plaintext and obtained by an unrelated person can be avoided. As such, leakage of the target data is alleviated, and interests of the data owner are protected.
- After obtaining the target data, the data authorization smart contract can perform the predetermined operation on the target data, and provide the operation result to the data user. The predetermined operation can be any operation desired by the data user, and is not limited in the present specification. For example, an operation rule of the predetermined operation can be predefined in the data authorization smart contract. One or more operation rules can be defined in the data authorization smart contract. Especially, when there are a plurality of operation rules, the data user can specify a needed operation rule in the data acquisition transaction (e.g., the data user adds an identifier corresponding to the operation rule to the DATA field of the data acquisition transaction). For another example, an operation rule of the predetermined operation can be transferred into the data authorization smart contract by the data acquisition transaction. For example, the operation rule of the predetermined operation can be written into the DATA field of the data acquisition transaction, and then transferred into the data authorization smart contract. When the corresponding operation result is obtained after the predetermined operation is performed on the target data, if the data user cannot inversely deduce a value of the target data from the operation result, the data user can be prevented from directly obtaining the target data while a data acquisition requirement of the data user is satisfied. As such, the data user can be prevented from leaking the target data and jeopardizing interests of the data owner, ensuring that the target data is always held only by the data owner.
- Data held by the data owner can have different privacy levels. Correspondingly, data at different privacy levels can be processed in different ways. For example, the data owner can separately hold data at a relatively low privacy level and data at a relatively high privacy level. Correspondingly, when the target data is at the low privacy level, the target data can be provided to the data user, in other words, the data owner does not care whether the data at the low privacy level is leaked. When the target data is at the high privacy level, a predetermined operation needs to be performed on the target data, so that a corresponding operation result is provided to the data user, ensuring that the data at the high privacy level is not leaked. If the target data includes both data at the low privacy level and data at the high privacy level, the target data at the low privacy level can be directly provided to the data user, the predetermined operation is performed on the target data at the high privacy level, and the operation result is then provided to the data user. Or, especially when the data user has specified a needed operation rule of the predetermined operation in the data acquisition transaction, the predetermined operation can be implemented on all target data, and then the operation result is provided to the data user.
- At least one of the target data and the operation result can be written into the transaction log by the data authorization smart contract using an event mechanism. For example, a transaction execution result event is formed in the transaction log, so that the data user can monitor the transaction execution result event to obtain at least one of the target data and the operation result. A rule of the monitoring process is similar to that of monitoring the authorization request event by the data owner. Therefore, details are omitted here for simplicity.
- The target data can be stored in a database corresponding to the blockchain node, so that after the data authorization smart contract is executed, the target data can be directly read from the database and provided to the data user. To prevent the target data from being obtained by an unrelated person, the target data can be encrypted, and corresponding encrypted target data is stored in the database, so that the unrelated person can only obtain the encrypted target data at most, thereby alleviating leakage of the target data.
- The target data can be encrypted in a trusted execution environment (TEE). Because the target data can be any data requested by the data user and held by the data owner, any data held by the data owner can be encrypted in a similar way. The TEE is a trusted execution environment based on a secure extension of CPU hardware that is isolated from the outside. The TEE was first proposed by the Global Platform to alleviate a problem of resource security isolation on a mobile device, and is parallel to a trusted and secure execution environment provided by an operating system to an application. For example, TEE technologies such as Intel's Software Protection Extensions (SGX) isolate code execution, remote attestation, secure configuration, secure storage of data, and trusted paths for executing code. Security of an application running in the TEE is protected, and the application is almost impossible to be accessed by a third party.
- The Intel SGX technology is used as an example. The blockchain node can allocate an enclave page cache (EPC) in a memory by using a processor instruction added to a CPU, load an EVM into the EPC, and confirm, through remote attestation, that code of the loaded EVM is consistent with code of an EVM at a key management server (e.g., comparing hash values). After the remote attestation succeeds, the blockchain node encrypts the target data by using a memory encryption engine (MME) in the CPU, and stores encrypted target data into the EPC. The encrypted content in the EPC can be decrypted to a plaintext only after entering the CPU. In the CPU, the target data in plaintext is encrypted to obtain the encrypted target data, so as to be stored in the database corresponding to the blockchain node. In response to the data acquisition transaction submitted by the data user, the blockchain node can execute the data authorization smart contract in the trusted execution environment, to read the encrypted target data into the trusted execution environment for decryption, and then the data authorization smart contract performs a predetermined operation on the target data. For example, after the remote attestation succeeds, the blockchain node separately encrypts the obtained encrypted target data and the code of the data authorization smart contract by using the MME in the CPU, and stores encrypted target data and encrypted code into the EPC. The encrypted content in the EPC can be decrypted only after entering the CPU. In the CPU, the encrypted target data can be decrypted to the target data in plaintext, and a predetermined operation is performed on the target data by executing the code of the data authorization smart contract. Therefore, encryption and decryption are performed for the target data in the TEE, and the code of the data authorization smart contract is executed, so that a secure and reliable environment can be provided, and interference from external factors is reduced.
- The blockchain node can encrypt the target data by using a symmetric encryption key. For example, the key can be sent by the key management server to the blockchain node. For another example, the key can be obtained through negotiation between blockchain nodes. Or, the key can be an asymmetric encryption key. Implementations are not limited in the present specification. The key can be stored in a security enclave created on the blockchain node. For example, the security enclave can be a quoting enclave (QE) instead of an application enclave (AE).
- The data owner can store the target data in a blockchain by submitting a private certificate transaction to the blockchain network. Transaction content of the privacy certificate transaction includes the target data in plaintext. However, the transaction content of the privacy certificate transaction can be encrypted by using a key, so that after a block where the privacy certificate transaction is located is added to the blockchain, the target data cannot be obtained by viewing the transaction content of the privacy certificate transaction. Correspondingly, a key can be maintained in the trusted execution environment of the blockchain node, so that the blockchain node can decrypt the privacy certificate transaction in the trusted execution environment after receiving the privacy certificate transaction submitted by the data owner, to obtain the target data included in the transaction content. The data owner can encrypt the transaction content through symmetric encryption or asymmetric encryption. Implementations are not limited in the present specification. The key can be generated through negotiation between the blockchain node and the data owner; or the key can be generated by the key management server and sent to the data owner and the blockchain node.
- The data owner can store the target data in a blockchain by submitting a certificate transaction to the blockchain network. Transaction content of the certificate transaction can include at least one of creating and invoking a smart contract, so that after receiving the certificate transaction submitted by the data owner, the blockchain node can execute the corresponding transaction content in the trusted execution environment, for example, executing code of the smart contract that needs to be created, invoked, or created and invoked, to generate the target data. Further, the blockchain node can encrypt the target data and store the encrypted target data in the database. Because the target data appears in plaintext only in the trusted execution environment, and appears in ciphertext in an environment other than the trusted execution environment, there is no need to worry about leakage of the target data in plaintext.
- In addition to being stored in the database of the blockchain node, the target data can be stored through a channel off the blockchain by the data owner, and the blockchain node stores only a digital digest of the target data. For example, the digital digest can be a hash value of the target data. In this case, the data authorization smart contract can obtain the target data from the channel off the blockchain by using a cross-chain technology, and provide at least one of the target data and the operation result to the data user. An oracle-based cross-chain technology is used as an example: The data authorization smart contract can invoke an oracle smart contract, so that the oracle smart contract obtains the target data from the channel off the blockchain, and then the data authorization smart contract can write the obtained target data into the transaction log of the data acquisition transaction by using the event mechanism, and/or perform the predetermined operation on the target data and then write the operation result into the transaction log of the data acquisition transaction by using the event mechanism, so that the data user can monitor the transaction log to obtain at least one of the target data and the operation result.
- It is worthwhile to note that “data” held by the data owner and requested by the data user in the present specification should be understood as a generalized concept, for example, a value, a character, an image, audio, a video, code, a program, or a model (e.g., an artificial intelligence model). Implementations are not limited in the present specification.
-
FIG. 4 is a schematic diagram illustrating end-to-end data authorization implemented based on a blockchain network, according to an example implementation. As shown inFIG. 4 , assume that nodes such as N1, N2, N3, N4, and N5 exist in a blockchain network, and the blockchain network can be a consortium blockchain network composed of a service platform and several partners. For example, in a supply chain financial scenario, nodes such as N1, N2, N4, and N5 correspond to several supply chain financial enterprises directly or indirectly, node N3 corresponds to the service platform, and a user can obtain, based on the service platform, target data of each supply chain financial enterprise or an operation result obtained based on the target data. For another example, in an invoice scenario, nodes such as N1, N2, N4, and N5 correspond to several merchants directly or indirectly, node N3 corresponds to the service platform, and a user can obtain, based on the service platform, invoices issued by the merchants, some information in the invoices, or an operation result obtained based on the invoice information. Certainly, the technical solutions of the present specification can be further applied to another scenario. Implementations are not limited in the present specification. For ease of understanding, the following uses the supply chain financial scenario as an example for description. - Assume that user Ua wants to know an average asset amount of supply chain financial enterprises C1 and C2 for related purposes. However, asset amounts are data that needs to be kept confidential for the enterprises C1 and C2, and cannot be separately provided by the enterprises C1 and C2 to user Ua, and therefore, user Ua cannot calculate the average asset amount. According to the technical solutions of the present specification, data privacy of the enterprises C1 and C2 is not exposed, and interests of a data user (e.g., user Ua) and a data owner (e.g., the enterprises C1 and C2) are protected while a data acquisition requirement of user Ua is satisfied. For example,
FIG. 5 is an interaction flowchart illustrating end-to-end data authorization implemented based on a blockchain network, according to an example implementation. As shown inFIG. 5 , an interaction procedure between user Ua, a blockchain node, and enterprises C1 and C2 can include the following steps: - Step 501: User Ua generates an authorization request transaction and submits the authorization request transaction to a blockchain network.
- A computing device used by user Ua can run a client, generate the authorization request transaction based on the client, and submit the authorization request transaction to the blockchain network. Or, after generating the authorization request transaction on a client, user Ua can upload the authorization request transaction to a
service platform 40, and theservice platform 40 submits the authorization request transaction to the blockchain network. Or, user Ua can initiate an authorization request to aservice platform 40, so that theservice platform 40 generates the authorization request transaction and submits the authorization request transaction to the blockchain network. - The purpose of submitting the authorization request transaction to the blockchain network is to request the enterprises C1 and C2 to grant a related right to user Ua, so that user Ua can finally obtain the previously described average asset amount. The authorization request transaction can include data description information describing data that user Ua hopes to separately request authorization from the enterprises C1 and C2. For example, the data description information can separately describe an asset amount of enterprise C1 and an asset amount of enterprise C2. Accordingly, user Ua can be authorized for the asset amount of enterprise C1 and the asset amount of enterprise C2, but is unauthorized for other data. Or, the authorization request transaction may not include data description information, to indicate that user Ua hopes to separately request to obtain authorization for all data from the enterprises C1 and C2, so that user Ua is authorized for all data held by the enterprises C1 and C2, including the previously described asset amounts. The following describes subsequent steps by using an example that the authorization request transaction includes the data description information.
- The authorization request transaction is originally submitted to a certain node in the blockchain network. For example, when the
service platform 40 has a corresponding node N3 in the blockchain network, the authorization request transaction can be usually submitted to node N3 by theservice platform 40, and certainly can also be submitted to other nodes. Similarly, the computing device used by user Ua can submit the authorization request transaction to a certain node. After the authorization request transaction is submitted to the blockchain network, a consensus can be made between nodes, and an agreed authorization request transaction can be executed on each node. POW, POS, DPOS, PBFT, or another consensus mechanism in a related technology can be used in the consensus process. Implementations are not limited in the present specification. - Step 502: The blockchain node assists, by invoking a request interface of smart contract T1, user Ua in obtaining data authorization, and writes an authorization request event into a transaction log.
- After the consensus, each node in the blockchain network needs to execute the authorization request transaction. When executing the authorization request transaction, the blockchain node reads an account address filled in a TO field of the authorization request transaction, to invoke smart contract T1. Code of smart contract T1 can logically generate a plurality of interfaces to implement different functions, and the authorization request transaction can specifically specify an interface that needs to be invoked. For example, when the authorization request transaction invokes the request interface of smart contract T1, related authorization can be requested.
- For example, the authorization request transaction can include the previously described data description information, information about user Ua (e.g., a signature of user Ua), information about the enterprises C1 and C2 (e.g., public keys of the enterprises C1 and C2), etc., so that after the request interface of smart contract T1 is invoked, the authorization request event can be written into the transaction log of the authorization request transaction. Content of the authorization request event can include the data description information, the information about user Ua, the information about the enterprises C1 and C2, etc., to indicate that user Ua hopes to obtain target data corresponding to the data description information from the enterprises C1 and C2.
- Step 503: The enterprises C1 and C2 monitor the authorization request event.
- Because operations of blockchain nodes are consistent, the enterprises C1 and C2 can access any corresponding blockchain node to learn the authorization request event based on an event monitoring responding mechanism, so as to determine the target data that user Ua hopes to obtain from the enterprises C1 and C2.
- Step 504: The enterprises C1 and C2 separately generate authorization request transactions and submit the authorization request transactions to the blockchain network.
- When allowing user Ua to obtain related target data, the enterprises C1 and C2 can separately generate and submit the authorization confirmation transactions, to indicate that the enterprises C1 and C2 agree to provide the target data such as the asset amounts to user Ua. Enterprise C1 is used as an example: The authorization confirmation transaction generated by enterprise C1 can include data description information corresponding to target data that enterprise C1 agrees to provide to user Ua, a public key of user Ua, a signature of enterprise C1, etc. Or, the authorization confirmation transaction can include information such as a transaction number of the authorization request transaction, to indicate that enterprise C1 agrees a related request of the authorization request transaction.
- Step 505: The blockchain node invokes an authorization interface of smart contract T1, updates an authorization state of user Ua, and writes an authorization state update event into a transaction log.
- As described above, smart contract T1 includes several predefined interfaces. In
authorization confirmation transaction 1 submitted by enterprise C1 andauthorization confirmation transaction 2 submitted by enterprise C2, TO fields can separately include a contract address of smart contract T1, and can specify a wish to invoke the authorization interface. Smart contract T1 can confirm, by running code corresponding to the authorization interface, that the enterprises C1 and C2 separately agree to grant a right to user Ua for the target data such as the asset amounts, so as to update the authorization state of user Ua to “authorized”. As described above, the authorized state of user Ua can be recorded in a plurality of forms, which depends on a rule defined in smart contract T1. Details are omitted here for simplicity. - For the update of the authorization state of user Ua, smart contract T1 can write the corresponding authorization state update event into the transaction log to indicate that user Ua has obtained authorization for the asset amounts of the enterprises C1 and C2.
- Step 506: User Ua monitors the authorization state update event.
- Similar to step 503, user Ua can monitor, based on the event monitoring responding mechanism, the transaction log in the blockchain node that corresponds to the authorization confirmation transactions, and determine, based on the detected authorization state update event, that user Ua has obtained authorization for asset amounts of the enterprises C1 and C2.
- Step 507: User Ua generates a data acquisition transaction and submits the data acquisition transaction to the blockchain network.
- Similar to the authorization request transaction, user Ua can generate and submit the data acquisition transaction in a plurality of ways. For example, user Ua independently generates and submits the data acquisition transaction, user Ua independently generates the data acquisition transaction and then the service platform submits the data acquisition transaction, or the service platform generates and submits the data acquisition transaction. Details are omitted here for simplicity.
- The data acquisition transaction can include data description information describing that user Ua hopes to obtain the average asset amount of the enterprises C1 and C2 (which can specifically include data description information of the asset amounts of the enterprises C1 and C2 and indicate that an operation rule used is averaging). Or, the data acquisition transaction can include the transaction number of the authorization request transaction or a transaction number of the authorization confirmation transaction, and can also indirectly indicate that user Ua hopes to obtain the average asset amount of the enterprises C1 and C2.
- Step 508: The blockchain node invokes a data interface of smart contract T1, and writes a transaction execution result event into a transaction log.
- The data interface of smart contract T1 is invoked to indicate, to smart contract T1, that user Ua hopes to obtain the average asset amount of the enterprises C1 and C2. Smart contract T1 can search for the authorization state of user Ua.
- If user Ua is unauthorized, the transaction can be terminated. Or, smart contract T1 can write the authorization request event into the transaction log, to temporarily request authorization from the enterprises C1 and the enterprise C2 through a process similar to
steps 502 to 505. In this case, the data acquisition transaction is equivalent to an authorization request function and a data acquisition function, and a related operation and step of the authorization request transaction can be omitted. - If user Ua has been authorized, smart contract T1 can obtain the asset amounts of the enterprises C1 and C2. For example, when values of the asset amounts are stored in the blockchain, for example, stored in the blockchain in ciphertext, smart contract T1 can read encrypted asset amounts and decrypt the asset amounts in the trusted execution environment at the blockchain node to obtain the asset amounts in plaintext. For another example, when values of the asset amounts are stored through channels off the blockchain separately maintained by the enterprises C1 and C2, smart contract T1 can obtain the values of the asset amounts by using a cross-chain technology. For example, smart contract T1 can invoke oracle smart contract T2, so that oracle smart contract T2 can separately read the asset amounts of the enterprises C1 and C2 from the channels off the blockchain, and return the asset amounts to smart contract T1.
- After obtaining the asset amounts of the enterprises C1 and C2, smart contract T1 can calculate the corresponding average asset amount based on a predefined operation rule. For example, when the asset amount of enterprise C1 is m1 and the asset amount of enterprise C2 is m2, the average asset amount can be calculated as follows: M=(m1+m2)/2. Correspondingly, smart contract T1 can add the value of the average asset amount M to the transaction execution result event, and write the transaction execution result event into the transaction log of the data acquisition transaction.
- Step 509: User Ua monitors the transaction execution result event.
- As described above, user Ua can monitor the transaction log of the data acquisition transaction based on the event monitoring responding mechanism, to detect the transaction execution result event. If the data acquisition transaction is successfully implemented, user Ua can obtain the average asset amount M of the enterprises C1 and C2 from the transaction execution result event, so that a requirement of user Ua on the average asset amount can be satisfied, and leakage of the values of the asset amounts of the enterprises C1 and C2 can be alleviated.
-
FIG. 6 is a schematic structural diagram illustrating a device, according to an example implementation. As shown inFIG. 6 , in terms of hardware, the device includes aprocessor 602, aninternal bus 604, anetwork interface 606, amemory 608, and anon-volatile memory 610, and certainly can further include other hardware needed by services. Theprocessor 602 reads a corresponding computer program from thenon-volatile memory 610 into thememory 608 and then runs the corresponding computer program, so as to form a smart contract-based data authorization apparatus in terms of logic. Certainly, in addition to software implementation, one or more implementations of the present specification do not exclude other implementations, for example, a logical device or a combination of hardware and software. In other words, an execution body of the following processing procedure is not limited to each logical unit, and can also be hardware or a logical device. - As shown in
FIG. 7 , in terms of software implementation, the smart contract-based data authorization apparatus can include the following: a receivingunit 701, configured to enable a blockchain node to receive a data acquisition transaction submitted by a data user, where the data acquisition transaction is used to request to obtain target data held by a data owner; and anexecution unit 702, configured to enable the blockchain node to execute a data authorization smart contract invoked to perform the data acquisition transaction, where the data authorization smart contract is used to obtain the target data when it is confirmed that the data user is authorized, so that the data user obtains at least one of the target data and an operation result obtained after a predetermined operation is performed on the target data. - Optionally, the data authorization smart contract has a corresponding list of authorized parties, and it is confirmed that the data user is authorized when the data authorization smart contract confirms that the data user is in the list of authorized parties.
- Optionally, the apparatus further includes the following: an
authorization request unit 703, configured to enable the blockchain node to invoke a request interface defined in the data authorization smart contract based on an authorization request transaction submitted by the data user, so that the data authorization smart contract writes an authorization request event into a transaction log for monitoring by the data owner; and anauthorization confirmation unit 704, configured to enable the blockchain node to invoke an authorization interface defined in the data authorization smart contract based on an authorization confirmation transaction submitted by the data owner, so that the data authorization smart contract marks the data user as authorized. - Optionally, when the target data is at a low privacy level, the target data is provided to the data user; or when the target data is at a high privacy level, the predetermined operation is performed on the target data, so that the corresponding operation result is provided to the data user.
- Optionally, an operation rule of the predetermined operation is predefined in the data authorization smart contract; or an operation rule of the predetermined operation is transferred into the data authorization smart contract by the data acquisition transaction.
- Optionally, at least one of the target data and the operation result is written into a transaction execution result event in a transaction log by the data authorization smart contract, so that the data user performs monitoring and acquisition.
- Optionally, the apparatus further includes the following: a
data encryption unit 705, configured to enable the blockchain node to encrypt the target data in a trusted execution environment to obtain encrypted target data, so that the encrypted target data is stored in a database corresponding to the blockchain node; and adata operation unit 706, configured to enable the blockchain node to execute the data authorization smart contract in the trusted execution environment, so that the data authorization smart contract performs the predetermined operation after the encrypted target data is read into the trusted execution environment and decrypted. - Optionally, the apparatus further includes the following: a
transaction decryption unit 707, configured to enable the blockchain node to decrypt, after receiving a privacy certificate transaction submitted by the data owner, the privacy certificate transaction in the trusted execution environment to obtain the target data included in transaction content; or adata generation unit 708, configured to enable the blockchain node to execute, after receiving a certificate transaction submitted by the data owner, corresponding transaction content in the trusted execution environment to generate the target data. - Optionally, the blockchain node stores a digital digest of the target data, the target data is stored through a channel off the blockchain by the data owner, and the data authorization smart contract invokes an oracle smart contract, so that the oracle smart contract obtains the target data from the channel off the blockchain, and the data authorization smart contract performs the predetermined operation.
- The system, apparatus, module, or unit illustrated in the previous implementations can be specifically implemented by using a computer chip or an entity, or can be implemented by using a product having a certain function. A typical implementation device is a computer, and the computer can be specifically a personal computer, a laptop computer, a cellular phone, a camera phone, a smartphone, a personal digital assistant, a media player, a navigation device, an email receiving and sending device, a game console, a tablet, a wearable device, or any combination of these devices.
- In a typical configuration, a computer includes one or more processors (CPU), an input/output interface, a network interface, and a memory.
- The memory can include a non-persistent memory, a random access memory (RAM), a non-volatile memory, and/or another form that are in a computer readable medium, for example, a read-only memory (ROM) or a flash memory (flash RAM). The memory is an example of the computer readable medium.
- The computer readable medium includes persistent, non-persistent, movable, and unmovable media that can store information by using any method or technology. The information can be a computer readable instruction, a data structure, a program module, or other data. Examples of a computer storage medium include but are not limited to a phase change random access memory (PRAM), a static RAM (SRAM), a dynamic RAM (DRAM), a RAM of another type, a read-only memory (ROM), an electrically erasable programmable ROM (EEPROM), a flash memory or another memory technology, a compact disc ROM (CD-ROM), a digital versatile disc (DVD) or another optical storage, a cassette tape, a magnetic disk storage, a quantum memory, a storage medium based on grapheme, another magnetic storage device, or any other non-transmission medium. The computer storage medium can be used to store information that can be accessed by the computing device. Based on the definition in the present specification, the computer readable medium does not include transitory media such as a modulated data signal and carrier.
- It is worthwhile to further note that, the terms “include”, “contain”, or their any other variants are intended to cover a non-exclusive inclusion, so a process, a method, a product or a device that includes a list of elements not only includes those elements but also includes other elements which are not expressly listed, or further includes elements inherent to such process, method, product or device. Without more constraints, an element preceded by “includes a . . . ” does not preclude the existence of additional identical elements in the process, method, product or device that includes the element.
- Specific implementations of the present specification are described above. Other implementations fall within the scope of the appended claims. In some situations, the actions or steps described in the claims can be performed in an order different from the order in the implementations and the desired results can still be achieved. In addition, the process depicted in the accompanying drawings does not necessarily need a particular execution order to achieve the desired results. In some implementations, multi-tasking and concurrent processing is feasible or can be advantageous.
- Terms used in one or more implementations of the present specification are merely used to describe specific implementations, and are not intended to limit the one or more implementations of the present specification. The terms “a” and “the” of singular forms used in one or more implementations of the present specification and the appended claims are also intended to include plural forms, unless otherwise specified in the context clearly. It should be further understood that the term “and/or” used in the present specification indicates and includes any or all possible combinations of one or more associated listed items.
- It should be understood that although terms “first”, “second”, “third”, etc. can be used in one or more implementations of the present specification to describe various types of information, the information is not limited to these terms. These terms are only used to differentiate between information of the same type. For example, without departing from the scope of one or more implementations of the present specification, first information can also be referred to as second information, and similarly, the second information can be referred to as the first information. Depending on the context, for example, the word “if” used here can be explained as “while”, “when”, or “in response to determining”.
- The previous descriptions are only example implementations of one or more implementations of the present specification, but are not intended to limit the one or more implementations of the present specification. Any modification, equivalent replacement, improvement, etc. made without departing from the spirit and principle of the one or more implementations of the present specification shall fall within the protection scope of the one or more implementations of the present specification.
Claims (21)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/185,522 US20210184836A1 (en) | 2019-07-31 | 2021-02-25 | Providing data authorization based on blockchain |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910704682.7 | 2019-07-31 | ||
CN201910704682.7A CN110473096A (en) | 2019-07-31 | 2019-07-31 | Data grant method and device based on intelligent contract |
PCT/CN2020/072038 WO2021017433A1 (en) | 2019-07-31 | 2020-01-14 | Data authorization method and device employing smart contract |
US16/779,228 US11057189B2 (en) | 2019-07-31 | 2020-01-31 | Providing data authorization based on blockchain |
US17/185,522 US20210184836A1 (en) | 2019-07-31 | 2021-02-25 | Providing data authorization based on blockchain |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/779,228 Continuation US11057189B2 (en) | 2019-07-31 | 2020-01-31 | Providing data authorization based on blockchain |
Publications (1)
Publication Number | Publication Date |
---|---|
US20210184836A1 true US20210184836A1 (en) | 2021-06-17 |
Family
ID=70770188
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/779,228 Active US11057189B2 (en) | 2019-07-31 | 2020-01-31 | Providing data authorization based on blockchain |
US17/185,522 Abandoned US20210184836A1 (en) | 2019-07-31 | 2021-02-25 | Providing data authorization based on blockchain |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/779,228 Active US11057189B2 (en) | 2019-07-31 | 2020-01-31 | Providing data authorization based on blockchain |
Country Status (1)
Country | Link |
---|---|
US (2) | US11057189B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11398914B2 (en) | 2019-07-31 | 2022-07-26 | Advanced New Technologies Co., Ltd. | Blockchain-based data authorization method and apparatus |
US11831656B2 (en) | 2019-07-31 | 2023-11-28 | Advanced New Technologies Co., Ltd. | Providing data authorization based on blockchain |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11529918B2 (en) | 2019-09-02 | 2022-12-20 | Toyota Motor North America, Inc. | Adjustment of environment of transports |
US11362826B2 (en) * | 2020-03-18 | 2022-06-14 | International Business Machines Corporation | Endorsement process for non-deterministic application |
SG11202102366SA (en) | 2020-06-08 | 2021-04-29 | Alipay Labs Singapore Pte Ltd | User management of blockchain-based custom clearance service platform |
CN111868725B (en) | 2020-06-08 | 2024-05-24 | 支付宝实验室(新加坡)有限公司 | Processing import customs clearance data based on blockchain |
SG11202102583UA (en) | 2020-06-08 | 2021-04-29 | Alipay Labs Singapore Pte Ltd | Blockchain-based document registration for custom clearance |
SG11202103063PA (en) | 2020-06-08 | 2021-04-29 | Alipay Labs Singapore Pte Ltd | Managing user authorizations for blockchain-based custom clearance services |
SG11202103081RA (en) | 2020-06-08 | 2021-04-29 | Alipay Labs Singapore Pte Ltd | Distributed storage of custom clearance data |
EP3841491B1 (en) | 2020-06-08 | 2023-08-02 | Alipay Labs (Singapore) Pte. Ltd. | Blockchain-based smart contract pools |
CN112714117B (en) * | 2020-08-24 | 2022-11-01 | 支付宝(杭州)信息技术有限公司 | Service processing method, device, equipment and system |
CN111770199B (en) | 2020-08-31 | 2020-12-08 | 支付宝(杭州)信息技术有限公司 | Information sharing method, device and equipment |
US11599527B2 (en) * | 2020-09-21 | 2023-03-07 | International Business Machines Corporation | Optimizing distributed ledger storage and battery usage in iot devices |
CN112202633B (en) * | 2020-09-24 | 2022-07-12 | 成都质数斯达克科技有限公司 | Block chain network testing method and device, electronic equipment and readable storage medium |
CN112528335B (en) * | 2020-12-17 | 2023-04-21 | 山大地纬软件股份有限公司 | Data open sharing method, system, storage medium and equipment based on block chain |
CN113051343B (en) * | 2020-12-30 | 2024-07-05 | 上海零数众合信息科技有限公司 | Data circulation method based on block chain |
CN112818014B (en) * | 2020-12-31 | 2022-07-26 | 杭州趣链科技有限公司 | Block chain data analysis method and device and electronic equipment |
CN112910858B (en) * | 2021-01-18 | 2022-08-02 | 中国工商银行股份有限公司 | Method and node for determining alliance chain transaction statistical information and transaction processing |
CN112632096B (en) * | 2021-03-09 | 2021-05-18 | 中航信移动科技有限公司 | Stroke list data processing system based on block chain |
CN113326991B (en) * | 2021-06-24 | 2023-04-07 | 深圳平安智汇企业信息管理有限公司 | Automatic authorization method, device, computer equipment and storage medium |
CN113626523B (en) * | 2021-08-09 | 2024-01-30 | 北京神州数码方圆科技有限公司 | DID-based blockchain data exchange method and system |
US11477025B1 (en) * | 2021-09-22 | 2022-10-18 | Uab 360 It | Managing access to data |
US11928702B1 (en) * | 2022-12-02 | 2024-03-12 | Inmar Clearing, Inc. | Blockchain based shopper information processing system and related methods |
CN116663026B (en) * | 2023-06-01 | 2024-01-26 | 北京网藤科技有限公司 | Block chain-based data processing method and device, electronic equipment and medium |
Family Cites Families (123)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6947556B1 (en) | 2000-08-21 | 2005-09-20 | International Business Machines Corporation | Secure data storage and retrieval with key management and user authentication |
US20180152442A1 (en) | 2003-12-22 | 2018-05-31 | Guardtime Ip Holdings Limited | Blockchain-supported, hash tree-based digital signature infrastructure |
US7467399B2 (en) | 2004-03-31 | 2008-12-16 | International Business Machines Corporation | Context-sensitive confidentiality within federated environments |
US7483943B2 (en) | 2004-09-21 | 2009-01-27 | Microsoft Corporation | Reliable messaging using clocks with synchronized rates |
US8621554B1 (en) * | 2009-05-01 | 2013-12-31 | Google Inc. | User privacy framework |
KR101184865B1 (en) | 2011-07-20 | 2012-09-20 | 주식회사 하렉스인포텍 | Complex payment system using a portable terminal and the method thereof |
CN103034813A (en) | 2012-11-26 | 2013-04-10 | 蓝盾信息安全技术股份有限公司 | Method and system for protecting data of mobile terminal |
US20230196328A1 (en) | 2013-02-14 | 2023-06-22 | Advanced New Technologies Co., Ltd. | Data interaction method and device, and offline credit payment method and device |
US20150326556A1 (en) * | 2013-05-07 | 2015-11-12 | Badu Networks Inc. | Universal login authentication service |
US9424132B2 (en) | 2013-05-30 | 2016-08-23 | International Business Machines Corporation | Adjusting dispersed storage network traffic due to rebuilding |
FR3015168A1 (en) | 2013-12-12 | 2015-06-19 | Orange | TOKEN AUTHENTICATION METHOD |
US9547834B2 (en) * | 2014-01-08 | 2017-01-17 | Bank Of America Corporation | Transaction performance monitoring |
US20150228018A1 (en) | 2014-02-10 | 2015-08-13 | Datalex (Ireland) Limited | System, method, and program products for compiling credits issued by a travel product provider |
US9525668B2 (en) | 2014-06-27 | 2016-12-20 | Intel Corporation | Face based secure messaging |
AU2016324172A1 (en) | 2015-09-17 | 2018-04-19 | Washlava, Inc. | System for commercial laundry services and facilities |
US20180089651A9 (en) | 2015-11-06 | 2018-03-29 | Cable Television Laboratories, Inc | Blockchaining systems and methods for frictionless media |
US9992028B2 (en) * | 2015-11-26 | 2018-06-05 | International Business Machines Corporation | System, method, and computer program product for privacy-preserving transaction validation mechanisms for smart contracts that are included in a ledger |
US10037436B2 (en) | 2015-12-11 | 2018-07-31 | Visa International Service Association | Device using secure storage and retrieval of data |
US10248783B2 (en) * | 2015-12-22 | 2019-04-02 | Thomson Reuters (Grc) Llc | Methods and systems for identity creation, verification and management |
CN106933548B (en) | 2015-12-29 | 2021-01-12 | 阿里巴巴集团控股有限公司 | Global information obtaining, processing and updating method, device and system |
CN105610865A (en) | 2016-02-18 | 2016-05-25 | 中国银联股份有限公司 | Method and device for authenticating identity of user based on transaction data |
CN115391749A (en) | 2016-02-23 | 2022-11-25 | 区块链控股有限公司 | Method and system for protecting computer software using distributed hash table and blockchain |
CN108885745B (en) | 2016-02-23 | 2023-06-30 | 区块链控股有限公司 | Blockchain-based exchange with tokenization |
US10720232B2 (en) | 2016-04-13 | 2020-07-21 | Accenture Global Solutions Limited | Distributed healthcare records management |
US10046228B2 (en) | 2016-05-02 | 2018-08-14 | Bao Tran | Smart device |
US10108954B2 (en) * | 2016-06-24 | 2018-10-23 | PokitDok, Inc. | System and method for cryptographically verified data driven contracts |
GB201611948D0 (en) | 2016-07-08 | 2016-08-24 | Kalypton Int Ltd | Distributed transcation processing and authentication system |
WO2018039312A1 (en) | 2016-08-23 | 2018-03-01 | BBM Health LLC | Blockchain-based mechanisms for secure health information resource exchange |
US11657176B2 (en) * | 2016-08-23 | 2023-05-23 | Health Blockchain Convergence, Inc. | Blockchain-based mechanisms for secure health information resource exchange |
KR101781583B1 (en) * | 2016-08-31 | 2017-09-27 | 서강대학교산학협력단 | File management and search system based on block chain and file management and search method |
CN107846345A (en) * | 2016-09-18 | 2018-03-27 | 阿里巴巴集团控股有限公司 | The means of communication and device |
US9838203B1 (en) | 2016-09-28 | 2017-12-05 | International Business Machines Corporation | Integrity protected trusted public key token with performance enhancements |
US11115205B2 (en) | 2016-09-29 | 2021-09-07 | Nokia Technologies Oy | Method and apparatus for trusted computing |
CN106600405B (en) | 2016-11-17 | 2021-06-22 | 复旦大学 | Block chain-based data rights and interests protection method |
CN106991317B (en) | 2016-12-30 | 2020-01-21 | 中国银联股份有限公司 | Security verification method, platform, device and system |
US11631077B2 (en) | 2017-01-17 | 2023-04-18 | HashLynx Inc. | System for facilitating secure electronic communications between entities and processing resource transfers |
TW201828200A (en) | 2017-01-24 | 2018-08-01 | 阿里巴巴集團服務有限公司 | Data processing method and apparatus increasing the overall display efficiency of the object display environment and decreasing the waste of display resources of each object display environment |
JP6931999B2 (en) * | 2017-02-06 | 2021-09-08 | 株式会社日立製作所 | Credit management system and credit management method |
US10225078B2 (en) * | 2017-02-09 | 2019-03-05 | International Business Machines Corporation | Managing a database management system using a blockchain database |
WO2018152519A1 (en) * | 2017-02-20 | 2018-08-23 | AlphaPoint | Performance of distributed system functions using a trusted execution environment |
US20200394652A1 (en) * | 2017-03-08 | 2020-12-17 | Ip Oversight Corporation | A method for creating commodity assets from unrefined commodity reserves utilizing blockchain and distributed ledger technology |
WO2018175666A1 (en) | 2017-03-21 | 2018-09-27 | Dappsters, LLC | Blockchain systems and methods |
US10762479B2 (en) | 2017-04-05 | 2020-09-01 | Samsung Sds Co., Ltd. | Method and system for processing blockchain-based real-time transaction |
GB201706071D0 (en) | 2017-04-18 | 2017-05-31 | Nchain Holdings Ltd | Computer-implemented system and method |
US10742393B2 (en) * | 2017-04-25 | 2020-08-11 | Microsoft Technology Licensing, Llc | Confidentiality in a consortium blockchain network |
US10176308B2 (en) * | 2017-04-28 | 2019-01-08 | Accenture Global Solutions Limited | Entitlement management system |
CN107453865B (en) | 2017-07-18 | 2020-09-11 | 众安信息技术服务有限公司 | Multi-party data sharing method and system for protecting privacy of data sending source |
CN107545419B (en) | 2017-07-19 | 2021-07-13 | 招商银行股份有限公司 | Remittance processing method, system and computer readable storage medium |
TWI629604B (en) | 2017-07-20 | 2018-07-11 | 中華電信股份有限公司 | Data set transaction and computing resource integration method |
US10735202B2 (en) | 2017-07-24 | 2020-08-04 | International Business Machines Corporation | Anonymous consent and data sharing on a blockchain |
CN107391944A (en) | 2017-07-27 | 2017-11-24 | 北京太云科技有限公司 | A kind of electronic health record shared system based on block chain |
CN107483211B (en) * | 2017-08-10 | 2020-05-05 | 北方工业大学 | Individualized k-anonymous privacy protection and excitation method based on block chain |
CN109462472A (en) | 2017-09-06 | 2019-03-12 | 阿里巴巴集团控股有限公司 | The methods, devices and systems of data encryption and decryption |
US10361870B2 (en) | 2017-09-14 | 2019-07-23 | The Toronto-Dominion Bank | Management of cryptographically secure exchanges of data using permissioned distributed ledgers |
US20190116038A1 (en) * | 2017-10-12 | 2019-04-18 | Rivetz Corp. | Attestation With Embedded Encryption Keys |
US11582040B2 (en) | 2017-10-20 | 2023-02-14 | Hewlett Packard Enterprise Development Lp | Permissions from entities to access information |
CN111164588A (en) * | 2017-12-04 | 2020-05-15 | 索尼公司 | Information processing apparatus, information processing method, and program |
US11715099B2 (en) | 2017-12-20 | 2023-08-01 | Mastercard International Incorporated | Method and system for trust-based payments via blockchain |
WO2019127531A1 (en) | 2017-12-29 | 2019-07-04 | 深圳前海达闼云端智能科技有限公司 | Block chain-based data processing method and apparatus, storage medium and electronic device |
US10896418B2 (en) | 2017-12-29 | 2021-01-19 | Ebay Inc. | Secure management of data files using a blockchain |
US20190207751A1 (en) * | 2018-01-04 | 2019-07-04 | Bank Of America Corporation | Blockchain enterprise data management |
US11296863B2 (en) * | 2018-01-04 | 2022-04-05 | Bank Of America Corporation | Blockchain enterprise data management |
US11551212B2 (en) * | 2018-01-10 | 2023-01-10 | Rajeev Malhotra | Methods and systems for management of a blockchain-based computer-enabled networked ecosystem |
CN107942718A (en) * | 2018-01-15 | 2018-04-20 | 天津大学 | Intelligent home furnishing control method and system based on block chain |
US20190229921A1 (en) | 2018-01-22 | 2019-07-25 | Allen Pulsifer | Private Multi-Secret Cryptographic Transaction System |
CN108234515B (en) | 2018-01-25 | 2020-07-24 | 中国科学院合肥物质科学研究院 | Self-authentication digital identity management system and method based on intelligent contract |
TWM561279U (en) | 2018-02-12 | 2018-06-01 | 林俊良 | Blockchain system and node server for processing strategy model scripts of financial assets |
US11188897B2 (en) * | 2018-02-13 | 2021-11-30 | Bank Of America Corporation | Multi-tiered digital wallet security |
US11153069B2 (en) * | 2018-02-27 | 2021-10-19 | Bank Of America Corporation | Data authentication using a blockchain approach |
US20190295202A1 (en) | 2018-03-23 | 2019-09-26 | Ca, Inc. | Blockchain records associated with search warrant |
FR3079322B1 (en) | 2018-03-26 | 2021-07-02 | Commissariat Energie Atomique | METHOD AND SYSTEM FOR MANAGING ACCESS TO PERSONAL DATA BY MEANS OF A SMART CONTRACT |
FR3079323B1 (en) * | 2018-03-26 | 2020-04-17 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | METHOD AND SYSTEM FOR ACCESSING ANONYMISED DATA |
US20180240085A1 (en) * | 2018-04-04 | 2018-08-23 | Dmitry Balachov | Two-level Blockchain-based identity and transaction framework for loyalty system |
US10742397B2 (en) | 2018-04-26 | 2020-08-11 | Jonathan Sean Callan | Method and system for managing decentralized data access permissions through a blockchain |
CN110602050B (en) | 2018-04-28 | 2022-01-07 | 腾讯科技(深圳)有限公司 | Authentication method and device for block chain access, storage medium and electronic device |
US10749676B2 (en) * | 2018-05-01 | 2020-08-18 | Americorp Investments Llc | Distributed consent protecting data across systems and services |
US20190340352A1 (en) * | 2018-05-03 | 2019-11-07 | Ivan JC Peeters | Method for producing dynamic password identification for users such as machines |
US10855448B2 (en) | 2018-05-03 | 2020-12-01 | Honeywell International Inc. | Apparatus and method for using blockchains to establish trust between nodes in industrial control systems or other systems |
CN108881160A (en) | 2018-05-07 | 2018-11-23 | 北京信任度科技有限公司 | Medical treatment & health data managing method and system based on block chain intelligence contract |
CN108681898B (en) | 2018-05-15 | 2021-09-17 | 广东工业大学 | Data transaction method and system based on block chain |
US11244059B2 (en) * | 2018-05-17 | 2022-02-08 | International Business Machines Corporation | Blockchain for managing access to medical data |
US11301856B2 (en) * | 2018-05-24 | 2022-04-12 | Mastercard International Incorporated | Method and system for transaction authorization via controlled blockchain |
CN108932297B (en) | 2018-06-01 | 2022-03-22 | 创新先进技术有限公司 | Data query method, data sharing method, device and equipment |
TWI685767B (en) | 2018-06-07 | 2020-02-21 | 艾維克科技股份有限公司 | Decentralized software information creation system and method |
CN109033846A (en) | 2018-06-08 | 2018-12-18 | 浙江捷尚人工智能研究发展有限公司 | Privacy of user guard method and system |
CN109034833B (en) | 2018-06-16 | 2021-07-23 | 复旦大学 | Product tracing information management system and method based on block chain |
US10834062B2 (en) | 2018-06-20 | 2020-11-10 | International Business Machines Corporation | Unlinking ownership of successive asset transfers on a blockchain |
CN109003078B (en) * | 2018-06-27 | 2021-08-24 | 创新先进技术有限公司 | Intelligent contract calling method and device based on block chain and electronic equipment |
US11138608B2 (en) * | 2018-06-28 | 2021-10-05 | International Business Machines Corporation | Authorizing multiparty blockchain transactions via one-time passwords |
US20200013046A1 (en) * | 2018-07-07 | 2020-01-09 | Raymond Anthony Joao | Apparatus and method for providing transaction security and/or account security |
US20200027169A1 (en) * | 2018-07-21 | 2020-01-23 | Renato Valencia | Blockchain-enabled double entry recordkeeping system and method of implementing the same |
US20200026834A1 (en) * | 2018-07-23 | 2020-01-23 | One Kosmos Inc. | Blockchain identity safe and authentication system |
US20200034457A1 (en) | 2018-07-24 | 2020-01-30 | Ernst & Young U.S.LLP | System and methods for organizing and inter-relating hierarchical data files using a distributed database |
CN108985089B (en) | 2018-08-01 | 2020-08-07 | 清华大学 | Internet data sharing system |
CN109214197B (en) | 2018-08-14 | 2021-07-27 | 上海点融信息科技有限责任公司 | Method, apparatus and storage medium for processing private data based on block chain |
US11057366B2 (en) | 2018-08-21 | 2021-07-06 | HYPR Corp. | Federated identity management with decentralized computing platforms |
US20200074518A1 (en) * | 2018-08-28 | 2020-03-05 | Blocklyncs Llc | Digital data management |
US20200082933A1 (en) * | 2018-09-07 | 2020-03-12 | International Business Machines Corporation | Pre-authorization process using blockchain |
US11245576B2 (en) * | 2018-09-07 | 2022-02-08 | Dell Products L.P. | Blockchain-based configuration profile provisioning system |
CN109344647A (en) | 2018-09-12 | 2019-02-15 | 上海点融信息科技有限责任公司 | For the access credentials generation method of block chain network, data access method, storage medium, calculate equipment |
CN109067791B (en) | 2018-09-25 | 2020-05-12 | 阿里巴巴集团控股有限公司 | User identity authentication method and device in network |
CN109190410B (en) | 2018-09-26 | 2020-05-19 | 华中科技大学 | Log behavior auditing method based on block chain in cloud storage environment |
CN109347941A (en) | 2018-10-10 | 2019-02-15 | 南京简诺特智能科技有限公司 | A kind of data sharing platform and its implementation based on block chain |
US20200118131A1 (en) * | 2018-10-11 | 2020-04-16 | International Business Machines Corporation | Database transaction compliance |
US10880074B2 (en) * | 2018-10-15 | 2020-12-29 | Adobe Inc. | Smart contract platform for generating and customizing smart contracts |
US11250411B2 (en) | 2018-10-16 | 2022-02-15 | American Express Travel Related Services Company, Inc. | Secure mobile checkout system |
CN109636503A (en) | 2018-11-06 | 2019-04-16 | 福建省辅城网络科技有限公司 | It is a kind of to be traded based on social commodity customization commercial on line and deposit card method |
CN109639643B (en) | 2018-11-12 | 2022-08-30 | 平安科技(深圳)有限公司 | Block chain-based client manager information sharing method, electronic device and readable storage medium |
CN109450910B (en) | 2018-11-26 | 2021-03-30 | 远光软件股份有限公司 | Data sharing method based on block chain, data sharing network and electronic equipment |
CN110929288B (en) | 2018-12-07 | 2021-06-01 | 深圳市智税链科技有限公司 | Method for generating public key certificate, certificate authority and medium |
WO2020150228A1 (en) * | 2019-01-15 | 2020-07-23 | Youngblood Ip Holdings, Llc | Health data exchange platform |
US20200272619A1 (en) * | 2019-02-21 | 2020-08-27 | Fiducia DLT LTD | Method and system for audit and payment clearing of electronic trading systems using blockchain database |
GB201903141D0 (en) * | 2019-03-08 | 2019-04-24 | Univ Cape Town | System and associated method for ensuring data privacy |
US20200304474A1 (en) | 2019-03-21 | 2020-09-24 | Aaron Kisko | Method and system for secure communication |
US10600050B1 (en) * | 2019-03-22 | 2020-03-24 | Onli, Inc. | Secure custody of a ledger token and/or a quantity of cryptocurrency of a distributed ledger network through binding to a possession token |
CN110011996B (en) | 2019-03-26 | 2021-05-25 | 创新先进技术有限公司 | Application authorization method and device based on block chain and electronic equipment |
CN110032865B (en) | 2019-03-28 | 2022-01-25 | 腾讯科技(深圳)有限公司 | Authority management method, device and storage medium |
CN110060162B (en) | 2019-03-29 | 2023-10-27 | 创新先进技术有限公司 | Data authorization and query method and device based on block chain |
CN109977697A (en) | 2019-04-03 | 2019-07-05 | 陕西医链区块链集团有限公司 | Data authorization method of block chain |
CN111316303B (en) * | 2019-07-02 | 2023-11-10 | 创新先进技术有限公司 | Systems and methods for blockchain-based cross-entity authentication |
CN110457875B (en) | 2019-07-31 | 2021-04-27 | 创新先进技术有限公司 | Data authorization method and device based on block chain |
CN110473094B (en) | 2019-07-31 | 2021-05-18 | 创新先进技术有限公司 | Data authorization method and device based on block chain |
CN110473096A (en) | 2019-07-31 | 2019-11-19 | 阿里巴巴集团控股有限公司 | Data grant method and device based on intelligent contract |
-
2020
- 2020-01-31 US US16/779,228 patent/US11057189B2/en active Active
-
2021
- 2021-02-25 US US17/185,522 patent/US20210184836A1/en not_active Abandoned
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11398914B2 (en) | 2019-07-31 | 2022-07-26 | Advanced New Technologies Co., Ltd. | Blockchain-based data authorization method and apparatus |
US11831656B2 (en) | 2019-07-31 | 2023-11-28 | Advanced New Technologies Co., Ltd. | Providing data authorization based on blockchain |
Also Published As
Publication number | Publication date |
---|---|
US11057189B2 (en) | 2021-07-06 |
US20200169388A1 (en) | 2020-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11057189B2 (en) | Providing data authorization based on blockchain | |
US11831656B2 (en) | Providing data authorization based on blockchain | |
WO2021017433A1 (en) | Data authorization method and device employing smart contract | |
WO2021017444A1 (en) | Blockchain-based data authorization method and device | |
US11398914B2 (en) | Blockchain-based data authorization method and apparatus | |
US11310051B2 (en) | Blockchain-based data authorization method and apparatus | |
WO2021017441A1 (en) | Blockchain-based data authorization method and apparatus | |
WO2021179743A1 (en) | Method and apparatus for querying account privacy information in blockchain | |
CN110580418B (en) | Private data query method and device based on block chain account | |
WO2021088536A1 (en) | Off-chain authorization-based private data query method and apparatus | |
US11238447B2 (en) | Blockchain transactions with ring signatures | |
US11233660B2 (en) | Confidential blockchain transactions | |
US20210318996A1 (en) | Methods, apparatuses, and devices for transferring data assets based on blockchain | |
US11258614B2 (en) | Ring signature-based anonymous transaction | |
US20210314164A1 (en) | Block content editing methods and apparatuses | |
CN111475850B (en) | Intelligent contract-based privacy data query method and device | |
WO2020233635A1 (en) | Receipt storage method combining conditional restrictions of multiple types of dimensions and node | |
CN110580412A (en) | Permission query configuration method and device based on chain codes | |
CN115118485A (en) | Method and device for acquiring data based on block chain |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: ALIBABA GROUP HOLDING LIMITED, CAYMAN ISLANDS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:WEI, CHANGZHENG;YAN, YING;ZHANG, HUI;AND OTHERS;SIGNING DATES FROM 20200825 TO 20200831;REEL/FRAME:055459/0086 Owner name: ADVANCED NEW TECHNOLOGIES CO., LTD., CAYMAN ISLANDS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ADVANTAGEOUS NEW TECHNOLOGIES CO., LTD.;REEL/FRAME:055469/0401 Effective date: 20200910 Owner name: ADVANTAGEOUS NEW TECHNOLOGIES CO., LTD., CAYMAN ISLANDS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ALIBABA GROUP HOLDING LIMITED;REEL/FRAME:055473/0463 Effective date: 20200826 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |