IP Library Granted Patent US 12,034,840
Granted Patent B2
US 12,034,840 · App. 18/106,302 · Granted Jul 9, 2024

Computer implemented system and method for sharing a common secret preliminary class

Inventor: Craig Steven Wright (London, GB)
Assignee: nChain Licensing AG
H04L9/0841H04L9/0825H04L9/085H04L9/3066
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 12,034,840
App. No.
18/106,302
Granted
Jul 9, 2024
Kind
B2
Abstract

A method of sharing a first common secret among a plurality of nodes for enabling secure communication for blockchain transactions. The method comprises determining, for at least one first node a plurality of second common secrets, wherein each second common secret is common to the first node and a respective second node, is determined at the first node based on a first private key of the first node and a first public key of the second node and is determined at the second node based on the first private key of the second node and the first public key of the first node. The method further comprises exchanging encrypted shares of the first common secret among the plurality of nodes to enable each of the plurality of nodes to reach a threshold number of shares of the first common secret to access the first common secret.

Claims (57)

1. A method of sharing a first common secret among a plurality of nodes in a blockchain network, wherein each said node is associated with a respective asymmetric cryptography first key pair having a respective first private key and a respective first public key of a cryptography system common to said plurality of nodes, and wherein the first common secret is based on the first private key of each of said nodes, the method comprising:

determining, for at least one first node, a plurality of second common secrets, wherein each said second common secret is common to said first node and a respective second node, is determined at said first node based at least in part on a first private key of the first node and a first public key of the second node, and is determined at the second node on the basis of based at least in part on the first private key of the second node and the first public key of the first node, wherein a plurality of shares of the first common secret are each based on at least one respective second common secret such that said first common secret is accessible using a threshold number of said shares but is inaccessible using less than said threshold number of said shares;

determining, for the respective second node, at least one respective third common secret, wherein each respective third common secret is common to said second node and a respective third node, is determined at said second node based at least in part on the first private key of the second node and the first public key of the third node, and is determined at the third node based at least in part on the first private key of the third node and the first public key of the second node, and wherein at least one share of the first common secret is based on at least one respective said third common secret;

encrypting by Iodic XOR encryption means, by at least one said first node, at least one share of said first common secret known to said first node, based at least in part on a respective encryption key common to said first node and a respective said second node, wherein said encryption key is based on a respective said second common secret known to said first node and said second node;

sending at least one said encrypted share from said first node to the respective said second node with which the second common secret on which said encryption key is based is common; and

receiving, by at least one said first node, from at least one said second node, at least one respective share of said first common secret known to said second node and encrypted based at least in part on a respective encryption key common to said first node and said second node, wherein said encryption key is based on the second common secret common to said first node and said second node, to enable said first node to access at least one share of said first common secret known to said second node.

2. The method according to claim 1 , wherein said encrypting comprises encrypting the plurality of shares based on a combination of a plurality of said second or third common secrets known to a corresponding node.

3. The method according to claim 2 , wherein said encrypting comprises encrypting the plurality of shares based on at least one logic XOR combination of a plurality of said second or third common secrets known to the corresponding node.

4. The method according to claim 1 , wherein the plurality of said shares are shares of a first polynomial function, and the first common secret is determined by means of polynomial interpolation of at least a threshold number of said shares.

5. The method according to claim 4 , further comprising:

receiving at least the threshold number of shares of said first common secret, wherein each said share corresponds to a respective value of the first polynomial function; and

determining said first polynomial function, by means of determining coefficients of the first polynomial function from a plurality of known values of said shares, to determine said first common secret.

6. The method according to claim 5 , wherein the step determining said first polynomial function comprises executing an error correction algorithm.

7. The method according to claim 6 , wherein the step determining said first polynomial function comprises executing a Berlekamp-Welch decoding algorithm.

8. The method according to claim 5 , wherein determining said first polynomial function comprises:

defining an error locator polynomial function and a second polynomial function, wherein the second polynomial function is a product of said first polynomial function and said error locator polynomial function, determining coefficients of said second polynomial function and said error locator polynomial function from a plurality of known values of said first polynomial function, and determining said first polynomial function from said second polynomial function and an error detector polynomial function, to determine the first common secret.

