WO2020119294A1 - 数据共享方法、装置及系统、电子设备 - Google Patents

数据共享方法、装置及系统、电子设备 Download PDF

Info

Publication number
WO2020119294A1
WO2020119294A1 PCT/CN2019/113863 CN2019113863W WO2020119294A1 WO 2020119294 A1 WO2020119294 A1 WO 2020119294A1 CN 2019113863 W CN2019113863 W CN 2019113863W WO 2020119294 A1 WO2020119294 A1 WO 2020119294A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
index
blockchain
requester
sharing
Prior art date
Application number
PCT/CN2019/113863
Other languages
English (en)
French (fr)
Inventor
吴军
Original Assignee
阿里巴巴集团控股有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 阿里巴巴集团控股有限公司 filed Critical 阿里巴巴集团控股有限公司
Priority to EP19896819.0A priority Critical patent/EP3816837B1/en
Priority to SG11202100959RA priority patent/SG11202100959RA/en
Publication of WO2020119294A1 publication Critical patent/WO2020119294A1/zh
Priority to US17/163,337 priority patent/US20210160068A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6272Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database by registering files or documents with a third party
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6263Protecting personal data, e.g. for financial or medical purposes during internet communication, e.g. revealing personal data from cookies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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/3239Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3263Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic 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 embodiments of this specification relate to the field of blockchain technology, and in particular, to a data sharing method, device and system, and electronic equipment.
  • the common data sharing mode is the hosting mode, that is, the data center hosts the data of each member, and the subsequent processing of the data completely depends on the data center.
  • Another common data sharing mode is the aggregation mode, that is, the data is controlled by different members, and the data center only serves the function of linking and matching. Because the data center has the ability and opportunity to retain the shared data, so that with the data sharing The continuous progress of the aggregation model will gradually develop into a hosting model.
  • one or more embodiments of this specification provide a data sharing method, device and system, and electronic equipment.
  • a data sharing system including:
  • each member maintains private data that can be shared, and generates corresponding ciphertext index information for the private data.
  • the ciphertext index information includes the ciphertext index of the corresponding private data and the member who provides the private data Information;
  • a sharing platform which is connected to each member separately, and records the ciphertext index information generated by each member on the index blockchain to share among all members; the sharing platform will be the data requesting member
  • the initiated data acquisition request is forwarded to the data provider member, the data acquisition request includes the ciphertext index of the target data, and the shared platform also forwards the target data returned by the data provider member to the data request Party member, wherein the target data is encrypted by the identity public key of the data requesting party member.
  • a data sharing method which is applied as a member of a data requester, and the method includes:
  • the response data is encrypted by the identity public key of the data requester.
  • a data sharing method which is applied as a member of a data provider, and the method includes:
  • Response data is returned to the data requester through the sharing platform, and the response data is encrypted by the identity public key of the data requester.
  • a data sharing method is proposed, which is applied to a sharing platform.
  • the method includes:
  • the index information set contains the ciphertext index of the target data and the member information of the data provider of the target data.
  • the index information set is determined by The data provider submits to the shared platform;
  • the response data provided by the data provider is returned to the data requester, and the response data is encrypted by the identity public key of the data requester.
  • a data sharing device which is applied as a member of a data requester, and the device includes:
  • the determining unit determines an index information set recorded in the index blockchain corresponding to the target data, where the index information set includes the ciphertext index of the target data and member information of the data provider of the target data, the index The information set is shared by the data provider to the index blockchain;
  • the request unit initiates a data acquisition request to the data provider through a sharing platform, the data acquisition request includes a ciphertext index of the target data;
  • the receiving unit receives the response data returned by the sharing platform, and the response data is encrypted by the identity public key of the data requester.
  • a data sharing device which is applied as a member of a data provider, and the device includes:
  • a sharing unit sharing the index information set corresponding to the target data to the index blockchain, the index information set including the ciphertext index of the target data and the member information of the data provider;
  • the receiving unit receives a data acquisition request initiated by a data requester through a shared platform, and the data acquisition request includes a ciphertext index of the target data;
  • a return unit returns response data to the data requester through the shared platform, and the response data is encrypted by the identity public key of the data requester.
  • a data sharing device which is applied to a sharing platform and includes:
  • the first publishing unit publishes the index information set corresponding to the target data to the index blockchain.
  • the index information set includes the ciphertext index of the target data and the member information of the data provider of the target data.
  • the index information set is submitted by the data provider to the shared platform;
  • a forwarding unit which forwards a data acquisition request initiated by a data requester to the data provider, where the data acquisition request includes a ciphertext index of the target data;
  • the returning unit returns the response data provided by the data provider to the data requester, and the response data is encrypted by the identity public key of the data requester.
  • an electronic device including:
  • Memory for storing processor executable instructions
  • the processor executes the executable instruction to implement the method described in the first aspect above.
  • an electronic device including:
  • Memory for storing processor executable instructions
  • the processor executes the executable instruction to implement the method described in the second aspect above.
  • an electronic device including:
  • Memory for storing processor executable instructions
  • the processor executes the executable instruction to implement the method described in the third aspect above.
  • FIG. 1 is a flowchart of a data sharing method provided by an exemplary embodiment.
  • FIG. 2 is a flowchart of another data sharing method provided by an exemplary embodiment.
  • FIG. 3 is a flowchart of yet another data sharing method provided by an exemplary embodiment.
  • FIG. 4 is a schematic structural diagram of a data sharing system provided by an exemplary embodiment.
  • FIG. 5 is an interactive schematic diagram of a data sharing process provided by an exemplary embodiment.
  • FIG. 6 is a schematic diagram of an identity authentication interaction provided by an exemplary embodiment.
  • FIG. 7 is a schematic structural diagram of a record application package provided by an exemplary embodiment.
  • FIG. 8 is a schematic structural diagram of a data acquisition request packet provided by an exemplary embodiment.
  • FIG. 9 is a schematic structural diagram of a response packet provided by an exemplary embodiment.
  • FIG. 10 is a schematic structural diagram of a complaint request package provided by an exemplary embodiment.
  • FIG. 11 is a schematic structural diagram of an apparatus provided by an exemplary embodiment.
  • FIG. 12 is a block diagram of a data sharing device provided by an exemplary embodiment.
  • FIG. 13 is a schematic structural diagram of another device provided by an exemplary embodiment.
  • FIG. 14 is a block diagram of another data sharing device provided by an exemplary embodiment.
  • 15 is a schematic structural diagram of yet another device provided by an exemplary embodiment.
  • FIG. 16 is a block diagram of yet another data sharing device provided by an exemplary embodiment.
  • the steps of the corresponding method are not necessarily performed in the order shown and described in this specification.
  • the method may include more or fewer steps than described in this specification.
  • the single step described in this specification may be decomposed into multiple steps for description in other embodiments; and the multiple steps described in this specification may also be combined into a single step in other embodiments. description.
  • FIG. 1 is a flowchart of a data sharing method provided by an exemplary embodiment. As shown in FIG. 1, this method is applied to members who are data requestors and may include the following steps:
  • Step 102 Determine an index information set recorded in the index blockchain corresponding to the target data, where the index information set includes the ciphertext index of the target data and member information of the data provider of the target data, the index The information set is shared by the data provider to the index blockchain.
  • multiple members can implement data sharing based on the technical solution of this specification. There are different roles in the sharing process: if member A initiates a data acquisition request to user B, and user B maintains the private When the data is returned to member A, member A plays the role of data requester and user B plays the role of data provider. Each member may play the role of data requestor or data provider, and this specification does not limit this.
  • the index information set corresponding to these private data can be published to the index blockchain and recorded to all the blockchain nodes maintained by the index blockchain.
  • each member can learn the index information set corresponding to the private data maintained by each member based on the index blockchain ledger.
  • the shared platform may be configured as a node of the index blockchain, and each member may generate an index information set for the private data maintained by them, and send the index information set to the shared platform, so that the shared platform Submit to the index blockchain. And each member can query the index blockchain ledger through the shared platform or other blockchain nodes, or each member can download the ledger data of the index blockchain ledger from the shared platform or other blockchain nodes to send to themselves Query the index information set of the shared platform to determine whether the shared platform has published the index information set to the index blockchain.
  • each member is configured as a blockchain node of the index blockchain, so that each member can generate a set of index information for the private data maintained by itself, and submit the index information to the index blockchain by including Collective blockchain transactions to publish the collection of index information to the index blockchain without relying on a shared platform.
  • the shared platform may be configured as a node of the index blockchain, that is, the shared platform maintains an index blockchain ledger corresponding to the index blockchain.
  • the member as the data requester can generate the corresponding ciphertext index based on the specific information of the known target data (for example, when the target data is a transaction record, the specific information can include the transaction user ID corresponding to the transaction record, etc.) (Such as the hash value of specific information) and initiate a query request to the shared platform, where the query request includes the ciphertext index to instruct the shared platform to query the indexed blockchain for inclusion
  • the index information set of the ciphertext index is the index information set corresponding to the ciphertext index that is retrieved and queried by the sharing platform according to the ciphertext index.
  • a member as a data requestor may request to download the ledger data of the index blockchain maintained by the shared platform (that is, data of the index blockchain ledger), and the data requester itself reconciles the ledger according to the ciphertext index The data is searched to find out the index information set containing the ciphertext index.
  • the data requester is configured as a node of the index blockchain.
  • the member as the data requester can generate a corresponding ciphertext index based on the specific information of the target data known, and query the account data of the index blockchain maintained by the data requester The index information set containing the ciphertext index does not need to depend on the sharing platform.
  • the shared platform since the private data is maintained by each member, and the shared platform can only access the index information corresponding to the private data (contained in the above-mentioned index information set), the shared platform can be prevented from obtaining private data and breaching regulations. Private data.
  • the index blockchain to record the index information collection
  • the blockchain data structure of the blockchain can be used to ensure that the index information collection that has been on the chain cannot be modified at will, and can be used for query and verification by the sharing platform and various members , With extremely high reliability.
  • index information related to private data in the index information collection recorded on the index blockchain is ciphertext indexed and presented in the form of ciphertext
  • the private data actually held by the data provider will not be disclosed to the sharing platform Content, it will not reveal what kind of data is requested by the data requester, and has extremely high privacy.
  • Step 104 Initiate a data acquisition request to the data provider through the sharing platform, where the data acquisition request includes the ciphertext index of the target data.
  • the data requester can learn the information of the data provider contained in the index information set, that is, the data provider corresponding to the target data is determined, and the target platform is initiated to the sharing platform. Data acquisition request from the data provider.
  • the data acquisition request further includes: the identity public key of the data requester and the signature of the data requester generated by the identity private key of the data requester, so that the data provider obtains the After the data acquisition request, the identity public key can be extracted from the data acquisition request to verify the signature of the data requester. If the verification is successful, it is determined that the data acquisition request is indeed from the data requester.
  • the data acquisition request may not include the identity public key of the data requester, for example, it may contain an identity unique to the data requester, and the data provider may select the data request obtained in advance accordingly.
  • the party’s identity public key is used to verify the signature of the data requester.
  • Step 106 Receive response data returned by the shared platform, and the response data is encrypted by the identity public key of the data requester.
  • the data provider determines the plaintext index according to the ciphertext index included in the data acquisition request and the mapping relationship between the ciphertext index and the plaintext index maintained by itself, and queries the corresponding based on the plaintext index
  • the private data is returned to the shared platform as the aforementioned response data, and forwarded to the data requester by the shared platform.
  • the data provider can also maintain the mapping relationship between the ciphertext index and private data, so as to directly query the corresponding private data according to the ciphertext index.
  • the response data is encrypted by using the identity public key of the data requester, so that only the data requester can decrypt the response data through its own identity private key, even if the response data is forwarded by the shared platform
  • the shared platform can only obtain response data in encrypted state, thus eliminating the possibility of the shared platform depositing and leaking private data.
  • the response data further includes: a data provider signature generated by the data provider's identity private key, so that the data requester can perform verification based on the data provider's identity public key. Passing then determines that the response data is indeed from the data provider.
  • the index information set includes the hash value of the target data; the data requester may hash the decrypted data corresponding to the response data and hash it with the index information set Value comparison, when the calculated hash value is consistent with the hash value in the index information set, it can be determined that the decrypted data is the target data, indicating that the data provider does own the relevant data and has no unintentional or Intentionally provide wrong data, and no data corruption or data replacement occurs during data transmission, which can also indicate that the content of the index information set provided by the data provider to the index blockchain is consistent with the actual private data it owns, and there is no fraud .
  • the data requester may initiate a complaint request for the target data to the shared platform, the complaint request includes a complaint reason and related data; wherein, when the complaint reason is used by the shared platform or When the smart contract invoked by the sharing platform in the index blockchain is verified to be established based on the relevant data, the index information set is added with an invalid identifier in the index blockchain, and the Index information collection cannot be used for data sharing.
  • the type of related data included in the complaint request may also be different, and needs to be determined according to the actual situation.
  • the relevant data may include information about the data held by the data requester and information about the complained data, so that the two are confirmed to be consistent and the index information of the data held by the data requester is collected in the index
  • the height of the block on the blockchain is relatively small (that is, submitted to the index blockchain earlier), it can be determined that the reason for the complaint is established.
  • the relevant data may include the target data obtained by the data requester, the corresponding index information set, and the historical record of the target data obtained by the data requester from the data provider, etc., so that the sharing platform can According to the historical records, it is determined that the target data comes from the data provider, and the shared platform can calculate the hash value of the target data and compare it with the hash value contained in the index information set, so that when the comparison result is inconsistent, it is determined that the reason for the complaint is established .
  • the data requester may submit a complaint-type transaction to the index blockchain to retrieve a smart contract for handling the complaint, wherein the transaction includes the complaint reason and related data; wherein, the smart The contract is used to verify the complaint reason based on the relevant data, and when the complaint reason is verified to be established, add an invalid identifier to the index information set in the index blockchain. Because the smart contract is recorded in the index blockchain, the processing logic of the smart contract is open and cannot be tampered with. At the same time, the smart contract is automatically executed to avoid the interference of external factors, which can ensure that the verification result of the smart contract is reasonable and reliable.
  • the data requester may post a data sharing event between itself and the data provider to the transaction blockchain, where the data requester is configured as a node of the transaction blockchain.
  • the data requester may send the data sharing event to the sharing platform to be published by the sharing platform to the transaction blockchain, wherein the sharing platform is configured for the transaction Blockchain nodes.
  • the transaction blockchain is different from the above-mentioned index blockchain.
  • the transaction blockchain is used to record data sharing events between various members for subsequent query and verification.
  • the independent index blockchain and transaction blockchain the data of the index information collection and the data of data sharing events can be separated from each other, especially the index blockchain needs to frequently implement index query operations, which helps to improve The query efficiency of the index information collection.
  • FIG. 2 is a flowchart of another data sharing method provided by an exemplary embodiment. As shown in Figure 2, this method is applied to members who are data providers and can include the following steps:
  • Step 202 Share the index information set corresponding to the target data to the index blockchain.
  • the index information set includes the ciphertext index of the target data and the member information of the data provider.
  • multiple members can implement data sharing based on the technical solution of this specification. There are different roles in the sharing process: if member A initiates a data acquisition request to user B, and user B maintains the private When the data is returned to member A, member A plays the role of data requester and user B plays the role of data provider. Each member may play the role of data requestor or data provider, and this specification does not limit this.
  • the index information set corresponding to these private data can be published to the index blockchain and recorded to all the blockchain nodes maintained by the index blockchain.
  • each member can learn the index information set corresponding to the private data maintained by each member based on the index blockchain ledger.
  • the shared platform may be configured as a node of the index blockchain, and each member may generate an index information set for the private data maintained by them, and send the index information set to the shared platform, so that the shared platform Submit to the index blockchain. And each member can query the index blockchain ledger through the shared platform or other blockchain nodes, or each member can download the ledger data of the index blockchain ledger from the shared platform or other blockchain nodes to send to themselves Query the index information set of the shared platform to determine whether the shared platform has published the index information set to the index blockchain.
  • each member is configured as a blockchain node of the index blockchain, so that each member can generate an index information set for the private data maintained by itself, and submit the index information to the index blockchain by including Collective blockchain transactions to publish the collection of index information to the index blockchain without relying on a shared platform.
  • a member as a data requestor may request to download the ledger data of the index blockchain maintained by the shared platform (that is, data of the index blockchain ledger), and the data requester itself reconciles the ledger according to the ciphertext index The data is searched to find out the index information set containing the ciphertext index.
  • the data requester is configured as a node of the index blockchain.
  • the member as the data requester can generate a corresponding ciphertext index based on the specific information of the target data known, and query the account data of the index blockchain maintained by the data requester The index information set containing the ciphertext index does not need to depend on the sharing platform.
  • the shared platform since the private data is maintained by each member, and the shared platform can only access the index information corresponding to the private data (contained in the above-mentioned index information set), the shared platform can be prevented from obtaining private data and breaching regulations. Private data.
  • the index blockchain to record the index information collection
  • the blockchain data structure of the blockchain can be used to ensure that the index information collection that has been on the chain cannot be modified at will, and can be used for query and verification by the sharing platform and various members , With extremely high reliability.
  • index information related to private data in the index information collection recorded on the index blockchain is ciphertext indexed and presented in the form of ciphertext
  • the private data actually held by the data provider will not be disclosed to the sharing platform Content, it will not reveal what kind of data is requested by the data requester, and has extremely high privacy.
  • Step 204 Receive a data acquisition request initiated by a data requester through a shared platform, where the data acquisition request includes a ciphertext index of the target data.
  • the data requester can learn the information of the data provider included in the index information set, that is, the data provider corresponding to the target data is determined, and the target platform is initiated to the sharing platform. Data acquisition request from the data provider.
  • the data acquisition request further includes: the identity public key of the data requester and the signature of the data requester generated by the identity private key of the data requester, so that the data provider obtains the After the data acquisition request, the identity public key can be extracted from the data acquisition request to verify the signature of the data requester. If the verification is successful, it is determined that the data acquisition request is indeed from the data requester.
  • the data acquisition request may not include the identity public key of the data requester, for example, it may contain an identity unique to the data requester, and the data provider may select the data request obtained in advance accordingly.
  • the party’s identity public key is used to verify the signature of the data requester.
  • Step 206 Return response data to the data requester through the shared platform, the response data is encrypted by the identity public key of the data requester.
  • the data provider determines the plaintext index according to the ciphertext index included in the data acquisition request and the mapping relationship between the ciphertext index and the plaintext index maintained by itself, and queries the corresponding based on the plaintext index
  • the private data is returned to the shared platform as the aforementioned response data, and forwarded to the data requester by the shared platform.
  • the data provider can also maintain the mapping relationship between the ciphertext index and private data, so as to directly query the corresponding private data according to the ciphertext index.
  • the response data is encrypted by using the identity public key of the data requester, so that only the data requester can decrypt the response data through its own identity private key, even if the response data is forwarded by the shared platform
  • the shared platform can only obtain response data in encrypted state, thus eliminating the possibility of the shared platform depositing and leaking private data.
  • the response data further includes: a data provider signature generated by the data provider's identity private key, so that the data requester can perform verification based on the data provider's identity public key. Passing then determines that the response data is indeed from the data provider.
  • the index information set includes the hash value of the target data; the data requester may hash the decrypted data corresponding to the response data and hash it with the index information set Value comparison, when the calculated hash value is consistent with the hash value in the index information set, it can be determined that the decrypted data is the target data, indicating that the data provider does own the relevant data and has no unintentional or Deliberately provide wrong data, and no data corruption or data replacement occurs during data transmission. It can also indicate that the content of the index information set provided by the data provider to the index blockchain is consistent with the actual private data it owns, and there is no fraud. .
  • the data provider may post a data sharing event between itself and the data requester to the transaction blockchain, where the data provider is configured as a node of the transaction blockchain.
  • the data provider may send the data sharing event to the sharing platform to be published by the sharing platform to the transaction blockchain, wherein the sharing platform is configured for the transaction Blockchain nodes.
  • the transaction blockchain is different from the above-mentioned index blockchain.
  • the transaction blockchain is used to record data sharing events between various members for subsequent query and verification.
  • the independent index blockchain and transaction blockchain the data of the index information collection and the data of data sharing events can be separated from each other, especially the index blockchain needs to frequently implement index query operations, which helps to improve The query efficiency of the index information collection.
  • FIG. 3 is a flowchart of yet another data sharing method provided by an exemplary embodiment. As shown in FIG. 3, this method is applied to a shared platform and may include the following steps:
  • Step 302 Publish the index information set corresponding to the target data to the index blockchain.
  • the index information set includes the ciphertext index of the target data and the member information of the data provider of the target data.
  • the index information The collection is submitted to the shared platform by the data provider.
  • multiple members can implement data sharing based on the technical solution of this specification. There are different roles in the sharing process: if member A initiates a data acquisition request to user B, and user B maintains the private When the data is returned to member A, member A plays the role of data requester and user B plays the role of data provider. Each member may play the role of data requestor or data provider, and this specification does not limit this.
  • the index information set corresponding to these private data can be published to the index blockchain and recorded to all the blockchain nodes maintained by the index blockchain.
  • each member can learn the index information set corresponding to the private data maintained by each member based on the index blockchain ledger.
  • the shared platform may be configured as a node of the index blockchain, and each member may generate an index information set for the private data maintained by them, and send the index information set to the shared platform, so that the shared platform Submit to the index blockchain. And each member can query the index blockchain ledger through the shared platform or other blockchain nodes, or each member can download the ledger data of the index blockchain ledger from the shared platform or other blockchain nodes to send to themselves Query the index information set of the shared platform to determine whether the shared platform has published the index information set to the index blockchain.
  • each member is configured as a blockchain node of the index blockchain, so that each member can generate an index information set for the private data maintained by itself, and submit the index information to the index blockchain by including Collective blockchain transactions to publish the collection of index information to the index blockchain without relying on a shared platform.
  • the shared platform may be configured as a node of the index blockchain, that is, the shared platform maintains an index blockchain ledger corresponding to the index blockchain.
  • the member as the data requester can generate the corresponding ciphertext index based on the specific information of the known target data (for example, when the target data is a transaction record, the specific information can include the transaction user ID corresponding to the transaction record, etc.) (Such as the hash value of specific information) and initiate a query request to the shared platform, where the query request includes the ciphertext index to instruct the shared platform to query the indexed blockchain for inclusion
  • the index information set of the ciphertext index is the index information set corresponding to the ciphertext index that is retrieved and queried by the sharing platform according to the ciphertext index.
  • a member as a data requestor may request to download the ledger data of the index blockchain maintained by the shared platform (that is, data of the index blockchain ledger), and the data requester itself reconciles the ledger according to the ciphertext index The data is searched to find out the index information set containing the ciphertext index.
  • the data requester is configured as a node of the index blockchain.
  • the member as the data requester can generate a corresponding ciphertext index based on the specific information of the target data known, and query the account data of the index blockchain maintained by the data requester The index information set containing the ciphertext index does not need to depend on the sharing platform.
  • the shared platform since the private data is maintained by each member, and the shared platform can only access the index information corresponding to the private data (contained in the above-mentioned index information set), the shared platform can be prevented from obtaining private data and breaching regulations. Private data.
  • the index blockchain to record the index information collection
  • the blockchain data structure of the blockchain can be used to ensure that the index information collection that has been on the chain cannot be modified at will, and can be used for query and verification by the sharing platform and various members , With extremely high reliability.
  • index information related to private data in the index information collection recorded on the index blockchain is ciphertext indexed and presented in the form of ciphertext
  • the private data actually held by the data provider will not be disclosed to the sharing platform Content, it will not reveal what kind of data is requested by the data requester, and has extremely high privacy.
  • Step 304 Forward the data acquisition request initiated by the data requester to the data provider, where the data acquisition request includes the ciphertext index of the target data.
  • the data requester can learn the information of the data provider included in the index information set, that is, the data provider corresponding to the target data is determined, and the target platform is initiated to the sharing platform. Data acquisition request from the data provider.
  • the data acquisition request further includes: the identity public key of the data requester and the signature of the data requester generated by the identity private key of the data requester, so that the data provider obtains the After the data acquisition request, the identity public key can be extracted from the data acquisition request to verify the signature of the data requester. If the verification is successful, it is determined that the data acquisition request is indeed from the data requester.
  • the data acquisition request may not include the identity public key of the data requester, for example, it may contain an identity unique to the data requester, and the data provider may select the data request obtained in advance accordingly.
  • the party’s identity public key is used to verify the signature of the data requester.
  • Step 306 Return the response data provided by the data provider to the data requester, and the response data is encrypted by the identity public key of the data requester.
  • the data provider determines the plaintext index according to the ciphertext index included in the data acquisition request and the mapping relationship between the ciphertext index and the plaintext index maintained by itself, and queries the corresponding based on the plaintext index
  • the private data is returned to the shared platform as the aforementioned response data, and forwarded to the data requester by the shared platform.
  • the data provider can also maintain the mapping relationship between the ciphertext index and private data, so as to directly query the corresponding private data according to the ciphertext index.
  • the response data is encrypted by using the identity public key of the data requester, so that only the data requester can decrypt the response data through its own identity private key, even if the response data is forwarded by the shared platform
  • the shared platform can only obtain response data in encrypted state, thus eliminating the possibility of the shared platform depositing and leaking private data.
  • the response data further includes: a data provider signature generated by the data provider's identity private key, so that the data requester can perform verification based on the data provider's identity public key. Passing then determines that the response data is indeed from the data provider.
  • the index information set includes the hash value of the target data; the data requester may hash the decrypted data corresponding to the response data and hash it with the index information set Value comparison, when the calculated hash value is consistent with the hash value in the index information set, it can be determined that the decrypted data is the target data, indicating that the data provider does own the relevant data and has no unintentional or Deliberately provide wrong data, and no data corruption or data replacement occurs during data transmission. It can also indicate that the content of the index information set provided by the data provider to the index blockchain is consistent with the actual private data it owns, and there is no fraud. .
  • the relevant data may include information about the data held by the data requester and information about the complained data, so that the two are confirmed to be consistent and the index information of the data held by the data requester is collected in the index
  • the height of the block on the blockchain is relatively small (that is, submitted to the index blockchain earlier), it can be determined that the reason for the complaint is established.
  • the relevant data may include the target data obtained by the data requester, the corresponding index information set, and the historical record of the target data obtained by the data requester from the data provider, etc., so that the sharing platform can According to the historical records, it is determined that the target data comes from the data provider, and the shared platform can calculate the hash value of the target data and compare it with the hash value contained in the index information set, so that when the comparison result is inconsistent, it is determined that the reason for the complaint is established .
  • the sharing platform may determine a data sharing event between the data requester and the data provider, and publish the data sharing event to the transaction blockchain, wherein the sharing platform is A node configured as the transaction blockchain.
  • the transaction blockchain is different from the above-mentioned index blockchain.
  • the transaction blockchain is used to record data sharing events between various members for subsequent query and verification.
  • the independent index blockchain and transaction blockchain the data of the index information collection and the data of data sharing events can be separated from each other, especially the index blockchain needs to frequently implement index query operations, which helps to improve The query efficiency of the index information collection.
  • the transfer described in this specification refers to a piece of data that a user creates through a client of the blockchain and needs to be finally released to the distributed database of the blockchain.
  • the narrow sense of the transaction refers to a value transfer issued by the user to the blockchain; for example, in the traditional Bitcoin blockchain network, the transaction can be a transfer initiated by the user in the blockchain.
  • the generalized transaction refers to a piece of business data with business intent published by the user to the blockchain; for example, the operator can build an alliance chain based on actual business needs, relying on the alliance chain to deploy some other types that have nothing to do with value transfer Online services (for example, data sharing services, rental services, vehicle scheduling services, insurance claims services, credit services, medical services, etc.), and in this type of alliance chain, transactions can be a sum of money posted by users in the alliance chain.
  • FIG. 4 is a schematic structural diagram of a data sharing system provided by an exemplary embodiment.
  • the data sharing system may include: a sharing platform and several members, such as members 1 to 6 shown in FIG. 4, each member maintains private data that can be shared, and the sharing platform is connected to each One member, so as to achieve data sharing between various members.
  • FIG. 5 is an interactive schematic diagram of a data sharing process provided by an exemplary embodiment; as shown in FIG. 5, the data sharing process may include the following steps:
  • step 501a the institution 1 joins the member 1 associated with the shared platform by performing identity authentication on the shared platform.
  • the members in the data sharing system may include organizations that manage data; or, the members in the data sharing system may also include individuals or other types of organizations other than organizations, etc., which are not limited in this specification .
  • FIG. 6 is a schematic diagram of an identity authentication interaction provided by an exemplary embodiment; as shown in FIG. 6, in step 601, institution 1 sends a membership application to the sharing platform, and the member joins the application It may contain the identification information of the institution 1 (such as business license, legal person information, qualification certificate, etc., this specification does not limit this), so that the sharing platform can confirm the true identity information of the institution 1 accordingly; in step 602, share The platform reviews and confirms the identity information of Institution 1 based on the above-mentioned membership application; in step 603, after checking and confirming the identity information, the sharing platform sends an admission permission notification to Institution 1; in step 604, Institution 1 submits to the sharing platform Send a digital certificate.
  • institution 1 sends a membership application to the sharing platform, and the member joins the application It may contain the identification information of the institution 1 (such as business license, legal person information, qualification certificate, etc., this specification does not limit this), so that the sharing platform can confirm the true identity information of the institution 1 accordingly; in step 602, share The platform reviews
  • This digital certificate can be issued by a third-party CA (Certificate Authority) or generated by the organization 1.
  • This manual does not limit this; in step 605, the shared platform converts the digital certificate and the identity information of the organization 1 (That is, the identity information verified and verified in step 602).
  • the institution 1 uses the private key of the digital certificate to the public key pool data for the pre-generated public and private key pool (including any number of public and private key pairs).
  • step 607 the shared platform performs signature verification on the public key pool data through the public key of the digital certificate, and after the verification is passed, the public key pool data contains the public key
  • the key is associated with the above-mentioned identity information of the organization 1, so that the public key is used as the identity of the organization 1.
  • the institution 1 can complete the identity authentication at the shared platform, thereby authenticating the institution 1 as a member associated with the shared platform, such as the member 1 described above.
  • step 501b the organization 2 joins the member 2 associated with the shared platform by performing identity authentication on the shared platform.
  • the institution 2 may use a similar method and process as the institution 1 to authenticate itself as the above-mentioned member 2; similarly, other institutions may also authenticate themselves as the corresponding members accordingly. Repeat again.
  • step 502a member 1 generates a record application package and uploads it to the sharing platform.
  • member 1 maintains certain private data, and in order to share these private data, member 1 can generate a corresponding record application package for the private data maintained by itself, and then publish to the index blockchain through the sharing platform in.
  • FIG. 7 is a schematic structural diagram of a record application package provided by an exemplary embodiment.
  • the record application package may include the hash value of the subject identification ID, the subject description information, the hash value of the information content, the public key of the data provider, the information price, and the private key signature of the data provider. The manual does not limit this.
  • step 502b member 2 generates a record application package and uploads it to the sharing platform.
  • member 2 can generate a record application package with the structure shown in FIG. 7 for the private data maintained by itself; similarly, other members can generate a record application package for the private data maintained by themselves, which will not be repeated here .
  • step 503 the shared platform verifies the received record application package, and releases the index record to the index blockchain for the verified record application package.
  • the sharing platform may extract the "data provider's public key" contained in the record application package, and verify that the public key is in the member public key pool, and the member public key pool contains the public of all authenticated members. Key; if it is in the member public key pool, indicating that the public key belongs to a valid member, the shared platform can use the public key to verify the "data provider's private key signature" contained in the record application package. After confirming that the record application package is indeed from the corresponding member, the verification is completed. If the verification fails, the sharing platform can discard the corresponding record application package.
  • the sharing platform can generate corresponding index records for the package of application records that have been verified; where the sharing platform has been configured as a blockchain node that indexes the blockchain, the sharing platform can Submit the blockchain transaction containing the index record in the index blockchain, and then publish the index record in the index blockchain, so that the index record is recorded in the blockchain ledger corresponding to the index blockchain.
  • the index record may also include a "subject information description" in the record application package, which is used to define the private data maintained by member 1
  • the description of the degree is equivalent to the declaration of the content of the private data by member 1, so that other members can determine whether they need to obtain the relevant private data.
  • the subject information description may include "records from May 2018 to June 2018", indicating that it corresponds to the merchant sales record within this period of time.
  • the index record may also include the "hash value of the information content" in the record application package.
  • the "information content” is the private data maintained by the member 1.
  • the hash value of the private data is generated to facilitate the data requester to verify the integrity and correctness of the data content after obtaining the relevant private data, which will be described in step 509.
  • the index record may also contain the price of information, which indicates the price that other members need to pay to obtain the corresponding private data.
  • the price of information indicates the price that other members need to pay to obtain the corresponding private data.
  • asset certificates such as membership points, vouchers, currency balances, etc.
  • this manual does not limit this.
  • the shared platform can generate the corresponding index record and publish it to the index blockchain.
  • the generation process and the content of the index record can refer to the above description, which will not be repeated here.
  • step 504 the sharing platform queries the blockchain ledger corresponding to the index blockchain according to the query request initiated by member 1.
  • step 505 the sharing platform returns the corresponding query result to member 1 according to the query of the blockchain ledger.
  • the shared platform serves as the blockchain node of the indexed blockchain, maintaining the blockchain ledger of the indexed blockchain.
  • the blockchain ledger contains all the data of the indexed blockchain, that is, the shared platform is recorded All index records uploaded to the index blockchain.
  • Step 506 The sharing platform obtains the data acquisition request initiated by member 1, and forwards it to the corresponding data provider.
  • the member 1 obtains the service address included in the index record according to the index record included in the query result, so that the member 1 can initiate a data acquisition request to the service address.
  • the service address is maintained by the shared platform, and the shared platform can clarify the mapping relationship between the service address and related members; for example, when the service address corresponds to member 2, if the shared platform receives member 1 to initiate the service address The data acquisition request, the sharing platform can forward the data acquisition request to member 2, that is, member 2 is used as the corresponding data provider.
  • step 507 member 2 performs a verification operation on the received data acquisition request.
  • FIG. 8 is a schematic structural diagram of a data acquisition request packet provided by an exemplary embodiment.
  • the data acquisition request package is a representation of the data structure of the above data acquisition request, and may include the hash value of the subject identification ID, the public key of the data requester, and the position of the existing signature in the index blockchain , The private key signature of the data requester, etc., this specification does not limit this.
  • the verification operation performed by member 2 may include: determining that the corresponding data requester is a valid member at the sharing platform based on “the position of the existing signature in the index blockchain”; extracting “ “Data requester's public key” to verify the "data requester's private key signature”.
  • step 508 member 2 generates a response packet and returns to the shared platform, which is forwarded to member 1 by the shared platform.
  • the member 2 may extract the “hash value of the subject identification ID” contained in the data acquisition request, and retrieve the private data maintained by itself based on the ciphertext index to determine the corresponding response data.
  • the private data maintained by member 2 does not necessarily support the retrieval operation based on the ciphertext index; for example, member 2 can maintain the mapping relationship between the ciphertext index and the plaintext index, based on which the plaintext index corresponding to the ciphertext index is determined, and then based on The clear text index searches private data to determine the corresponding response data.
  • member 2 encapsulates the retrieved response data to generate a corresponding response packet.
  • FIG. 9 is a schematic structural diagram of a response packet provided by an exemplary embodiment.
  • the response packet may include the hash value of the subject identification ID, the description of the subject information, the hash value of the information content, etc., so that the member 1 can determine the index record corresponding to the response packet.
  • the response packet may include the public key of the data requesting party, so that the shared platform determines that the response target of the response packet is member 1 accordingly, so that the response packet is sent to member 1.
  • the response packet may include encrypted data content, which is obtained by the member 2 encrypting the response data according to the public key of the data requester.
  • the response packet may include the private key signature of the data provider, that is, the private key signature of the member 2.
  • step 509 member 1 performs a verification operation on the received response packet.
  • the verification operation of the response packet by member 1 may include: verifying the signature of the private key according to the public key of the data provider. If the verification is successful, it indicates that the response packet is indeed from the corresponding data provider. Decrypt the encrypted data content through the public key of member 1 to obtain the decrypted data, that is, the above response data provided by member 2. Among them, since member 1 may have multiple public keys, it can be included in the response package. Verifies the public key of the data requester of, and determines that the public key is the public key owned by member 1 itself, and uses the public key to decrypt the encrypted data content.
  • member 1 after obtaining the decrypted data, member 1 can generate a hash value of the decrypted data and compare it with the “hash value of information content” in the response packet; when the comparison result is consistent , It can be determined that the response packet is not damaged during transmission. Member 1 can compare the hash value of the decrypted data with the "hash value of information content" contained in the previously obtained index record; when the comparison result is consistent, it can be determined that member 2 provides the correct data, and the response packet is It was not maliciously replaced during transmission.
  • member 1 can determine the description content of the decrypted data; for example, when the decrypted data is a merchant sales record, the description content can include the month corresponding to the merchant sales record, if the month is "May 2018- “June 2018", and the subject information is described as "Records from May 2018 to June 2018", indicating that the data provided by Member 2 is consistent with the information declared in the index blockchain.
  • member 1 needs to pay the relevant price to member 2 before he can obtain the data provided by member 2.
  • the sharing platform can serve as a third party between each member, so that member 1 can transfer the corresponding amount of member points to the sharing platform according to the information price marked in the index record, so that the sharing platform forwards the data acquisition request To member 2; and when member 2 returns the response package, or after member 1 confirms the receipt of the response package, the sharing platform can transfer the corresponding member points to member 2, which is equivalent to the completion of a sum between member 1 and member 2 Data sharing transactions.
  • the sharing platform when configured as a blockchain node that trades the blockchain, the sharing platform can submit a blockchain transaction to the transaction blockchain, which includes between member 1 and member 2
  • the transaction records of the above data sharing transactions can be reliably recorded in the data sharing transactions, and can be queried and verified at any time.
  • step 510 member 1 may initiate a complaint request to the sharing platform.
  • step 511 the sharing platform can verify the complaint request.
  • Step 512 when the complaint request is confirmed to be verified, the sharing platform may add an invalid identifier to the corresponding index record in the index blockchain.
  • FIG. 10 is a schematic structural diagram of a complaint request package provided by an exemplary embodiment.
  • the complaint request package is a manifestation of the data structure of the above complaint request, and may include: a package type, which is used to indicate that the type of the current data package is a "complaint request package"; index information of the complained data, such as The cipher text index or index record corresponding to the complaint data; the data content, the plain text data content; the reason for the complaint, such as the obtained data does not match the "subject information description" in the index record, the obtained data is false data, and the obtained data is itself Or the data maintained by other members are the same (for example, after member 2 purchases the data from member 1, generate and upload the corresponding record application package to add the data maintained by itself, infringing the rights of member 1), etc., this manual does not address this Restricted; the private key signature of the complainant.
  • the sharing platform can obtain the relevant index record based on the "index information of the complained data", extract the hash value of the relevant data, and Calculate the hash value of the plaintext data content in the "data content", if the two hash values are consistent, it indicates that the plaintext data content is the data corresponding to the relevant index record; Compare the "Subject Information Description" declared in to determine whether there is a discrepancy between the two.
  • the sharing platform may submit a blockchain transaction to the index blockchain.
  • the content of the blockchain transaction includes: adding to the index record of the complained data
  • the invalid mark makes the corresponding state parameter of the "index record of the complained data" change in the blockchain ledger, that is, it is marked as invalid.
  • the index records marked as invalid cannot be shared, which can be filtered and verified by the sharing platform.
  • the sharing platform can also implement disciplinary measures against the data provider of the complained data, such as restricting the range of data that it can obtain, increasing the price of the data it obtains, and depriving its membership. This manual does not limit this.
  • the sharing platform can supervise the data sharing process to ensure the standardization and quality of the data provided by the members, to combat members who maliciously provide duplicate data, and so on.
  • the sharing platform can check suspicious data or its data providers at the request of members; for another example, the sharing platform can obtain relevant data from relevant members as ordinary members through data spot checks Verify the data's normativeness, authenticity, and consistency with the statement.
  • FIG. 11 is a schematic structural diagram of a device provided by an exemplary embodiment. Please refer to FIG. 11.
  • the device includes a processor 1102, an internal bus 1104, a network interface 1106, a memory 1108, and a non-volatile memory 1110. Of course, it may include hardware required for other services.
  • the processor 1102 reads the corresponding computer program from the non-volatile memory 1110 into the memory 1108 and then runs it to form a data sharing device at a logical level.
  • one or more embodiments of this specification do not exclude other implementations, such as a logic device or a combination of software and hardware, etc., that is to say, the execution body of the following processing flow is not limited to each
  • the logic unit may also be a hardware or logic device.
  • the data sharing device is applied as a member of the data requester, and the device may include:
  • the determining unit 1201 determines an index information set recorded in the index blockchain corresponding to the target data, where the index information set includes the ciphertext index of the target data and member information of the data provider of the target data, the The index information set is shared by the data provider to the index blockchain;
  • the requesting unit 1202 initiates a data acquisition request to the data provider through a shared platform, the data acquisition request includes a ciphertext index of the target data;
  • the receiving unit 1203 receives the response data returned by the shared platform, and the response data is encrypted by the identity public key of the data requester.
  • the shared platform is configured as a node of the index blockchain; the determination unit 1201 is specifically configured to:
  • the data requester is configured as a node of the index blockchain; the determining unit 1201 is specifically configured to:
  • the data acquisition request further includes: an identity public key of the data requester and a signature of the data requester generated by the identity private key of the data requester for verification by the data provider.
  • the response data further includes: a data provider signature generated by the data provider's identity private key for verification by the data requester.
  • the index information set includes the hash value of the target data; the device further includes:
  • the calculation unit 1204 performs hash calculation on the decrypted data corresponding to the response data
  • the determining unit 1205 determines that the decrypted data is the target data when the calculated hash value is consistent with the hash value in the index information set.
  • Optional also includes:
  • the complaint unit 1206 initiates a complaint request for the target data to the shared platform, where the complaint request contains the reason for the complaint and related data;
  • the index information is collected in the index area Invalid identifiers are added to the blockchain.
  • Optional also includes:
  • the submission unit 1207 submits a complaint-type transaction to the index blockchain to retrieve a smart contract for handling complaints, where the transaction contains the complaint reason and related data;
  • the smart contract is used to verify the reason for the complaint based on the relevant data, and when the reason for the complaint is verified to be established, an invalid identifier is added to the index information set in the index blockchain.
  • it also includes: a publishing unit 1208 or a sending unit 1209;
  • the issuing unit 1208 is configured to publish a data sharing event between the data requester and the data provider to a transaction blockchain, where the data requester is configured as a node of the transaction blockchain;
  • the sending unit 1209 is configured to send the data sharing event to the sharing platform to be published by the sharing platform to the transaction blockchain, wherein the sharing platform is configured as the transaction blockchain node.
  • the device includes a processor 1302, an internal bus 1304, a network interface 1306, a memory 1308, and a non-volatile memory 1310. Of course, it may include hardware required for other services.
  • the processor 1302 reads the corresponding computer program from the non-volatile memory 1310 into the memory 1308 and then runs it to form a data sharing device at a logical level.
  • one or more embodiments of this specification do not exclude other implementations, such as a logic device or a combination of software and hardware, etc., that is to say, the execution body of the following processing flow is not limited to each
  • the logic unit may also be a hardware or logic device.
  • the data sharing device is applied as a member of a data provider, and the device may include:
  • the sharing unit 1401 shares the index information set corresponding to the target data to the index blockchain, where the index information set includes the ciphertext index of the target data and the member information of the data provider;
  • the receiving unit 1402 receives a data acquisition request initiated by a data requester through a shared platform, where the data acquisition request includes a ciphertext index of the target data;
  • the return unit 1403 returns response data to the data requester through the shared platform, and the response data is encrypted by the identity public key of the data requester.
  • the data acquisition request further includes: an identity public key of the data requester and a signature of the data requester generated by the identity private key of the data requester for verification by the data provider.
  • the response data further includes: a data provider signature generated by the data provider's identity private key for verification by the data requester.
  • the sharing unit 1401 is specifically used to:
  • the index information set is submitted to the shared platform for publication by the shared platform to the index blockchain, where the shared platform is configured as a node of the index blockchain.
  • it also includes: a publishing unit 1404 or a sending unit 1405;
  • the publishing unit 1404 is configured to publish a data sharing event between the data requester and the data provider to the transaction blockchain, where the data provider is configured as a node of the transaction blockchain;
  • the sending unit 1405 is used to send the data sharing event to the sharing platform to be published by the sharing platform to the transaction blockchain, wherein the sharing platform is configured as the transaction blockchain node.
  • the device includes a processor 1502, an internal bus 1504, a network interface 1506, a memory 1508, and a non-volatile memory 1510. Of course, it may include hardware required for other services.
  • the processor 1502 reads the corresponding computer program from the non-volatile memory 1510 into the memory 1508 and then runs it to form a data sharing device at a logical level.
  • one or more embodiments of this specification do not exclude other implementations, such as a logic device or a combination of software and hardware, etc., that is to say, the execution body of the following processing flow is not limited to each
  • the logic unit may also be a hardware or logic device.
  • the data sharing device is applied to a sharing platform, and the device may include:
  • the first publishing unit 1601 publishes the index information set corresponding to the target data to the index blockchain, where the index information set contains the ciphertext index of the target data and the member information of the data provider of the target data.
  • the index information set is submitted by the data provider to the sharing platform;
  • the forwarding unit 1602 forwards the data acquisition request initiated by the data requester to the data provider, where the data acquisition request includes the ciphertext index of the target data;
  • the returning unit 1603 returns the response data provided by the data provider to the data requester, and the response data is encrypted by the identity public key of the data requester.
  • Optional also includes:
  • the first receiving unit 1604 receives a query request initiated by the data requester, where the query request includes a ciphertext index generated according to known specific information of the target data;
  • the query unit 1605 queries the index information set containing the ciphertext index from the index blockchain to inform the data requester.
  • Optional also includes:
  • the second receiving unit 1606 receives the data request and initiates a complaint request for the target data to the shared platform, where the complaint request contains the reason for the complaint and related data;
  • the adding unit 1607 when verifying that the reason for the complaint is established based on the relevant data, adds an invalid identifier to the index information set in the index blockchain.
  • Optional also includes:
  • the determining unit 1608 determines a data sharing event between the data requester and the data provider
  • the second publishing unit 1609 publishes the data sharing event to the transaction blockchain, wherein the sharing platform is configured as a node of the transaction blockchain.
  • the system, device, module or unit explained in the above embodiments may be specifically implemented by a computer chip or entity, or implemented by a product with a certain function.
  • a typical implementation device is a computer, and the specific form of the computer may be a personal computer, a laptop computer, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email sending and receiving device, and a game control Desk, tablet computer, wearable device, or any combination of these devices.
  • the computer includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
  • processors CPUs
  • input/output interfaces network interfaces
  • memory volatile and non-volatile memory
  • the memory may include non-permanent memory, random access memory (RAM) and/or non-volatile memory in computer-readable media, such as read only memory (ROM) or flash memory (flash RAM). Memory is an example of computer-readable media.
  • RAM random access memory
  • ROM read only memory
  • flash RAM flash random access memory
  • Computer-readable media including permanent and non-permanent, removable and non-removable media, can store information by any method or technology.
  • the information may be computer readable instructions, data structures, modules of programs, or other data.
  • Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, read-only compact disc read-only memory (CD-ROM), digital versatile disc (DVD) or other optical storage, Magnetic tape cassettes, magnetic disk storage, quantum memory, graphene-based storage media or other magnetic storage devices or any other non-transmission media can be used to store information that can be accessed by computing devices.
  • computer-readable media does not include temporary computer-readable media (transitory media), such as modulated data signals and carrier waves.
  • first, second, third, etc. may use the terms first, second, third, etc. to describe various information, the information should not be limited to these terms. These terms are only used to distinguish the same type of information from each other.
  • first information may also be referred to as second information, and similarly, the second information may also be referred to as first information.
  • word "if” as used herein may be interpreted as "when” or “when” or “in response to a determination”.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本说明书一个或多个实施例提供一种数据共享方法、装置及系统、电子设备,当应用于作为数据请求方的成员时,所述方法包括:确定索引区块链中记录的对应于目标数据的索引信息集合,所述索引信息集合包含所述目标数据的密文索引和所述目标数据的数据提供方的成员信息,所述索引信息集合由所述数据提供方共享至所述索引区块链;通过共享平台向所述数据提供方发起数据获取请求,所述数据获取请求包含所述目标数据的密文索引;接收所述共享平台返回的响应数据,所述响应数据由所述数据请求方的身份公钥进行加密。

