| CPC G06Q 20/389 (2013.01) [G06Q 20/382 (2013.01); H04L 9/50 (2022.05); H04L 9/3236 (2013.01); H04L 2209/56 (2013.01)] | 14 Claims |

|
1. A system, comprising:
a processor;
a memory on which are stored machine readable instructions that when executed by the processor, cause the processor to:
generate a plaintext description of a user data attribute, wherein the user data attribute is encrypted and stored in an external data store;
receive an application programming interface (API) call via an API of a chaincode from a data owner node, wherein the API call requests the user data attribute be advertised using the plaintext description of the user data attribute;
record the plaintext description of the user data attribute to a blockchain ledger thereby advertising the plaintext description of the user data attribute to participants of the blockchain ledger without divulging the user data attribute;
receive a query from a data consumer node of a blockchain network, wherein the query comprises a request for the user data attribute and identifies the user data attribute based on the plaintext description of the user data attribute;
establish a private channel of the blockchain network between the data consumer node and the data owner node;
generate a blockchain transaction to deploy the chaincode within the private channel based on a software development kit (SDK) associated with the blockchain ledger;
execute the blockchain transaction via a consensus process performed among peer nodes of the blockchain ledger;
install the chaincode on a plurality of blockchain peers of the blockchain ledger including the data owner node and the data consumer node;
receive a commitment to provide the user data attribute to the data consumer node from the data owner node via a second API of the chaincode;
record the commitment to the blockchain ledger via the chaincode; and
transfer the user data attribute to the data consumer node upon detection of the commitment being recorded to the blockchain ledger based on a secure multi-party computation between the data owner node and the data consumer node without disclosing the user data attribute to either the data owner node or the data consumer node, wherein the transfer comprises a transfer of a decryption key for decrypting the user data attribute and a storage location of the user data attribute in the external data store.
|