Bitcoin has been popular for a while, but I have never understood the logic. Just like a song goes, it’s not that I don’t understand that the world is changing rapidly, and hot spots are coming one after another. It takes self-control to calm down and do something. Recently, I heard someone discussing Bitcoin. Maybe I really need to understand it and see what it is about. Like most programmers, I want to find the root cause when debugging. It is natural to read the Bitcoin paper first. Please note that many of the views below are personal opinions and may not be consistent with the views of the paper.
The paper is Bitcoin: A Peer-to-Peer Electronic Cash System[1]. Judging from the title, it is a P2P electronic cash system. Electronic cash is not difficult to understand. The previous credit cards, and now Alipay and WeChat (the author mentioned 2008 in the article, when Alipay and WeChat were not so popular), can be called electronic cash if you do not need to carry a wallet to pay. So what does the author think is wrong with the existing system?
First of all, the bank needs to ensure that the customer is a trustworthy customer. To this end, the customer needs to provide a lot of information to prove himself (the author mentioned the word business, which means not only considering consumer individual customers), but the author feels that this certification process is very cumbersome. And it cannot be done without fraud. At present, the fact that banks allow bad debt rates shows that transactions based on trust are not perfect. The author hopes to solve this problem. However, after reading the text, I personally think that Bitcoin has not solved this problem, or it has brought new problems. This will be explained in detail later.
Secondly, the author believes that the coordination mechanism of the third-party intermediary transaction model of banks is complex and the cost is too high. It cannot well support small-amount transaction processing and cannot handle temporary transaction needs (for example, if you ask a foreign buddy to help with purchasing, call him $100, it may take a long time to get the $100 to him). At present, the author raised a very good question, but Alipay and WeChat have already solved it, so this reason is no longer supported by the necessity of P2P. From this perspective, Bitcoin has no reason to exist.
Third, the author believes that it is wrong for today's trading systems to support cancelable transactions. For example, a buyer and a seller, the buyer transfers 100 yuan from his account to the seller's account, and the seller delivers the goods to the buyer, but once the goods are shipped, the buyer can cancel the transaction and the money returns to the buyer's account. At this time, the seller will be damaged. I don't quite understand what the author means by this question, because banks will certainly not allow one party to cancel a transaction at will without knowing it. Let's take a guess. Maybe the author is talking about a hacker attack, or something similar to an internal conspiracy. Because the system itself supports revocation (broadly speaking, revocation is similar to modifying an account balance), then criminals will have the opportunity to cancel the transaction, so that the buyer's money and goods will be lost. Yes, the seller suffers. The author's repeated mention of double-spending in his article seems to serve as evidence. The author believes that this idea is a valuable part of the article. If a system does not support revocation by its nature, it means that traces will remain forever, and the money has entered the seller's account, and only the seller has the right to handle it. But this idea has nothing to do with P2P, and centralized systems can do the same.
So far, 10 years later, it seems that only the first of the three issues can be used to provide meaningful proof for the birth of Bitcoin, which is to bypass third-party intermediaries and directly connect the two parties to the transaction. The following points can only introduce a few issues of P2P transactions.