Description

数据共享方法、装置及系统、电子设备 技术领域
本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种数据共享方法、装置及系统、电子设备。
背景技术
在相关技术中,不同成员之间可以实现数据共享。比如,常见的数据共享模式为托管模式,即数据中心对各个成员的数据进行托管,而对于数据的后续处理完全依赖于数据中心。另一种常见的数据共享模式为聚合模式,即数据由不同成员各自控制、数据中心仅起到链接和撮合的功能,而由于数据中心有能力和机会留存被共享的数据,使得随着数据共享的不断进行,聚合模式会逐步发展为托管模式。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种数据共享方法、装置及系统、电子设备。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种数据共享系统,包括:
成员,每一成员分别维护有可共享的私有数据,并为所述私有数据生成相应的密文索引信息,所述密文索引信息包含对应的私有数据的密文索引和提供该私有数据的成员的信息;
共享平台,所述共享平台分别连接至每一成员,并将每一成员生成的密文索引信息记录于索引区块链,以在所有成员之间进行共享;所述共享平台将数据请求方成员发起的数据获取请求转发至数据提供方成员,所述数据获取请求包含目标数据的密文索引,且所述共享平台还将所述数据提供方成员返回的所述目标数据转发至所述数据请求方成员,其中所述目标数据由所述数据请求方成员的身份公钥进行加密。
根据本说明书一个或多个实施例的第二方面,提出了一种数据共享方法,应用于作为数据请求方的成员,所述方法包括:
确定索引区块链中记录的对应于目标数据的索引信息集合,所述索引信息集合包含 所述目标数据的密文索引和所述目标数据的数据提供方的成员信息,所述索引信息集合由所述数据提供方共享至所述索引区块链;
通过共享平台向所述数据提供方发起数据获取请求,所述数据获取请求包含所述目标数据的密文索引;
接收所述共享平台返回的响应数据,所述响应数据由所述数据请求方的身份公钥进行加密。
根据本说明书一个或多个实施例的第三方面,提出了一种数据共享方法,应用于作为数据提供方的成员,所述方法包括:
将对应于目标数据的索引信息集合共享至索引区块链,所述索引信息集合包含所述目标数据的密文索引和所述数据提供方的成员信息;
接收数据请求方通过共享平台发起的数据获取请求,所述数据获取请求包含所述目标数据的密文索引;
通过所述共享平台向所述数据请求方返回响应数据,所述响应数据由所述数据请求方的身份公钥进行加密。
根据本说明书一个或多个实施例的第四方面,提出了一种数据共享方法,应用于共享平台,所述方法包括:
将对应于目标数据的索引信息集合发布至索引区块链,所述索引信息集合包含所述目标数据的密文索引和所述目标数据的数据提供方的成员信息,所述索引信息集合由所述数据提供方提交至所述共享平台;
将数据请求方发起的数据获取请求转发至所述数据提供方,所述数据获取请求包含所述目标数据的密文索引;
将所述数据提供方提供的响应数据返回至所述数据请求方,所述响应数据由所述数据请求方的身份公钥进行加密。
根据本说明书一个或多个实施例的第五方面,提出了一种数据共享装置,应用于作为数据请求方的成员,所述装置包括:
确定单元,确定索引区块链中记录的对应于目标数据的索引信息集合,所述索引信息集合包含所述目标数据的密文索引和所述目标数据的数据提供方的成员信息,所述索引信息集合由所述数据提供方共享至所述索引区块链;
请求单元,通过共享平台向所述数据提供方发起数据获取请求,所述数据获取请求包含所述目标数据的密文索引;
接收单元,接收所述共享平台返回的响应数据,所述响应数据由所述数据请求方的身份公钥进行加密。
根据本说明书一个或多个实施例的第六方面,提出了一种数据共享装置,应用于作为数据提供方的成员,所述装置包括:
共享单元,将对应于目标数据的索引信息集合共享至索引区块链,所述索引信息集合包含所述目标数据的密文索引和所述数据提供方的成员信息;
接收单元,接收数据请求方通过共享平台发起的数据获取请求,所述数据获取请求包含所述目标数据的密文索引;
返回单元,通过所述共享平台向所述数据请求方返回响应数据,所述响应数据由所述数据请求方的身份公钥进行加密。
根据本说明书一个或多个实施例的第七方面,提出了一种数据共享装置,应用于共享平台,所述装置包括:
第一发布单元,将对应于目标数据的索引信息集合发布至索引区块链,所述索引信息集合包含所述目标数据的密文索引和所述目标数据的数据提供方的成员信息,所述索引信息集合由所述数据提供方提交至所述共享平台;
转发单元,将数据请求方发起的数据获取请求转发至所述数据提供方,所述数据获取请求包含所述目标数据的密文索引;
返回单元,将所述数据提供方提供的响应数据返回至所述数据请求方,所述响应数据由所述数据请求方的身份公钥进行加密。
根据本说明书一个或多个实施例的第八方面,提出了一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如上述第一方面所述的方法。
根据本说明书一个或多个实施例的第九方面,提出了一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如上述第二方面所述的方法。
根据本说明书一个或多个实施例的第十方面,提出了一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如上述第三方面所述的方法。
附图说明
图1是一示例性实施例提供的一种数据共享方法的流程图。
图2是一示例性实施例提供的另一种数据共享方法的流程图。
图3是一示例性实施例提供的又一种数据共享方法的流程图。
图4是一示例性实施例提供的一种数据共享系统的结构示意图。
图5是一示例性实施例提供的一种数据共享过程的交互示意图。
图6是一示例性实施例提供的一种身份认证的交互示意图。
图7是一示例性实施例提供的一种记录申请包的结构示意图。
图8是一示例性实施例提供的一种数据获取请求包的结构示意图。
图9是一示例性实施例提供的一种响应包的结构示意图。
图10是一示例性实施例提供的一种投诉请求包的结构示意图。
图11是一示例性实施例提供的一种设备的结构示意图。
图12是一示例性实施例提供的一种数据共享装置的框图。
图13是一示例性实施例提供的另一种设备的结构示意图。
图14是一示例性实施例提供的另一种数据共享装置的框图。
图15是一示例性实施例提供的又一种设备的结构示意图。
图16是一示例性实施例提供的又一种数据共享装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
图1是一示例性实施例提供的一种数据共享方法的流程图。如图1所示,该方法应用于作为数据请求方的成员,可以包括以下步骤:
步骤102,确定索引区块链中记录的对应于目标数据的索引信息集合,所述索引信息集合包含所述目标数据的密文索引和所述目标数据的数据提供方的成员信息,所述索引信息集合由所述数据提供方共享至所述索引区块链。
在一实施例中,多个成员之间可以基于本说明书的技术方案实现数据共享,在共享过程中存在不同角色:若由成员A向用户B发起数据获取请求,而用户B将自身维护的私有数据返回至成员A,则成员A扮演了数据请求方的角色、用户B扮演了数据提供方的角色。每一成员均可能扮演数据请求方或数据提供方的角色,本说明书并不对此进行限制。
在一实施例中,对于各个成员所维护的私有数据而言,这些私有数据对应的索引信息集合可以被发布至索引区块链,并记录至索引区块链的所有区块链节点分别维护的、内容统一的索引区块链账本中,使得每一成员均可以基于索引区块链账本获知各个成员所维护的私有数据对应的索引信息集合。
在一实施例中,共享平台可以被配置为所述索引区块链的节点,各个成员可以为自身所维护的私有数据生成索引信息集合,并将索引信息集合发送至共享平台,以由共享平台提交至索引区块链。而各个成员可以通过共享平台或其他区块链节点对索引区块链账本进行查询,或者各个成员可以从共享平台或其他区块链节点处下载索引区块链账本 的账本数据,以对自身发送给共享平台的索引信息集合进行查询,以确定共享平台是否已经将该索引信息集合发布至索引区块链。
在一实施例中,各个成员被配置为索引区块链的区块链节点,使得每一成员可以为自身所维护的私有数据生成索引信息集合,并通过向索引区块链中提交包含索引信息集合的区块链交易,从而将索引信息集合发布至索引区块链,无需依赖于共享平台。
在一实施例中,共享平台可以被配置为所述索引区块链的节点,即该共享平台维护有索引区块链对应的索引区块链账本。相应地,作为数据请求方的成员可以根据已知的目标数据的特定信息(比如当目标数据为交易记录时,该特定信息可以包括交易记录对应的交易用户ID等),生成相应的密文索引(比如特定信息的哈希值),并向所述共享平台发起查询请求,所述查询请求中包含所述密文索引,以指示所述共享平台从所述索引区块链中查询包含所述密文索引的索引信息集合,即由共享平台根据密文索引对索引区块链账本进行检索、查询到该密文索引对应的索引信息集合。或者,作为数据请求方的成员可以请求下载所述共享平台维护的所述索引区块链的账本数据(即索引区块链账本的数据),并由该数据请求方自身根据密文索引对账本数据进行检索,以查询出包含所述密文索引的索引信息集合。
在一实施例中,所述数据请求方被配置为所述索引区块链的节点。相应地,作为数据请求方的成员可以根据已知的所述目标数据的特定信息,生成相应的密文索引,并根据所述数据请求方维护的所述索引区块链的账本数据,查询出包含所述密文索引的索引信息集合,无需依赖于共享平台。
在一实施例中,由于私有数据由各个成员进行维护,而共享平台仅能够接触到私有数据对应的索引信息(包含于上述的索引信息集合中),可以避免共享平台获取私有数据并违规外泄私有数据。同时,通过采用索引区块链来记录索引信息集合,可以利用区块链的链式数据结构,确保已经上链的索引信息集合无法被随意修改,并且可供共享平台和各个成员进行查询、验证,具有极高的可靠性。此外,由于索引区块链上记录的索引信息集合中,与私有数据相关的索引信息为密文索引、呈现为密文形式,因而不会向共享平台透露出数据提供方实际持有的私有数据的内容,也不会暴露数据请求方请求了何种数据,具有极高的私密性。
步骤104,通过共享平台向所述数据提供方发起数据获取请求,所述数据获取请求包含所述目标数据的密文索引。
在一实施例中,通过确定出索引信息集合,使得数据请求方可以获知该索引信息集合中包含的数据提供方的信息,即确定出目标数据对应的数据提供方,从而向共享平台发起针对该数据提供方的数据获取请求。
在一实施例中,数据获取请求还包含:所述数据请求方的身份公钥、通过所述数据请求方的身份私钥生成的数据请求方签名,使得数据提供方在获得共享平台转发的该数据获取请求后,可以从数据获取请求中提取出身份公钥,以针对数据请求方签名进行验证,若验证成功则确定该数据获取请求确实来自于该数据请求方。当然,在一些情况下,数据获取请求中可以不包含数据请求方的身份公钥,比如可以包含唯一对应于该数据请求方的身份标识,而数据提供方可以据此选取预先获得的该数据请求方的身份公钥,以针对数据请求方签名进行验证。
步骤106,接收所述共享平台返回的响应数据,所述响应数据由所述数据请求方的身份公钥进行加密。
在一实施例中,数据提供方根据数据获取请求中包含的密文索引,以及自身维护的密文索引与明文索引之间的映射关系,确定出明文索引,并基于该明文索引查询出相应的私有数据,以作为上述的响应数据而返回至共享平台、由共享平台转发至数据请求方。当然,数据提供方也可以维护有密文索引与私有数据之间的映射关系,从而直接根据密文索引查询到对应的私有数据。
在一实施例中,通过采用数据请求方的身份公钥对响应数据进行加密,使得该响应数据只有数据请求方可以通过自身的身份私钥进行解密,那么即便由共享平台对该响应数据进行转发,该共享平台也只能够获得加密状态的响应数据,从而杜绝了共享平台沉淀与外泄私有数据的可能性。
在一实施例中,所述响应数据中还包含:通过所述数据提供方的身份私钥生成的数据提供方签名,使得数据请求方可以根据该数据提供方的身份公钥进行验证,若验证通过则确定该响应数据确实来自于所述数据提供方。
在一实施例中,所述索引信息集合中包含所述目标数据的哈希值;数据请求方可以将所述响应数据对应的解密后数据进行哈希计算,并与索引信息集合中的哈希值进行比较,当计算得到的哈希值与所述索引信息集合中的哈希值一致时,可以确定所述解密后数据为所述目标数据,表明数据提供方确实拥有相关数据并且没有无意或刻意提供错误的数据,且数据传输过程中没有发生数据损坏或数据替换,也可以表明数据提供方提供 至索引区块链的索引信息集合与其实际拥有的私有数据之间内容相符、不存在欺骗行为。
在一实施例中,数据请求方可以向所述共享平台发起针对所述目标数据的投诉请求,所述投诉请求中包含投诉理由和相关数据;其中,当所述投诉理由被所述共享平台或所述共享平台在所述索引区块链中调用的智能合约基于所述相关数据而验证为成立时,所述索引信息集合在所述索引区块链中被添加无效标识,而具有无效标识的索引信息集合无法被用于数据共享。其中,根据投诉理由的不同,投诉请求所包含的相关数据的类型也可能存在差异,需要根据实际情况而确定。例如,当投诉理由为数据重复时,相关数据可以包括数据请求方持有数据的信息和被诉数据的信息,使得两者被确认为一致且数据请求方所持有数据的索引信息集合在索引区块链上的区块高度相对较小(即更早提交至索引区块链)时,可以判定为投诉理由成立。再例如,当投诉理由为数据不符时,相关数据可以包括数据请求方获得的目标数据、相应的索引信息集合、数据请求方从数据提供方处获得该目标数据的历史记录等,使得共享平台可以根据历史记录确定该目标数据来自数据提供方,以及共享平台可以计算目标数据的哈希值、与索引信息集合中包含的哈希值进行比较,从而该比较结果为不一致时,判定为投诉理由成立。
在一实施例中,数据请求方可以向所述索引区块链提交投诉类型的交易,以调取用于处理投诉的智能合约,其中所述交易包含投诉理由和相关数据;其中,所述智能合约被用于根据所述相关数据验证所述投诉理由,并在所述投诉理由被验证为成立时,在所述索引区块链中为所述索引信息集合添加无效标识。由于智能合约被记录于索引区块链中,使得智能合约的处理逻辑公开且不可篡改,同时智能合约为自动执行、避免外部因素的干扰,可以确保智能合约对投诉理由的验证结果公正可靠。
在一实施例中,数据请求方可以将自身与所述数据提供方之间的数据共享事件发布至交易区块链,其中所述数据请求方被配置为所述交易区块链的节点。在另一实施例中,数据请求方可以将所述数据共享事件发送至所述共享平台,以由所述共享平台发布至所述交易区块链,其中所述共享平台被配置为所述交易区块链的节点。其中,交易区块链区别于上述的索引区块链,该交易区块链用于记录各个成员之间的数据共享事件,以便后续查询与验证。而通过采用相互独立的索引区块链与交易区块链,可以将索引信息集合的数据与数据共享事件的数据相互分离,尤其是索引区块链需要频繁实施索引查询操作,这样有助于提升对索引信息集合的查询效率。当然,也可以仅采用单一的区块链,并将索引信息集合与数据共享事件均记录至该区块链中,本说明书并不对此进行限制。
图2是一示例性实施例提供的另一种数据共享方法的流程图。如图2所示,该方法 应用于作为数据提供方的成员,可以包括以下步骤:
步骤202,将对应于目标数据的索引信息集合共享至索引区块链,所述索引信息集合包含所述目标数据的密文索引和所述数据提供方的成员信息。
在一实施例中,多个成员之间可以基于本说明书的技术方案实现数据共享,在共享过程中存在不同角色:若由成员A向用户B发起数据获取请求,而用户B将自身维护的私有数据返回至成员A,则成员A扮演了数据请求方的角色、用户B扮演了数据提供方的角色。每一成员均可能扮演数据请求方或数据提供方的角色,本说明书并不对此进行限制。
在一实施例中,对于各个成员所维护的私有数据而言,这些私有数据对应的索引信息集合可以被发布至索引区块链,并记录至索引区块链的所有区块链节点分别维护的、内容统一的索引区块链账本中,使得每一成员均可以基于索引区块链账本获知各个成员所维护的私有数据对应的索引信息集合。
在一实施例中,共享平台可以被配置为所述索引区块链的节点,各个成员可以为自身所维护的私有数据生成索引信息集合,并将索引信息集合发送至共享平台,以由共享平台提交至索引区块链。而各个成员可以通过共享平台或其他区块链节点对索引区块链账本进行查询,或者各个成员可以从共享平台或其他区块链节点处下载索引区块链账本的账本数据,以对自身发送给共享平台的索引信息集合进行查询,以确定共享平台是否已经将该索引信息集合发布至索引区块链。
在一实施例中,各个成员被配置为索引区块链的区块链节点,使得每一成员可以为自身所维护的私有数据生成索引信息集合,并通过向索引区块链中提交包含索引信息集合的区块链交易,从而将索引信息集合发布至索引区块链,无需依赖于共享平台。
在一实施例中,共享平台可以被配置为所述索引区块链的节点,即该共享平台维护有索引区块链对应的索引区块链账本。相应地,作为数据请求方的成员可以根据已知的目标数据的特定信息(比如当目标数据为交易记录时,该特定信息可以包括交易记录对应的交易用户ID等),生成相应的密文索引(比如特定信息的哈希值),并向所述共享平台发起查询请求,所述查询请求中包含所述密文索引,以指示所述共享平台从所述索引区块链中查询包含所述密文索引的索引信息集合,即由共享平台根据密文索引对索引区块链账本进行检索、查询到该密文索引对应的索引信息集合。或者,作为数据请求方的成员可以请求下载所述共享平台维护的所述索引区块链的账本数据(即索引区块链 账本的数据),并由该数据请求方自身根据密文索引对账本数据进行检索,以查询出包含所述密文索引的索引信息集合。
在一实施例中,所述数据请求方被配置为所述索引区块链的节点。相应地,作为数据请求方的成员可以根据已知的所述目标数据的特定信息,生成相应的密文索引,并根据所述数据请求方维护的所述索引区块链的账本数据,查询出包含所述密文索引的索引信息集合,无需依赖于共享平台。
在一实施例中,由于私有数据由各个成员进行维护,而共享平台仅能够接触到私有数据对应的索引信息(包含于上述的索引信息集合中),可以避免共享平台获取私有数据并违规外泄私有数据。同时,通过采用索引区块链来记录索引信息集合,可以利用区块链的链式数据结构,确保已经上链的索引信息集合无法被随意修改,并且可供共享平台和各个成员进行查询、验证,具有极高的可靠性。此外,由于索引区块链上记录的索引信息集合中,与私有数据相关的索引信息为密文索引、呈现为密文形式,因而不会向共享平台透露出数据提供方实际持有的私有数据的内容,也不会暴露数据请求方请求了何种数据,具有极高的私密性。
步骤204,接收数据请求方通过共享平台发起的数据获取请求,所述数据获取请求包含所述目标数据的密文索引。
在一实施例中,通过确定出索引信息集合,使得数据请求方可以获知该索引信息集合中包含的数据提供方的信息,即确定出目标数据对应的数据提供方,从而向共享平台发起针对该数据提供方的数据获取请求。
在一实施例中,数据获取请求还包含:所述数据请求方的身份公钥、通过所述数据请求方的身份私钥生成的数据请求方签名,使得数据提供方在获得共享平台转发的该数据获取请求后,可以从数据获取请求中提取出身份公钥,以针对数据请求方签名进行验证,若验证成功则确定该数据获取请求确实来自于该数据请求方。当然,在一些情况下,数据获取请求中可以不包含数据请求方的身份公钥,比如可以包含唯一对应于该数据请求方的身份标识,而数据提供方可以据此选取预先获得的该数据请求方的身份公钥,以针对数据请求方签名进行验证。
步骤206,通过所述共享平台向所述数据请求方返回响应数据,所述响应数据由所述数据请求方的身份公钥进行加密。
在一实施例中,数据提供方根据数据获取请求中包含的密文索引,以及自身维护的 密文索引与明文索引之间的映射关系,确定出明文索引,并基于该明文索引查询出相应的私有数据,以作为上述的响应数据而返回至共享平台、由共享平台转发至数据请求方。当然,数据提供方也可以维护有密文索引与私有数据之间的映射关系,从而直接根据密文索引查询到对应的私有数据。
在一实施例中,通过采用数据请求方的身份公钥对响应数据进行加密,使得该响应数据只有数据请求方可以通过自身的身份私钥进行解密,那么即便由共享平台对该响应数据进行转发,该共享平台也只能够获得加密状态的响应数据,从而杜绝了共享平台沉淀与外泄私有数据的可能性。
在一实施例中,所述响应数据中还包含:通过所述数据提供方的身份私钥生成的数据提供方签名,使得数据请求方可以根据该数据提供方的身份公钥进行验证,若验证通过则确定该响应数据确实来自于所述数据提供方。
在一实施例中,所述索引信息集合中包含所述目标数据的哈希值;数据请求方可以将所述响应数据对应的解密后数据进行哈希计算,并与索引信息集合中的哈希值进行比较,当计算得到的哈希值与所述索引信息集合中的哈希值一致时,可以确定所述解密后数据为所述目标数据,表明数据提供方确实拥有相关数据并且没有无意或刻意提供错误的数据,且数据传输过程中没有发生数据损坏或数据替换,也可以表明数据提供方提供至索引区块链的索引信息集合与其实际拥有的私有数据之间内容相符、不存在欺骗行为。
在一实施例中,数据提供方可以将自身与所述数据请求方之间的数据共享事件发布至交易区块链,其中所述数据提供方被配置为所述交易区块链的节点。在另一实施例中,数据提供方可以将所述数据共享事件发送至所述共享平台,以由所述共享平台发布至所述交易区块链,其中所述共享平台被配置为所述交易区块链的节点。其中,交易区块链区别于上述的索引区块链,该交易区块链用于记录各个成员之间的数据共享事件,以便后续查询与验证。而通过采用相互独立的索引区块链与交易区块链,可以将索引信息集合的数据与数据共享事件的数据相互分离,尤其是索引区块链需要频繁实施索引查询操作,这样有助于提升对索引信息集合的查询效率。当然,也可以仅采用单一的区块链,并将索引信息集合与数据共享事件均记录至该区块链中,本说明书并不对此进行限制。
图3是一示例性实施例提供的又一种数据共享方法的流程图。如图3所示,该方法应用于共享平台,可以包括以下步骤:
步骤302,将对应于目标数据的索引信息集合发布至索引区块链,所述索引信息 集合包含所述目标数据的密文索引和所述目标数据的数据提供方的成员信息,所述索引信息集合由所述数据提供方提交至所述共享平台。
在一实施例中,多个成员之间可以基于本说明书的技术方案实现数据共享,在共享过程中存在不同角色:若由成员A向用户B发起数据获取请求,而用户B将自身维护的私有数据返回至成员A,则成员A扮演了数据请求方的角色、用户B扮演了数据提供方的角色。每一成员均可能扮演数据请求方或数据提供方的角色,本说明书并不对此进行限制。
在一实施例中,对于各个成员所维护的私有数据而言,这些私有数据对应的索引信息集合可以被发布至索引区块链,并记录至索引区块链的所有区块链节点分别维护的、内容统一的索引区块链账本中,使得每一成员均可以基于索引区块链账本获知各个成员所维护的私有数据对应的索引信息集合。
在一实施例中,共享平台可以被配置为所述索引区块链的节点,各个成员可以为自身所维护的私有数据生成索引信息集合,并将索引信息集合发送至共享平台,以由共享平台提交至索引区块链。而各个成员可以通过共享平台或其他区块链节点对索引区块链账本进行查询,或者各个成员可以从共享平台或其他区块链节点处下载索引区块链账本的账本数据,以对自身发送给共享平台的索引信息集合进行查询,以确定共享平台是否已经将该索引信息集合发布至索引区块链。
在一实施例中,各个成员被配置为索引区块链的区块链节点,使得每一成员可以为自身所维护的私有数据生成索引信息集合,并通过向索引区块链中提交包含索引信息集合的区块链交易,从而将索引信息集合发布至索引区块链,无需依赖于共享平台。
在一实施例中,共享平台可以被配置为所述索引区块链的节点,即该共享平台维护有索引区块链对应的索引区块链账本。相应地,作为数据请求方的成员可以根据已知的目标数据的特定信息(比如当目标数据为交易记录时,该特定信息可以包括交易记录对应的交易用户ID等),生成相应的密文索引(比如特定信息的哈希值),并向所述共享平台发起查询请求,所述查询请求中包含所述密文索引,以指示所述共享平台从所述索引区块链中查询包含所述密文索引的索引信息集合,即由共享平台根据密文索引对索引区块链账本进行检索、查询到该密文索引对应的索引信息集合。或者,作为数据请求方的成员可以请求下载所述共享平台维护的所述索引区块链的账本数据(即索引区块链账本的数据),并由该数据请求方自身根据密文索引对账本数据进行检索,以查询出包含所述密文索引的索引信息集合。
在一实施例中,所述数据请求方被配置为所述索引区块链的节点。相应地,作为数据请求方的成员可以根据已知的所述目标数据的特定信息,生成相应的密文索引,并根据所述数据请求方维护的所述索引区块链的账本数据,查询出包含所述密文索引的索引信息集合,无需依赖于共享平台。
在一实施例中,由于私有数据由各个成员进行维护,而共享平台仅能够接触到私有数据对应的索引信息(包含于上述的索引信息集合中),可以避免共享平台获取私有数据并违规外泄私有数据。同时,通过采用索引区块链来记录索引信息集合,可以利用区块链的链式数据结构,确保已经上链的索引信息集合无法被随意修改,并且可供共享平台和各个成员进行查询、验证,具有极高的可靠性。此外,由于索引区块链上记录的索引信息集合中,与私有数据相关的索引信息为密文索引、呈现为密文形式,因而不会向共享平台透露出数据提供方实际持有的私有数据的内容,也不会暴露数据请求方请求了何种数据,具有极高的私密性。
步骤304,将数据请求方发起的数据获取请求转发至所述数据提供方,所述数据获取请求包含所述目标数据的密文索引。
在一实施例中,通过确定出索引信息集合,使得数据请求方可以获知该索引信息集合中包含的数据提供方的信息,即确定出目标数据对应的数据提供方,从而向共享平台发起针对该数据提供方的数据获取请求。
在一实施例中,数据获取请求还包含:所述数据请求方的身份公钥、通过所述数据请求方的身份私钥生成的数据请求方签名,使得数据提供方在获得共享平台转发的该数据获取请求后,可以从数据获取请求中提取出身份公钥,以针对数据请求方签名进行验证,若验证成功则确定该数据获取请求确实来自于该数据请求方。当然,在一些情况下,数据获取请求中可以不包含数据请求方的身份公钥,比如可以包含唯一对应于该数据请求方的身份标识,而数据提供方可以据此选取预先获得的该数据请求方的身份公钥,以针对数据请求方签名进行验证。
步骤306,将所述数据提供方提供的响应数据返回至所述数据请求方,所述响应数据由所述数据请求方的身份公钥进行加密。
在一实施例中,数据提供方根据数据获取请求中包含的密文索引,以及自身维护的密文索引与明文索引之间的映射关系,确定出明文索引,并基于该明文索引查询出相应的私有数据,以作为上述的响应数据而返回至共享平台、由共享平台转发至数据请 求方。当然,数据提供方也可以维护有密文索引与私有数据之间的映射关系,从而直接根据密文索引查询到对应的私有数据。
在一实施例中,通过采用数据请求方的身份公钥对响应数据进行加密,使得该响应数据只有数据请求方可以通过自身的身份私钥进行解密,那么即便由共享平台对该响应数据进行转发,该共享平台也只能够获得加密状态的响应数据,从而杜绝了共享平台沉淀与外泄私有数据的可能性。
在一实施例中,所述响应数据中还包含:通过所述数据提供方的身份私钥生成的数据提供方签名,使得数据请求方可以根据该数据提供方的身份公钥进行验证,若验证通过则确定该响应数据确实来自于所述数据提供方。
在一实施例中,所述索引信息集合中包含所述目标数据的哈希值;数据请求方可以将所述响应数据对应的解密后数据进行哈希计算,并与索引信息集合中的哈希值进行比较,当计算得到的哈希值与所述索引信息集合中的哈希值一致时,可以确定所述解密后数据为所述目标数据,表明数据提供方确实拥有相关数据并且没有无意或刻意提供错误的数据,且数据传输过程中没有发生数据损坏或数据替换,也可以表明数据提供方提供至索引区块链的索引信息集合与其实际拥有的私有数据之间内容相符、不存在欺骗行为。
在一实施例中,共享平台可以接收所述数据请求方向所述共享平台发起针对所述目标数据的投诉请求,所述投诉请求中包含投诉理由和相关数据;当基于所述相关数据验证所述投诉理由成立时,在所述索引区块链中为所述索引信息集合添加无效标识。其中,根据投诉理由的不同,投诉请求所包含的相关数据的类型也可能存在差异,需要根据实际情况而确定。例如,当投诉理由为数据重复时,相关数据可以包括数据请求方持有数据的信息和被诉数据的信息,使得两者被确认为一致且数据请求方所持有数据的索引信息集合在索引区块链上的区块高度相对较小(即更早提交至索引区块链)时,可以判定为投诉理由成立。再例如,当投诉理由为数据不符时,相关数据可以包括数据请求方获得的目标数据、相应的索引信息集合、数据请求方从数据提供方处获得该目标数据的历史记录等,使得共享平台可以根据历史记录确定该目标数据来自数据提供方,以及共享平台可以计算目标数据的哈希值、与索引信息集合中包含的哈希值进行比较,从而该比较结果为不一致时,判定为投诉理由成立。
在一实施例中,共享平台可以确定所述数据请求方与所述数据提供方之间的数据共享事件,并将所述数据共享事件发布至所述交易区块链,其中所述共享平台被配置 为所述交易区块链的节点。其中,交易区块链区别于上述的索引区块链,该交易区块链用于记录各个成员之间的数据共享事件,以便后续查询与验证。而通过采用相互独立的索引区块链与交易区块链,可以将索引信息集合的数据与数据共享事件的数据相互分离,尤其是索引区块链需要频繁实施索引查询操作,这样有助于提升对索引信息集合的查询效率。当然,也可以仅采用单一的区块链,并将索引信息集合与数据共享事件均记录至该区块链中,本说明书并不对此进行限制。
需要说明的是:在本说明书中所描述的交易(transfer),是指用户通过区块链的客户端创建,并需要最终发布至区块链的分布式数据库中的一笔数据。其中,区块链中的交易,存在狭义的交易以及广义的交易之分。狭义的交易是指用户向区块链发布的一笔价值转移;例如,在传统的比特币区块链网络中,交易可以是用户在区块链中发起的一笔转账。而广义的交易是指用户向区块链发布的一笔具有业务意图的业务数据;例如,运营方可以基于实际的业务需求搭建一个联盟链,依托于联盟链部署一些与价值转移无关的其它类型的在线业务(比如,数据共享业务、租房业务、车辆调度业务、保险理赔业务、信用服务、医疗服务等),而在这类联盟链中,交易可以是用户在联盟链中发布的一笔具有业务意图的业务消息或者业务请求。
为了便于理解,以数据共享系统为例,对本说明书一个或多个实施例的技术方案进行说明。图4是一示例性实施例提供的一种数据共享系统的结构示意图。如图4所示,该数据共享系统可以包括:共享平台和若干成员,比如图4中示出了成员1~成员6,每一成员分别维护有可共享的私有数据,共享平台分别连接至每一成员,从而实现各个成员之间的数据共享。图5是一示例性实施例提供的一种数据共享过程的交互示意图;如图5所示,该数据共享过程可以包括以下步骤:
步骤501a,机构1通过在共享平台进行身份认证,加入为共享平台相关联的成员1。
在一实施例中,数据共享系统中的成员可以包括管理数据的机构;或者,数据共享系统中的成员还可以包括个人或除机构之外的其他类型的组织等,本说明书并不对此进行限制。
以机构1为例,图6是一示例性实施例提供的一种身份认证的交互示意图;如图6所示,在步骤601中由机构1向共享平台发送成员加入申请,该成员加入申请中可以包含机构1的身份证明信息(比如营业执照、法人信息、资质证明等,本说明书并不对此进行限制),以使得共享平台可以据此确认机构1真实的身份信息;在步骤602中, 共享平台根据上述的成员加入申请,审核确认机构1的身份信息;在步骤603中,在对身份信息审核确认无误后,共享平台向机构1发送允许加入通知;在步骤604中,机构1向共享平台发送数字证书,该数字证书可由第三方CA(Certificate Authority,证书颁发机构)发放或机构1自行产生,本说明书并不对此进行限制;在步骤605中,共享平台将数字证书与机构1的身份信息(即步骤602中审核确认的身份信息)相关联;在步骤606中,机构1针对预先生成的公私钥池(包含任意数量的公私钥对),用数字证书的私钥对公钥池数据进行签名,并将签名后的公钥池数据发送至共享平台;在步骤607中,共享平台通过数字证书的公钥对公钥池数据进行签名验证,在验证通过后将公钥池数据包含的公钥与机构1上述的身份信息相关联,从而将该公钥作为机构1的身份标识。通过上述交互过程,可使机构1在共享平台处完成身份认证,从而将该机构1认证为共享平台相关联的成员,比如上述的成员1。
步骤501b,机构2通过在共享平台进行身份认证,加入为共享平台相关联的成员2。
在一实施例中,机构2可以采用与机构1相类似的方式和处理过程,将自身认证为上述的成员2;类似地,其他机构也可以据此将自身认证为相应的成员,此处不再赘述。
步骤502a,成员1生成记录申请包,并上传至共享平台。
在一实施例中,成员1维护有一定的私有数据,而为了对这些私有数据进行共享,成员1可以为自身维护的私有数据生成对应的记录申请包,从而通过共享平台发布至索引区块链中。例如,图7是一示例性实施例提供的一种记录申请包的结构示意图。如图7所示,记录申请包可以包括主体标识ID的哈希值、主体描述信息、信息内容的哈希值、数据提供方的公钥、信息价格和数据提供方的私钥签名等,本说明书并不对此进行限制。
步骤502b,成员2生成记录申请包,并上传至共享平台。
在一实施例中,成员2可以针对自身维护的私有数据生成如图7所示结构的记录申请包;类似地,其他成员可以分别针对自身维护的私有数据生成记录申请包,此处不再赘述。
步骤503,共享平台验证收到的记录申请包,并针对通过验证的记录申请包,向索引区块链发布索引记录。
在一实施例中,共享平台可以提取记录申请包中包含的“数据提供方的公钥”,验证该公钥是否处于成员公钥池中,该成员公钥池内包含所有已认证的成员的公钥;如果处于成员公钥池中,表明该公钥属于有效的成员所有,则共享平台可以通过该公钥对记录申请包中包含的“数据提供方的私钥签名”进行验证,在验证通过后确定该记录申请包确实来自于对应成员,至此完成验证。若未通过验证,共享平台可以丢弃相应的记录申请包。
在一实施例中,共享平台针对已通过验证的记录申请包,可以生成相应的索引记录;其中,由于共享平台已经被配置为索引区块链的区块链节点,因而该共享平台可以通过向索引区块链中提交包含该索引记录的区块链交易,从而将该索引记录发布至索引区块链中,使得该索引记录被记载于索引区块链对应的区块链账本中。
以成员1上传的记录申请包为例:
在一实施例中,索引记录可以包含记录申请包中的“主体标识ID的哈希值”,该“主体标识ID”是成员1所维护的私有数据的索引信息,比如当私有数据为商家销售记录时,主体标识ID可以包括“商家ID+支付账号”,而通过生成相应的哈希值,使得索引信息“主体标识ID”被处理为相应的密文索引,即上述的“主体标识ID的哈希值”。索引记录还可以包含成员1的服务地址,该服务地址用于指向该成员1,以便于其他成员可以据此向成员1发起数据获取请求;其中,由于记录申请包由成员1发送至共享平台,因而共享平台在针对该记录申请包生成相应的索引记录时,可以自动将成员1的服务地址添加至该索引记录中。
在一实施例中,除了密文索引与服务地址之外,索引记录还可以包含记录申请包中的“主体信息描述”,该“主体信息描述”用于对成员1所维护的私有数据进行一定程度的描述,相当于成员1对于该私有数据的内容声明,以便于其他成员确定是否需要获得相关私有数据。譬如,对于上述的商家销售记录而言,该主体信息描述可以包括“2018年5月~2018年6月的记录”,表明其对应于这一时间段内的商家销售记录。
在一实施例中,除了密文索引与服务地址之外,索引记录还可以包含记录申请包中的“信息内容的哈希值”,该“信息内容”即成员1所维护的私有数据,通过生成该私有数据的哈希值,便于数据请求方在获得相关私有数据后,对数据内容的完整性和正确性予以检验,这将在步骤509进行描述。
在一实施例中,除了密文索引与服务地址之外,索引记录还可以包含信息价格, 该信息价格标示出了其他成员为获得相应的私有数据所需付出的代价,这一代价可以采用多种形式进行呈现,比如一定数额的资产凭证(如会员积分、代金券、货币余额等)、执行预设操作、提供指定的数据等,本说明书并不对此进行限制。
对于成员2或其他成员上传的记录申请包,共享平台均可以生成相应的索引记录并发布至索引区块链中,其生成过程和索引记录的内容均可以参考上述描述,此处不再赘述。
步骤504,共享平台根据成员1发起的查询请求,查询索引区块链对应的区块链账本。
步骤505,共享平台根据对区块链账本的查询情况,向成员1返回相应的查询结果。
在一实施例中,共享平台作为索引区块链的区块链节点,维护有索引区块链的区块链账本,该区块链账本包含索引区块链的全量数据,即记录有共享平台上传至索引区块链的所有索引记录。
在一实施例中,成员1至少可以获知其所需查询的私有数据的部分信息,比如对于上文所述的商家销售记录,成员1可以获知“商家ID+支付账号”,即上述的主体标识ID;相应地,成员1发起的查询请求中可以包括主体标识ID的哈希值,使得共享平台可以根据该哈希值对区块链账本进行检索,以获得相应的索引记录,并向成员1返回包含该索引记录的查询结果。
步骤506,共享平台获取成员1发起的数据获取请求,并转发至相应的数据提供方。
在一实施例中,成员1根据查询结果中包含的索引记录,获取该索引记录中包含的服务地址,使得成员1可以向该服务地址发起数据获取请求。该服务地址由共享平台所维护,且共享平台能够明确该服务地址与相关成员之间的映射关系;比如,当该服务地址对应于成员2时,如果共享平台收到成员1向该服务地址发起的数据获取请求,共享平台可以将该数据获取请求转发至成员2,即成员2被作为相应的数据提供方。
步骤507,成员2对收到的数据获取请求执行验证操作。
在一实施例中,图8是一示例性实施例提供的一种数据获取请求包的结构示意图。如图8所示,该数据获取请求包为上述数据获取请求的数据结构的表现形式,可以包括主体标识ID的哈希值、数据请求方的公钥、已有签名在索引区块链的位置、数据 请求方的私钥签名等,本说明书并不对此进行限制。针对如图8所示的数据获取请求包,成员2执行的验证操作可以包括:基于“已有签名在索引区块链的位置”确定相应的数据请求方是共享平台处的有效成员;提取“数据请求方的公钥”,对“数据请求方的私钥签名”进行验证。
步骤508,成员2生成响应包并返回至共享平台,由共享平台转发至成员1。
在一实施例中,成员2可以提取数据获取请求包含的“主体标识ID的哈希值”,并基于该密文索引对自身维护的私有数据进行检索,从而确定出相应的响应数据。当然,成员2维护的私有数据并不一定支持基于密文索引的检索操作;例如,成员2可以维护密文索引与明文索引的映射关系,据此确定出密文索引对应的明文索引,再基于明文索引对私有数据进行检索,从而确定出相应的响应数据。
在一实施例中,成员2对检索得到的响应数据进行封装,以生成相应的响应包。例如,图9是一示例性实施例提供的一种响应包的结构示意图。如图9所示,该响应包可以包括主体标识ID的哈希值、主体信息描述、信息内容的哈希值等,以便于成员1确定该响应包所对应的索引记录。响应包可以包括数据请求方的公钥,以使得共享平台据此确定响应包的发送目标为成员1,从而将该响应包发送至成员1。响应包可以包括加密后的数据内容,由成员2根据数据请求方的公钥对响应数据进行加密后得到。响应包可以包括数据提供方的私钥签名,即成员2的私钥签名。
步骤509,成员1针对收到的响应包执行验证操作。
在一实施例中,成员1对响应包的验证操作可以包括:根据数据提供方的公钥对私钥签名进行验证,若验证通过则表明该响应包确实来自于相应的数据提供方。通过成员1自身的公钥对加密后的数据内容进行解密处理,得到解密后数据,即成员2提供的上述响应数据;其中,由于成员1可能存在多个公钥,因而可以对响应包中包含的数据请求方的公钥进行验证,当确定该公钥为成员1自身拥有的公钥时,使用该公钥对加密后的数据内容进行解密。
在一实施例中,在获得解密后数据后,成员1可以生成该解密后数据的哈希值,并将其与响应包中的“信息内容的哈希值”进行比较;当比较结果一致时,可以确定响应包在传输过程中未受损。成员1可以将解密后数据的哈希值与先前获得的索引记录所包含的“信息内容的哈希值”进行比较;当比较结果一致时,可以确定成员2提供了正确数据,且响应包在传输过程中未被恶意替换。
在一实施例中,成员1可以确定解密后数据的描述内容;比如当解密后数据为商家销售记录时,描述内容可以包括该商家销售记录对应的月份,如果该月份为“2018年5月-2018年6月”,而主体信息描述为“2018年5月~2018年6月的记录”,表明成员2所提供的数据与其在索引区块链中声明的信息相符。
在一实施例中,对应于图7所示的“信息价格”,成员1需要向成员2付出相关代价后,才能够获得成员2提供的数据。以会员积分为例,共享平台可以作为各个成员之间的第三方,使得成员1可以根据索引记录中标注的信息价格,向共享平台转入相应数额的会员积分,使得共享平台将数据获取请求转发至成员2;而当成员2返回响应包之后,或者在成员1确认收到响应包后,共享平台可以将相应的会员积分转至成员2,相当于成员1与成员2之间完成了一笔数据共享交易。相应地,当共享平台被配置为交易区块链的区块链节点时,共享平台可以向交易区块链提交一笔区块链交易,该区块链交易中包含成员1与成员2之间的上述数据共享交易的交易记录,以对该数据共享交易进行可靠记载,并且可以随时进行查询和核验。
步骤510,成员1可以向共享平台发起投诉请求。
步骤511,共享平台可以对投诉请求进行验证。
步骤512,在投诉请求被确认为验证通过时,共享平台可以为索引区块链中对应的索引记录添加无效标识。
在一实施例中,图10是一示例性实施例提供的一种投诉请求包的结构示意图。如图10所示,投诉请求包为上述投诉请求的数据结构的表现形式,可以包括:包类型,用于表明当前数据包的类型为“投诉请求包”;被投诉数据的索引信息,比如被投诉数据对应的密文索引或索引记录;数据内容,明文数据内容;投诉原因,如获得的数据与索引记录中的“主体信息描述”不相符、获得的数据为虚假数据、获得的数据与自身或其他成员维护的数据雷同(比如成员2从成员1处购得数据后,生成并上传相应的记录申请包,以添加为自身维护的数据,侵犯成员1的权益)等,本说明书并不对此进行限制;投诉者的私钥签名。
例如,当投诉原因为获得的数据与索引记录中的“主体信息描述”不相符时,共享平台可以根据“被投诉数据的索引信息”获取相关索引记录、提取出相关数据的哈希值,并对“数据内容”中的明文数据内容计算哈希值,若两个哈希值一致,表明该明文数据内容为相关索引记录对应的数据;进一步的,共享平台可以将该明文数据内容与 索引记录中声明的“主体信息描述”进行比较,从而确定两者是否存在不相符的情况。
在一实施例中,当投诉请求被确认为验证通过后,共享平台可以向索引区块链中提交一笔区块链交易,该区块链交易的内容包含:为被投诉数据的索引记录添加无效标识,使得该“被投诉数据的索引记录”在区块链账本中对应的状态参数发生变化,即被标记为无效状态。那么,在后续的数据共享过程中,被标记为无效状态的索引记录无法被共享,可由共享平台对此进行过滤与核验。
进一步的,共享平台还可以针对被投诉数据的数据提供方实施惩戒措施,比如限制其可获得数据的范围、提高其获取数据的价格、剥夺其成员身份等,本说明书并不对此进行限制。
在一实施例中,除了由成员进行投诉之外,共享平台可以对数据共享过程进行监督,以保障成员所提供数据的规范性和质量、打击恶意提供重复数据的成员等。例如,共享平台可以在成员的请求下,对可疑数据或其数据提供方进行核查;再例如,共享平台可以通过数据抽查的方式,以普通成员的身份从相关成员处获得相关数据,并对其数据的规范性、真实性、与声明的一致性等进行核实。
图11是一示例性实施例提供的一种设备的示意结构图。请参考图11,在硬件层面,该设备包括处理器1102、内部总线1104、网络接口1106、内存1108以及非易失性存储器1110,当然还可能包括其他业务所需要的硬件。处理器1102从非易失性存储器1110中读取对应的计算机程序到内存1108中然后运行,在逻辑层面上形成数据共享装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图12,在软件实施方式中,该数据共享装置应用于作为数据请求方的成员,所述装置可以包括:
确定单元1201,确定索引区块链中记录的对应于目标数据的索引信息集合,所述索引信息集合包含所述目标数据的密文索引和所述目标数据的数据提供方的成员信息,所述索引信息集合由所述数据提供方共享至所述索引区块链;
请求单元1202,通过共享平台向所述数据提供方发起数据获取请求,所述数据获取请求包含所述目标数据的密文索引;
接收单元1203,接收所述共享平台返回的响应数据,所述响应数据由所述数据 请求方的身份公钥进行加密。
可选的,所述共享平台被配置为所述索引区块链的节点;所述确定单元1201具体用于:
根据已知的所述目标数据的特定信息,生成相应的密文索引;
向所述共享平台发起查询请求,所述查询请求中包含所述密文索引,以指示所述共享平台从所述索引区块链中查询包含所述密文索引的索引信息集合;或者,下载所述共享平台维护的所述索引区块链的账本数据,以查询出包含所述密文索引的索引信息集合。
可选的,所述数据请求方被配置为所述索引区块链的节点;所述确定单元1201具体用于:
根据已知的所述目标数据的特定信息,生成相应的密文索引;
根据所述数据请求方维护的所述索引区块链的账本数据,查询出包含所述密文索引的索引信息集合。
可选的,所述数据获取请求还包含:所述数据请求方的身份公钥、通过所述数据请求方的身份私钥生成的数据请求方签名,以供所述数据提供方进行验证。
可选的,所述响应数据中还包含:通过所述数据提供方的身份私钥生成的数据提供方签名,以供所述数据请求方进行验证。
可选的,所述索引信息集合中包含所述目标数据的哈希值;所述装置还包括:
计算单元1204,将所述响应数据对应的解密后数据进行哈希计算;
判断单元1205,当计算得到的哈希值与所述索引信息集合中的哈希值一致时,确定所述解密后数据为所述目标数据。
可选的,还包括:
投诉单元1206,向所述共享平台发起针对所述目标数据的投诉请求,所述投诉请求中包含投诉理由和相关数据;
其中,当所述投诉理由被所述共享平台或所述共享平台在所述索引区块链中调用的智能合约基于所述相关数据而验证为成立时,所述索引信息集合在所述索引区块链中被添加无效标识。
可选的,还包括:
提交单元1207,向所述索引区块链提交投诉类型的交易,以调取用于处理投诉的智能合约,其中所述交易包含投诉理由和相关数据;
其中,所述智能合约被用于根据所述相关数据验证所述投诉理由,并在所述投诉理由被验证为成立时,在所述索引区块链中为所述索引信息集合添加无效标识。
可选的,还包括:发布单元1208或发送单元1209;
所述发布单元1208用于将所述数据请求方与所述数据提供方之间的数据共享事件发布至交易区块链,其中所述数据请求方被配置为所述交易区块链的节点;
所述发送单元1209用于将所述数据共享事件发送至所述共享平台,以由所述共享平台发布至所述交易区块链,其中所述共享平台被配置为所述交易区块链的节点。
图13是一示例性实施例提供的一种设备的示意结构图。请参考图13,在硬件层面,该设备包括处理器1302、内部总线1304、网络接口1306、内存1308以及非易失性存储器1310,当然还可能包括其他业务所需要的硬件。处理器1302从非易失性存储器1310中读取对应的计算机程序到内存1308中然后运行,在逻辑层面上形成数据共享装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图14,在软件实施方式中,该数据共享装置应用于作为数据提供方的成员,所述装置可以包括:
共享单元1401,将对应于目标数据的索引信息集合共享至索引区块链,所述索引信息集合包含所述目标数据的密文索引和所述数据提供方的成员信息;
接收单元1402,接收数据请求方通过共享平台发起的数据获取请求,所述数据获取请求包含所述目标数据的密文索引;
返回单元1403,通过所述共享平台向所述数据请求方返回响应数据,所述响应数据由所述数据请求方的身份公钥进行加密。
可选的,所述数据获取请求还包含:所述数据请求方的身份公钥、通过所述数据请求方的身份私钥生成的数据请求方签名,以供所述数据提供方进行验证。
可选的,所述响应数据中还包含:通过所述数据提供方的身份私钥生成的数据 提供方签名,以供所述数据请求方进行验证。
可选的,所述共享单元1401具体用于:
将所述索引信息集合发布至所述索引区块链,其中所述数据提供方被配置为所述索引区块链的节点;
或者,将所述索引信息集合提交至所述共享平台,以由所述共享平台发布至所述索引区块链,其中所述共享平台被配置为所述索引区块链的节点。
可选的,还包括:发布单元1404或发送单元1405;
所述发布单元1404用于将所述数据请求方与所述数据提供方之间的数据共享事件发布至所述交易区块链,其中所述数据提供方被配置为交易区块链的节点;
所述发送单元1405用于将所述数据共享事件发送至所述共享平台,以由所述共享平台发布至所述交易区块链,其中所述共享平台被配置为所述交易区块链的节点。
图15是一示例性实施例提供的一种设备的示意结构图。请参考图15,在硬件层面,该设备包括处理器1502、内部总线1504、网络接口1506、内存1508以及非易失性存储器1510,当然还可能包括其他业务所需要的硬件。处理器1502从非易失性存储器1510中读取对应的计算机程序到内存1508中然后运行,在逻辑层面上形成数据共享装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图16,在软件实施方式中,该数据共享装置应用于共享平台,所述装置可以包括:
第一发布单元1601,将对应于目标数据的索引信息集合发布至索引区块链,所述索引信息集合包含所述目标数据的密文索引和所述目标数据的数据提供方的成员信息,所述索引信息集合由所述数据提供方提交至所述共享平台;
转发单元1602,将数据请求方发起的数据获取请求转发至所述数据提供方,所述数据获取请求包含所述目标数据的密文索引;
返回单元1603,将所述数据提供方提供的响应数据返回至所述数据请求方,所述响应数据由所述数据请求方的身份公钥进行加密。
可选的,还包括:
第一接收单元1604,接收所述数据请求方发起的查询请求,所述查询请求中包含根据已知的所述目标数据的特定信息生成的密文索引;
查询单元1605,从所述索引区块链中查询包含所述密文索引的索引信息集合,以告知所述数据请求方。
可选的,还包括:
第二接收单元1606,接收所述数据请求方向所述共享平台发起针对所述目标数据的投诉请求,所述投诉请求中包含投诉理由和相关数据;
添加单元1607,当基于所述相关数据验证所述投诉理由成立时,在所述索引区块链中为所述索引信息集合添加无效标识。
可选的,还包括:
确定单元1608,确定所述数据请求方与所述数据提供方之间的数据共享事件;
第二发布单元1609,将所述数据共享事件发布至所述交易区块链,其中所述共享平台被配置为所述交易区块链的节点。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技 术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。

