{"id":33525,"date":"2020-12-17T06:10:57","date_gmt":"2020-12-17T04:10:57","guid":{"rendered":"https:\/\/forklog.com\/en\/?p=33525"},"modified":"2025-08-28T14:16:14","modified_gmt":"2025-08-28T11:16:14","slug":"the-battle-for-p2sh-how-the-first-major-bitcoin-developer-war-ended","status":"publish","type":"post","link":"https:\/\/forklog.com\/en\/the-battle-for-p2sh-how-the-first-major-bitcoin-developer-war-ended\/","title":{"rendered":"The Battle for P2SH: How the First Major Bitcoin Developer War Ended"},"content":{"rendered":"<p>Over Bitcoin\u2019s history, it has endured many dramatic moments, not all of which were merely swings in the coin\u2019s price. One need only recall the events surrounding the activation of the Segregated Witness protocol, the Bitcoin Cash hard fork, and the wars that preceded them over block size.<!--more--><\/p>\n<p>But the first truly large clash within the developer community was the question of activating P2SH \u2014 the first upgrade that occurred after <a href=\"https:\/\/forklog.com\/en\/news\/a-decade-since-the-disappearance-of-bitcoins-creator-satoshi-nakamoto\">the departure of Satoshi Nakamoto<\/a>.<\/p>\n<p>Peter Rizzo and Aaron van Wirdum recounted those events in <a href=\"https:\/\/bitcoinmagazine.com\/articles\/the-battle-for-p2sh-the-untold-story-of-the-first-bitcoin-war\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">a Bitcoin Magazine article<\/a>. Its adapted translation is presented below.<\/p>\n<p>****<\/p>\n<blockquote>\n<p>\u00abPush the date back by two months. OP_EVAL is not ready yet.\u00bb<\/p>\n<\/blockquote>\n<p>Gavin Andresen had been working for a long time to avoid such a verdict. A single phrase sent from Russell O\u2019Connor\u2019s computer halted months of work on implementing the first post-Satoshi Nakamoto upgrade to Bitcoin Core.<\/p>\n<p>The proposed approach, Andresen called the quickest path to safer Bitcoin wallets. However, as O\u2019Connor found, it contained a vulnerability that could allow an <simple_tooltip content=\u2019B\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0446\u0438\u043a\u043b \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u2014 \u0446\u0438\u043a\u043b, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0447\u0442\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0432\u044b\u0445\u043e\u0434\u0430 \u0438\u0437 \u043d\u0435\u0433\u043e \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f. \u041e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435, \u0432\u043e\u0448\u0435\u0434\u0448\u0435\u0439 \u0432 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0446\u0438\u043a\u043b, \u0438\u043d\u043e\u0433\u0434\u0430 \u0433\u043e\u0432\u043e\u0440\u044f\u0442, \u0447\u0442\u043e \u043e\u043d\u0430 \u0437\u0430\u0446\u0438\u043a\u043b\u0438\u043b\u0430\u0441\u044c.\u2019>infinite loop<\/simple_tooltip> when attempting to validate transactions.<\/p>\n<p>In other words, through OP_EVAL one could disrupt the operation of nodes and, consequently, the entire Bitcoin network.<\/p>\n<blockquote>\n<p>\u00abIt took me a full 70 minutes to find this bug. Guys, you should stop and really understand Bitcoin,\u00bb \u2014 wrote O\u2019Connor.<\/p>\n<\/blockquote>\n<p>This was Andresen\u2019s first major setback as the project\u2019s new lead, and he sought to dispute O\u2019Connor\u2019s conclusions. In his view, dropping OP_EVAL would waste months of writing and testing, and would also leave users without tools to defend against trojans and other malware that threatened wallets at the time.<\/p>\n<p>OP_EVAL aimed to create simple multisignature wallets that would allow recovering bitcoins even with lost backups. The team also envisaged bank-like alert services designed to prevent theft and fraud. All within the framework of transactions already familiar to users.<\/p>\n<p>Yet for those who saw danger in moving too fast, O\u2019Connor\u2019s warning proved sufficient.<\/p>\n<blockquote>\n<p>\u00abI would remind everyone that we are risking a system worth more than $20 million. It\u2019s not just software at stake\u2014everything must be utterly reliable\u00bb, \u2014 wrote developer Alan Reiner.<\/p>\n<\/blockquote>\n<p>The failure to activate OP_EVAL also carried another important consequence. Very few in 2011 truly understood Bitcoin\u2019s code, and even fewer possessed the knowledge and skills to defend it.<\/p>\n<p>How should developers be organised? What responsibilities do they bear to users? How to activate upgrades if it is unclear who has the final say? All these questions soon became central in the first major war among Bitcoin\u2019s developers.<\/p>\n<h2>Power Transfer<\/h2>\n<p>Typically, open-source projects are led by their founders, who coordinate work with contributing developers. And Bitcoin was no exception. In the early years, Satoshi Nakamoto acted as lead developer and de facto dictator. Without broad discussion in the community, he introduced eight upgrades and gradually stepped back.<\/p>\n<p>By the end of 2010 Nakamoto\u2019s name had been removed from Bitcoin.org, and the de facto project leader became Gavin Andresen, previously known for his work in 3D graphics software. The handover was unusual: it consisted of a short public note and a confidential transfer of the system alert key.<\/p>\n<div id=\"attachment_119746\" style=\"width: 630px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-119746\" class=\"size-full wp-image-119746\" src=\"https:\/\/forklog.com\/wp-content\/uploads\/gavin-andresen.jpg\" alt=\"Gavin Andresen. Photo: 93.9 &#038; 101.5 THE RIVER\" width=\"620\" height=\"400\" srcset=\"https:\/\/forklog.com\/wp-content\/uploads\/gavin-andresen.jpg 620w, https:\/\/forklog.com\/wp-content\/uploads\/gavin-andresen-300x194.jpg 300w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/p>\n<p id=\"caption-attachment-119746\" class=\"wp-caption-text\">Gavin Andresen. Photo: <a href=\"https:\/\/wrsi.com\/monte\/bitcoins-george-washington-amhersts-gavin-andresen\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">93.9 &#038; 101.5 THE RIVER<\/a>.<\/p>\n<\/div>\n<p>At that time, for a small group of Bitcoin developers, this was not a particular problem. They were more focused on critical vulnerabilities, while Andresen had enough free time and enthusiasm to lead the work. There were many issues demanding urgent resolution: faster synchronization, better software testing, and a rising tide of reports of compromised wallets and reputational losses from theft. These issues were <a href=\"https:\/\/sourceforge.net\/p\/bitcoin\/mailman\/bitcoin-development\/?style=flat&#038;limit=250&#038;viewmonth=201106&#038;viewday=13\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">prioritised<\/a>, with the majority agreeing.<\/p>\n<h2>Multisig<\/h2>\n<p>The solution to the wallet-hacking problem, as Andresen discovered, was proposed by Satoshi Nakamoto himself. The Bitcoin code already included the ability to conduct transactions under multi-signature conditions.<\/p>\n<p>The multisignature system (multisig) allowed private keys to be stored on several devices in different parts of the world, or split between the user and wallet provider. This meant that to steal coins, attackers would need to compromise several targets.<\/p>\n<p>The concept quickly inspired Andresen, and in the developer mailing list he passionately <a href=\"https:\/\/sourceforge.net\/p\/bitcoin\/mailman\/bitcoin-development\/thread\/CAJ1JLttqEnCjALadESmpntxSobD8Lj1zcXL4S7ghqdhyBrwVNw%40mail.gmail.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">urged more active action<\/a> in this direction.<\/p>\n<blockquote>\n<p>\u00abWhat concerns me most is that it would take only a few days to agree on how to do this right, yet six months have passed and there is still no consensus. Meanwhile, wallet thefts continue\u00bb.<\/p>\n<\/blockquote>\n<p>These concerns were not unfounded\u2014Nakamoto\u2019s implementation had several significant drawbacks. Chief among them was the incompatibility of transactions with the standard Bitcoin address format, which required longer addresses. For this reason, when sending funds to multisig addresses, transactions took more space and demanded higher fees. Moreover, these fees were paid by the sender, not the recipient.<\/p>\n<p>Consequently, multisig transactions were labelled \u201cnon-standard.\u201d This meant that if a node received such a transaction, it would simply ignore it. There were also no guarantees that miners would include such transactions in blocks.<\/p>\n<h2>OP_EVAL<\/h2>\n<p>To unlock the full potential of the multisig idea, Andresen supported a new opcode \u2014 a command used by nodes to determine whether a new type of transaction was valid, and under what conditions, if so.<\/p>\n<p><a href=\"https:\/\/bitcointalk.org\/index.php?topic=46538.0\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">OP_EVAL<\/a> relied on hashing data and was first proposed by the ByteCoin developer. The core idea was that users could hash instructions describing the conditions under which Bitcoins could be spent in the future (including multisig wallets), including this hash in the transaction. The user paid for the extra size of the transaction when spending coins, but the extra data did not place a heavy burden on the network.<\/p>\n<p>The proposal was well received, and Andresen did everything possible to accelerate its activation.<\/p>\n<blockquote>\n<p>\u00abSecurity is one of the top priorities; I would like to see secure addresses in user signatures on the forum within a year\u00bb<\/p>\n<p> <span>\u2014 wrote him [<a href=\"https:\/\/bitcointalk.org\/index.php?topic=46538.msg554416#msg554416\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">in October 2011<\/a>].<\/span><\/p><\/blockquote>\n<p>Not everyone, however, agreed with Andresen on the need for as rapid activation as possible. OP_EVAL would indeed be a major network upgrade, which already held millions of dollars in assets. British developer Amir Taaki, then barely in his twenties and a committed anarchist, believed more time was required to assess the proposal.<\/p>\n<blockquote>\n<p>\u00abAt first glance the idea seems strong. But rush in the blockchain is probably not the wisest course\u2026 Bitcoin won\u2019t skyrocket tomorrow, so I don\u2019t see a problem in delaying such changes\u00bb, \u2014 he replied to Andresen.<\/p>\n<\/blockquote>\n<p>The situation was further complicated by the fact that implementing OP_EVAL in the protocol, as developers believed, would split Bitcoin\u2019s blockchain into two networks, each operating under its own rules. In other words, it would be a hard fork\u2014users who hadn\u2019t updated their software would remain on a network incompatible with the new rules, and unupdated miners would mine \u201cinvalid\u201d blocks. Worse, users, unknowingly, would be accepting \u201cinvalid\u201d transactions.<\/p>\n<h2>New Soft-Fork Type<\/h2>\n<p>Nevertheless, Andresen soon found a way to mollify opponents. He discovered that OP_EVAL could be introduced by giving new definitions to a few inactive opcodes that Satoshi Nakamoto had originally included in the Bitcoin codebase as placeholders for future commands.<\/p>\n<p>To everyone\u2019s surprise, including Andresen, this also provided compatibility with nodes that had not updated to a version that would accept OP_EVAL. Such nodes would check that the hash matched the rules but would not enforce execution, instead accepting all transactions by default.<\/p>\n<p>Thus, if the majority of miners accepted the new rules, the new blockchain would be accepted by all nodes \u2014 updated and non-updated alike. Such backward-compatible upgrades are known as soft forks, and Nakamoto had implemented them before, but now developers worried about the growing number of users who would need to update.<\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"96DXQXa1ZE\">\n<p>Unsettled case of soft forks: how will the next Bitcoin upgrade be activated<\/p>\n<\/blockquote>\n<p><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"\u00abUnsettled case of soft forks: how will the next Bitcoin upgrade be activated\u00bb \u2014 ForkLog\" src=\"https:\/\/forklog.com\/exclusive\/neprostoj-kejs-softforka-kak-budet-aktivirovano-sleduyushhee-obnovlenie-bitkoina\/embed#?secret=1yXAIY17lw#?secret=96DXQXa1ZE\" data-secret=\"96DXQXa1ZE\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<p>This also enabled work on even more reliable methods of activating soft forks. One idea was to run polls to determine whether a given feature had sufficient support among miners. For this, miners would need to include certain data in mined blocks signaling their readiness to adopt new rules. If the upgrade enjoyed majority support, it would be activated in future releases.<\/p>\n<h2>P2SH<\/h2>\n<p>But all these efforts were overshadowed by the vulnerability discovered by O\u2019Connor. As a result, the developer community split into two camps: some considered the delay in activating OP_EVAL unwarranted, while others warned that the proposed fixes could negatively affect certain key Bitcoin properties.<\/p>\n<p>A number of developers, including Luke Dashjr, Peter Velle and Gregory Maxwell, proposed for upgrades like OP_EVAL a method named <a href=\"https:\/\/en.bitcoinwiki.org\/wiki\/Pay-to-Script_Hash\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Pay-to-Script Hash<\/a> (P2SH). But the implementation problem remained in the form of a soft fork to prevent the network from splitting into two separate chains.<\/p>\n<p>The opcodes then in use had certain limitations, and Andresen proposed a new P2SH solution. It did not require an opcode \u2014 instead, it proposed introducing code that would recognise a certain transaction format and validate it using new instructions.<\/p>\n<p>Unupdated nodes would interpret this unconventional format using standard logic, confirming the correctness of the transactions. This meant P2SH could be implemented as a soft fork \u2014 if the new rules had majority backing among miners, all nodes, updated or not, would accept them.<\/p>\n<p>It seemed Andresen\u2019s proposal satisfied everyone.<\/p>\n<blockquote>\n<p>\u00abAt first glance this seems acceptable to me\u00bb, \u2014 <a href=\"https:\/\/sourceforge.net\/p\/bitcoin\/mailman\/message\/28617230\/\" target=\"_blank\" rel=\"noopener noreferrer\">wrote<\/a> O\u2019Connor.<\/p>\n<\/blockquote>\n<p>At a developer meeting held in January 2012, it was decided to implement Andresen\u2019s proposal. By February 1, miners were to signal their readiness to support it, and another two weeks would see a new release that would activate the soft fork.<\/p>\n<p>But the world would not stay peaceful for long.<\/p>\n<h2>Criticism of P2SH and Alternative Proposals<\/h2>\n<p>Consensus was disrupted by Luke Dashjr, who, out of necessity, left the meeting early and only later learned that Andresen\u2019s version of P2SH had been adopted as a compromise.<\/p>\n<div id=\"attachment_119747\" style=\"width: 1290px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-119747\" class=\"size-full wp-image-119747\" src=\"https:\/\/forklog.com\/wp-content\/uploads\/luke-dashjr.jpg\" alt=\"Luke Dashjr\" width=\"1280\" height=\"720\" srcset=\"https:\/\/forklog.com\/wp-content\/uploads\/luke-dashjr.jpg 1280w, https:\/\/forklog.com\/wp-content\/uploads\/luke-dashjr-300x169.jpg 300w\" sizes=\"auto, (max-width: 1280px) 100vw, 1280px\" \/><\/p>\n<p id=\"caption-attachment-119747\" class=\"wp-caption-text\">Luke Dashjr.<\/p>\n<\/div>\n<p>In his view, this solution complicated the protocol and carried some unclear consequences. He expressed his concerns to Andresen but could not persuade him to abandon the plan. Luke Dashjr voiced his discontent on BitcoinTalk, refusing to accept P2SH and stating that Andresen was the only one supporting the decision.<\/p>\n<blockquote>\n<p>\u00abWith Gavin\u2019s latest code, he\u2019s trying to make everyone vote for P2SH. If you want to show you disagree with this crazy change to the protocol, you need to modify BitcoinD\u2019s source code. Otherwise you will default to voting \u201cfor.\u201d<\/p>\n<\/blockquote>\n<p>The tone of his objections and the sharp accusations toward Andresen did not win broad support among developers. Some felt that, rather than focusing on the technical aspects, he had become personal.<\/p>\n<p>Dashjr, meanwhile, was one of the most ideologically driven contributors. Some even <a href=\"https:\/\/bitcointalk.org\/index.php?topic=58579.msg690009#msg690009\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">believed<\/a> such statements called the developer\u2019s mental health into question. There were, however, others who preferred not to dive into technical details and simply trusted Andresen.<\/p>\n<p>Luke Dashjr [a devout Christian and, at the same time, proponent of the Flat Earth theory \u2014 ForkLog] challenged not only the technical aspects of P2SH but also its philosophical implications for Bitcoin governance.<\/p>\n<blockquote>\n<p>\u00abIf you want to have a monarchic currency, why not just use the Federal Reserve dollar?\u00bb \u2014 he replied to one critic, after which he was accused of seeking to usurp power.<\/p>\n<\/blockquote>\n<p>In response, Dashjr wrote his own version of P2SH called CheckHashVerify (CHV). Essentially an alternative implementation of P2SH, adding a new opcode and not requiring the unconventional interpretation of transaction outputs.<\/p>\n<p>Gavin Andresen, however, did not wish to delve into the debates.<\/p>\n<blockquote>\n<p>\u00abLuke, you\u2019re testing my patience. I\u2019ll step away from the code for a few days to calm down and not do something stupid\u00bb, \u2014 he replied.<\/p>\n<\/blockquote>\n<p>Among those voicing concerns was Amir Taaki. But this happened not because he opposed Andresen\u2019s decision or fully agreed with Dashjr.<\/p>\n<div id=\"attachment_119748\" style=\"width: 1060px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-119748\" class=\"size-full wp-image-119748\" src=\"https:\/\/forklog.com\/wp-content\/uploads\/amir-taaki.jpg\" alt=\"Amir Taaki\" width=\"1050\" height=\"699\" srcset=\"https:\/\/forklog.com\/wp-content\/uploads\/amir-taaki.jpg 1050w, https:\/\/forklog.com\/wp-content\/uploads\/amir-taaki-300x200.jpg 300w, https:\/\/forklog.com\/wp-content\/uploads\/amir-taaki-1024x682.jpg 1024w, https:\/\/forklog.com\/wp-content\/uploads\/amir-taaki-768x511.jpg 768w\" sizes=\"auto, (max-width: 1050px) 100vw, 1050px\" \/><\/p>\n<p id=\"caption-attachment-119748\" class=\"wp-caption-text\">Amir Taaki. Photo: Parallel Polis.<\/p>\n<\/div>\n<p>Taaki was a little over 20 at the time, and his name was not yet widely known, but as a committed anarchist he already saw Bitcoin not merely as software but as an opportunity to resist the establishment. For much of this, he was pushed out of Bitcoin\u2019s inner circle.<\/p>\n<p>This, in turn, undermined his belief that the development process should be sped up. Taaki believed the decision-making process should be slower and involve a broader circle of users.<\/p>\n<p>In his view, Andresen\u2019s and Dashjr\u2019s proposals differed less than they seemed, but he ultimately gave indirect support to the latter, stressing the importance of taking user opinion into account.<\/p>\n<blockquote>\n<p>\u00abI am concerned that Bitcoin could one day become corrupted. Pay extra attention to this as a chance to foster a culture of openness\u00bb, \u2014 Taaki stated.<\/p>\n<\/blockquote>\n<p><a href=\"https:\/\/bitcoinsnews.wordpress.com\/2012\/02\/04\/the-truth-behind-bip-16-and-17\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Differences between P2SH and CHV<\/a> he detailed on his blog, noting the option created by hashing power-based voting.<\/p>\n<h2>One CPU \u2013 One Vote<\/h2>\n<p>During the events described, Bitcoin\u2019s network had already diverged somewhat from the form in which Satoshi Nakamoto had presented it. In the white paper, the creator envisioned that the computing power required to sustain the Proof-of-Work algorithm would be supplied by users via their personal computers.<\/p>\n<blockquote>\n<p>\u00abIn essence, Proof-of-Work is one CPU \/ one vote\u00bb, \u2014 Nakamoto wrote.<\/p>\n<\/blockquote>\n<p>This model assumed that any user could become a miner and participate in creating blocks, confirming transactions, and implementing developer changes to the code.<\/p>\n<p>However, over time, individual miners began to matter less. This was driven by GPU-based mining, pioneered by Laszlo Hanyecz (the same man who paid 10,000 BTC for two pizzas in May 2010), and by the pool-based mining model introduced by Slush Pool\u2019s founder Marek Palatinus. Mining ceased to be a home hobby and became the preserve of larger firms.<\/p>\n<p>By the end of 2011, more than half of Bitcoin\u2019s total hash rate was controlled by just three pools: DeepBit, Slush Pool and BTC Guild.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-119752\" src=\"https:\/\/forklog.com\/wp-content\/uploads\/wpid-mining-pools.png\" alt=\"The Battle for P2SH: How the first major Bitcoin developer war ended\" width=\"430\" height=\"312\" srcset=\"https:\/\/forklog.com\/wp-content\/uploads\/wpid-mining-pools.png 430w, https:\/\/forklog.com\/wp-content\/uploads\/wpid-mining-pools-300x218.png 300w\" sizes=\"auto, (max-width: 430px) 100vw, 430px\" \/><\/p>\n<p>Some saw this as a threat to the network as a whole, while others called the mining centralisation a temporary inconvenience that nonetheless helped make soft-fork activation more manageable and thus less risky.<\/p>\n<h2>To Vote or Not to Vote<\/h2>\n<p>The situation was complicated by the fact that Andresen\u2019s and Dashjr\u2019s proposals reflected different approaches to Bitcoin governance. Up to that point, developers had spoken of upcoming upgrades as a kind of vote on a proposal. While this terminology would later become part of the lexicon, technically developers no longer asked miners for their views on new rules. Rather, it was a way to gauge whether they were ready to deploy the upgrades.<\/p>\n<p>Some developers, including Gregory Maxwell, <a href=\"https:\/\/bitcointalk.org\/index.php?topic=61922.msg723476#msg723476\" target=\"_blank\" rel=\"noopener noreferrer\">advocated<\/a> restricting miners\u2019 votes strictly to questions about transactions, and not giving them power to determine the network\u2019s operating rules.<\/p>\n<blockquote>\n<p>\u00abWhat happens if the overwhelming majority of miners, perhaps even 100%, decide to keep the 50 BTC reward forever? Nothing. Miners who change this rule in their software will simply cease to exist from the network\u2019s perspective\u00bb, \u2014 wrote him.<\/p>\n<\/blockquote>\n<p>Dashjr did not disagree with Maxwell on this, but did not see a practical way to ensure network security if developers pushed changes without miner support.<\/p>\n<blockquote>\n<p>\u00abMiners could simply refuse to confirm P2SH transactions, thereby protecting themselves from changes by developers. And if developers lack miners\u2019 support, guess what happens? A simple 51% attack\u2014the network will not be as secure!\u00bb<\/p>\n<\/blockquote>\n<p>From this vantage point it is easier to understand why Dashjr believed Andresen, in pushing P2SH, was abusing his role as lead developer: if a miner used standard software to create a block, he would automatically be voting for P2SH.<\/p>\n<p>In response, he created patches that would give miners the right to vote for or against P2SH and CHV. And although few used this code in practice, it did have an effect. Tycho, operator of the largest pool at the time, DeepBit, <a href=\"https:\/\/bitcointalk.org\/index.php?topic=61125.msg714231#msg714231\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">admitted<\/a> that he did not feel comfortable facing the prospect of weighing two competing proposals, especially when there was no consensus among the developers themselves.<\/p>\n<blockquote>\n<p>\u00abI don\u2019t want to be the one person who makes such a decision\u00bb, \u2014 wrote him.<\/p>\n<\/blockquote>\n<h2>Stalemate<\/h2>\n<p>Tycho\u2019s position made the situation even harder \u2014 without his support, representing more than 30% of the network\u2019s hash rate, activation of P2SH looked unlikely. By late January 2012, as the first round of voting neared its end, it seemed the proposal would not reach the necessary backing.<\/p>\n<p>The likely delay drove Andresen and other developers to despair.<\/p>\n<blockquote>\n<p>\u00abI think until someone sets a deadline for this process, it will never finish, because there will always be another guy with a new great idea\u00bb, \u2014 Gregory Maxwell wrote in an IRC channel for developers.<\/p>\n<\/blockquote>\n<p>Andresen <a href=\"https:\/\/bitcointalk.org\/index.php?topic=61125.0\" target=\"_blank\" rel=\"noopener noreferrer\">accused<\/a> Tycho of the stalemate. Stating that one man with enough hash power could block any changes, he called it \u201cwrong\u201d to use the operator of the largest mining pool to oppose the overall consensus.<\/p>\n<p>Nevertheless, while Andresen urged public pressure on DeepBit and even offered to compensate losses if activation of P2SH would lead to financial losses, Tycho refused to vote for the proposal.<\/p>\n<p>Arguments from Andresen found resonance among users who blamed Tycho for delaying the upgrade. Yet the DeepBit operator stood firm: he did not want to be the single person to decide the issue\u2019s fate, noting that the combined power of other pools would be enough to back the decision.<\/p>\n<h2>Second Round of Voting<\/h2>\n<p>Failing to secure sufficient miner backing, Andresen was compelled to discuss his proposal more publicly, and at one point even allowed that CHV could become an alternative route out of the impasse.<\/p>\n<p>However, there were clear disagreements between those who believed miners should decide between P2SH and CHV, and those who argued for a decision based on <span class=\"ts-comment-commentedText\" title=\"literally\">merit<\/span>ocracy. The latter included BitcoinTalk moderator Theymos.<\/p>\n<blockquote>\n<p>\u00abBlocks can be rejected by clients. If enough clients do this, miners will be unnecessary\u00bb, \u2014 <a href=\"https:\/\/bitcointalk.org\/index.php?topic=61922.msg722874#msg722874\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">wrote<\/a>.<\/p>\n<\/blockquote>\n<p>Theymos also proposed regular meetings of a small circle of experts who would gather every two weeks and vote on proposals. Perhaps by coincidence, Dashjr soon created a <a href=\"https:\/\/en.bitcoin.it\/w\/index.php?title=P2SH_Votes&#038;oldid=23259\" target=\"_blank\" rel=\"noopener noreferrer\">Wiki page<\/a> where the most prominent developers could vote on proposals.<\/p>\n<p>Shortly thereafter, Maxwell, Velle and others signalled that although they preferred P2SH (BIP-16), they were also prepared to back CHV (BIP-17). O\u2019Connor and Dashjr agreed that P2SH could be adopted, but they preferred CHV.<\/p>\n<p>Only Andresen categorically refused to back CHV.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-119749\" src=\"https:\/\/forklog.com\/wp-content\/uploads\/screenshot-en-bitcoin-it-w-index-php-1608064747112.png\" alt=\"The Battle for P2SH: How the first major Bitcoin developer war ended\" width=\"860\" height=\"646\" srcset=\"https:\/\/forklog.com\/wp-content\/uploads\/screenshot-en-bitcoin-it-w-index-php-1608064747112.png 860w, https:\/\/forklog.com\/wp-content\/uploads\/screenshot-en-bitcoin-it-w-index-php-1608064747112-300x225.png 300w, https:\/\/forklog.com\/wp-content\/uploads\/screenshot-en-bitcoin-it-w-index-php-1608064747112-160w.png 768w\" sizes=\"auto, (max-width: 860px) 100vw, 860px\" \/><\/p>\n<p>But more importantly, CHV had too little support among miners. By mid-February 2012, P2SH supported about 30% of the hash rate, CHV only 2%. This forced Dashjr to reluctantly concede P2SH\u2019s dominance and even consider withdrawing his proposal altogether.<\/p>\n<p>The second round of voting was scheduled for March 1, and as that date approached, P2SH gained more support, nearing the 55% threshold. Tycho and Dashjr had no choice but to accept the majority\u2019s choice.<\/p>\n<p>Soon, Andresen announced the activation of the soft fork, and on April 1 it was successfully completed. The first protocol created after Satoshi\u2019s departure was implemented in Bitcoin\u2019s main network.<\/p>\n<p>The arduous activation process for P2SH had a lasting influence on Bitcoin\u2019s development structure. Andresen achieved the adoption of a solution he had created, and even if some questioned his leadership during the crisis, he ultimately cemented his status.<\/p>\n<p>Meanwhile, attitudes toward Dashjr and Taaki among the community were no longer favorable. At one stage Andresen even asked Dashjr to step back completely from Bitcoin Core development, though later he either rejected this idea himself or the CHV author simply ignored his advice.<\/p>\n<p>Greg Maxwell joined the ranks of key developers, gaining commit access to the project alongside Andresen, Vladimir van der Laan, and Jeff Garzik.<\/p>\n<p>A broader development tone was set: a more pragmatic, technically grounded approach was welcomed, while eccentric contributors gradually lost influence. Yet ideological differences persisted and resurfaced in the years that followed.<\/p>\n<p>A year later, answering a video in which Peter Todd argued against increasing block size, Andresen said:<\/p>\n<blockquote>\n<p>\u00abThe block size will be increased. Your video will just make a lot of people worry about things that aren\u2019t worth worrying about. It will be exactly the same as Luke Dashjr\u2019s proposal last year \u2014 a storm in a teacup.\u00bb<\/p>\n<\/blockquote>\n<p>What the decision-making process in a decentralised digital currency network should look like remains unsettled, and before a final answer is found, many years will pass.<\/p>\n<p>*****<\/p>\n<p>In 2016 Andresen backed the version that Craig Wright, an Australian, was the creator of Bitcoin, after which his access to updating the Bitcoin Core repository on GitHub was revoked and he left the project. In 2017 the developer supported Bitcoin Cash.<\/p>\n<p>In the summer of 2020 he retracted Wright claims, saying he had been misled about the creator\u2019s identity.<\/p>\n<p>Follow ForkLog\u2019s news on Telegram: <a href=\"https:\/\/t.me\/forkloglive\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">ForkLog FEED<\/a> \u2014 the full news feed, <a href=\"https:\/\/telegram.me\/forklog\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">ForkLog<\/a> \u2014 the most important news and polls.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Over Bitcoin\u2019s history, it has endured many dramatic moments, not all of which were merely swings in the coin\u2019s price. One need only recall the events surrounding the activation of the Segregated Witness protocol, the Bitcoin Cash hard fork, and the wars that preceded them over block size.<\/p>\n","protected":false},"author":1,"featured_media":33526,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"select":"1","news_style_id":"1","cryptorium_level":"","_short_excerpt_text":"","creation_source":"","_metatest_mainpost_news_update":false,"footnotes":""},"categories":[1144],"tags":[2030],"class_list":["post-33525","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-longreads","tag-genesis-archives"],"aioseo_notices":[],"amp_enabled":true,"views":"105","promo_type":"1","layout_type":"1","short_excerpt":"","is_update":"","_links":{"self":[{"href":"https:\/\/forklog.com\/en\/wp-json\/wp\/v2\/posts\/33525","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/forklog.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/forklog.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/forklog.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/forklog.com\/en\/wp-json\/wp\/v2\/comments?post=33525"}],"version-history":[{"count":1,"href":"https:\/\/forklog.com\/en\/wp-json\/wp\/v2\/posts\/33525\/revisions"}],"predecessor-version":[{"id":33527,"href":"https:\/\/forklog.com\/en\/wp-json\/wp\/v2\/posts\/33525\/revisions\/33527"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/forklog.com\/en\/wp-json\/wp\/v2\/media\/33526"}],"wp:attachment":[{"href":"https:\/\/forklog.com\/en\/wp-json\/wp\/v2\/media?parent=33525"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/forklog.com\/en\/wp-json\/wp\/v2\/categories?post=33525"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/forklog.com\/en\/wp-json\/wp\/v2\/tags?post=33525"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}