IP Library Granted Patent US 11,899,817
Granted Patent B2
US 11,899,817 · App. 17/163,547 · Granted Feb 13, 2024

Systems, methods, and apparatuses for storing PII information via a metadata driven blockchain using distributed and decentralized storage for sensitive user information

Inventor: Prithvi Krishnan Padmanabhan (San Ramon, CA)
Assignee: Salesforce, Inc.
G06F21/6245G06F16/24573G06F16/278G06F21/602G06F2221/2141
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,899,817
App. No.
17/163,547
Granted
Feb 13, 2024
Kind
B2
Abstract

Systems, methods, and apparatuses for storing PII information via a metadata driven blockchain using distributed and decentralized storage for sensitive user information, operable within a cloud based computing environment. For example, there is a system configured with a memory to store instructions; a set of one or more processors; a non-transitory machine-readable storage medium that provides instructions that, when executed by the set of one or more processors, the instructions stored in the memory are configurable to cause the system to perform operations including: operating a blockchain interface to a blockchain on behalf of a plurality of tenants of the host organization; operating a database interface to a distributed database, separate from the blockchain, on behalf of the plurality of tenants of the host organization; displaying a Graphical User Interface (GUI Interface) to a user device communicably interfaced with the system over a network, in which the GUI interface is to prompt for a metadata entity definition at the user device when displayed by the user device, in which the metadata entity definition defines access control permissions for a blockchain entity including specifying at least (i) a data classification attribute indicating sensitive user information and (ii) a consent required attribute indicating consent is required to access the sensitive user information and (iii) a consent requirements attribute indicating a party from whom the consent must be acquired; transacting the metadata entity definition onto the blockchain; creating a new entity object defined by the metadata entity definition within the distributed database system to store the sensitive user information and writing the sensitive user information to the distributed database to be persistently stored. Other related embodiments are disclosed.

Claims (100)

1. A system to execute at a host organization, wherein the system comprises:

a memory to store instructions;

a set of one or more processors;

a non-transitory machine-readable storage medium that provides instructions that, when executed by the set of one or more processors, the instructions stored in the memory are configurable to cause the system to perform operations comprising:

operating a blockchain interface to a blockchain on behalf of a plurality of tenants of the host organization;

operating a database interface to a distributed database, separate from the blockchain, on behalf of the plurality of tenants of the host organization;

displaying a Graphical User Interface (GUI Interface) to a user device communicably interfaced with the system over a network, wherein the GUI interface is to prompt for a metadata entity definition at the user device when displayed by the user device, wherein the metadata entity definition defines access control permissions for a blockchain entity including specifying at least (i) a data classification attribute indicating sensitive user information and (ii) a consent required attribute indicating consent is required to access the sensitive user information and (iii) a consent requirements attribute indicating a party from whom the consent must be acquired;

transacting the metadata entity definition onto the blockchain; and

creating a new entity object defined by the metadata entity definition within the distributed database to store the sensitive user information and writing the sensitive user information to the distributed database to be persistently stored.

2. The system of claim 1 , wherein writing the sensitive user information to the distributed database to be persistently stored comprises:

generating an SQL query to create a new record or to update an existing record within the new entity object at the distributed database;

executing the SQL query against the distributed database to persistently store the sensitive user information within the distributed database; and

wherein the access control permissions remain stored at the blockchain as the metadata entity definition and further wherein the sensitive user information remains stored within the new entity object at the distributed database without the sensitive user information ever being written to the blockchain.

3. The system of claim 1 , wherein the instructions are configurable to cause the system to perform operations further including:

receiving a transaction at the blockchain requesting access to the sensitive user information;

retrieving the metadata entity definition from the blockchain;

determining the metadata entity definition mandates the consent required attribute indicating consent is required to access the sensitive user information; and

determining the party from whom the consent must be acquired based on the consent requirements attribute as specified by the metadata entity definition retrieved from the blockchain.

4. The system of claim 3 , wherein the instructions are configurable to cause the system to perform operations further including:

determining the party from whom the consent must be acquired has granted consent for the requestor to access the sensitive user information; and

responsively querying the distributed database requesting retrieval of the sensitive user information.

5. The system of claim 3 , wherein the instructions are configurable to cause the system to perform operations further including:

executing a smart contract at the blockchain responsive to the transaction received at the blockchain requesting access to the sensitive user information;

determining, via execution of the smart contract, that the party from whom the consent must be acquired has granted consent based on availability of a decryption key written onto the blockchain via which to decrypt the sensitive user information;

responsively querying the distributed database requesting retrieval of the sensitive user information and passing the decryption key to the distributed database at the time of querying;