Claims (43)

  1. 一种数据共享系统,包括:
    成员,每一成员分别维护有可共享的私有数据,并为所述私有数据生成相应的密文索引信息,所述密文索引信息包含对应的私有数据的密文索引和提供该私有数据的成员的信息;
    共享平台,所述共享平台分别连接至每一成员,并将每一成员生成的密文索引信息记录于索引区块链,以在所有成员之间进行共享;所述共享平台将数据请求方成员发起的数据获取请求转发至数据提供方成员,所述数据获取请求包含目标数据的密文索引,且所述共享平台还将所述数据提供方成员返回的所述目标数据转发至所述数据请求方成员,其中所述目标数据由所述数据请求方成员的身份公钥进行加密。
  2. 根据权利要求1所述的系统,所述共享平台被配置为所述索引区块链的区块链节点;所述共享平台获取每一成员生成的密文索引信息,并发布至所述索引区块链;
    其中,所述共享平台根据任一成员发起的信息查询请求,在自身维护的索引区块链账本中查询对应的密文索引信息并返回至所述任一成员;和/或,至少一个成员下载所述共享平台维护的索引区块链账本,以对密文索引信息进行查询。
  3. 根据权利要求1所述的系统,所述共享平台和每一成员分别被配置为所述索引区块链的区块链节点;每一成员分别将生成的密文索引信息发布至所述索引区块链,并通过自身维护的索引区块链账本对密文索引信息进行查询。
  4. 根据权利要求1所述的系统,所述共享平台被配置为交易区块链的区块链节点;所述共享平台还将所述数据请求方成员与所述数据提供方成员之间的数据共享事件记录至所述交易区块链中。
  5. 一种数据共享方法,应用于作为数据请求方的成员,所述方法包括:
    确定索引区块链中记录的对应于目标数据的索引信息集合,所述索引信息集合包含所述目标数据的密文索引和所述目标数据的数据提供方的成员信息,所述索引信息集合由所述数据提供方共享至所述索引区块链;
    通过共享平台向所述数据提供方发起数据获取请求,所述数据获取请求包含所述目标数据的密文索引;
    接收所述共享平台返回的响应数据,所述响应数据由所述数据请求方的身份公钥进行加密。
  6. 根据权利要求5所述的方法,所述共享平台被配置为所述索引区块链的节点;所述确定索引区块链中记录的对应于目标数据的索引信息集合,包括:
    根据已知的所述目标数据的特定信息,生成相应的密文索引;
    向所述共享平台发起查询请求,所述查询请求中包含所述密文索引,以指示所述共享平台从所述索引区块链中查询包含所述密文索引的索引信息集合;或者,下载所述共享平台维护的所述索引区块链的账本数据,以查询出包含所述密文索引的索引信息集合。
  7. 根据权利要求5所述的方法,所述数据请求方被配置为所述索引区块链的节点;所述确定索引区块链中记录的对应于目标数据的索引信息集合,包括:
    根据已知的所述目标数据的特定信息,生成相应的密文索引;
    根据所述数据请求方维护的所述索引区块链的账本数据,查询出包含所述密文索引的索引信息集合。
  8. 根据权利要求5所述的方法,所述数据获取请求还包含:所述数据请求方的身份公钥、通过所述数据请求方的身份私钥生成的数据请求方签名,以供所述数据提供方进行验证。
  9. 根据权利要求5所述的方法,所述响应数据中还包含:通过所述数据提供方的身份私钥生成的数据提供方签名,以供所述数据请求方进行验证。
  10. 根据权利要求5所述的方法,所述索引信息集合中包含所述目标数据的哈希值;所述方法还包括:
    将所述响应数据对应的解密后数据进行哈希计算;
    当计算得到的哈希值与所述索引信息集合中的哈希值一致时,确定所述解密后数据为所述目标数据。
  11. 根据权利要求5所述的方法,还包括:
    向所述共享平台发起针对所述目标数据的投诉请求,所述投诉请求中包含投诉理由和相关数据;
    其中,当所述投诉理由被所述共享平台或所述共享平台在所述索引区块链中调用的智能合约基于所述相关数据而验证为成立时,所述索引信息集合在所述索引区块链中被添加无效标识。
  12. 根据权利要求5所述的方法,还包括:
    向所述索引区块链提交投诉类型的交易,以调取用于处理投诉的智能合约,其中所述交易包含投诉理由和相关数据;
    其中,所述智能合约被用于根据所述相关数据验证所述投诉理由,并在所述投诉理由被验证为成立时,在所述索引区块链中为所述索引信息集合添加无效标识。
  13. 根据权利要求5所述的方法,还包括:
    将所述数据请求方与所述数据提供方之间的数据共享事件发布至交易区块链,其中所述数据请求方被配置为所述交易区块链的节点;
    或者,将所述数据共享事件发送至所述共享平台,以由所述共享平台发布至所述交易区块链,其中所述共享平台被配置为所述交易区块链的节点。
  14. 一种数据共享方法,应用于作为数据提供方的成员,所述方法包括:
    将对应于目标数据的索引信息集合共享至索引区块链,所述索引信息集合包含所述目标数据的密文索引和所述数据提供方的成员信息;
    接收数据请求方通过共享平台发起的数据获取请求,所述数据获取请求包含所述目标数据的密文索引;
    通过所述共享平台向所述数据请求方返回响应数据,所述响应数据由所述数据请求方的身份公钥进行加密。
  15. 根据权利要求14所述的方法,所述数据获取请求还包含:所述数据请求方的身份公钥、通过所述数据请求方的身份私钥生成的数据请求方签名,以供所述数据提供方进行验证。
  16. 根据权利要求14所述的方法,所述响应数据中还包含:通过所述数据提供方的身份私钥生成的数据提供方签名,以供所述数据请求方进行验证。
  17. 根据权利要求14所述的方法,所述将对应于目标数据的索引信息集合共享至索引区块链,包括:
    将所述索引信息集合发布至所述索引区块链,其中所述数据提供方被配置为所述索引区块链的节点;
    或者,将所述索引信息集合提交至所述共享平台,以由所述共享平台发布至所述索引区块链,其中所述共享平台被配置为所述索引区块链的节点。
  18. 根据权利要求14所述的方法,还包括:
    将所述数据请求方与所述数据提供方之间的数据共享事件发布至所述交易区块链,其中所述数据提供方被配置为交易区块链的节点;
    或者,将所述数据共享事件发送至所述共享平台,以由所述共享平台发布至所述交易区块链,其中所述共享平台被配置为所述交易区块链的节点。
  19. 一种数据共享方法,应用于共享平台,所述方法包括:
    将对应于目标数据的索引信息集合发布至索引区块链,所述索引信息集合包含所述目标数据的密文索引和所述目标数据的数据提供方的成员信息,所述索引信息集合由所述数据提供方提交至所述共享平台;
    将数据请求方发起的数据获取请求转发至所述数据提供方,所述数据获取请求包含所述目标数据的密文索引;
    将所述数据提供方提供的响应数据返回至所述数据请求方,所述响应数据由所述数据请求方的身份公钥进行加密。
  20. 根据权利要求19所述的方法,还包括:
    接收所述数据请求方发起的查询请求,所述查询请求中包含根据已知的所述目标数据的特定信息生成的密文索引;
    从所述索引区块链中查询包含所述密文索引的索引信息集合,以告知所述数据请求方。
  21. 根据权利要求19所述的方法,还包括:
    接收所述数据请求方向所述共享平台发起针对所述目标数据的投诉请求,所述投诉请求中包含投诉理由和相关数据;
    当基于所述相关数据验证所述投诉理由成立时,在所述索引区块链中为所述索引信息集合添加无效标识。
  22. 根据权利要求19所述的方法,还包括:
    确定所述数据请求方与所述数据提供方之间的数据共享事件;
    将所述数据共享事件发布至所述交易区块链,其中所述共享平台被配置为所述交易区块链的节点。
  23. 一种数据共享装置,应用于作为数据请求方的成员,所述装置包括:
    确定单元,确定索引区块链中记录的对应于目标数据的索引信息集合,所述索引信息集合包含所述目标数据的密文索引和所述目标数据的数据提供方的成员信息,所述索引信息集合由所述数据提供方共享至所述索引区块链;
    请求单元,通过共享平台向所述数据提供方发起数据获取请求,所述数据获取请求包含所述目标数据的密文索引;
    接收单元,接收所述共享平台返回的响应数据,所述响应数据由所述数据请求方的身份公钥进行加密。
  24. 根据权利要求23所述的装置,所述共享平台被配置为所述索引区块链的节点;所述确定单元具体用于:
    根据已知的所述目标数据的特定信息,生成相应的密文索引;
    向所述共享平台发起查询请求,所述查询请求中包含所述密文索引,以指示所述共享平台从所述索引区块链中查询包含所述密文索引的索引信息集合;或者,下载所述共 享平台维护的所述索引区块链的账本数据,以查询出包含所述密文索引的索引信息集合。
  25. 根据权利要求23所述的装置,所述数据请求方被配置为所述索引区块链的节点;所述确定单元具体用于:
    根据已知的所述目标数据的特定信息,生成相应的密文索引;
    根据所述数据请求方维护的所述索引区块链的账本数据,查询出包含所述密文索引的索引信息集合。
  26. 根据权利要求23所述的装置,所述数据获取请求还包含:所述数据请求方的身份公钥、通过所述数据请求方的身份私钥生成的数据请求方签名,以供所述数据提供方进行验证。
  27. 根据权利要求23所述的装置,所述响应数据中还包含:通过所述数据提供方的身份私钥生成的数据提供方签名,以供所述数据请求方进行验证。
  28. 根据权利要求23所述的装置,所述索引信息集合中包含所述目标数据的哈希值;所述装置还包括:
    计算单元,将所述响应数据对应的解密后数据进行哈希计算;
    判断单元,当计算得到的哈希值与所述索引信息集合中的哈希值一致时,确定所述解密后数据为所述目标数据。
  29. 根据权利要求23所述的装置,还包括:
    投诉单元,向所述共享平台发起针对所述目标数据的投诉请求,所述投诉请求中包含投诉理由和相关数据;
    其中,当所述投诉理由被所述共享平台或所述共享平台在所述索引区块链中调用的智能合约基于所述相关数据而验证为成立时,所述索引信息集合在所述索引区块链中被添加无效标识。
  30. 根据权利要求23所述的装置,还包括:
    提交单元,向所述索引区块链提交投诉类型的交易,以调取用于处理投诉的智能合约,其中所述交易包含投诉理由和相关数据;
    其中,所述智能合约被用于根据所述相关数据验证所述投诉理由,并在所述投诉理由被验证为成立时,在所述索引区块链中为所述索引信息集合添加无效标识。
  31. 根据权利要求23所述的装置,还包括:发布单元或发送单元;
    所述发布单元用于将所述数据请求方与所述数据提供方之间的数据共享事件发布至交易区块链,其中所述数据请求方被配置为所述交易区块链的节点;
    所述发送单元用于将所述数据共享事件发送至所述共享平台,以由所述共享平台发 布至所述交易区块链,其中所述共享平台被配置为所述交易区块链的节点。
  32. 一种数据共享装置,应用于作为数据提供方的成员,所述装置包括:
    共享单元,将对应于目标数据的索引信息集合共享至索引区块链,所述索引信息集合包含所述目标数据的密文索引和所述数据提供方的成员信息;
    接收单元,接收数据请求方通过共享平台发起的数据获取请求,所述数据获取请求包含所述目标数据的密文索引;
    返回单元,通过所述共享平台向所述数据请求方返回响应数据,所述响应数据由所述数据请求方的身份公钥进行加密。
  33. 根据权利要求32所述的装置,所述数据获取请求还包含:所述数据请求方的身份公钥、通过所述数据请求方的身份私钥生成的数据请求方签名,以供所述数据提供方进行验证。
  34. 根据权利要求32所述的装置,所述响应数据中还包含:通过所述数据提供方的身份私钥生成的数据提供方签名,以供所述数据请求方进行验证。
  35. 根据权利要求32所述的装置,所述共享单元具体用于:
    将所述索引信息集合发布至所述索引区块链,其中所述数据提供方被配置为所述索引区块链的节点;
    或者,将所述索引信息集合提交至所述共享平台,以由所述共享平台发布至所述索引区块链,其中所述共享平台被配置为所述索引区块链的节点。
  36. 根据权利要求32所述的装置,还包括:发布单元或发送单元;
    所述发布单元用于将所述数据请求方与所述数据提供方之间的数据共享事件发布至所述交易区块链,其中所述数据提供方被配置为交易区块链的节点;
    所述发送单元用于将所述数据共享事件发送至所述共享平台,以由所述共享平台发布至所述交易区块链,其中所述共享平台被配置为所述交易区块链的节点。
  37. 一种数据共享装置,应用于共享平台,所述装置包括:
    第一发布单元,将对应于目标数据的索引信息集合发布至索引区块链,所述索引信息集合包含所述目标数据的密文索引和所述目标数据的数据提供方的成员信息,所述索引信息集合由所述数据提供方提交至所述共享平台;
    转发单元,将数据请求方发起的数据获取请求转发至所述数据提供方,所述数据获取请求包含所述目标数据的密文索引;
    返回单元,将所述数据提供方提供的响应数据返回至所述数据请求方,所述响应数据由所述数据请求方的身份公钥进行加密。
  38. 根据权利要求37所述的装置,还包括:
    第一接收单元,接收所述数据请求方发起的查询请求,所述查询请求中包含根据已知的所述目标数据的特定信息生成的密文索引;
    查询单元,从所述索引区块链中查询包含所述密文索引的索引信息集合,以告知所述数据请求方。
  39. 根据权利要求37所述的装置,还包括:
    第二接收单元,接收所述数据请求方向所述共享平台发起针对所述目标数据的投诉请求,所述投诉请求中包含投诉理由和相关数据;
    添加单元,当基于所述相关数据验证所述投诉理由成立时,在所述索引区块链中为所述索引信息集合添加无效标识。
  40. 根据权利要求37所述的装置,还包括:
    确定单元,确定所述数据请求方与所述数据提供方之间的数据共享事件;
    第二发布单元,将所述数据共享事件发布至所述交易区块链,其中所述共享平台被配置为所述交易区块链的节点。
  41. 一种电子设备,包括:
    处理器;
    用于存储处理器可执行指令的存储器;
    其中,所述处理器通过运行所述可执行指令以实现如权利要求5-13中任一项所述的方法。
  42. 一种电子设备,包括:
    处理器;
    用于存储处理器可执行指令的存储器;
    其中,所述处理器通过运行所述可执行指令以实现如权利要求14-18中任一项所述的方法。
  43. 一种电子设备,包括:
    处理器;
    用于存储处理器可执行指令的存储器;
    其中,所述处理器通过运行所述可执行指令以实现如权利要求19-22中任一项所述的方法。
