Bitcoin wallet algorithm C
behind the scenes, the entire bitcoin network shares a public ledger called "blockchain.". This general ledger contains every transaction processed, so that the user's computer can verify the validity of each transaction. The authenticity of each transaction is protected by the electronic signature corresponding to the sending address, which enables users to have complete control over the bitcoin transferred out from their own bitcoin address. In addition, anyone can use the computing power of specialized hardware to process transactions and get a bitcoin reward for it. This service is often referred to as "mining."
bitcoin mining has gone through three stages of development. When bitcoin was just born, the price of bitcoin was very low. People just took bitcoin as a game and used their ordinary computers to mine. However, in 2012, with the rise of bitcoin price, people found that the mining speed of graphics cards was fast, so, People began to buy a large number of graphics cards and assemble them for mining, commonly known as "burning graphics cards"; The third stage is the well-known ASIC miner mining. Since Avalon proced the world's first ASIC bitcoin miner, bitcoin mining has been completely subverted, and mining has become a special professional thing.
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
the private key is like your bank card password
the address of bitcoin wallet is like your bank card
as long as you have the bank card and password, anyone can withdraw money from ATM
the address of bitcoin wallet is public, which means that everyone else has your bank card, so your bank card password (private key) becomes very important at this time
once your key is disclosed, others can transfer your bitcoin
Internet search: "sister coin teaches you bitcoin" or "sister coin" find me, share more exquisite content ~!
The private key of bitcoin wallet cannot be viewed online. Bitcoin exists on the platform. To download core or classic is the real wallet, and then you can view it
[description of private key of bitcoin wallet]:
1. Wallet encryption refers to automatically encrypting and storing the wallet with private key. The official bitcoin client supports wallet encryption since version 0.4.0. The encrypted wallet will prompt you to enter your password every time you pay. If the password is wrong, the client will refuse to pay
2. If you replace it with the earliest backup wallet (wallet. DAT), you can still trade normally. Considering the principle of bitcoin, it can be concluded that as long as there is a private key (wallet), you can prove that you are the legitimate owner of the wallet. No matter whether you encrypt or delete the wallet (the core is the private key corresponding to an address), you can't deny it
3. When backing up the bitcoin wallet, you should also pay attention to the existence of bitcoin payment change mechanism (for example, if you send 50 BTC in a complete 100 BTC to an address, the system will send 50 BTC to the other party's address, and return 50 BTC to a new address of your client, which will not be directly displayed in your address list)
4. After sending bitcoin to other addresses 100 times or using 100 different addresses to receive bitcoin, please back up your wallet again, otherwise the returned and received bitcoin will be lost forever. In addition to encrypting wallets, users can also generate offline paper wallets and brain wallets
What are the wallets in our lives? Put your money, cards, and mobile phone, money and bank cards are issued by the bank. Mobile phone Alipay WeChat payment is paid through the third party, which is completely decentralized, and how it will be stored and retained? Besides being placed in the exchange, it can also be placed in the wallet. What are the types of bitcoin wallets? How to achieve point-to-point decentralization? Blockchain wallet is not used to hold money?! Have you stepped on thunder
miaozhou blockchain issue 08 can teach you to identify the mistakes of blockchain wallet. More blockchain beginners are welcome to pay attention to Babbitt's miaozhou blockchain
bitcoin does not rely on specific currency institutions to issue. It is generated through a large number of calculations of specific algorithms. Bitcoin economy uses a distributed database composed of many nodes in the whole P2P network to confirm and record all transactions. The decentralized nature and algorithm of P2P can ensure that it is impossible to artificially manipulate the value of bitcoin through mass proction
bitcoin is very similar to cash
the advantages of bitcoin are: no freezing, no tracking, no taxes, and extremely low transaction costs. Compared with people who speculate in currency, it is wealth, and people outside the currency circle may think it is a fraud
bitcoin is a relatively mainstream digital currency, which can be properly invested. There are risks in the transaction. You can invest cautiously. You can search the fire coin, coin security, OK, dobby trading platforms on the Internet, which can trade bitcoin. These are relatively large trading platforms. Invest in mainstream digital currency, do not invest in counterfeit currency or air currency
bitcoin exchange can trade all kinds of digital currencies, and bitcoin wallet can only store bitcoin
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.