If you want to know more about blockchain technology and Bitcoin, you have to climb over the technical wall and "open your eyes" from a technical perspective to see the first killer successful application of Bitcoin in the blockchain world. , look at why Satoshi Nakamoto can be called an alien, and when it comes to blockchain technology, we have to mention, Learn a piece of knowledge that is often used in blockchain technology - the hash function .
A hash function is a way to create a small digital fingerprint from any kind of data. The hash function compresses the message or data into a digest, making the amount of data smaller and fixing the format of the data. This function shuffles the data and recreates a fingerprint called a hash value.
If Baidu Encyclopedia and Wikipedia really have another name, it should be called (so professional that people can’t understand it) Encyclopedia. Give a concise vernacular definition of hash function: Hash function is a series of complex mathematical transformations with a fixed number of output values.
Transformation cannot be done randomly, and must be done according to the following process:
1. Content (data) of any length
2. After this series of complex but fixed mathematical transformations After
3, a fixed length and format of data (numeric value) will be output
Footnote: In the field of mathematics, H() will be used to represent the changed output value, which is called message summary in Chinese Or digital fingerprint.
For example, in Bitcoin, the hash function SHA256 is used when the public key generates an address. The "256" behind it means that the output is data with a fixed 256-bit length.
Not any mathematical transformation can be called a hash function. To upgrade a mathematical transformation to a hash function, it must Meets three conditions: uniqueness, one-wayness, violent solution:
1. Uniqueness of hash function
The intuitive understanding is: only input X, To get H(X). When understanding this feature, you can think of the hash function as you and your fingerprint. You are the input and your fingerprint is the output. Uniqueness means that only you can have your fingerprint. In Bitcoin, it means that you use it to transfer money. A Bitcoin address can only be generated with your public key. Just like your fingerprint is unique, no one else in the world can generate the same transfer address as you.
2. The one-way nature of the hash function
The one-way nature of the hash function means that H(X) cannot derive X in reverse. If you are given a fingerprint, and you have only one fingerprint, you will never be able to imagine whether the owner of the fingerprint is a male or a female, or what he looks like. You can only know that it is a fingerprint.
The one-way nature of the hash function can be intuitively understood with an inaccurate but very vivid analogy - guess who the owner of the chin is?
Is the owner of this manly and charming chin Bai Yu? Is it Zhang Zhen? Or Zhao Youting? The answer to the mystery is revealed: it’s our favorite Kunkun, not Cai Xukun, but Countryside F4 Xie Guangkun↓
Because of the one-way nature of the hash function, in Bitcoin, even if our payment address is public, no one can We don’t know what the public key we use to generate the payment address is, let alone what the private key is to generate the public key.
There is a saying in the market that the emergence of quantum computers will make Bitcoin worthless, but now you should know that even if quantum computers appear, it will still be difficult to break the hash function. The hash function is Satoshi set a security lock for Bitcoin, hoping that Bitcoin would have enough time to upgrade to a quantum-resistant encryption algorithm.
3. Violent solution of hash function
If you know the hash value H(X) and really want to find the input value X, you can only start from the source, a number Try a number, fit each number into a hash function, and then see if the output hash value is equal to H(X).
Just like if you really want to know whose fingerprint a certain fingerprint belongs to, you can only find one person all over the world to compare the fingerprints in each hand with this fingerprint to see if they are exactly the same, without any trace. deviation. 02
Because of these three characteristics, the hash function became a weapon in the hands of Satoshi Nakamoto, helping him solve many problems on the way to designing Bitcoin. In In the Bitcoin white paper, except for the 10 chapters of introduction and conclusion, the use of hash functions can be seen in almost every chapter.
· Use the uniqueness of the hash function to prevent fraud - digital signature
· Use the uniqueness of the hash function to improve efficiency - Merkle tree retrieval of transaction records
·Using the one-way nature of the hash function for confidentiality - the public key generates the Bitcoin address
Using the brute force solution of the hash function to design Bitcoin's proof of work - when the range When the fingerprint is large enough, it is impossible to find the fingerprint owner with a fingerprint. But if the scope is narrowed, for example, in a city with only a few million people, the difficulty will be much smaller. This is the purpose of Bitcoin. Mining difficulty adjustment mechanism. If you want the difficulty to be higher, expand the range. If you want the difficulty to be lower, narrow the range.
The hash function appeared in 1953, the hash function flourished in 1970, and SHA-256 appeared in 2001. In 2008, the hash function was played out by Satoshi Nakamoto and became It is the unshakable cornerstone of blockchain technology.
From this perspective, it is somewhat understandable why experts and experts can’t help praising Satoshi Nakamoto’s genius, and even doubt whether Satoshi Nakamoto is an alien.
At this point, although you only understand a basic knowledge of the hash function in the technical principles of the Bitcoin white paper, this does not prevent you from understanding 50% of what the Bitcoin white paper wants to express.
The above is the detailed content of High-frequency concepts in the process of learning blockchain: Hash function. For more information, please follow other related articles on the PHP Chinese website!