9. The method according to claim 1 , wherein at least one said cryptography system has a homomorphic property.

10. The method according to claim 9 , wherein at least one said cryptography system is an elliptic curve cryptography system.

11. A method of secure communication between a plurality of nodes in a blockchain network, wherein the method comprises:

sharing a first common secret among a plurality of nodes by:

determining, for at least one first node, a plurality of second common secrets, wherein each said second common secret is common to said first node and a respective second node, is determined at said first node based at least in part on a first private key of the first node and a first public key of the second node, and is determined at the second node based at least in part on the first private key of the second node and the first public key of the first node, wherein a plurality of shares of the first common secret are each based on at least one respective second common secret such that said first common secret is accessible using a threshold number of said shares but is inaccessible using less than said threshold number of said shares;

determining, for the respective second node, at least one respective third common secret, wherein each respective third common secret is common to said second node and a respective third node, is determined at said second node based at least in part on a first private key of the second node and the first public key of the third node, and is determined at the third node based at least in part on the first private key of the third node and the first public key of the second node, and wherein at least one share of the first common secret is based on at least one respective said third common secret;

encrypting by logic XOR encryption means, by at least one said first node, at least one share of said first common secret known to said first node, based at least in part on a respective encryption key common to said first node and a respective said second node, wherein said encryption key is based on a respective said second common secret known to said first node and said second node;

sending at least one said encrypted share from said first node to the respective said second node with which the second common secret on which said encryption key is based is common; and

receiving, by at least one said first node, from at least one said second node, at least one respective share of said first common secret known to said second node and encrypted based at least in part on a respective encryption key common to said first node and said second node, wherein said encryption key is based on the second common secret common to said first node and said second node, to enable said first node to access at least one share of said first common secret known to said second node;

determining a symmetric-key based on the first common secret;

encrypting a first communication message, with the symmetric-key, to an encrypted first communication message; and

sending, over a communications network, the encrypted first communication message from one of said plurality of nodes to the other nodes of said plurality of nodes.

12. The method according to claim 11 , further comprising:

receiving, over the communications network, an encrypted second communication message from a node of said plurality of nodes; and

decrypting the encrypted second communication message, with the symmetric-key, to a second communication message.

13. A method of performing an online blockchain transaction between a plurality of nodes in a blockchain network, wherein the method comprises:

sharing a first common secret among a plurality of nodes by:

determining, for at least one first node, a plurality of second common secrets,

wherein each said second common secret is common to said first node and a respective second node, is determined at said first node based at least in part on a first private key of the first node and a first public key of the second node, and is determined at the second node based at least in part on the first private key of the second node and the first public key of the first node, wherein a plurality of shares of the first common secret are each based on at least one respective second common secret such that said first common secret is accessible using a threshold number of said shares but is inaccessible using less than said threshold number of said shares;

determining, for the respective second node, at least one respective third common secret, wherein each respective third common secret is common to said second node and a respective third node, is determined at said second node based at least in part on the first private key of the second node and the first public key of the third node, and is determined at the third node based at least in part on the first private key of the third node and the first public key of the second node, and wherein at least one share of the first common secret is based on at least one respective said third common secret;

encrypting by Iodic XOR encryption means, by at least one said first node, at least one share of said first common secret known to said first node, based at least in part on a respective encryption key common to said first node and a respective said second node, wherein said encryption key is based on a respective said second common secret known to said first node and said second node;

sending at least one said encrypted share from said first node to the respective said second node with which the second common secret on which said encryption key is based is common;

receiving, by at least one said first node, from at least one said second node, at least one respective share of said first common secret known to said second node and encrypted based at least in part on a respective encryption key common to said first node and said second node, wherein said encryption key is based on the second common secret common to said first node and said second node, to enable said first node to access at least one share of said first common secret known to said second node;

determining a symmetric-key based on the first common secret;

encrypting a first transaction message, with the symmetric-key, to an encrypted first transaction message; and

sending, over a communications network, the encrypted first transaction message from a first node of said plurality of nodes to the other nodes of said plurality of nodes.

14. A system, comprising:

a processor; and

