Position: Home page » Bitcoin » Bitcoin elliptic curve function

Bitcoin elliptic curve function

Publish: 2021-05-03 04:50:08
1. In order to understand the technical principle of bitcoin, we need to understand two important cryptographic techniques: hash code: it converts a long string into a fixed length string, and its conversion is irreversible, that is, it is impossible to guess the original string from hash code. Sha256 is mainly used in bitcoin protocol
public key system: corresponds to a public key and a private key, keeps the private key in the application and publishes the public key. When Party A transmits information to Party B, it can use Party A's private key to encrypt the information, and Party B can use Party A's public key to decrypt the information, so as to ensure that the third party cannot impersonate Party A to send the information; At the same time, when Party A transmits information to Party B, it is encrypted with Party B's public key and sent to Party B, and then Party B decrypts it with his own private key, so as to ensure that the third party cannot eavesdrop on the communication between the two people. RSA is the most common public key system, but the lliptic curve digital signature algorithm is used in bitcoin protocol. What's the difference between cash and bank account? Bitcoin is an electronic currency in BTC. In this article, it is also used to refer to the whole bitcoin system. Like opening an account in a bank, the corresponding concept in bitcoin is address. Everyone can have one or more bitcoin addresses, which are used to pay and collect money. Each address is a string that starts with 1. For example, I have two bitcoin accounts, and. A bitcoin account is uniquely determined by a pair of public key and private key. To save the account, you only need to save the private key file. Unlike bank accounts, banks keep all transaction records and maintain the book balance of each account, while bitcoin's transaction records are jointly maintained by the whole P2P network through a pre agreed protocol. How much money is in my account address? Although the current account balance can be seen by bitcoin software, unlike banks, there is no place to maintain the book balance of each address. It can only calculate the account balance in real time through all historical transactions. How do I pay? When I pay from address a to address B of the other party, the payment amount is e. at this time, both parties will announce the transaction information to each network node, telling address a to pay to address B, and the payment amount is e. In order to prevent the third party from forging the transaction information, the transaction information will be encrypted with the private key of address A. at this time, the network node receiving the transaction information can use the public key of address a to verify that the transaction information is indeed sent by address a. Of course, trading software will help us do these things, we just need to input the relevant parameters in the software. What will the network node do after receiving the transaction information? This is the most important part of the bitcoin system, which needs to be elaborated. For the sake of simplicity, only bitcoin protocol has been implemented. In the current version, each network node will save all transaction information synchronously. There are two kinds of transaction information in history, one is & quot; Verified & quot; The transaction information, that is, the verified transaction information, is stored in a series of "blocks". Each & quot; block" Is the previous & quot; bock" The ID of each block is the hash code of the hash code of the block and the new transaction information (see an actual block). The other category refers to those who also & quot; Unverified & quot; The transaction information just paid above belongs to this category. When a network node receives new unverified transaction information (possibly more than one), it can calculate the book balance of each address at that time because the node keeps all the transaction information in history, so it can calculate whether the transaction information is valid, that is, whether there is enough balance in the payment account. After eliminating the invalid transaction information, it first takes out the last & quot; block" Then, the unverified transaction information is combined with the ID, and a verification code is added to form a new "block". It needs a lot of calculation to build a new block, because it needs to calculate the verification code, so that the above combination becomes a block, that is, the first several bits of the hash code of the block are 1. At present, the first 13 bits need to be 1 (generally, the specific method is uncertain), which means that if the block is generated by enumeration method, the average number of enumerations is 16 ^ 13. Using CPU resources to generate a block is called "gold mining", because the proction of the block will get a certain reward, and the reward information has been included in the block. When a network node generates a new block, it will broadcast to other network nodes. However, this network block may not be accepted by the network, because it is possible that other network nodes have proced the block earlier. Only the earliest block or the block with the largest number of subsequent blocks is valid, and the remaining blocks are no longer used as the initial blocks of the next block. How does the other party confirm that the payment is successful? When the payment information is distributed to the network node, the network node begins to calculate whether the transaction is valid (that is, whether the account balance is enough to pay), and attempts to generate blocks containing the transaction information. When six blocks (one direct block and five subsequent blocks) contain the transaction information, the transaction information is considered "verified", so that the transaction is formally confirmed, and the other party can confirm the successful payment. A possible problem is that I will pay the balance of address a to address B, and at the same time pay to address C. If I only verify that the single comparison transaction is valid. At this point, my way of cheating is to generate six blocks including B to B and six blocks including C to C before the truth is revealed. Because I need a very long CPU time to generate a block, compared with the whole network, the probability of my cheating success is very small. What is the motivation of network nodes to proce blocks? As can be seen from the above description, in order to make the transaction information effective, the network node needs to generate 1 and 5 subsequent blocks to contain the transaction information, and such block generation is very CPU intensive. How to let other network nodes help to proce blocks as soon as possible? The answer is very simple. The agreement stipulates that BTC will be rewarded for the address where the block is proced, as well as the Commission promised by both parties. At present, the reward for procing a block is 50btc, which will be halved every four years in the future. For example, the reward will be 25btc from 2013 to 2016. Is the transaction anonymous? Yes, and No. All bitcoin transactions are visible. We can check all transaction records of each account, such as mine. But what's different from the banking monetary system is that everyone's account itself is anonymous, and everyone can open many accounts. In general, anonymity is not as good as it claims. But bitcoin has another advantage in doing black market trading: it can't be frozen. Even if the police trace a bitcoin address, there is nothing they can do unless they trace the computer used by the exchange based on the Internet address. How to ensure that bitcoin does not depreciate? Generally speaking, in the case of equivalent trading activities, the value of money is inversely proportional to the amount of money issued. Unlike the traditional money market, the central bank can determine the amount of money issued. Bitcoin does not have a central issuing institution. Only by procing blocks can we get a certain amount of BTC currency. Therefore, bitcoin's new amount of money depends on: 1. The speed of procing blocks: bitcoin's agreement stipulates that the difficulty of procing blocks is fixed at an average of 2016 every two weeks, about 10 minutes. Moore's law of doubling CPU speed every 18 months will not speed up the proction of block. 2. The number of rewards for block proction: at present, 50 BTC is awarded for each block proced, which is halved every four years. In 2013, 25 BTC is awarded, and in 2017, 12.5 BTC is awarded. Considering the above two factors, bitcoin's currency issuing speed is not controlled by any single node in the network. Its protocol makes the currency stock known in advance, and the maximum stock is only 21 million BTC
2. 1. The number of bitcoin is limited, because the original intention of the design is to have a currency with a fixed circulation, so that the final number can not be increased or decreased, so as to eliminate the inflation and deflation risks caused by man-made money printing. The specific number is determined according to the block and block reward principle:
the assumption is that six data blocks can be generated every hour in the world, and 210000 data blocks can be generated every four years; Then it makes a decreasing payment for the return of data blocks, 50 bitcoin for each data block in the first four years, 25 bitcoin for each data block in the second four years, 12.5 bitcoin for each data block in the third four years, and so on... Finally, the total number of bitcoins is -
210000 x (50 + 25 + 12.5 + 6.25 + 3.125 +...) = 21 million

