The most powerful number in the encrypted world: 2256

2256 is the 256th power of 2.

For the blockchain and encryption industry, what does this figure mean?

We know that computers are based on binary numbers. The following is an example. If the number on each digit can only be "0" or "1" in two digits, then we can generate the following four possible combinations (note that our count starts from 0):

00 = 0

01 = 1

10 = 2

11 = 3

If the number of digits is 3, then there are nine possible binary combinations, "2 to the power of 3", as follows:

000 = 0

001 = 1

010 = 2

011 = 3

100 = 4

101 = 5

110 = 6

101 = 7

111 = 8

If there are 256 digits, it means there is a possible binary combination of "2 256th power", which is also a very very large number combination! So, what does "256's 256th power" look like in decimal? Please don't blink, the answer is:


In simple terms, it is 1.158×1077 (that is, there are 74 0s after 1158), which is "1.158 by 10 to the 77th power".

If you can't intuitively understand how big the "256 256th power" – that is, "1.158 by 10's 77th power", let's make a comparison here, which may give you a clearer understanding of the "terrible" of this number. In contrast:

1. The total amount of sand on the earth is only "7.5 times 10 to the 15th power";

2. In the "observable" universe, it is estimated that there are "30 times 10 21 powers" to "70 times 10 21 powers" or "10 times 10 23 powers" stars;

3. In the "observable" universe, it is estimated that there are "1 times 10th 78th power" to "1 times 10th 83th power" atoms.

Therefore, "2 to the 256th power" is 3.5 times the total amount of all stars in the observable universe, "only a few zeros" than the total amount of atoms in the observable universe.

Why is "2 256th power" important? Because 256-bit encryption private key security may be astronomical

"2 to the 256th power" is very important because it is the full "perceived" range of private key values ​​that encryption technology may use in the blockchain.

In the cryptocurrency world, if you want to crack a 256-bit encryption security system, you must guess a 256-bit bit string, and you have to guess twice, the first time you want to electronically sign, the second time. It is when the password hash function is solved.

For example, if you want to find a message that has a SHA256 hash equal to a 256-bit string, there is basically no other way to guess and test the results randomly—which means that the average is down. You need to try "2 256th power" times! (Unless your luck is very, very… well, good enough to have a chance of "2 256th power")

The number "256 256th power" is much larger than the number we usually encounter, so it's hard to understand its size, but you can think of it as "2's 32th power and multiply yourself 8 "This way, I think it will make you easy to understand, because "2 of the 32nd power" is about equal to 4 billion (4,294,967,296). Now, what we have to do is to experience the concept of 4 billion consecutive times 8 times:

I believe most of us know that GPUs in computers can perform a lot of parallel computing quickly, so if you specifically let the GPU repeatedly calculate the password hash function, a good GPU can calculate nearly 1 billion hashes per second. Value, if you have a bunch of such GPUs, and then all stuffed into the computer, so that your computer can calculate 4 billion hashes per second, then the first 4 billion represents the calculation of each computer per second. For the number of hashes, imagine 4 billion computers loaded with GPUs. In contrast, although Google has not announced the number of their servers, some estimates that there are several million, but in reality most of Google’s servers Not as good as our GPU-loaded computer, but let's assume that Google has replaced millions of servers with GPU-loaded computers, so that 4 billion computers will probably be equivalent to 1,000 such "scarred" Googles. Well explained, we temporarily put this kind of computing power into "thousand Google."

Now, the world's total population is about 7.3 billion. Next, we assume that 4 billion people have one such "Thousand Valley" computer. Then, imagine another 4 billion Earths (for comparison, the number of stars detected by the Milky Way is about 100-400 billion, although it is not certain, but the estimate is roughly in this range), so it is equivalent to 1% of the stars in the Milky Way. There will be a planet, and more than half of the people on this planet have their own "Thousands of Google" computers.

Then imagine that there are 4 billion such galaxies. We call it the "Hundreds of Galaxy Supercomputers", which can guess "2 to the 160th power" times per second. Below, 4 billion seconds is about 126.8 years, and its 4 billion times is 507 billion years, almost 37 times the age of the universe, so even if you have – 4 billion computers loaded with GPU + 4 billion people one thousand Google's "computer + 4 billion planet-like planets + hundreds of millions of galaxy supercomputers, and spent 37 times the age of the universe, and only one-billionth of the possibility to get the correct answer to the key.

