User access control in blockchain
A method, computer system, and a computer program product for controlling access to an asset in a blockchain network is provided. The present invention may include encrypting the asset using a target encryption key. The present invention may also include storing the encrypted asset on a ledger. The present invention may then include receiving a start encryption key to access the asset. The present invention may further include traversing a graph of keys beginning with the start encryption key across a plurality of nodes and edges until reaching the target encryption key. The present invention may also include allowing access to the asset based on reaching the target encryption key.
1. A method for controlling access to an asset in a blockchain network, the method comprising:
encrypting the asset using a target encryption key;
storing the encrypted asset on a ledger;
receiving a start encryption key;
creating an edge between a first node and a second node, wherein the first node is the target encryption key and the second node is the start encryption key;
receiving a request to access the asset;
traversing a graph of keys beginning with the start encryption key across a plurality of nodes and edges until reaching the target encryption key, wherein the nodes represent the keys and the edges represent encryption relationships;
providing an encryption key based on reaching the target encryption key; and
allowing access to the asset.
2. The method of claim 1 , wherein the asset is encrypted using an asset symmetric key.
3. The method of claim 1 , wherein the ledger is comprised of a blockchain and a state database.
4. The method of claim 1 , wherein the request to access is made by a user.
5. The method of claim 1 , wherein the asset is sensitive user data.
6. The method of claim 1 , wherein the start encryption key is a user private key.
7. The method of claim 1 , wherein the accessibility to the asset uses a graph-based access control model.
8. A computer system for controlling access to an asset in a blockchain network, comprising:
one or more processors, one or more computer-readable memories, one or more computer-readable tangible storage media, and program instructions stored on at least one of the one or more computer-readable tangible storage media for execution by at least one of the one or more processors via at least one of the one or more computer-readable memories, wherein the computer system is capable of performing a method comprising:
encrypting the asset using a target encryption key;
storing the encrypted asset on a ledger;
receiving a start encryption key;
creating an edge between a first node and a second node, wherein the first node is the target encryption key and the second node is the start encryption key;
receiving a request to access the asset;
traversing a graph of keys beginning with the start encryption key across a plurality of nodes and edges until reaching the target encryption key, wherein the nodes represent the keys and the edges represent encryption relationships;
providing an encryption key based on reaching the target encryption key; and
allowing access to the asset.
9. The computer system of claim 8 , wherein the asset is encrypted using an asset symmetric key.
10. The computer system of claim 8 , wherein the ledger is comprised of a blockchain and a state database.
11. The computer system of claim 8 , wherein the request to access is made by a user.
12. The computer system of claim 8 , wherein the asset is sensitive user data.
13. The computer system of claim 8 , wherein the start encryption key is a user private key.
14. The computer system of claim 8 , wherein the accessibility to the asset uses a graph-based access control model.
15. A computer program product for controlling access to an asset in a blockchain network, comprising:
a computing device containing one or more non-transitory computer-readable tangible storage media and program instructions stored on at least one of the one or more non-transitory computer-readable tangible storage media, the program instructions executable by a processor to cause the processor to perform a method comprising:
encrypting the asset using a target encryption key;
storing the encrypted asset on a ledger;
receiving a start encryption key;
creating an edge between a first node and a second node, wherein the first node is the target encryption key and the second node is the start encryption key;
receiving a request to access the asset;
traversing a graph of keys beginning with the start encryption key across a plurality of nodes and edges until reaching the target encryption key, wherein the nodes represent the keys and the edges represent encryption relationships;
providing an encryption key based on reaching the target encryption key; and
allowing access to the asset.
16. The computer program product of claim 15 , wherein the asset is encrypted using an asset symmetric key.
17. The computer program product of claim 15 , wherein the ledger is comprised of a blockchain and a state database.
18. The computer program product of claim 15 , wherein the request to access is made by a user.
19. The computer program product of claim 15 , wherein the asset is sensitive user data.
20. The computer program product of claim 15 , wherein the start encryption key is a user private key.