PCT/CN2019/113863 2018-12-14 2019-10-29 数据共享方法、装置及系统、电子设备 WO2020119294A1 (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP19896819.0A EP3816837B1 (en) 2018-12-14 2019-10-29 Data sharing method, apparatus, and system, and electronic device
SG11202100959RA SG11202100959RA (en) 2018-12-14 2019-10-29 Data sharing method, apparatus, and system, and electronic device
US17/163,337 US20210160068A1 (en) 2018-12-14 2021-01-29 Data sharing method, apparatus, and system, and electronic device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811529631.7 2018-12-14
CN201811529631.7A CN110059495B (zh) 2018-12-14 2018-12-14 数据共享方法、装置及系统、电子设备

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/163,337 Continuation US20210160068A1 (en) 2018-12-14 2021-01-29 Data sharing method, apparatus, and system, and electronic device

Publications (1)

Publication Number Publication Date
WO2020119294A1 true WO2020119294A1 (zh) 2020-06-18

Family

ID=67315411

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/113863 WO2020119294A1 (zh) 2018-12-14 2019-10-29 数据共享方法、装置及系统、电子设备

Country Status (6)

Country Link
US (1) US20210160068A1 (zh)
EP (1) EP3816837B1 (zh)
CN (1) CN110059495B (zh)
SG (1) SG11202100959RA (zh)
TW (1) TWI722586B (zh)
WO (1) WO2020119294A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112699112A (zh) * 2020-12-31 2021-04-23 东莞市盟大商业保理有限公司 一种基于区块链技术的数据挖掘流程分享方法
CN113364754A (zh) * 2021-05-31 2021-09-07 支付宝(杭州)信息技术有限公司 数据共享方法、装置及设备
CN114553582A (zh) * 2022-03-02 2022-05-27 安徽师范大学 基于国密算法和ipfs的电子病历共享方法
WO2022151888A1 (zh) * 2021-01-18 2022-07-21 中国农业科学院深圳农业基因组研究所 数据共享方法及装置
EP4174702A4 (en) * 2020-06-28 2023-11-22 ZTE Corporation PROXY METHOD, APPARATUS AND COMPUTER READABLE STORAGE MEDIUM
CN117675412A (zh) * 2024-01-31 2024-03-08 中国民用航空总局第二研究所 一种工业物联网场景下的具有强隐私保护的数据共享方法

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110059495B (zh) * 2018-12-14 2020-11-17 创新先进技术有限公司 数据共享方法、装置及系统、电子设备
CN112446035A (zh) * 2019-09-05 2021-03-05 阿里健康科技(中国)有限公司 数据管理方法及装置
CN110737918B (zh) * 2019-10-15 2023-08-08 重庆远见信息产业集团股份有限公司 外部数据共享管理平台
CN111191212B (zh) * 2019-12-31 2020-12-15 卓尔智联(武汉)研究院有限公司 基于区块链的数字凭证处理方法、装置、设备和存储介质
CN111259448A (zh) * 2020-01-17 2020-06-09 中国建设银行股份有限公司 一种数据共享方法和装置
CN111343249A (zh) * 2020-02-14 2020-06-26 哈希未来(北京)科技有限公司 基于区块链系统的数据共享方法、装置及存储介质
CN111310137B (zh) * 2020-03-23 2022-08-26 杭州溪塔科技有限公司 一种区块链关联数据存证方法、装置及电子设备
CN113497818A (zh) * 2020-04-01 2021-10-12 深圳Tcl数字技术有限公司 一种数据共享方法以及共享系统
CN111447238A (zh) * 2020-04-13 2020-07-24 夏彬彬 基于区块链的数据共享系统
CN111526154A (zh) * 2020-04-30 2020-08-11 余伟霞 一种基于区块链网络的业务数据共享系统
CN111475828B (zh) * 2020-05-14 2022-05-13 杭州烽顺科技信息服务有限公司 区块链账本数据的加密方法及装置、解密方法及装置
CN111683064A (zh) * 2020-05-22 2020-09-18 易联众信息技术股份有限公司 基于区块链的数据流转方法、装置、介质、设备及应用
CN111723385B (zh) * 2020-06-01 2024-02-09 清华大学 数据信息处理方法、装置、电子设备及存储介质
CN111555891B (zh) * 2020-06-28 2023-12-15 朗新数据科技有限公司 一种基于区块链的材料数据自营自管系统及其使用方法
CN111815454B (zh) * 2020-08-21 2020-12-11 支付宝(杭州)信息技术有限公司 数据上链方法及装置、电子设备、存储介质
CN112019553B (zh) * 2020-08-31 2021-07-06 航天信息股份有限公司 一种基于ibe/ibbe数据共享方法
CN111935190B (zh) * 2020-10-12 2021-01-26 杭州海康威视数字技术股份有限公司 车联网终端数据共享方法、装置、电子设备及存储介质
CN112347470A (zh) * 2020-11-27 2021-02-09 国家电网有限公司大数据中心 基于区块链和数据安全沙箱的电网数据保护方法及系统
CN112463843A (zh) * 2020-11-27 2021-03-09 国家电网有限公司大数据中心 基于区块链和数据资源目录的电网数据共享方法及系统
CN112929349A (zh) * 2021-01-26 2021-06-08 支付宝(杭州)信息技术有限公司 基于区块链共享隐私数据的方法、装置及电子设备
CN113259454B (zh) * 2021-06-02 2021-10-15 支付宝(杭州)信息技术有限公司 跨链交互方法及装置
CN113205322A (zh) * 2021-06-08 2021-08-03 张晶 一种基于区块链的审计成果数据共享方法及系统
CN113392162B (zh) * 2021-07-14 2022-09-23 上海旺链信息科技有限公司 一种信息共享方法、装置、设备和存储介质
CN114124402B (zh) * 2021-11-03 2024-05-14 国家工业信息安全发展研究中心 一种资源受限环境下的分布式数据安全交换共享方法
CN114116637A (zh) * 2021-11-22 2022-03-01 中国银联股份有限公司 一种数据共享方法、装置、设备及存储介质
CN114301651B (zh) * 2021-12-22 2023-07-21 河南大学 基于cp-abe的黄河坝岸监测数据共享方法
CN114357522A (zh) * 2022-01-13 2022-04-15 厦门荷月信息科技有限公司 一种隐私计算分组查询方法及系统
CN114565382A (zh) * 2022-03-01 2022-05-31 汪泽希 一种交易账户匿名支付方法及系统
CN114663080A (zh) * 2022-04-08 2022-06-24 北京京东乾石科技有限公司 基于区块链系统实现的数据处理方法、装置、设备及介质
CN115102703B (zh) * 2022-06-15 2023-10-03 中国电信股份有限公司 基于区块链的应用共享方法、装置、设备及介质
CN115208656B (zh) * 2022-07-12 2023-07-25 浪潮工创(山东)供应链科技有限公司 一种基于区块链和权限管理的供应链数据共享方法及系统
CN115510494B (zh) * 2022-10-13 2023-11-21 贵州大学 一种基于区块链与联邦学习的多方安全数据共享方法
CN115544171A (zh) * 2022-11-24 2022-12-30 中国电子信息产业集团有限公司第六研究所 异构物理资源数据处理方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180026979A1 (en) * 2016-07-22 2018-01-25 International Business Machines Corporation Database management system shared ledger support
CN108650252A (zh) * 2018-04-28 2018-10-12 分布共享(北京)信息技术有限公司 一种安全、公平保护隐私的数据共享系统及方法
CN108737374A (zh) * 2018-04-12 2018-11-02 三维通信股份有限公司 一种区块链中数据存储的隐私保护方法
CN110059495A (zh) * 2018-12-14 2019-07-26 阿里巴巴集团控股有限公司 数据共享方法、装置及系统、电子设备

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150379510A1 (en) * 2012-07-10 2015-12-31 Stanley Benjamin Smith Method and system to use a block chain infrastructure and Smart Contracts to monetize data transactions involving changes to data included into a data supply chain.
CN107819770A (zh) * 2017-11-15 2018-03-20 中国联合网络通信集团有限公司 基于区块链的医疗信息共享隐私保护方法及装置
CN107947940B (zh) * 2017-11-29 2020-12-25 树根互联技术有限公司 一种数据交换的方法及装置
CN108549965A (zh) * 2018-03-02 2018-09-18 深圳市元征科技股份有限公司 数据处理方法及数据处理平台、服务器
CN108681966B (zh) * 2018-05-11 2020-07-21 阿里巴巴集团控股有限公司 一种基于区块链的信息监管方法及装置
CN108681898B (zh) * 2018-05-15 2021-09-17 广东工业大学 一种基于区块链的数据交易方法及系统
CN108632292B (zh) * 2018-05-16 2020-11-17 苏宁易购集团股份有限公司 基于联盟链的数据共享方法和系统
CN108830606B (zh) * 2018-05-30 2021-12-28 创新先进技术有限公司 智能合约的部署、调用、执行方法和装置
CN108833385A (zh) * 2018-06-01 2018-11-16 深圳崀途科技有限公司 基于联盟链加密的用户数据匿名共享方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180026979A1 (en) * 2016-07-22 2018-01-25 International Business Machines Corporation Database management system shared ledger support
CN108737374A (zh) * 2018-04-12 2018-11-02 三维通信股份有限公司 一种区块链中数据存储的隐私保护方法
CN108650252A (zh) * 2018-04-28 2018-10-12 分布共享(北京)信息技术有限公司 一种安全、公平保护隐私的数据共享系统及方法
CN110059495A (zh) * 2018-12-14 2019-07-26 阿里巴巴集团控股有限公司 数据共享方法、装置及系统、电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3816837A4 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4174702A4 (en) * 2020-06-28 2023-11-22 ZTE Corporation PROXY METHOD, APPARATUS AND COMPUTER READABLE STORAGE MEDIUM
CN112699112A (zh) * 2020-12-31 2021-04-23 东莞市盟大商业保理有限公司 一种基于区块链技术的数据挖掘流程分享方法
CN112699112B (zh) * 2020-12-31 2024-02-06 东莞盟大集团有限公司 一种基于区块链技术的数据挖掘流程分享方法
WO2022151888A1 (zh) * 2021-01-18 2022-07-21 中国农业科学院深圳农业基因组研究所 数据共享方法及装置
CN113364754A (zh) * 2021-05-31 2021-09-07 支付宝(杭州)信息技术有限公司 数据共享方法、装置及设备
CN113364754B (zh) * 2021-05-31 2023-10-13 支付宝(杭州)信息技术有限公司 数据共享方法、装置及设备
CN114553582A (zh) * 2022-03-02 2022-05-27 安徽师范大学 基于国密算法和ipfs的电子病历共享方法
CN117675412A (zh) * 2024-01-31 2024-03-08 中国民用航空总局第二研究所 一种工业物联网场景下的具有强隐私保护的数据共享方法

Also Published As

Publication number Publication date
EP3816837B1 (en) 2023-12-20
CN110059495A (zh) 2019-07-26
CN110059495B (zh) 2020-11-17
US20210160068A1 (en) 2021-05-27
EP3816837A4 (en) 2021-12-08
TWI722586B (zh) 2021-03-21
SG11202100959RA (en) 2021-03-30
TW202024944A (zh) 2020-07-01
EP3816837A1 (en) 2021-05-05

Similar Documents

Publication Publication Date Title
WO2020119294A1 (zh) 数据共享方法、装置及系统、电子设备
JP6873270B2 (ja) ブロックチェーンにおけるスマートコントラクトに基づくトランザクション活動の取扱注意データを保護するための方法及びデバイス
WO2021017444A1 (zh) 基于区块链的数据授权方法及装置
TWI727292B (zh) 區塊鏈交易方法及裝置、電子設備
TWI724389B (zh) 徵信評估方法及裝置、電子設備
US20200042984A1 (en) Digital Contracts in Blockchain Environments
WO2020119286A1 (zh) 基于区块链的发票创建方法及装置、电子设备
TW202022857A (zh) 基於區塊鏈的發票創建方法及裝置、電子設備
WO2020169124A2 (en) Distributed storage of custom clearance data
TW202008271A (zh) 區塊鏈交易方法及裝置、電子設備
US11876801B2 (en) User ID codes for online verification
US20200311695A1 (en) Privacy-preserving gridlock resolution
WO2020169122A2 (en) Blockchain-based import custom clearance data processing
WO2020169127A2 (en) User management of blockchain-based custom clearance service platform
EP3841491A2 (en) Blockchain-based smart contract pools
TW202016819A (zh) 區塊鏈交易方法及裝置、電子設備
WO2023207086A1 (zh) 一种基于区块链的用户数据流转方法、装置及设备
US20210217098A1 (en) Blockchain-based message services for time-sensitive events
EP3844654A2 (en) Blockchain-based document registration for custom clearance
US20210217100A1 (en) Storage management based on message feedback
US20220399988A1 (en) Linking blockchain operations
Tan et al. Blockchain for Decentralized Know Your Customer (KYC) and Customer Due Diligence (CDD) Pipelines in the Metaverse
US20240171414A1 (en) Blockchain-based electronic document vault
US20240080191A1 (en) Collaborative computation across blockchain networks
US20230419302A1 (en) Api for incremental and periodic crypto asset transfer

Legal Events

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

Ref document number: 19896819

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019896819

Country of ref document: EP

Effective date: 20210126

NENP Non-entry into the national phase

Ref country code: DE