Position: Home page » Bitcoin » Bitcoin removed or double spent

Bitcoin removed or double spent

Publish: 2021-05-09 06:21:53
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. In the process of learning blockchain, you will hear the word "double flower", which means double payment, or more directly, a sum of money has been spent twice. In this article, we will briefly analyze why there are double flowers and how bitcoin can avoid double flowers

in the traditional transaction, there is no double spending problem because there is a centralized institution such as a bank: every payment will be dected from your bank account, and all details will be recorded in the bank. But in bitcoin, because there is no concept of account, utxo is introced, that is, no transaction output is spent. Because there is no guarantee from centralized institutions such as banks, when a transaction occurs, there may be a risk of double spending: for example, a has a bitcoin, and then he constructs two transactions T1 and T2 at the same time to spend the bitcoin, one of which is given to B, to buy a suit from B, one is given to C, and to buy a pair of shoes from C. If we do not introce some mechanism to avoid this situation, bitcoin, as a digital currency, will not have any meaning of existence. Next, let's analyze how bitcoin can prevent this "double flower" attack

(1) normal situation

first of all, let's look at the normal situation. To put it bluntly, most of the time, the consensus mechanism of blockchain can nip Shuanghua in the bud. Let's illustrate with the above examples:

suppose that a constructs two transactions T1 and T2, and transfers its own value of 1btc utxo to B and C respectively, in an attempt to obtain benefits from B and C at the same time. Then a broadcasts the two constructed transactions to the network almost at the same time

suppose that the miner node in the network receives the transaction T1 first, and finds that the source of funds for the transaction has not been spent, so it adds T1 to its own memory transaction pool and waits to be packaged into the block

in most cases, the miner node will receive transaction T2 soon. At this time, the miner node will refuse to process the transaction because the transaction input that T2 points to is the same as T1 that has been added to the transaction pool. Other miner nodes in the network are similar, so a's attempt to double flower is stillborn

(2) bifurcation

the above is normal, but there are also abnormal cases to consider: suppose that the miner nodes M1 and M2 dig out the block almost at the same time, and unfortunately M1 only receives transaction T1 when digging in the block, while M2 only receives transaction T2 when digging in the block, so transaction T1 and T2 are packed into two blocks respectively. Because these two blocks were g out at about the same time, resulting in the bifurcation of the blockchain:

some nodes in the network (which may be close to M1) received the block blk1 packed by M1 first, so they used the block to extend their own blockchain, while other nodes (which are close to M2) received the block blk2 packed by M2 first, and used the block to extend their own blockchain, So the whole blockchain network
3. Bitcoin was born in a paper in 2008
a person signed by Nakamoto Tsui has put forward a revolutionary idea: let's create a currency that is not controlled by the government or anyone else! This idea is crazy: there is no asset support behind a string of figures, and no one is responsible for it. How can anyone accept it when you pay it to the other party as money
Merkle tree
looks like a binary tree, but this is the lower two nodes. Take the hash value to get the upper node. Just remember the root node to detect whether the whole tree has been tampered
the root hash value is stored in the block header, and the transaction process is stored in the block body. All nodes include block header and block body, but light nodes (such as bitcoin wallets on mobile phones) only include block header. This tree can prove that a transaction has been written into the blockchain
3. Consensus agreement
two issues should be paid attention to in decentralized currency:
1. Who can issue digital currency: mining
2. How to verify the legitimacy of transactions: blockchain
double spending attack
double spending attack is a major challenge of digital currency
all transactions in bitcoin have input and output. Where does bitcoin come from and where does it go
under normal circumstances, there may be two bifurcations, because two nodes obtain the bookkeeping right at the same time, and the two nodes package the block and calculate the random number at the same time. At this time, the two bifurcations will coexist temporarily until one of the blocks finds the next block first, which becomes the longest legal chain, and the other one is discarded<

Sybil attack
a malicious node keeps generating accounts. If the total number of accounts exceeds half of the total accounts, it obtains the control of the blockchain

consensus protocol in bitcoin
some nodes are malicious, and most nodes are good

idea 1: pack some transactions into blocks as candidate blocks, let each block vote, and write them into the blockchain if they pass

No, because some malicious nodes have been publishing blocks containing malicious transactions, and they have been voting and occupying resources. And some nodes don't vote<

idea 2: vote not by the number of accounts, but by computing power. Each node can generate legal transactions and put them into the block. These nodes start to try random numbers until H (block header) ≤ target is found, then this node has the right to account

the only way to generate bitcoin
coinbase transaction. There is no need to point out the source of the currency. If you have the bookkeeping right, you will get a reward< br />
50BTC-> 25BTC-> 12.5btc, the reward will be halved for every 210000 bitcoins

the process of bitcoin competing for bookkeeping rights is called mining. The node competing for bookkeeping right is called miner.
4. You are right. Indeed, it will be rolled back. If the transaction is unfortunately packaged on the fork, the transaction is likely to be cancelled after the main chain is synchronized

the reason why we need six confirmations is that it is more difficult to obtain the optimal solution (to prevent single node fraud). One block may also be able to get an optimal solution, and it is basically impossible to get six blocks together. It has nothing to do with bifurcation
5.

Transaction mode of bitcoin

