Entropy is a fundamental concept that refers to the measure of randomness or unpredictability within a system. Entropy serves as the basis for generating uniquely robust private keys, transaction signatures, and wallet passwords.
In the context of information theory and cryptography, entropy is a measure of randomness or uncertainty. While entropy is commonly associated with cryptographic systems, it has earlier roots in thermodynamics. It was first introduced by Rudolf Clausius in the mid-19th century as part of his work on heat engines and the second law of thermodynamics. In this sense, entropy quantifies the amount of energy that *cannot* be used to do useful work.
The concept of entropy was later adopted and extended into information theory by Claude Shannon in 1948. Shannon defined entropy as a measure of uncertainty or unpredictability within a set of data. He showed how entropy could be used to quantify the average amount of information contained in a message or signal.
Blockchain transactions can derive entropy from various sources. Transaction data itself can contribute to entropy by including inputs such as timestamps or block hashes. By incorporating these elements into the transaction process, it increases the complexity and randomness associated with each transaction.
Transaction signatures rely on private keys as sources of entropy during their creation. Private keys are best generated using open-source, offline, trusted random number generators that produce values with sufficient entropy. The uniqueness and randomness of private keys significantly impact the strength and security of transaction signatures. Wallet passwords also require strong entropy for enhanced security.
Relying on externally generated randomness for key generation in blockchain wallets (both hardware and software) poses great risks. If external sources used for generating random numbers are compromised or manipulated, it could lead to predictable outcomes when creating cryptographic keys within wallets. This is important to blockchain transactions because signatures themselves have historically been verified using randomized points along a fixed curve. See [[Elliptic Curve Cryptography]] and [[Elliptic Curve Cryptography#RFC-6979]|RFC-6979]] for more information.