Is it dangerous to have multiple implementations of Bitcoin?

This opinion editorial is by Bill Scoresby, a bitcoin business owner and author of several guides for bitcoin self custody. You might be asking, “Who in this world uses anything but Bitcoin Core?” You might not have known there were other Bitcoin implementations. You might not have known that there were other implementations of Bitcoin. It has been updated with newer versions, which has led to the current day. It is possible to find alternate implementations that do the same thing as Bitcoin Core, but are written in a different coding language. This is how the Lightning Network node versions LND rely on an alternate Bitcoin implementation called BTCD. A developer created a large multisig transaction. btcd didn’t consider it valid because it contained too many witness data. Other Bitcoin implementations, including Bitcoin Core, had no limit on Taproot transaction witness information and accepted the transaction. However, LND Lightning nodes could not recognize any of these blocks as they were built on top the block that contained the one transaction they considered invalid. The bug was again discovered on November 1. It wasn’t just LND Nodes that were affected. Some electrs instances, which is an implementation of the backend server of Electrum Wallet, also failed to reach consensus. The LND nodes were also put out of agreement due to a similar issue in BTCD. However, an implementation of Bitcoin written in Rust caused electrs nodes, including some very visible servers managed by, to fall behind. The limit on witness data size is set by Bitcoin Core to prevent DoS attacks. However, Core has a higher limit for Taproot transactions. Multiple Implementations of Bitcoin Are DangerousSatoshi did not like the idea of multiple Bitcoin implementations. “I don’t believe that a second, compatible version of Bitcoin will ever prove to be a good idea.” He explained that the design relies on all nodes getting identical results in lockstep. A second implementation would be a threat to the network. Menace? What’s the deal? You’ve likely heard that the true chain is the one with the most proof of work. Two miners discover a block at once, and the chain splits. Other miners then start building on the new block. Most nodes and miners will accept the new true block and abandon the old split. These blocks are called stale blocks, but some people call them orphaned. The average time between blocks in Bitcoin takes 10 minutes. It is possible that the entire network will learn about the new block before it is added to the losing side. The chain with the most work wins. “Nodes will follow valid chains with the most work… The key word is valid. The node will reject any block it receives that it deems invalid. It doesn’t matter how many work was done on top of it, it will reject that chain. Andrew ChowThe key word here is “valid.” When a miner discovers a block that other miners or nodes believe is invalid, the threat of a miner arises. Miners who believe it is valid will attempt to build new blocks on the chain. Miners who believe it is invalid will attempt to build new blocks on the last valid block that they know. The result is two chains with no way to tell which one is true. It is up to the community outside of the protocol to decide what happens next. It sounds awful. Bitcoin developer Peter Todd stated that all other implementations must match Bitcoin Core bug for bug. It’s clear: Multiple implementations of Bitcoin are dangerous! So, at the moment, it looks like very few people are using alternate implementations.Nevertheless, there are active projects that are trying to build and maintain other codebases that implement the Bitcoin protocol. They include:Bitcoin Knots.Libbitcoin.nix-bitcoin.btcd.Jameson Lopp has an excellent page with a more exhaustive list and links to all of the other implementations.All of these projects have extremely talented developers working on them, and each has existed for more than a few years. It is not necessary to put so much effort into something that appears difficult. Anyone can download the chain and anyone can interact with it. However, there are some people who are responsible for making changes to the Bitcoin repository. The process of choosing these people seems informal. Although there is the Bitcoin Improvement Proposal process (BIP), it is a way to suggest changes to Bitcoin Core. It is also informal. This is not a problem. Marty Bent points this out: rough consensus can be a strength. It is possible to have more thorough vetting of changes made to Bitcoin if the process of changing it is complicated and unclear. It is possible to have more than one popular implementation. This is the next step in rough consensus. This job will become more difficult in a world where Bitcoin is a key monetary instrument. A small number of developers could be a valuable target. Their attention will be sought to lobby for different inclusions or exclusions in next software releases. Think about the lobbying industry in politics. It would be a shame if such a thing didn’t develop around those who have committed access to the only implementation Bitcoin protocol. They will be perceived as having access to power, just like politicians. People will target them as such, but these developers won’t be able to defend them. What kind of life will that lead to? It is not difficult to imagine what kind of life that would be. It’s not that different from the global financial system where people’s monetary future is dependent on the decisions made by a few central banks. Multiple implementations can help to alleviate these pressures. If it isn’t done in one place, proposing changes to Bitcoin is much more decentralized than if it is all done in one. The risk of a split in the chain is increased by using different Bitcoin implementations. A catastrophic chain split, where a large number of nodes and miners forked off in error — would be disastrous for Bitcoin and its price. It wouldn’t jeopardize Bitcoin’s permissionless nature. A centralized development environment in which everyone builds on Bitcoin Core could be dangerous. Aaron van Wirdum has written a great article about the topic. You can also find a more recent and informative thread on the topic. This is a guest post from Bill Scoresby. These opinions are not necessarily those of BTC Inc.


Add a Comment

Your email address will not be published. Required fields are marked *