nChain now has a plethora of inventions for scaling and securing blockchains.
While the whole blockchain and cryptocurrency word war has been raging all year-round, developers have been quietly working behind the scenes. nChain, which is a member of the Bitcoin Cash developer community, has broadened their artillery for mass scaling and securing the blockchain. In this article, we delve into their first two inventions: deterministic key generation and the secure split key technique. We will be looking into the rest of the tools in separate posts.
In their blog, nChain CEO Jimmy Nguyen says they may have the answer to gaining business and consumer confidence—which is one of the most crucial yet arduous preconditions for mass adoption. Researchers from nChain have devised mechanisms to help ensure the security of private keys and digital wallets as a whole, protecting users and businesses from being “Goxxed” again. And according to the post, the potential uses go far beyond financial applications.
“These techniques can be used to secure a digital wallet so that no Mt. Gox-type hack could ever succeed again. But these inventions can do far more; they can secure any digital data, asset, communication or controlled resource, making their potential uses countless as our world and devices become increasingly digitized,” Nguyen wrote.
The new mechanism employs a combination of two techniques.
- Deterministic Key Generation technique
The first part to the mechanism employs a more complex “shuffling” of both the private and public keys of the users involved in a transaction, further jumbling up the keys to a point that is much farther beyond recognition. The full paper on this technique, titled “Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys,” can be found here.
Under nChain’s deterministic key generation, the shuffling of the keys is more complex:
- A pair of nodes on a network (e. parties), each of which has its own private key and public key, exchange their respective public keys while keeping their private keys secret.
- They also exchange a message.
- They then agree between them a deterministic key which is based on the message. The key is “deterministic” in that the same key will be produced upon multiple executions of the key generation algorithm.
- Each node then determines:
- an updated version of its own private key, based on its existing private key and the deterministic key, and
- an updated version of the other node’s public key, based on the other node’s existing public key and the deterministic key.
This may be achieved by applying a neat mathematical process to the existing private key and the deterministic key.
- Each pair of nodes then determines a common (e. shared) secret on the basis of its own updated private key and the other node’s updated public key. As the deterministic key is based on a shared message and is therefore common to both nodes, the same common secret can be determined by both nodes, but by means of a combination of different updated private and updated public keys. This common secret can then be used as the basis for secure communication between the nodes.
This can be illustrated as follows:
This significantly distances the resulting final hashes from the original keys and shuffles them far beyond recognition and decryption. And in this technique there is no need for either party to store or broadcast the resulting “secret,” as both nodes arrive at the same secret from the original message. And there is far less risk associated with the original message being intercepted: “the message does not need to be stored with the same degree of security as the private keys, and in some cases may be publicly available,” Nguyen wrote.
The technique may be useful for several applications beyond finance—and even beyond blockchains as Nguyen notes, particularly in securely sending messages and storing records, as well as controlling IoT devices.
Nguyen says that this technique has some issues, however, such as when one of the nodes involved in the transaction is unavailable. One other issue raised is when a service provider that holds a user’s private keys—such as an exchange, is hacked.
And that’s where the second part of the mechanism comes in.
- Secure Split Key technique
The hacking of exchanges is a common and severely costly occurrence in the cryptocurrency industry. Nguyen notes that due to this, “there is a need to store the private key in such a way that it cannot be obtained by an unauthorised party, but can also be reproduced when necessary.”
To secure digital wallets (or other sensitive data), nChain proposes a mechanism using “Shamir’s secret sharing scheme,” in which a key is divided into parts and distributed to different parties—and will not work unless combined. Obtaining one part will not work on its own, and will need a few other parts or even the entirety of the key.
This scheme is then combined with the deterministic key generation technique:
- splitting a cryptographic key (or a mnemonic seed for a cryptographic key) into a plurality of shares such that it can be restored or regenerated from two or more of those shares. This could be performed using a known cryptographic algorithm called “Shamir’s secret sharing scheme” (4S), which involves splitting the key up into unique parts or shares which are then distributed to different parties. The shares can be used to reconstruct the key when needed. Each individual share is of no value or use on its own until it is combined with one or more other shares. The number of shares required to reconstruct the key can vary according to the needs of the situation. In some cases, all shares may be required, while in other cases only a sufficient number are required.
- determining a common secret at two or more nodes on a network (e. parties), and then using the common secret to generate an encryption key which can be used to encrypt one or more of the shares, or a message relating to the share.
- using the common secret to transmit at least one share of the key between the two or more nodes. These two steps can be performed using the foregoing technique and the Deterministic Key Generation invention described above. The transmission of shares between the parties must be performed in a secure manner because any unauthorised interception of multiple shares could enable the interceptor to reconstruct the key.
The keys are split and the entire private key may be destroyed as it is no longer needed in that form. Separate parties can keep parts of the key and reconstruct them only when needed. In this scenario, a hack like that of Mt Gox would not be feasible even if a hacker succeeds in infiltrating one of the parties involved in safekeeping the key—since that is only a fragment of the entire key needed to siphon funds out. A hack would require that the maligning entity obtain several or all parts of the key—from different sources that have yet to identify beforehand.