the cumulative sum in brackets is close to 100 and will never exceed 100, so the total number of bitcoins is 21 million
currently in the second four-year period, each calculated data block contains 25 bitcoins

2. There is no loss of wealth. Many people at home and abroad are digging for bitcoin, and they are also speculating in bitcoin. Computer and Internet speed can only determine the speed of bitcoin digging, but not the value of bitcoin. Even if you say that we dig abroad, we fry. Now we buy a bitcoin for $300, and there will be no bitcoin to dig in the future. Maybe a bitcoin will sell for $3000, and then we sell it again, won't we make a profit? Where is the loss of wealth? Of course, maybe a bitcoin will be worth $3 at that time. Who can say that it is not born by the central banks

3. In addition to bitcoin, there are several similar virtual currencies such as lightcoin. However, they all adopt similar design principles. Therefore, in the future, there will inevitably be a problem that the currency will eventually be widely recognized, and other currencies that are not recognized will be eliminated. Otherwise, a new virtual currency can pop up at any time. It's not the same as printing money, which completely goes against their original design intention.
3. Bitcoin uses elliptic curve algorithm to generate public key and private key, and chooses secp256k1 curve. The generated public key is a 33 byte large number, and the private key is a 32 byte large number. The wallet file wallet.dat directly stores the public key and private key. The bitcoin address we use when receiving and sending bitcoin is obtained after the public key is processed by the algorithm. The specific process is that the public key is first processed by SHA-256 algorithm to get 32 byte hash result, then processed by ripemed algorithm to get 20 byte summary result, and then the address we see is obtained through the character conversion process. This character conversion process is the same as that of the private key. The steps are as follows: first, add the version number to the input content (the summary result of 20 bytes for the public key and the large number of 32 bytes for the private key). After two successive SHA-256 algorithms, take the first 4 bytes of the hash result of the last time as the check code and attach it to the back of the input content, and then encode it with base58, Get the string. Qiaoman special zone blockchain professional station chain Qiaoyu online is a blockchain professional training workstation engaged in blockchain related training and certified by the Ministry of ecation.
4. Jinwowo group, based on the blockchain model architecture, does the analysis in the following way:
1 - data layer: data block, chain structure and time stamp
2 - network layer: P2P network, propagation mechanism, verification mechanism
3 - consensus layer: pow, POS, dpos
4 - incentive layer: issuance mechanism, distribution mechanism
5 - contract layer: script code, algorithm mechanism, smart contract
6-application layer: encapsulates various application scenarios
in the future, jinwowo group will focus on promoting the legal circulation and commercial application of big data with blockchain technology.
5.