wherein the distributed database is to retrieve the sensitive user information as stored in an encrypted form and applies the decryption key to decrypt the sensitive user information and returns the sensitive user information in a non-encrypted format; and

receiving the sensitive user information from the distributed database in the non-encrypted format.

6. The system of claim 3 , wherein the instructions are configurable to cause the system to perform operations further including:

executing a smart contract at the blockchain responsive to the transaction received at the blockchain requesting access to the sensitive user information;

determining, via execution of the smart contract, that the party from whom the consent must be acquired has granted consent;

retrieving a decryption key written onto the blockchain via which to decrypt the sensitive user information;

responsively querying the distributed database requesting retrieval of the sensitive user information;

receiving the sensitive user information from the distributed database in an encrypted format; and

decrypting the sensitive user information via the decryption key.

7. The system of claim 1 , wherein the instructions are configurable to cause the system to perform operations further including:

executing a smart contract responsive to receiving the transaction at the blockchain, wherein the smart contract retrieves the metadata entity definition previously transacted onto the blockchain specifying the access control permissions; and

approving or denying access to the sensitive user information based on the execution of the smart contract.

8. The system of claim 7 , wherein approving or denying access, comprises:

executing the smart contract;

retrieving the metadata entity definition from the access control object previously transacted onto the blockchain pursuant to instructions instantiated by the execution of the smart contract;

determining if an initiator of the transaction received at the blockchain requesting access to the blockchain entity object corresponds to a specified blockchain participant having been granted read access, write access, update authority, create authority, or some combination thereof as represented by the stored metadata retrieved from the access control object; and

approving or denying the access to the blockchain entity object on the basis of (i) first whether the initiator of the transaction corresponds to any specified blockchain participant within the metadata entity definition identified as a permissible requestor by party from whom the consent must be acquired and (ii) whether sufficient blockchain access permissions have been granted to the permissible requestor and initiator of the transaction as defined by the metadata entity definition.

9. The system of claim 1 , wherein the instructions are configurable to cause the system to perform operations further including:

auto-generating an access control object specifying the access control permissions using the metadata entity definition received via the input from the GUI interface displayed to the client device; and

wherein transacting the metadata entity definition onto the blockchain comprises transacting the access control object onto the blockchain to store the metadata entity definition onto the blockchain.

10. The system of claim 1 :

wherein the sensitive user information comprises Personally Identifiable Information (PII) for an individual protected by jurisdictional requirements for the handling of PII by companies; or alternatively

wherein the sensitive user information comprises Personally Identifiable Information (PII) for an individual protected by General Data Protection Regulation (GDPR) compliance requirements for companies operating within the European Union.

11. The system of claim 1 :

wherein each one of the plurality of tenants operate as one of a plurality of participating nodes on the blockchain having access to the blockchain; or alternatively

wherein the host is to operate as one of a plurality of participating nodes on the blockchain having access to the blockchain on behalf of the plurality of tenants and further in which each of the plurality of tenants gain access to the blockchain indirectly through the participating node of the host organization.

12. The system of claim 1 :

wherein each one of the plurality of tenants operate as one of a plurality of participating nodes on the distributed database having access to the distributed database; or alternatively

wherein the host is to operate as one of a plurality of participating nodes on the distributed database having access to the distributed database on behalf of the plurality of tenants and further in which each of the plurality of tenants gain access to the distributed database indirectly through the participating node of the host organization.

13. The system of claim 1 :

wherein the distributed database comprises an InterPlanetary File System (IPFS) compatible type distributed database system; or

wherein the distributed database comprises a CouchDB compatible type distributed database system.

14. The system of claim 1 , wherein receiving the transaction at the blockchain requesting access to the sensitive user information comprises:

receiving a transaction at the blockchain requesting access to the blockchain entity subject to the metadata entity definition transacted onto the blockchain; and

retrieving the access control permissions specified for the blockchain entity from the blockchain to determine the access control permissions for the sensitive user information.

15. The system of claim 1 :

wherein displaying the GUI interface to the user device comprises executing instructions stored in the memory of the system via the processor, wherein the instructions cause the system to transmit the GUI interface from a receive interface of the system to a user device communicably interfaced with the system over the network; and

wherein receiving the input at the system from the GUI interface comprises receiving the input at the receive interface of the system.

16. The system of claim 1 , wherein transacting the metadata entity definition onto the blockchain comprises:

writing the metadata entity definition into an access control object defining a read on consensus access control mechanism;

writing the access control object having the metadata entity definition stored therein onto the blockchain; and

committing the access control object to the blockchain responsive to attaining consensus for the access control object.

17. The system of claim 16 :

wherein the metadata entity definition stored within the access control object defining the read on consensus access control mechanism implements read and write permissions as specified via the GUI displayed to the user device;

