Bitcoin cheating
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
anyone can run software on specialized hardware and become a bitcoin miner. Mining software monitors transaction broadcast through P2P network and performs appropriate tasks to process and confirm these transactions. Bitcoin miners can earn transaction fees paid by users to speed up transaction processing and additional bitcoin issued according to fixed formula
new transactions need to be included in a block with mathematical workload proof before they can be confirmed. This kind of proof is hard to generate because it can only be generated by trying billions of calculations per second. Miners need to run these calculations before their blocks are accepted and rewarded. As more people start mining, the difficulty of finding effective blocks will be automatically increased by the network to ensure that the average time to find a block remains at 10 minutes. Therefore, the competition for mining is very fierce, and no indivial miner can control the content contained in the block chain
workload proof is also designed to rely on previous blocks, which forces the time sequence of block chain. This design makes it extremely difficult to cancel previous transactions, because the workload proof of all subsequent blocks needs to be recalculated. When two blocks are found at the same time, the miner will process the first block received, and once the next block is found, it will be transferred to the longest block chain. This ensures that the mining process maintains a global consistency based on processing capacity
bitcoin miners can neither increase their rewards by cheating, nor deal with the fraulent transactions that destroy the bitcoin network, because all bitcoin nodes will reject the blocks containing invalid data that violate the bitcoin protocol rules. Therefore, even if not all bitcoin miners can be trusted, the bitcoin network is still secure
sha256 is an encryption algorithm.
the bitcoin market is an extremely crazy market. Some people have become billionaires overnight, while others have been cut leeks. The ups and downs, joys and sorrows of the world are incisively and vividly interpreted anyone who knows about the bitcoin market should know that before, the value of bitcoin was only 1000 yuan, but it rose to 17000 yuan in 2017. With such an appreciation rate, the profits matched with it are also amazing. Bitcoin appeared in 2009. At that time, the value of bitcoin was only US $0.1. Looking at the price in 2017, there is a big difference between the two. If someone had a lot of bitcoin when it first came out, he would be one of the richest now
When the engineer became a billionaire, he began to travel around the world. In fact, he has long had the idea of traveling around the world, but e to economic reasons, it has not been realized. Now, the engineer can live freely and realize his dream of traveling around the world. In an interview with reporters, the engineer also said, although his original job is very good and can provide him with stable income, he has always dreamed of the global world and visiting friends from various countries. Now, he is living the life he wants, and by selling bitcoin, he has got hundreds of millions of assets, which is enough for him to spend his whole life strong>The bitcoin mining machine downloads the mining software and then runs a specific algorithm to get the corresponding bitcoin after communicating with the remote server, so as to obtain the bitcoin
any computer can become a mining machine, but the benefit will be relatively low, and it may not be able to dig a bitcoin in ten years. Many companies have developed professional bitcoin mining machines, which are equipped with special mining chips, and their computing speed is tens or hundreds of times higher than that of ordinary computers
bitcoin miners can neither increase their rewards by cheating, nor deal with the fraulent transactions that destroy the bitcoin network, because all bitcoin nodes will reject the blocks containing invalid data that violate the bitcoin protocol rules. Therefore, even if not all bitcoin miners can be trusted, the bitcoin network is still secure
extended data:
mining is a process of consuming computing resources to process transactions, ensuring network security and keeping everyone's information synchronized in the network. It can be understood as the data center of bitcoin. The difference lies in its completely decentralized design. Miners operate all over the world, and no one can control the network
this process is called "mining" because it is similar to gold panning, because it is also a temporary mechanism for issuing new bitcoin. However, unlike gold panning, bitcoin mining provides rewards for services that ensure the safe operation of payment networks. After the last bitcoin, mining is still necessary
anyone can run software on specialized hardware and become a bitcoin miner. Mining software monitors transaction broadcast through P2P network and performs appropriate tasks to process and confirm these transactions. Bitcoin miners can earn transaction fees paid by users to speed up transaction processing and additional bitcoin issued according to fixed formula
1. Bitcoin by watching video
coinbase, a bitcoin exchange in the United States, launched a project called "coinbase earn" two years ago. You can get various digital currencies by watching some blockchain or bitcoin knowledge videos, and then answering some multiple choice questions. This kind of virtual currency is similar to collecting wool and can earn hundreds of dollars in general. But you have to register as a user first
2. Bitcoin loans earn interest
if you already have some bitcoin, you can earn bitcoin interest by borrowing. You are like a bank, lending your bitcoin to another person at a certain interest rate. Because the market is not regulated, interest rates are usually much higher than standard bank rates, which means there is potential for high returns. But there are also risks. What if the other party doesn't pay you back? Therefore, we need to choose some third-party P2P intermediary platforms to borrow, such as blockfi, NEXO, btcjam, bitbond, etc
3. Get bitcoin by doing tasks
everyone has more or less come into contact with some online earning platforms. You can register an account on the online earning platform, and then do some small tasks to get a few cents' income. These tasks include registering an app account, downloading an app, and so on. Bitcoin can also be obtained by doing tasks, which is the simplest way to get bitcoin. That is to say, the revenue from bitcoin is not much, and it is time-consuming
4. Take bitcoin for watching ads
some websites encourage users to watch ads or click on ads, and then pay users bitcoin as a reward. In fact, this is also a task of the nature of the site, your task is to go to other sites to see advertising or click advertising. At present, the well-known task publishing platform is ads4btc, which allows users to watch ads for 5 seconds, 10 seconds or 20 seconds, and then users earn bitcoin rewards
but the reward is very low. According to the price offered by ads4btc, if you watch ads all day, the income will not exceed $10, so it may not be a feasible choice for most people. Unless there is a cheating machine, it can replace you in advertising
5. Bitcoin faucet
bitcoin faucet is the most popular way to collect wool in coin circle. In December 2010, in order to let more people know and try to use bitcoin, Gavin andresson, member of bitcoin core development team, bought 10000 bitcoins for $50 and created a website called "bitcoin faucet". At that time, as long as you visit this website, you can get five bitcoins for free, which was worth about 5 cents at that time. This has a significant effect on people's acceptance of bitcoin
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
hope to solve your problem.
bookkeeping
because bookkeeping is a reward, each time you can add a certain number of bitcoin for yourself, so everyone is competing for bookkeeping, which of course leads to a problem: when there is inconsistency in bookkeeping, the system introces workload proof to solve the problem, and the rules are as follows:
1. In a period of time, only one person can succeed in bookkeeping
2. Obtain the unique bookkeeping right by solving the cryptography problem
3. Other nodes the bookkeeping results
but before the workload proof, The accounting node will do the following preparatory work:
1. Collect the original transaction information that has not been recorded in the broadcast
2. Check whether the payment address in each transaction information has enough balance
3. Verify whether the transaction has the correct signature
4. Package and record the verified transaction information
5. Add a reward transaction: add 12.5 to your address Bitcoin
if you succeed in competing for bookkeeping rights, you can get a reward of 12.5 bitcoin
workload proof
the hash value of the previous block and the current account page information will be hashed together as the original information in each bookkeeping. In order to ensure that only one person can keep accounts around 10 minutes, we have to improve the difficulty of keeping accounts. The results of hash must start with several zeros. In order to satisfy the condition, hash is to introce a random number variable
denoted by pseudo code:
1. Hash (last hash value, transaction record set) = 456635bcd
2. Hash (last hash value, transaction record set, random number) = 0000afd635bcd
if you change part of the original information of hash, the hash value will also change continuously. Therefore, when you run hash, the value of random number will change continuously, A random number can always be found so that the result of hash starts with several zeros. The node that finds the random number first obtains the unique bookkeeping right
verification
after the node successfully finds the hash value, it will broadcast and package the block to the whole network immediately, and the node of the network will verify it after receiving the broadcast. If the verification is passed, it indicates that a node has successfully decrypted, it will not compete for the current block, but will choose to accept the block and record it in its own account book for the next round of competitive guessing. Only the fastest decrypted block in the network will be added to the ledger, and other nodes will to ensure the uniqueness of the whole ledger
If a node has cheating behavior, it will cause the node of the network to fail the verification, give up its packaged block directly, and cannot be recorded in the general ledger, then the consumption cost of the cheating node will be in vain. Therefore, miners consciously abide by the consensus protocol of bitcoin system, and ensure the security of the whole system
it's like you go to the construction site to move bricks. After moving bricks for one day, the contractor asks you how can you prove that you move bricks for one day?
in short, bitcoin is a virtual currency . Like stocks, it can be invested and traded. In technical terms, bitcoin is a kind of P2P digital currency
but after all, the nature and mode of bitcoin is different from other currencies, and it may prosper in the future. It may also be like the collapse of the economic bubble, which is unknown. If you enter the bitcoin market and have a quarrel, it will not become a real currency, because the fluctuation of the price is impossible to satisfy everyone. If there is a profit, there is a loss. Therefore, the investment of bitcoin should be cautious. If you don't fully grasp it, don't try it easily strong>