QKD, or Quantum Key Distribution: every now and then I read some suggestion about QKD and quantum resistant blockchain. Either as a buzzword or a serious suggestion to use for quantum proofing blockchain.
tldr; QKD is not feasible for achieving quantum resistance in blockchain. It is not a cryptography method that can solve the issues current non-quantum resistan signature schemes have. To become quantum resistant, you need to implement a quantum resistant signature scheme. QKD has nothing to do with/ to add, to signature schemes.
Here’s the sales pitch for QKD: A method of encrypted communication can be the following: by encrypting and decrypting information with a shared secret key. For this method, you obviously need to have a shared secret key to be able to decrypt the encrypted messages that are sent. Using QKD, you can send this shared secret key to your partner, while knowing whether or not someone is listening somewhere on the communication line. Yes, you read it right, you can detect if someone has listened in on your line. So you would know that someone has attempted to read the shared secret key that you just tried to establish with your partner. Knowing that the key is compromised, you now just try another one, instead of using the compromised key. When succeeded, only the two of you have this specific shared secret key. This while you know for a fact that no one has eavesdropped, and you can send an encrypted message that only the two of you can decrypt. Just to be totally clear: QKD exists today and doesn’t need quantum computers to function.
QKD isn’t a full cryptography method. It‘s part of an encryption method. It’s only feasable for Key Distribution, for establishing shared secret keys. It’s a method of sending information in such a way, that you can detect eavesdropping by making use of quantum mechanics. So you can detect whether or not someone is listening to what you are sending. But what you are sending isn’t encrypted. Encrypting messages will be done with the shared key you sent by using a QKD method. So since it is not encrypted, you can’t use QKD to send all types of secret information. Why the fact that it is not encrypted is not an issue when you try to establish a shared secret key, will be explained later. Botom line is: QKD is not a full cryptography method, it’s a transmission method that is only useful for one very specific use case: Key Distribution.
QKD and blockchain. QKD solves a problem we don’t have in blockchain. QKD is a way of sending shared secret keys from A to B. This is only useful, if you use a type of cryptography that uses shared secret keys to decrypt and encrypt messages. But blockchain doesn’t use shared secret keys. In blockchain we don’t encrypt transactions, and we use private keys that stay private and will not be shared. And we use public keys that need to be made public when you make a transaction. If public keys can be broken by quantum computers, you would need a quantum resistant signature scheme to solve that issue. QKD doesn’t add anything useful there. For a basic explanation of how blockchain uses public- private key cryptography, see here and here. The misconception that hashing public keys would make a blockchain quantum resistant, as often said about BTC, is discussed in part 6 of that series. Sneak peak: it doesn’t make BTC quantum resistant.
So QKD doesn’t add anything to blockchain as far as quantum resistance goes. It is however, very cool tech and and if you’re interested, worth taking a closer look to.
In part B I will explain QKD and how it works.