{"id":10876,"date":"2025-04-09T16:54:34","date_gmt":"2025-04-09T14:54:34","guid":{"rendered":"https:\/\/wsj-crypto.com\/?p=10876"},"modified":"2025-04-09T16:54:34","modified_gmt":"2025-04-09T14:54:34","slug":"the-case-against-a-one-size-fits-all-solution-lessons-from-bitcoin","status":"publish","type":"post","link":"https:\/\/wsj-crypto.com\/index.php\/2025\/04\/09\/the-case-against-a-one-size-fits-all-solution-lessons-from-bitcoin\/","title":{"rendered":"The Case Against a One-Size-Fits-All Solution: Lessons from Bitcoin"},"content":{"rendered":"<p><\/p>\n<div id=\"\">\n<p class=\"chakra-text css-gi02ar\">Bitcoin programmer Gregory Maxwell states the following <!-- --><a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-ug8vf0\" href=\"http:\/\/www.reddit.com\/r\/Bitcoin\/comments\/1x93tf\/some_irc_chatter_about_what_is_going_on_at_mtgox\/cf99yac\">on Reddit:<!-- --><\/a><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">There exists a flaw in the design of the Bitcoin protocol where it is feasible for an outside party to take a legitimate transaction of yours and alter it in such a way that it remains valid and functionally the same yet has a distinct transaction ID. This significantly complicates the creation of correct wallet software, and it can be exploited to invalidate lengthy sequences of unconfirmed transactions that rely on the original transaction (as transactions reference each other by txid).<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">This problem emerges from multiple origins, one being OpenSSL\u2019s readiness to accept and interpret signatures with invalid encodings. A standard ECDSA signature encodes two large integers, and the encoding isn\u2019t of constant length\u2014 if leading zeros are present, they are expected to be removed.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">It&#8217;s simple to create software that presumes the signature will be of a constant length, thus leaving unnecessary leading zeros present.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">This serves as a very intriguing cautionary narrative, and it is particularly crucial because scenarios like these are part of the rationale behind certain design choices we&#8217;ve made in our development philosophy. The specific issue is this: numerous individuals continue to highlight that we are, in many instances, unnecessarily recreating existing solutions, designing our own serialization format, <!-- --><a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-ug8vf0\" href=\"https:\/\/wiki.ethereum.org\/index.php\/RLP\">RLP<!-- --><\/a>, instead of utilizing the available <!-- --><a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-ug8vf0\" href=\"https:\/\/code.google.com\/p\/protobuf\/\">protobuf<!-- --><\/a>, and we\u2019re developing a scripting language specific to applications rather than \u201csimply using Lua.\u201d This concern is genuinely valid; the not-invented-here syndrome is a <!-- --><a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-ug8vf0\" href=\"http:\/\/en.wikipedia.org\/wiki\/Not_invented_here\">commonly-used term of derision<!-- --><\/a>, which means that engaging in such internal development necessitates justification.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">The cautionary tale I referenced earlier offers precisely the ideal example for the justification I will present. External technologies, such as protobuf, Lua, or OpenSSL, are quite robust and have years of development support, but in numerous instances, they were never designed with the perfect consensus, determinism, and cryptographic integrity that cryptocurrencies demand. The OpenSSL scenario mentioned above exemplifies this perfectly; aside from cryptocurrencies, there are virtually no other circumstances where the ability to convert a valid signature into another valid signature with a different hash poses a significant issue, yet here it is catastrophic. One of our fundamental principles in Ethereum is simplicity; the protocol ought to be as straightforward as possible, and it should not include any black boxes. Every single feature of every sub-protocol should be thoroughly documented either in the whitepaper or on the wiki, and developed based on that as a specification (i.e., test-driven development). Accomplishing this for an existing software package is arguably nearly as challenging as constructing an entirely new package from the ground up; in fact, it might even be harder, as existing software often includes more complications than necessary to be feature-complete, while our alternatives do not \u2013 refer to the <!-- --><a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-ug8vf0\" href=\"https:\/\/developers.google.com\/protocol-buffers\/docs\/encoding\">protobuf specification<!-- --><\/a> and contrast it with the <!-- --><a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-ug8vf0\" href=\"https:\/\/wiki.ethereum.org\/index.php\/RLP\">RLP specification<!-- --><\/a> to grasp what I mean.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">It is important to note that the principle outlined above has its boundaries. For instance, we are certainly not naive enough to attempt to create our own hashing algorithms, instead opting for the universally recognized and well-tested SHA3, and for signatures, we\u2019re utilizing the same well-known secp256k1 as Bitcoin, although we\u2019re employing RLP to store the v,r,s triple (with v being an additional two bits for public key recovery) rather than the OpenSSL buffer protocol. These kinds of scenarios are precisely where \u201csimply using X\u201d is the most appropriate approach, because X has a clear and well-understood interface and there are no subtle distinctions among various implementations. The SHA3 of the empty string is c5d2460186&#8230;a470 in C++, in Python, and in Javascript; there\u2019s no dispute about it. Between these two extremes, the primary task is to strike the right equilibrium.<!-- --><\/p>\n<\/div>\n<p><br \/>\n<br \/><a href=\"https:\/\/blog.ethereum.org\/en\/2014\/02\/09\/why-not-just-use-x-an-instructive-example-from-bitcoin\">Source link <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bitcoin programmer Gregory Maxwell states the following on Reddit: There exists a flaw in the design of the Bitcoin protocol where it is feasible for an outside party to take a legitimate transaction of yours and alter it in such a way that it remains valid and functionally the same yet has a distinct transaction<\/p>\n","protected":false},"author":3,"featured_media":8282,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23],"tags":[2057],"class_list":{"0":"post-10876","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-ethereum","8":"tag-return-a-list-of-comma-separated-tags-from-this-title-why-not-just-use-x-an-instructive-example-from-bitcoin"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>The Case Against a One-Size-Fits-All Solution: Lessons from Bitcoin - WSJ-Crypto<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wsj-crypto.com\/index.php\/2025\/04\/09\/the-case-against-a-one-size-fits-all-solution-lessons-from-bitcoin\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Case Against a One-Size-Fits-All Solution: Lessons from Bitcoin - WSJ-Crypto\" \/>\n<meta property=\"og:description\" content=\"Bitcoin programmer Gregory Maxwell states the following on Reddit: There exists a flaw in the design of the Bitcoin protocol where it is feasible for an outside party to take a legitimate transaction of yours and alter it in such a way that it remains valid and functionally the same yet has a distinct transaction\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wsj-crypto.com\/index.php\/2025\/04\/09\/the-case-against-a-one-size-fits-all-solution-lessons-from-bitcoin\/\" \/>\n<meta property=\"og:site_name\" content=\"WSJ-Crypto\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-09T14:54:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/wsj-crypto.com\/wp-content\/uploads\/2025\/02\/eth-org.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"2100\" \/>\n\t<meta property=\"og:image:height\" content=\"900\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"wsjcrypto\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"wsjcrypto\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/wsj-crypto.com\/index.php\/2025\/04\/09\/the-case-against-a-one-size-fits-all-solution-lessons-from-bitcoin\/\",\"url\":\"https:\/\/wsj-crypto.com\/index.php\/2025\/04\/09\/the-case-against-a-one-size-fits-all-solution-lessons-from-bitcoin\/\",\"name\":\"The Case Against a One-Size-Fits-All Solution: Lessons from Bitcoin - WSJ-Crypto\",\"isPartOf\":{\"@id\":\"https:\/\/wsj-crypto.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/wsj-crypto.com\/index.php\/2025\/04\/09\/the-case-against-a-one-size-fits-all-solution-lessons-from-bitcoin\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/wsj-crypto.com\/index.php\/2025\/04\/09\/the-case-against-a-one-size-fits-all-solution-lessons-from-bitcoin\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/wsj-crypto.com\/wp-content\/uploads\/2025\/02\/eth-org.jpeg\",\"datePublished\":\"2025-04-09T14:54:34+00:00\",\"author\":{\"@id\":\"https:\/\/wsj-crypto.com\/#\/schema\/person\/88a93723b30416db1a352d5a0096c4a7\"},\"breadcrumb\":{\"@id\":\"https:\/\/wsj-crypto.com\/index.php\/2025\/04\/09\/the-case-against-a-one-size-fits-all-solution-lessons-from-bitcoin\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/wsj-crypto.com\/index.php\/2025\/04\/09\/the-case-against-a-one-size-fits-all-solution-lessons-from-bitcoin\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/wsj-crypto.com\/index.php\/2025\/04\/09\/the-case-against-a-one-size-fits-all-solution-lessons-from-bitcoin\/#primaryimage\",\"url\":\"https:\/\/wsj-crypto.com\/wp-content\/uploads\/2025\/02\/eth-org.jpeg\",\"contentUrl\":\"https:\/\/wsj-crypto.com\/wp-content\/uploads\/2025\/02\/eth-org.jpeg\",\"width\":2100,\"height\":900},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/wsj-crypto.com\/index.php\/2025\/04\/09\/the-case-against-a-one-size-fits-all-solution-lessons-from-bitcoin\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/wsj-crypto.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The Case Against a One-Size-Fits-All Solution: Lessons from Bitcoin\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/wsj-crypto.com\/#website\",\"url\":\"https:\/\/wsj-crypto.com\/\",\"name\":\"WSJ-Crypto\",\"description\":\"Just Another Crypto News Website\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/wsj-crypto.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/wsj-crypto.com\/#\/schema\/person\/88a93723b30416db1a352d5a0096c4a7\",\"name\":\"wsjcrypto\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/wsj-crypto.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/86fe8af82ea089646d6639ca2f87e0243d8688d957bd8e3ec22ec3c457cc16d4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/86fe8af82ea089646d6639ca2f87e0243d8688d957bd8e3ec22ec3c457cc16d4?s=96&d=mm&r=g\",\"caption\":\"wsjcrypto\"},\"url\":\"https:\/\/wsj-crypto.com\/index.php\/author\/wsjcrypto\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"The Case Against a One-Size-Fits-All Solution: Lessons from Bitcoin - WSJ-Crypto","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/wsj-crypto.com\/index.php\/2025\/04\/09\/the-case-against-a-one-size-fits-all-solution-lessons-from-bitcoin\/","og_locale":"it_IT","og_type":"article","og_title":"The Case Against a One-Size-Fits-All Solution: Lessons from Bitcoin - WSJ-Crypto","og_description":"Bitcoin programmer Gregory Maxwell states the following on Reddit: There exists a flaw in the design of the Bitcoin protocol where it is feasible for an outside party to take a legitimate transaction of yours and alter it in such a way that it remains valid and functionally the same yet has a distinct transaction","og_url":"https:\/\/wsj-crypto.com\/index.php\/2025\/04\/09\/the-case-against-a-one-size-fits-all-solution-lessons-from-bitcoin\/","og_site_name":"WSJ-Crypto","article_published_time":"2025-04-09T14:54:34+00:00","og_image":[{"width":2100,"height":900,"url":"https:\/\/wsj-crypto.com\/wp-content\/uploads\/2025\/02\/eth-org.jpeg","type":"image\/jpeg"}],"author":"wsjcrypto","twitter_card":"summary_large_image","twitter_misc":{"Scritto da":"wsjcrypto","Tempo di lettura stimato":"3 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/wsj-crypto.com\/index.php\/2025\/04\/09\/the-case-against-a-one-size-fits-all-solution-lessons-from-bitcoin\/","url":"https:\/\/wsj-crypto.com\/index.php\/2025\/04\/09\/the-case-against-a-one-size-fits-all-solution-lessons-from-bitcoin\/","name":"The Case Against a One-Size-Fits-All Solution: Lessons from Bitcoin - WSJ-Crypto","isPartOf":{"@id":"https:\/\/wsj-crypto.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/wsj-crypto.com\/index.php\/2025\/04\/09\/the-case-against-a-one-size-fits-all-solution-lessons-from-bitcoin\/#primaryimage"},"image":{"@id":"https:\/\/wsj-crypto.com\/index.php\/2025\/04\/09\/the-case-against-a-one-size-fits-all-solution-lessons-from-bitcoin\/#primaryimage"},"thumbnailUrl":"https:\/\/wsj-crypto.com\/wp-content\/uploads\/2025\/02\/eth-org.jpeg","datePublished":"2025-04-09T14:54:34+00:00","author":{"@id":"https:\/\/wsj-crypto.com\/#\/schema\/person\/88a93723b30416db1a352d5a0096c4a7"},"breadcrumb":{"@id":"https:\/\/wsj-crypto.com\/index.php\/2025\/04\/09\/the-case-against-a-one-size-fits-all-solution-lessons-from-bitcoin\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wsj-crypto.com\/index.php\/2025\/04\/09\/the-case-against-a-one-size-fits-all-solution-lessons-from-bitcoin\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/wsj-crypto.com\/index.php\/2025\/04\/09\/the-case-against-a-one-size-fits-all-solution-lessons-from-bitcoin\/#primaryimage","url":"https:\/\/wsj-crypto.com\/wp-content\/uploads\/2025\/02\/eth-org.jpeg","contentUrl":"https:\/\/wsj-crypto.com\/wp-content\/uploads\/2025\/02\/eth-org.jpeg","width":2100,"height":900},{"@type":"BreadcrumbList","@id":"https:\/\/wsj-crypto.com\/index.php\/2025\/04\/09\/the-case-against-a-one-size-fits-all-solution-lessons-from-bitcoin\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/wsj-crypto.com\/"},{"@type":"ListItem","position":2,"name":"The Case Against a One-Size-Fits-All Solution: Lessons from Bitcoin"}]},{"@type":"WebSite","@id":"https:\/\/wsj-crypto.com\/#website","url":"https:\/\/wsj-crypto.com\/","name":"WSJ-Crypto","description":"Just Another Crypto News Website","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wsj-crypto.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Person","@id":"https:\/\/wsj-crypto.com\/#\/schema\/person\/88a93723b30416db1a352d5a0096c4a7","name":"wsjcrypto","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/wsj-crypto.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/86fe8af82ea089646d6639ca2f87e0243d8688d957bd8e3ec22ec3c457cc16d4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/86fe8af82ea089646d6639ca2f87e0243d8688d957bd8e3ec22ec3c457cc16d4?s=96&d=mm&r=g","caption":"wsjcrypto"},"url":"https:\/\/wsj-crypto.com\/index.php\/author\/wsjcrypto\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/posts\/10876","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/comments?post=10876"}],"version-history":[{"count":2,"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/posts\/10876\/revisions"}],"predecessor-version":[{"id":10878,"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/posts\/10876\/revisions\/10878"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/media\/8282"}],"wp:attachment":[{"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/media?parent=10876"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/categories?post=10876"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/tags?post=10876"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}