memory including executable instructions that, as a result of execution by the processor, cause the system to perform a method of sharing a first common secret among a plurality of nodes in a blockchain network, wherein each said node is associated with a respective asymmetric cryptography first key pair having a respective first private key and a respective first public key of a cryptography system common to said plurality of nodes, and wherein the first common secret is based on a first private key of each of said nodes, the method comprising:

determining, for at least one first node, a plurality of second common secrets, wherein each said second common secret is common to said first node and a respective second node, is determined at said first node based at least in part on a first private key of the first node and a first public key of the second node, and is determined at the second node based at least in part on the first private key of the second node and the first public key of the first node, wherein a plurality of shares of the first common secret are each based on at least one respective second common secret such that said first common secret is accessible using a threshold number of said shares but is inaccessible using less than said threshold number of said shares;

determining, for the respective second node, at least one respective third common secret, wherein each respective third common secret is common to said second node and a respective third node, is determined at said second node based at least in part on the first private key of the second node and the first public key of the third node, and is determined at the third node based at least in part on the first private key of the third node and the first public key of the second node, and

wherein at least one share of the first common secret is based on at least one respective said third common secret;

encrypting by Iodic XOR encryption means, by at least one said first node, at least one share of said first common secret known to said first node, based at least in part on a respective encryption key common to said first node and a respective said second node, wherein said encryption key is based on a respective said second common secret known to said first node and said second node;

sending at least one said encrypted share from said first node to the respective said second node with which the second common secret on which said encryption key is based is common; and

receiving, by at least one said first node, from at least one said second node, at least one respective share of said first common secret known to said second node and encrypted based at least in part on a respective encryption key common to said first node and said second node, wherein said encryption key is based on the second common secret common to said first node and said second node, to enable said first node to access at least one share of said first common secret known to said second node.

15. A non-transitory computer-readable storage medium having stored thereon executable instructions that, as a result of being executed by a processor of a computer system, cause the computer system to perform a method of sharing a first common secret among a plurality of nodes in a blockchain network, wherein each said node is associated with a respective asymmetric cryptography first key pair having a respective first private key and a respective first public key of a cryptography system common to said plurality of nodes, and wherein the first common secret is based on the first private key of each of said nodes, the method comprising:

determining, for at least one first node, a plurality of second common secrets, wherein each said second common secret is common to said first node and a respective second node, is determined at said first node based at least in part on a first private key of the first node and a first public key of the second node, and is determined at the second node based at least in part on the first private key of the second node and the first public key of the first node, wherein a plurality of shares of the first common secret are each based on at least one respective second common secret such that said first common secret is accessible using a threshold number of said shares but is inaccessible using less than said threshold number of said shares;

determining, for the respective second node, at least one respective third common secret, wherein each respective third common secret is common to said second node and a respective third node, is determined at said second node based at least in part on the first private key of the second node and the first public key of the third node, and is determined at the third node based at least in part on the first private key of the third node and the first public key of the second node, and wherein at least one share of the first common secret is based on at least one respective said third common secret;

encrypting by Iodic XOR encryption means, by at least one said first node, at least one share of said first common secret known to said first node, based at least in part on a respective encryption key common to said first node and a respective said second node, wherein said encryption key is based on a respective said second common secret known to said first node and said second node;

sending at least one said encrypted share from said first node to the respective said second node with which the second common secret on which said encryption key is based is common; and

receiving, by at least one said first node, from at least one said second node, at least one respective share of said first common secret known to said second node and encrypted based at least in part on a respective encryption key common to said first node and said second node, wherein said encryption key is based on the second common secret common to said first node and said second node, to enable said first node to access at least one share of said first common secret known to said second node.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 6, 2023
From: WRIGHT, CRAIG
To: NCHAIN HOLDINGS LTD
Reel/Frame 062605/0513 →
CHANGE OF NAME Recorded Feb 6, 2023
From: NCHAIN HOLDINGS LTD
To: NCHAIN LICENSING AG
Reel/Frame 062683/0443 →
Priority Claims (1)
GB 1815396 · Sep 21, 2018 · national
Continuity (2)
Continuation 17278198
Related Publication 20230299947A1 · Sep 21, 2023