Hash algorithm maps any length of binary value to a fixed length of smaller binary value, which is called hash value. Hash value is a unique and compact numerical representation of a piece of data. If you hash a piece of plaintext and change only one letter of the paragraph, subsequent hashes will proce different values. It is computationally impossible to find two different inputs with the same hash value

message authentication code (MAC) hash function is usually used with digital signature to sign data, while message detection code (MDC) hash function is used for data integrity

the basic information of bitcoin network is as follows:

all digital currencies that need to be mined have hash values, such as Laite coin, Ruitai coin, doggy coin, Weimeng coin, Diandian coin, Yuanbao coin, etc< br />

6. Now that you use hub to connect two computers to the Internet at the same time, the two computers are already in the same bureau network, but they can't see each other in the network neighborhood, right?
7. Monero
[dictionary] [place name] [USA] monero

bitcoin
[dictionary] peer-to-peer anonymous digital currency based on network< Bitcoin solves this for currencies – it provides a method for the effective transfer of ownership.
8. There are mainly two kinds of bitcoin algorithms, which are elliptic curve digital signature algorithm and sha256 hash algorithm

elliptic curve digital signature algorithm is mainly used in the generation process of bitcoin public key and private key, which is the cornerstone of bitcoin system. SHA-256 hash algorithm is mainly used in the workload proof mechanism of bitcoin

the principle of bitcoin generation is the special solution generated by complex operation, and mining is the process of finding the special solution. However, the total number of bitcoin is only 21 million, and with the continuous mining of bitcoin, the more difficult it will be to proce bitcoin, and the cost of acquiring bitcoin may be higher than the price of bitcoin itself

the bitcoin block consists of a block header and the transaction list contained in the block. The size of the block header is 80 bytes, which is composed of 4-byte version number, 32 byte hash value of the previous block, 32 byte Merkle root hash, 4-byte timestamp (current time), 4-byte current difficulty value and 4-byte random number. A block header with a fixed length of 80 bytes is the input string used to prove the workload of bitcoin. Constantly change the random number in the block header, that is, the value of nonce, and do double sha256 operation on the block header after each change, and compare the result value with the target value of the current network. If it is less than the target value, the problem is solved successfully, and the workload is proved to be complete

