<p>The requirement for a one time pad to be secure is that it consists of <strong>uniformly</strong> <strong>random</strong> data, <strong>only known</strong> to the participants that should be able to encrypt/decrypt.</p>

<p>The blockchain is <strong>not random</strong> (it's created by miners and users creating transactions), certainly <strong>not uniformly</strong> random (blocks and transactions have a very strict syntactic structure), and worst of all it is designed to be <strong>known to the entire world</strong> (or in the case of private blockchains, to all those who should be able to audit).</p>

<p>Short answer: bad idea.</p>

CC BY-SA 3.0
2016-04-12T15:53:04.963Z
Thanks a lot for your answer. Can one also not use blockchain as a source of generating random one time key? This means not using blockchain directly but as a source or intermediate step,
user2065276
CC BY-SA 3.0
2016-04-12T15:54:13.650Z
I did n't get the idea of audit. Should n't the private blockchain be accessible to only the sender and receiving parties? Who are auditors that you mentioned? Thanks
user2065276
CC BY-SA 3.0
2016-04-12T16:09:30.300Z
If a private blockchain is only accessible to the sender and the receiver, why do you need a blockchain? Just a digital signature suffices. The blockchain is there to interoperate with others that can verify the validity of the transactions. And no, it is not random data, sorry. Every byte in it is chosen by some party; if you can influence that party, you can influence the outcome.
Pieter Wuille
CC BY-SA 3.0
2016-04-12T16:14:41.283Z
In my humble understanding, Digital signature is for non-repudiation. It is not substitute for encryption/decryption. The validity of the transaction is done by the recipient (who could be one or more). Sorry to drag this but its good to clear some points of confusion. Thanks very much again
user2065276
CC BY-SA 3.0
2016-04-12T16:15:13.597Z
A blockchain is not a substitute for encryption either.
Pieter Wuille
CC BY-SA 3.0
2016-04-12T16:27:29.453Z
Digital signature schemes are really just encryption/decryption, but with an asymmetric cipher.  Because asymmetric cryptography takes longer, it is generally only used with small bits of data, such as hashes of larger pieces of data.  With these asymmetric ciphers, you can also use Diffie-Hellman key agreement to come to agreement on a symmetric key, and then use a symmetric cipher on larger pieces of data.  I think the part you are confused with is that you believe you need a 70GB key to encrypt 70GB worth of data.  You don't.
Jestin
CC BY-SA 3.0
2016-04-12T17:18:24.997Z
@Jestin That's probably the most common misunderstanding about digital signatures I see: they are not the same as encryption. It is true that one specific algorithm (RSA) can be used for both encryption and signatures, but that is not true in general. Specifically, the signature algorithm Bitcoin uses (ECDSA) cannot in any way be used for encryption.
Pieter Wuille
CC BY-SA 3.0
2016-04-12T17:20:11.757Z
@Jestin The question is also about a One Time Pad, the only provably secure encryption algorithm. And it does need a key as large as the data being encrypted. You can also use it only once, and has hardly any use in practice.
Pieter Wuille
CC BY-SA 3.0
2016-04-12T15:12:52.677Z
2016-04-12T15:12:52.677Z
Pieter Wuille
<p>I am thinking if secure encryption like one time pad (OTP) is achievable using bitcoin blockchain? The reason is bitcoin blockchain size is over 70 GB, which could potentially encrypt/decrypt 70 GB worth of data. All that is needed by the sender and receiver is blockchain and an application that encrypts and decrypts the data on the sender and receiver end respectively. Please share your thoughts if it is a bad or wild idea and why? How about using other public blockchains like Ethereum or private ones like Eris or Hyperledger. What would make it work?</p>

<blockchain><client><encryption>
one time pad using blockchain
user2065276
# one time pad using blockchain

(Asked by: username_0 on 2016-04-12)

I am thinking if secure encryption like one time pad (OTP) is achievable using bitcoin blockchain? The reason is bitcoin blockchain size is over 70 GB, which could potentially encrypt/decrypt 70 GB worth of data. All that is needed by the sender and receiver is blockchain and an application that encrypts and decrypts the data on the sender and receiver end respectively. Please share your thoughts if it is a bad or wild idea and why? How about using other public blockchains like Ethereum or private ones like Eris or Hyperledger. What would make it work?

**Tags:** blockchain, client, encryption


---

## 1 answers

### Answer by username_1 on 2016-04-12. Score: 5 | Accepted answer

The requirement for a one time pad to be secure is that it consists of **uniformly** **random** data, **only known** to the participants that should be able to encrypt/decrypt.

The blockchain is **not random** (it's created by miners and users creating transactions), certainly **not uniformly** random (blocks and transactions have a very strict syntactic structure), and worst of all it is designed to be **known to the entire world** (or in the case of private blockchains, to all those who should be able to audit).

Short answer: bad idea.

> **Comments:**
> **username_0**: Thanks a lot for your answer. Can one also not use blockchain as a source of generating random one time key? This means not using blockchain directly but as a source or intermediate step,  
> **username_0**: I did n't get the idea of audit. Should n't the private blockchain be accessible to only the sender and receiving parties? Who are auditors that you mentioned? Thanks  
> **username_1**: If a private blockchain is only accessible to the sender and the receiver, why do you need a blockchain? Just a digital signature suffices. The blockchain is there to interoperate with others that can verify the validity of the transactions. And no, it is not random data, sorry. Every byte in it is chosen by some party; if you can influence that party, you can influence the outcome.  
> **username_0**: In my humble understanding, Digital signature is for non-repudiation. It is not substitute for encryption/decryption. The validity of the transaction is done by the recipient (who could be one or more). Sorry to drag this but its good to clear some points of confusion. Thanks very much again  
> **username_1**: A blockchain is not a substitute for encryption either.  
> **username_2**: Digital signature schemes are really just encryption/decryption, but with an asymmetric cipher.  Because asymmetric cryptography takes longer, it is generally only used with small bits of data, such as hashes of larger pieces of data.  With these asymmetric ciphers, you can also use Diffie-Hellman key agreement to come to agreement on a symmetric key, and then use a symmetric cipher on larger pieces of data.  I think the part you are confused with is that you believe you need a 70GB key to encrypt 70GB worth of data.  You don't.  
> **username_1**: @username_2 That's probably the most common misunderstanding about digital signatures I see: they are not the same as encryption. It is true that one specific algorithm (RSA) can be used for both encryption and signatures, but that is not true in general. Specifically, the signature algorithm Bitcoin uses (ECDSA) cannot in any way be used for encryption.  
> **username_1**: @username_2 The question is also about a One Time Pad, the only provably secure encryption algorithm. And it does need a key as large as the data being encrypted. You can also use it only once, and has hardly any use in practice.  

---