bitcoin is e-cash similar to e-mail, and both parties need "bitcoin wallet" similar to e-mail and "bitcoin address" similar to e-mail address. Just like sending and receiving e-mail, the remitter pays bitcoin directly to the other party through a computer or smart phone according to the recipient's address. The following table lists some websites that download bitcoin wallets and addresses for free

a bitcoin address is a string of about 33 characters long, consisting of letters and numbers, always starting with 1 or 3, such as & quot& quot; Bitcoin software can generate address automatically, and it doesn't need to exchange information online, so it can be offline. More than 2 bitcoin addresses are available. Figuratively speaking, there are about two grains of sand in the world. If there is an earth in each grain of sand, then the total number of bitcoin addresses far exceeds the number of all the sand on all these "earths"

the bitcoin address and private key appear in pairs, and their relationship is just like the bank card number and password. A bitcoin address is like a bank card number, which records how much bitcoin you have on it. You can generate bitcoin address at will to store bitcoin. When each bitcoin address is generated, a corresponding private key of the address will be generated. This private key proves that you have ownership of the bitcoin at that address. We can simply understand the bitcoin address as the bank card number, and the private key of the address as the password of the corresponding bank card number. Only when you know the bank password can you use the money on the bank card number. Therefore, please keep your address and private key when using bitcoin wallet

after the transaction data of bitcoin is packaged into a "data block" or "block", the transaction is initially confirmed. When a block is linked to a previous block, the transaction is further confirmed. After six block confirmations in a row, the transaction was irreversibly confirmed. Bitcoin P2P stores all transaction history in a "blockchain.". The blockchain continues to extend, and once new blocks are added to the blockchain, they will not be removed. Blockchain is actually a distributed database composed of a group of scattered client nodes and all participants, which is a record of all bitcoin transaction history. Nakamoto predicts that when the amount of data increases, users hope that not all the data will be stored in their own nodes. In order to achieve this goal, he uses the hash function mechanism. In this way, the client will be able to automatically eliminate those parts that it will never use, such as some very early bitcoin transactions

6. Activity line is a comprehensive activity platform, and blockchain is just a small part of it. If you want to query some blockchain activities, it is recommended to go to some blockchain media platforms. For example, chain finance and top finance, but I prefer to use Babbitt's chain node activities. In contrast, their family has more free activities, and the conference quality is also good
by the way, it is not recommended to participate in the blockchain conference where you are always airdropped. What you are interested in is someone else's airdrop, and what they are interested in is your principal. If you are interested in the blockchain instry, you can participate in some technical and instrial meetings, at least to let you know the development of the blockchain instry and the future development of the instry. It is meaningful to attend the meeting.
7.

1、 Open pit mining: in general, diamond mines are mined around kimberlite pipes. The middle of the pipes is the place where high-quality diamonds are most concentrated, which is usually characterized by huge holes. When the Kimberley rock pipeline was found, miners g out vertically from the ground surface

Second, underground mining: this mining method is safer and more efficient, especially with the deepening of the mining process, it is difficult to judge whether to continue mining to expand the mine. Underground mining only needs to open a tunnel to extract diamonds under the surface, which is more reasonable and less dangerous. Sometimes a combination of underground and open-pit mining is used to make a tunnel from the pit into the surrounding rock

Extraction of kimberlite from the mine: kimberlite can be released from the earth's crust by artificial explosion, and a large number of rocks can be destroyed by explosion, but it can not be detected on site. It is wrapped with diamonds and must be transferred to another place for processing and diamond extraction by large trucks and steam shovels, Generally speaking, there are 0.5 carats of diamonds in one ton of mud

(4) percussive Mining: rivers and streams will bring kimberlite to the river bed, shore, or even coastal zone to form percussive sand deposits. Percussive mining is also known as artificial mining, because the miner has to go to the percussive sand deposit to search for diamonds artificially. The farther away from the kimberlite pipeline, the lower the output of diamonds and the more sparse the distribution density of diamonds. Therefore, percussive mining is not suitable for instrial diamond mining



extended data

1. The Kimberley diamond deposit was discovered by the Burnett brothers in 1870. It is this discovery that makes people know which kind of rock may contain diamond. It's a volcanic rock formed after the magma of ancient times cooled. In places where garnet and olivine are proced, the possibility of finding diamond is relatively high. Therefore, garnet and olivine become the "indicator minerals" for diamond

From 1866 to 1914, 50000 miners used shovels and other tools to excavate, and a total of 2722 kg of diamonds were excavated. The South African government is trying to apply for the Kimberley pit as a world heritage site

Third, open-pit mining is a process of removing the covering from the ore body to obtain the required minerals and extracting useful minerals from the open surface stope. Open pit mining operation mainly includes perforation, blasting, mining and loading, transportation and mping. Compared with underground mining, open pit mining has the advantages of full utilization of resources, low dilution rate, suitable for large-scale mechanical construction, fast mine construction, large output, high labor proctivity, low cost, good working conditions and safe proction

8. Not too clear,
9. If we are talking about the problem of double spending in bitcoin trading, the best way is to wait a little longer. When the number of block confirmations exceeds 6, the uniqueness of the transaction can be basically confirmed.
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