the essence of bitcoin is actually the unique solution of a set of equations generated by a bunch of complex algorithms. Bitcoin is the first distributed virtual currency in the world, which has no specific distribution center. The network of bitcoin is composed of all users, because there is no center to ensure the security of data.
9. The earth elliptic curve website, I still remember, seems to be made by a teacher.
10. Turn< First of all, you need to know the concepts of public key and private key (you don't need to look at this part)
public key and private key are the terms of asymmetric encryption in modern cryptography. They usually encrypt information with public key and decrypt information with private key. Why? Because when you watch TV dramas, telegrams are encrypted symmetrically. The disadvantages of this encryption method are obvious. If someone knows the key and encryption method, they can decrypt the telegrams according to the encryption method. Until asymmetric encryption, the situation has changed. Public key is the key that can be made public all over the world. For example, when you communicate with Google, you encrypt with the 1024 bit public key given by Google and send it to Google. Only he has the corresponding private key, and only he can decrypt it, so the communication security is ensured
2. Bitcoin mainly uses ECDSA, which is the elliptic curve signature algorithm, This algorithm has two characteristics. Note that these two points are very important to the following
A. as long as you know the private key, you can calculate the corresponding public key
B. If you have signed something with the private key, you can use the public key to calculate whether you signed it or not
3. After knowledge preparation, let's start with the transaction of bitcoin. In fact, bitcoin has no wallet, only transaction bills, and the whole bitcoin is a lot of transaction bills

for example:
bill 1 transfers from a to B to XXX bitcoin
Bill 2 transfers from B to C and D to XXX bitcoin
bill 3 transfers from C to e to XXX bitcoin
.... Anyone who downloads the client can receive all the bills from the day when bitcoin was established, so as long as all the bills are downloaded, they will naturally know how much money should be left on each account (think carefully here)

4. The account of bitcoin is the public key mentioned just now

5, Here is the core part!!! Each bill is a piece of data. After you sign it, it will be sent to the whole network, and the data structure will be reversed into easy to understand Chinese. The explanation is as follows:

from (who sent it, including two parts)
previous TX: the ID of the bill for which you want to spend the money, that is to say, any money you spend should have been transferred to you, You need to show the ID of the bill
scriptsig: your signature for this transaction is to hash the bill with your private key, only you can do this hash

to (who accepts, including two parts)
value: how much to send
scriptpubkey: the public key of the other party, and the bitcoin account is a public key
6, How to send it? Bitcoin communication is not so complicated. You can compare it to IRC channel, but different from ordinary "IRC", any client is an "IRC" server. When you start the client, you will receive the client address with public IP around, that is, the "server" list. This list is constantly refreshed, and it is all other bitcoin users, So when you shout a word in this "IRC", people around you will hear it and spread it all over the world

7. After sending the signature to the whole world, all the clients who receive this list will verify whether your signature is correct, whether you sent it, and whether you have so much money (according to the historical transaction, you can calculate how much money you have to spend)
if you have calculated this transaction, it's OK, Basically, the transfer is successful

8. In fact, the other party has accepted bitcoin, but in order to spend it, he must have the private key corresponding to the address (public key). So he can fill in the from header of a form. Previous TX is the serial number of the transaction just now. Scriptsig fills in the hash signed with his private key

Mining
and then explain the mining part. I'm trying my best to simplify the whole process to make it easier for you to understand, so the problems of mining and double spending (counterfeiting currency, spending the same sum of money twice) are specially removed

in fact, after reading the above explanation, there will be a question, since they are all transaction records, where did the initial money come from? The transaction has to have the original part of the money, which is the money from mining. After mining, you will also get a transaction record. But from is very special, and the whole system also recognizes this from. In addition, in fact, the bill is attached to the block, and after the bill is sent to the whole network, It's not right that the whole network should be calculated.
just now, it's said that the whole network should be calculated together. According to the bitcoin rule, the first calculated reward is mining income. Now the reward amount is 25 bitcoin, so

If I only use one PC, it's too weak, so I have a mining machine. The function of mining is to check whether the transaction of bitcoin is correct. Mining machine is to calculate faster than others

money laundering
many people who talk about bitcoin can't explain the problem of money laundering if they are not really experienced, and this problem is related to the essence of bitcoin. Why bitcoin can launder money is also determined by the characteristics of bitcoin. As I explained above, the bill of bitcoin is just one in (from) and one out (to). In fact, bitcoin protocol allows countless in and out as long as the total amount of from is equal to the total amount of to, In order to better understand the image of you, I specially found a transaction of multiple from and multiple to from the actual bitcoin transaction records. The screenshot is as follows, and the link is here https://blockchain.info/zh-cn/tx/
Hot content
Inn digger Publish: 2021-05-29 20:04:36 Views: 341
Purchase of virtual currency in trust contract dispute Publish: 2021-05-29 20:04:33 Views: 942
Blockchain trust machine Publish: 2021-05-29 20:04:26 Views: 720
Brief introduction of ant mine Publish: 2021-05-29 20:04:25 Views: 848
Will digital currency open in November Publish: 2021-05-29 19:56:16 Views: 861
Global digital currency asset exchange Publish: 2021-05-29 19:54:29 Views: 603
Mining chip machine S11 Publish: 2021-05-29 19:54:26 Views: 945
Ethereum algorithm Sha3 Publish: 2021-05-29 19:52:40 Views: 643
Talking about blockchain is not reliable Publish: 2021-05-29 19:52:26 Views: 754
Mining machine node query Publish: 2021-05-29 19:36:37 Views: 750