wherein the read and write permissions specify one or more blockchain entity names and one or more blockchain field names to which a specified blockchain participant is granted read access, write access, update authority, create authority, or some combination thereof; and

wherein any specified blockchain participant granted read access for the sensitive user information must query the distributed database requesting retrieval of the sensitive user information from the distributed database as the sensitive user information is never written onto the blockchain to which the metadata entity definition is stored.

18. The system of claim 1 :

wherein the system of the host organization implements a cloud computing platform providing on-demand cloud computing services on accessible to subscribers of the cloud computing platform; and

wherein an initiator of the transaction received at the blockchain requesting access to the blockchain entity object is associated with one of a plurality of customer organizations having subscriber access to the on-demand cloud computing services provided by the cloud computing platform.

19. A method performed by a system of a host organization, the system having a processor and a memory therein, wherein the method comprises:

operating a blockchain interface to a blockchain on behalf of a plurality of tenants of the host organization;

operating a database interface to a distributed database, separate from the blockchain, on behalf of the plurality of tenants of the host organization;

displaying a Graphical User Interface (GUI Interface) to a user device communicably interfaced with the system over a network, wherein the GUI interface is to prompt for a metadata entity definition at the user device when displayed by the user device, wherein the metadata entity definition defines access control permissions for a blockchain entity including specifying at least (i) a data classification attribute indicating sensitive user information and (ii) a consent required attribute indicating consent is required to access the sensitive user information and (iii) a consent requirements attribute indicating a party from whom the consent must be acquired;

transacting the metadata entity definition onto the blockchain; and

creating a new entity object defined by the metadata entity definition within the distributed database to store the sensitive user information and writing the sensitive user information to the distributed database to be persistently stored.

20. The method of claim 19 , further comprising:

receiving a transaction at the blockchain requesting access to the sensitive user information;

retrieving the metadata entity definition from the blockchain;

determining the metadata entity definition mandates the consent required attribute indicating consent is required to access the sensitive user information;

determining the party from whom the consent must be acquired based on the consent requirements attribute as specified by the metadata entity definition retrieved from the blockchain;

determining the party from whom the consent must be acquired has granted consent for the requestor to access the sensitive user information; and

responsively querying the distributed database requesting retrieval of the sensitive user information.

21. Non-transitory computer-readable storage media having instructions stored thereupon that, when executed by a processor of a system having at least a processor and a memory therein, the instructions cause the system to perform operations comprising:

operating a blockchain interface to a blockchain on behalf of a plurality of tenants of the host organization;

operating a database interface to a distributed database, separate from the blockchain, on behalf of the plurality of tenants of the host organization;

displaying a Graphical User Interface (GUI Interface) to a user device communicably interfaced with the system over a network, wherein the GUI interface is to prompt for a metadata entity definition at the user device when displayed by the user device, wherein the metadata entity definition defines access control permissions for a blockchain entity including specifying at least (i) a data classification attribute indicating sensitive user information and (ii) a consent required attribute indicating consent is required to access the sensitive user information and (iii) a consent requirements attribute indicating a party from whom the consent must be acquired;

transacting the metadata entity definition onto the blockchain; and

creating a new entity object defined by the metadata entity definition within the distributed database to store the sensitive user information and writing the sensitive user information to the distributed database to be persistently stored.

22. The non-transitory computer readable storage media of claim 21 , wherein the instructions cause the system to perform operations further comprising:

receiving a transaction at the blockchain requesting access to the sensitive user information;

retrieving the metadata entity definition from the blockchain;

determining the metadata entity definition mandates the consent required attribute indicating consent is required to access the sensitive user information;

determining the party from whom the consent must be acquired based on the consent requirements attribute as specified by the metadata entity definition retrieved from the blockchain;

determining the party from whom the consent must be acquired has granted consent for the requestor to access the sensitive user information; and

responsively querying the distributed database requesting retrieval of the sensitive user information.

Assignments (2)
CHANGE OF NAME Recorded Dec 13, 2023
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 065988/0167 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 15, 2023
From: PADMANABHAN, PRITHVI KRISHNAN
To: SALESFORCE.COM, INC.
Reel/Frame 063956/0063 →
Continuity (6)
Continuation In Part 16399920 · Apr 30, 2019
Continuation In Part 16264645 · Jan 31, 2019
Continuation In Part 17163547 · Jan 31, 2021
Continuation In Part 16777073 · Jan 30, 2020
Provisional Application 62839525 · Apr 26, 2019
Related Publication 20210182423A1 · Jun 17, 2021
Cited By (3)
US 12,236,422 US 12,243,629 US 12,499,266