Close Menu
Chain Tech Daily

    Subscribe to Updates

    Get the latest creative news from FooBar about art, design and business.

    What's Hot

    Move over Dogecoin — 7 picks under $0.50 to watch

    July 3, 2025

    No crypto wins in Trump’s ‘big beautiful bill,’ but market eyes liquidity boost

    July 3, 2025

    Under‑$0.002 gem could 500x before Cardano reclaims $3

    July 3, 2025
    Facebook X (Twitter) Instagram
    Chain Tech Daily
    • Altcoins
      • Litecoin
      • Coinbase
      • Crypto
      • Blockchain
    • Bitcoin
    • Ethereum
    • Lithosphere News Releases
    Facebook X (Twitter) Instagram YouTube
    Chain Tech Daily
    Home » Why Not Just Use X? An Instructive Example from Bitcoin
    Ethereum

    Why Not Just Use X? An Instructive Example from Bitcoin

    Olivia MartinezBy Olivia MartinezFebruary 14, 20254 Mins Read
    Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Tumblr Email
    Share
    Facebook Twitter LinkedIn Pinterest Email


    Bitcoin developer Gregory Maxwell writes the following on Reddit:

    There is a design flaw in the Bitcoin protocol where its possible for a third party to take a valid transaction of yours and mutate it in a way which leaves it valid and functionally identical but with a different transaction ID. This greatly complicates writing correct wallet software, and it can be used abusively to invalidate long chains of unconfirmed transactions that depend on the non-mutant transaction (since transactions refer to each other by txid).

    This issue arises from several sources, one of them being OpenSSL’s willingness to accept and make sense of signatures with invalid encodings. A normal ECDSA signature encodes two large integers, the encoding isn’t constant length— if there are leading zeros you are supposed to drop them.

    It’s easy to write software that assumes the signature will be a constant length and then leave extra leading zeros in them.

    This is a very interesting cautionary tale, and is particularly important because situations like these are part of the reason why we have made certain design decisions in our development philosophy. Specifically, the issue is this: many people continue to bring up the point that we are in many places unnecessarily reinventing the wheel, creating our own serialization format, RLP, instead of using the existing protobuf and we’re building an application-specific scripting language instead of “just using Lua”. This is a very valid concern; not-invented-here syndrome is a commonly-used pejorative, so doing such in-house development does require justification.

    And the cautionary tale I quoted above provides precisely the perfect example of the justification that I will provide. External technologies, whether protobuf, Lua or OpenSSL, are very good, and have years of development behind them, but in many cases they were never designed with the perfect consensus, determinism and cryptographic integrity in mind that cryptocurrencies require. The OpenSSL situation above is the perfect example; aside from cryptocurrencies, there really is no other situations where the fact that you can take a valid signature and turn it into another valid signature with a different hash is a significant problem, and yet here it’s fatal. One of our core principles in Ethereum is simplicity; the protocol should be as simple as possible, and the protocol should not contain any black boxes. Every single feature of every single sub-protocol should be precisely 100% documented on the whitepaper or wiki, and implemented using that as a specification (ie. test-driven development). Doing this for an existing software package is arguably almost as hard as building an entirely new package from scratch; in fact, it may even be harder, since existing software packages often have more complexity than they need to in order to be feature-complete, whereas our alternatives do not – read the protobuf spec and compare it to the RLP spec to understand what I mean.

    Note that the above principle has its limits. For example, we are certainly not foolish enough to start inventing our own hash algorithms, instead using the universally acclaimed and well-vetted SHA3, and for signatures we’re using the same old secp256k1 as Bitcoin, although we’re using RLP to store the v,r,s triple (the v is an extra two bits for public key recovery purposes) instead of the OpenSSL buffer protocol. These kinds of situations are the ones where “just using X” is precisely the right thing to do, because X has a clean and well-understood interface and there are no subtle differences between different implementations. The SHA3 of the empty string is c5d2460186…a470 in C++, in Python, and in Javascript; there’s no debate about it. In between these two extremes, it’s basically a matter of finding the right balance.



    Source link

    Share. Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Tumblr Email
    Olivia Martinez

    Related Posts

    Ethereum June 30, 2025

    Katana mainnet launch nears as pre-deposit closes with $200M in active deposits

    Ethereum June 22, 2025

    World Experience: Updates from the Next Billion Fellowship

    Ethereum June 21, 2025

    Checkpoint #4: Berlinterop | Ethereum Foundation Blog

    Ethereum June 19, 2025

    Truth Social files for a Bitcoin and Ethereum ETF

    Ethereum June 19, 2025

    Truth Social files for a Bitcoin and Ethereum ETF

    Ethereum June 18, 2025

    Ethereum ETFs hit ATH, SPX6900 cools off, XRP outlook remains bullish

    Leave A Reply Cancel Reply

    Don't Miss
    Crypto July 3, 2025

    Move over Dogecoin — 7 picks under $0.50 to watch

    Disclosure: This article does not represent investment advice. The content and materials featured on this…

    No crypto wins in Trump’s ‘big beautiful bill,’ but market eyes liquidity boost

    July 3, 2025

    Under‑$0.002 gem could 500x before Cardano reclaims $3

    July 3, 2025

    Telegram’s blockchain developer joins unicorn ranks at $1b valuation

    July 3, 2025
    Stay In Touch
    • Facebook
    • Twitter
    • YouTube
    • LinkedIn
    Our Picks

    Move over Dogecoin — 7 picks under $0.50 to watch

    July 3, 2025

    No crypto wins in Trump’s ‘big beautiful bill,’ but market eyes liquidity boost

    July 3, 2025

    Under‑$0.002 gem could 500x before Cardano reclaims $3

    July 3, 2025

    Telegram’s blockchain developer joins unicorn ranks at $1b valuation

    July 3, 2025

    Subscribe to Updates

    Get the latest creative news from SmartMag about art & design.

    Don't Miss
    Crypto July 3, 2025

    Move over Dogecoin — 7 picks under $0.50 to watch

    Disclosure: This article does not represent investment advice. The content and materials featured on this…

    No crypto wins in Trump’s ‘big beautiful bill,’ but market eyes liquidity boost

    July 3, 2025

    Under‑$0.002 gem could 500x before Cardano reclaims $3

    July 3, 2025

    Telegram’s blockchain developer joins unicorn ranks at $1b valuation

    July 3, 2025

    Subscribe to Updates

    Get the latest creative news from SmartMag about art & design.

    Stay In Touch
    • Facebook
    • Twitter
    • Pinterest
    • Instagram
    About Us
    About Us

    ChainTechDaily.xyz delivers the latest updates and trends in the world of cryptocurrency. Stay informed with daily news, insights, and analysis tailored for crypto enthusiasts.

    Our Picks

    For Many Women, The Pain Of The Pandemic Led To Stronger Friendships

    January 15, 2020

    How A ‘Healthy’ Lifestyle Can Be Making You Tired

    January 15, 2020

    Fashion Influencers To Follow On Instagram In 2021

    January 15, 2020
    Lithosphere News Releases

    Imagen AI (IMAGE) Developer to Enable Ripple Labs Stablecoin RLUSD for Service Payments

    July 3, 2025

    Imagen Network Begins Strategic Expansion with Bitcoin-Funded AI Infrastructure Rollout

    July 2, 2025

    Imagen Network Taps Solana to Roll Out AI-Powered Social Features for Decentralized Growth

    June 30, 2025

    Social Tools Built on Solana Set to Launch as Imagen Network Accelerates AI-Driven Development

    June 26, 2025
    X (Twitter) Instagram YouTube LinkedIn
    © 2025 Copyright

    Type above and press Enter to search. Press Esc to cancel.