By the way, the current hashing power of Bitcoin – adding all the miners, can guess and test 500 billion hashes per second, which is only equivalent to the aforementioned "Thousands of Google" computer computing power. one third. Of course, this is not because there are really billions of GPU-loaded computers, but because miners use chips that are about 1000 times more powerful than GPUs. They are called "application-specific integrated circuits (ASICs). These hardware are Bitcoin mining is tailor-made, but this chip does nothing, only the hash value based on the SHA256 algorithm. In other words, if you want to get a huge amount of computing power, you have to give up the general computing needs and design an integrated circuit that can only perform a single task.

Does every cryptocurrency have a "2 256th power" possible private key?

Not exactly that, not all numbers in the "256 256th power" range will be used to find a numeric curve that matches the public key. Bitcoin and Ethereum (and many other cryptocurrencies) use the secp256k1 elliptic curve, which defines a public key matching range that is slightly smaller than "2 to the 256th power". If the secp256k1 elliptic curve number range is expressed slightly more accurately, the result is:


According to the definition of the SEC2 standard, the key value range is from "0" to 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141. If we use "N" to represent this value, then N is expressed in decimal:


2256-N = 432420386565659656852420866394968145599

Mathematically, this is an approximation question, as if we would consider the result of 10 billion minus 10 as still 10 billion.

(Star Jun o-daily Note: Simply explain the meaning of "secp256k1", it is actually a combination of "SEC", "P", "256", "K" and "1" letters and numbers, each They all have different meanings: "SEC" stands for the standard of SEC2 efficient cryptography, "P" stands for the curve coordinate is the prime field, "256" means the prime number is 256 bits long, "K" means it is the variable of the so-called Koblitz curve , "1" indicates that it is the first and only curve standard of the type.)

Wait a moment, except for Bitcoin, let’s take a look at the key of Ethereum.

The Bitcoin address is the public address of RIPEMD-160, a cryptographic hash function issued by the COSIC research team of Hans Dobbertin, Antoon Bosselaers and Bart Prenee of the University of Leuven in 1996. RIPEMD is based on MD4 and its performance is similar to the more famous SHA-1. The RIPEMD-160 is a 160-bit version of the original RIPEMD and is the most common version of the RIPEMD family. The RIPEMD-160 is designed for use by the academic community, just in relation to the SHA-1 and SHA-2 algorithms. On the other hand, RIPEMD-160 is less used than SHA-1, so it may be one of the reasons why RIPEMD-160 is not often reviewed than SHA. In addition, RIPEMD-160 is not subject to any patent restrictions.

There are also 128, 256, 320-bit algorithms called RIPEMD-128, RIPEMD-256, and RIPEMD-320. The 128-bit version was intended to replace the original version of RIPEMD because the original version was also 128-bit and was found to have potential security issues. The 256 and 320-bit versions only reduce the chance of collisions, but do not increase the level of security. However, the designers of RIPEMD did not really design the 256 and 320 bit standards. They only modified the initial parameters and s-box to achieve 256 and 320 bits based on 128-bit and 160-bit. yuan. So, the strength of 256 bits is equivalent to 128, and the strength of 320 bits is equivalent to 160 bits, and RIPEMD is based on md, so the way to add data is exactly the same as md5.

Ethereum reduces the key length to 160 bits, which is still a very large number, in decimal notation:

2160 = 1.46×1048 or 1461501637330902918203684832716283019655932542976.

How big is this number? At present, we can observe a universe width of 8.8 x 1026 or 8.8 x 1029 mm. If we consider a bitcoin or Ethereum address as 1 mm, then the key length is equivalent to more than twice the length of the observable universe.

For Ethereum, the actual total number of wallet addresses may be 1.46 x 1048, which also raises a tricky problem: we have 2256 possible private keys but map to 2160 possible public keys, the logic tells We may have more than 1 private key per public key. But even then, this means that you need to find a public key hash that can correspond to an address in 296 private keys (assuming each public key maps a public key) – here I might only wish you Good luck!

to sum up

The range of possible values ​​for the cryptocurrency private key is very large, even though it may be slightly lower than the "256 256th power" defined in the SEC2 standard, but it is still an unusually large number, so the possibility of the two private keys being the same Super low, unless there are scammers to do bad things.

This article comes from , original author: Sean

Odaily Planet Daily Translator | Moni