Bitcoin Developers Have Technical Expertise Users Don’t


Bitcoin is defined by its users, but how many node operators understand and verify protocol changes on a nuanced and deeply technical level?

This is an opinion piece by Shinobi, a self-taught educator in the bitcoin space and tech-oriented bitcoin podcast host.

Bitcoin is ultimately defined by its users, by the people who actually run the nodes and enforce the rules of the protocol to verify the payments they receive on the network. This is a fundamental and inescapable property of the Bitcoin network, as long as users choose to engage in this activity. This, however, does not mean that users have a deep understanding of how the protocol works, the different effects proposed changes would have, or the most technically efficient way to handle a problem or improvement. Users can absolutely understand these things if they take the time to do their research and learn about the protocol on a strictly technical level, but assuming that you as a user understand these things just because of reality that users are the ultimate arbiters of how the protocol works depending on the software they choose to run is pure hubris.

Just because you drive a car doesn’t mean you understand the deep and nuanced technical compromises and the engineer who designed the car. Just because you use a cell phone every day doesn’t mean you understand how to optimize the power consumption of all the different radio, WiFi, Bluetooth, cellular, etc. transmitters. Using something doesn’t mean understanding how it works by default. This is something that should be very obvious to a person who is honest with themselves.

So why do so many users without much technical expertise or familiarity with how things work under the hood feel so confident in declaring how things work under the hood, while getting all the details and facts wrong? Now, I feel like in this climate, I have to add a million caveats. I’m not talking about you software developers who create apps, or who work in a normal technology field without having time to contribute to Bitcoin one way or another, but follow it regularly; I’m not talking about the user who has actually spent frankly unhealthy time (trust me, I know this from experience) figuring out how things work under the hood. I’m talking to you, the average user who listens to podcasts and dollar cost averages (DCAs) from time to time and doesn’t really follow the development of technical things in this space in depth. I’m talking to the user who literally hasn’t withdrawn their funds from the exchange where you purchased them yet. I’m talking to you, the user who, while running your business, just asked his bitcoin friend to set up a mobile wallet for you to accept bitcoin once out of 100 that a customer pays with.

Why are you so confident in your opinions on the technical aspects of how Bitcoin works?

How familiar are you with mempool’s policy on how transactions are relayed? Did you know that there is a big difference between policy rules and consensus rules? That there are transactions that are perfectly valid by consensus to be included in a block, but by mempool policy, will not be relayed by anyone’s node, so miners must directly receive that transaction and use custom code to include it in a block?

What about the fact that the Lightning Network does not use timed hash contracts (HTLC) for very small value payments? Did you know that for a payout of 10 satoshi for example, the Lightning Network does not actually use HTLCs or do atomic payout success or failure with the Bitcoin script? These very small payments are actually rounded up to miner fees during the “intermediate period” when they are not yet finalized and confirmed with the chains. This means that if a hop along a payment path has a side that stops cooperating, there is no way for that node to enforce the payment or on-chain refund, depending on which side you are discussing for. this specific payment. It just goes to miner fees for a transaction, no actual HTLC output in the channel commit transaction is created to route this payment. It’s just a “best try” honesty system with no enforcement. Did you know ?

Here’s a fun story. Bitcoin has two opcodes for time lock, lock time verification (CLTV) and check sequence verification (CSV). CLTV prevents a coin from being spent before a certain predefined Unix timestamp or predefined block height. CSV prevents a coin from being spent until “x” time has passed or “y” blocks have been found since the block or time that coin was created. When spending a coin using CLTV or CSV in the script, there is a field in the actual spend transaction called nLocktime that must be set to the value used by the CLTV or CSV script. The original purpose of this field was to have pre-signed transactions that could not be mined until this time or block had passed. But Satoshi Nakamoto himself also had another use in mind for it: a very basic form of payment channel. The idea was that you could take the nLocktime field and increment it by one each time to create a new net payment, and have the miners settle the most recent one in cash.

The problem is that there was no consensus rule or way to force miners to settle for the most recent transaction. Nakamoto himself therefore planned to use this field in the transaction to require miners to settle only the most recent – ​​or most numbered – transaction. Except that there was actually no consensual rule to enforce this! Not only was there no consensus rule, but it was impossible to build one because miners are able to include any valid transaction in a block. Once you sign a transaction, it is valid, it is still valid. So there was no logical way for Nakamoto’s brainchild to work in the first place.

Think about it a bit. The creator of Bitcoin envisioned building something on top of Bitcoin that was literally impossible to build the way he imagined it would work. Think about it. The creator of the whole protocol built a function to do a certain thing, when doing that certain thing that way is literally not possible.

Why are you so confident in your understanding of how Bitcoin works technically? Why are you so sure that your ideas about the effects of certain changes are in fact correct? The creator of the protocol had such a terrible misunderstanding of how it worked that, to be honest, I’m a bit embarrassed for him that he thought such a thing would be possible to build that way.

So what’s the point of all this? That the experts still exist. The fact that users ultimately control the protocol and have the ultimate choice of what software to run and what rules to apply doesn’t change the fact that there are people out there who understand how this protocol works better than you. People’s understanding of things is directly correlated to the amount of time they spent trying to learn and understand the thing.

You cannot magically figure out how Bitcoin actually works just because you buy it, use it, or buy things with it. This is not how knowledge works. So when Bitcoiners get involved in discussions about how things actually work on a technical level, when they start talking publicly about why they made decisions about running software and building rules, they need to be aware of what they do and don’t do. knowledge because simply owning bitcoins does not magically impart knowledge per se.

The tagline for this space is “Don’t Trust, Verify”. So how many of you check things out before you start repeating them?

This is a guest post from Shinobi. The opinions expressed are entirely their own and do not necessarily reflect those of BTC Inc or Bitcoin Magazine.

The views and opinions expressed herein are the views and opinions of the author and do not necessarily reflect those of Nasdaq, Inc.


Comments are closed.