On Tue, Jun 13, 2017 at 2:23 AM, Zheming Lin via bitcoin-dev <bitcoin-dev@lists.linuxfoundation.org> wrote: > The BIP is described using Chinese and English. If any part is missing or > need more specific, please reply. Forgive for my poor English.
Your English is much better than my Chinese. Thank you for taking the time to write this. I am still reading and trying to completely understand your proposal but I wanted to make one observation: > 鉴于最初的比特币协议并未考虑不参与挖矿的钱包节点,导致这些钱包节点的协议升级是被动的,懒惰的。当在升级方向上出现分歧时,矿工也不愿意在错误的链上挖矿,但矿工又没有任何方法可以确保正在延长的链是被钱包节点广泛接受的链。这将影响钱包节点的安全。<br/> > In view of the fact that the original Bitcoin consensus did not consider the > non-mining wallet nodes(as mentioned above), the result is that upgrading the > consensus of these wallet nodes is passive and lazy. This is not true. Non-mining wallet nodes were considered, and their upgrade practices are not usually slower than miners. Even in the very first version of the software it did not mine unless the user went into the settings and explicitly turned it on or used a command-line option. By default, every installation of Bitcoin was a non-mining wallet node. The enforcement of the system's rules by users broadly, and not just miners, is specifically described in the white paper (section 8, paragraph 2, it especially clear in the last sentence). This is critical for the security of Bitcoin especially with the current degree of centralization in pools. Without it, Bitcoin's security would look a lot more like the Ripple system. Frequently it is the miners that are "passive and lazy" in upgrading. In some cases when new versions have had major improvements specific to mining (such as for 0.8) miners upgraded much faster than other nodes. But often, it is the other way around and miners adopt new versions much slower than other nodes. If you look at block construction today you will see that many miners are running highly outdated node software which is more than one or even two years old. (and as a result, they lose out on a considerable amount of transaction fees.) In fact, many miners have the most severe form of passive behavior: they do not run a node at all but simply sell their hash power to pools (which themselves are often slow to upgrade). By comparison, http://luke.dashjr.org/programs/bitcoin/files/charts/branches.html 95% of reachable nodes are running software now from the last year and a half. I do not, however, believe that it is a problem that anyone is slow to upgrade. Reliability cannot be maintained in infrastructure if it is rapidly changing. A normal deployment process for major systems infrastructure outside of Bitcoin usually takes months because time must be given to test and find bugs. Miners depend on their income from mining and interruptions can be very costly. Many pools are also involved with altcoins which are constantly breaking and they have their attention directed elsewhere and cannot quickly spare the time required to upgrade their software. These delays are the natural consequence of a decentralized system where no one has the power to force other people to adopt their priorities. If you look at the deployment processes of major internet protocols, HTTP2, new versions of SSH, BGP, or IP itself you will find that upgrades often happen slower than the entire life of Bitcoin so far-- and none of these protocols have the difficult consistency challenges of Bitcoin or as much risk of irreparable financial loss if things go wrong. Because many people in the Bitcoin community appears to expect upgrades much faster than even centralized ISP backbones upgrade their router software I think they have unrealistic expectations with how fast upgrading can occur while preserving stability, security, and decentralization and unrealistic expectations of how fast upgrading will occur so long as no one has the ability to force other people to run their upgrades. I look forward to competing my understanding of your proposal. Cheers, _______________________________________________ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev