Oddbean new post about | logout
 TL;DR: More key holders = number go up.

Money is a pure speculative good. No matter what the market thinks of your other assets, you speculate that people will want your money. The more people who want your money, the more valuable it is.

Densifying allows more people to hold keys on chain. More people can use the money. More people with a stake in the censorship-resistance and decentralization of #Bitcoin.

It is my belief that more is better regarding people with keys on chain. People who want the money and want to secure it make it more valuable.

For these reasons, I am SELFISHLY pro densification (pro covenant). More key holders = number go up. 
 The number is going to go up even without your new opcodes, which threaten the security and soundness of the network.  Your new opcodes and "innovation" are not required for security, decentralization, nor "number go up" so you can stuff the new opcodes up your ass.

Bitcoin is feature complete. 
 Also important to note that the number will NOT go up if you break the thing by introducing new "innovations" with unknown side effects because you are hasty and greedy.

Bitcoin is working perfectly as the hardest money in the history of human civilization.  It is feature complete.  Leave it alone. 
 "Bitcoin is feature complete."

You keep repeating this mantra. When did this happen? Before or after we did a soft-fork to enable lightning? It seems you are unaware of this?

Because there are things like vaults which do require additional features. Similarly multi-party lightning.

Your absolutist position seems quite hard to justify, though I'm trying to give you an much credit as I can, lest this become Twitter. 
 Bitcoin should have been feature complete before segwit in my opinion.  I don't care about vaults, I don't care about multi-party lightning.  I care about hard money that can't be debased or stolen, that's it.

My "absolutist" position is simply that bitcoin is working perfectly fine and all your new opcodes are an attack on the network and completely unnecessary for bitcoin's success.

If it aint broken, don't fix it. 
 Right, so no lightning at all for you then?

At least that's consistent. No zaps for you then! 
 You will notice I do not provide a lightning address in my profile to be "zapped" to.   However I would not avoid lightning since it already exists.  But Bitcoin would be better without segwit and it's witness discount and would also be better without taproot and it's complete opening of the witness section. 
 No segwit, no lightning. 

You really don't understand Bitcoin, so I'm going to balance your opinion appropriately. 
 When did you get the idea that I give a shit about lightning?  Of course lightning is impossible without segregating the witness data, that was the point of the softfork.  But the result was abuse of the witness section, particularly after taproot opened those floodgates.

I do not care about lightning.  If you can scale bitcoin without adding more opcodes going forward, good for you.  You probably can't which is why you, in your vanity, would attempt to attack bitcoin by adding new opcodes which will inevitably compromise the network's security. 
 The good news is that more and more people understand this position, especially with Saylor's recent podcasts where he says the same thing.  Over time it becomes more and more difficult to initiate any kind of soft fork attack on bitcoin, which is excellent news.

You can have 1 new opcode every 100 years, starting 100 years from now.  Plan accordingly. 
 I say we should allow protocol upgrades every 10 years. That should give us sufficient time to research and debate. In the meantime we just fix bugs and improve performance and privacy. 
 The Poon Tradja paper does not use anything as ugly as segwit. They have a solution to maleability based on an op code irc 
 The mistake was just increasing the block size to 4MB and giving it a discount. That wasn’t necessary for Lightning was it? 
 Adding the extension blocks was not needed for Lightning, no. It was a concession to the parties who wanted bigger blocks. Ultimately it wasn’t enough, and they forked off anyway.

In retrospect, we probably should not have added that extra space, but it’s impossible to say with certainty how history would have unfolded if we hadn’t.

We could soft-fork in a reduction that cuts that back out, or makes it smaller. Or we could fork in a reduction to the main block size. It takes a hard fork to go from 1MB to 2MB, but only a soft fork to limit it to 500kb or less. 
 This irresistable desire some people have to mess with the thing just blows my mind.  My only explanation is that the kind of people who want to mess with a perfectly functional network just don't have any bitcoin in their stack and are therefore more interested in "iNnoVat1on" than they are protecting the hardest money ever created.

Bitcoin, in it's current form, solves the problem of the hard money.  Messing with it in an attempt to make it do other shit, like parlor tricks, is nothing but risk and adds no significant value.

Innovation in Bitcoin is nothing more than an attack on a perfectly functional network.

If it aint broken, don't fix it.  Simple wisdom but so few people actually understand it. 
 That’s probably true. I’ll bet Rusty and his family have a small percentage of net worth in bitcoin. 

It makes sense that the greater the percentage, the more conservative you likely are. 

People should probably not be core devs if they don’t have meaningful skin in the game. Hard to prove this though. 
 yes.  At least we've got Saylor going public on the subject now.  Good to have such an articulate and vocal supporter.

"Why doesn't Saylor support core devs"?   Cause fuck core, they can't even fix their filters.  Those guys do nothing but fuck the network up with their soft fork attacks.

Core is the biggest threat to Bitcoin by far.   If Bitcoin fails it's going to be because they soft-forked some bullshit in there that allowed it to be captured.

 
 There must be a few core devs who are pushing back on the crazy stuff behind the scenes. Otherwise we could have seen forks for covenants or other stuff already. 🤷‍♂️ 
 If his Bitcoin is feature complete, then I guess he’ll be done using it by the year 2106. 
 There is a difference between maintenance and new feature development. 
 What I find most amusing is that my 23 word response got "TLDR" from you.  This lack of focus and attention deficit issue is probably the reason why you would want to endanger bitcoin by adding new and completely unnecessary opcodes with unknown side-effects to the network.

The only people who want to "innovate" on bitcoin are the people who don't have much of it. 
 Sorry, the TL;DR wasn’t based on your message but my own. I was summarizing my reply. I should have labeled it “Summary” instead.

I remain confident that decentralizing Bitcoin by making more efficient use of block space will make it more valuable than it would be otherwise.

If we do nothing, roughly 10-20 million people can hold keys on chain. Everyone else will have to use some kind of trust-based layer on top. 10-20 million is still way better than the status quo (banking), but increasing the number of people with keys is even better, IMO. 
 Bitcoin will scale with custodians regardless of your new opcodes.  Hal explained this to you in 2010.  

It's not "better" if you add new opcodes that ultimately break the network because of unintended consequences.

Bitcoin is feature complete.  Working as intended.  Does not need any new opcodes. 
 Yes, I want more people to have their own keys, but how will this work in practice when fees on the main L1 are high?

People say that covenants are the solution but I haven’t found anyone who can explain how covenants solve this problem when fees are high and growing. 

We can’t just make changes to the core protocol if it doesn’t solve the problem, even if it helps in the short term. Bitcoin is for 1000 years. The risk of software changes is too high to just delay the problem for a few years. 
 Covenants are not a “solution” to high on-chain fees. I would not make that claim. If others are making that claim, I don’t know their rationale.

Covenants are a means of increasing the number of people who can hold keys on chain. If anything, this is likely to make fees higher on a per-UTXO basis. But hopefully lower on a per-person basis, as fewer transactions actually settle to chain.

For example, in Lightning, to update channel balances, peers share transactions that are valid but private. They aren’t broadcasted. You don’t open a LN channel just to do one transaction. Rather, you open a channel, do many transactions, then close.

By allowing people to share UTXOs in covenants, similar update schemes are possible. You wouldn’t just join a shared UTXO to immediately exit. That would be worse than just using a regular on-chain UTXO, just like it would be worse in Lightning to open a channel, do one TX and close.

So yes, in your example, the exit may be costly, especially in a high fee environment. But hopefully exit will not need to be frequent. If exits are frequent, then there’s little to no value in sharing (it may even be worse depending on the scenario). 
 Can you please explain now covenants would solve the problem? 

I specifically have concerns around how they would work in practice if the fees are high and the amounts of bitcoin in the shared UTXO are low. 
 It’s always the case that low-value UTXOs may become immobile in a high-fee environment. Sufficiently small value UTXOs are dust—never worth moving even at 1 sat/vbyte. This is true no matter what enhancements we consider (base chain, Lightning, covenants etc.)

What covenants allow is more people holding keys per UTXO. So you could have relatively high-value UTXOs that are still movable in a high-fee environment, but which encode promises to pay a large number of key holders.

In the fullness of time, block space is unbounded. We’ve seen that even though occasionally fees become quite high, they don’t seem to stay that way forever. 
 What covenants allow is an increased attack surface and the potential for unintended consequences.  Segwit and Taproot helped produce the spam that's currently attacking the network.

Bitcoin is working perfectly fine without new opcodes.  It's feature complete.  Leave it alone. 
 "Segwit and Taproot helped produce the spam that's currently attacking the network."

This is simply wrong. Segwit increased block size, so you could pack 4MB instead of 1MB into blocks. This worst-case was well understood. And indeed, most nodes didn't notice (block relay is not the majority bandwidth for default nodes).

Without segwit, the spam would have driven up fees much more: they were clearly prepared to spend the money! 
 I don't give a shit about fees they can go as high as they want it does not matter to me.

And the witness discount in segwit absolutely added to spam. 
 How did this "spam" affect you, if you're not complaining about fees? 
 It bloats the UTXO set increasing the cost of validation, among other things 
 This is nothing to do with Taproot or Segwit. You are very confused. 
 I have been a professional software engineer for 25 years and studying bitcoin specifically for 7.  I can assure you I understand the details of the protocol quite well.  If you do not understand how the witness section is abused to produce spam then you should study bitcoin more deeply.  I am not your tutor. 
 If you have to ask, you don’t understand the second order impacts on plebs. My tor node is incredibly slow now. I can’t run it all the time and it’s not a fast computer. I sync the node when I need to broadcast a transaction. In my last sync I waited weeks. 
 Not only did the Segwit devs increase the block size, but, in their wisdom, actually gave spam a discount! 

Yes, the spammers were clearly prepared to spend the money. With the discount, we reduced their fees so now the spammers make even more profit. 🫡

“This worst-case was well understood.”

That virtually all of the block size increase would be filled with spam? I guess if you put spam on sale, you sell more spam, right? 

After spending a couple weeks recently to sync a node over Tor, I would argue it wasn’t worth it. We still have high fees and now we struggle to sync our nodes privately. I noticed how you didn’t mention the impact on our Tor nodes. 😔

In second thought, maybe it’s a good thing that the devs slowed down our nodes. Fewer impulsive purchases! Maybe bitcoiners buy fewer useless lambos because they come to their senses waiting for their nodes to sync. 🤔 

Idea!💡Maybe since fees are still high, we should increase the blocksize further and give the spammers a bigger discount?  Surely if it worked so well the last time, maybe we should do it again? We can never have too much efficiency, amirite? 🤨

I never once heard a mea culpa or any accountability for what seems to be the biggest f’up in core’s history. No post mortem, just gaslighting that everything is “fine” and how the devs “understood” the risks. This ossification talk is probably just a symptom of the lost trust. 
 insightful post indeed.  "we knew the risks" is worse in my opinion than "we had no idea how bad we were fucking up" as it implies malice.

Core fucked up massively with segwit, then again with taproot, and now they won't even fix their filters or address their prior mistakes.  Ego or malice, I'm not sure which.  Either way core is not to be trusted.

The good news is that more people are realizing just how vulnerable Bitcoin is to the addition of new opcodes and softforks and are starting to gather around the idea that "if it aint broken, don't fix it".  Meanwhile vain developers with small bitcoin stacks yearn to make a name for themselves by adding new bullshit to a perfectly functional network.  And that's why I tell them to stuff their new opcodes up their asses.  Nothing but an attack on bitcoin and deserves no debate on ridicule. 
 I still don’t understand how covenants  improve the situation for low value amounts. 

If I have $10 in my own UTXO or $10 in a shared UTXO, it will still cost me roughly the same amount in fees to transfer it on the L1 chain. 

Why does having more keys per UTXO make anything cheaper if it costs you the same amount in transaction fees?

It doesn’t seem to matter if the covenant encodes a future payment to you if the payment amount is small and fees are high and rising over time. You’re still going to pay a significant amount in fees.

I don’t agree that block space is practically unbounded. Sure we could increase it, but it’s like making more roads to decrease traffic. It just encourages more people to buy cars and fill the roads. Building more roads gives a temporary benefit but eventually the traffic is back to the original level or even worse. 

If we lower the economic cost of blockspace, people will just fill it with lower value data (like spam JPEGs) and we’ll reduce decentralization. 
 Using your shared UTXO example, let’s say we’re using CTV, and you are  guaranteed 1/10 of the coin. Somebody has to publish that transaction to get the coins out. For a miner to mine it, the fee must be paid by one or more child transactions whose fees cover both themselves and the parent withdrawal TX.

Now, if you’re in a hurry, then you’re the one who has to pay. But you could also coordinate with others to share the cost. This is indeed a problem. It’s an ongoing discussion to figure out how to make unilateral exit cheaper.

The point I was making about block space is not about increasing size. Keeping a small block size is important for decentralization. It keeps the cost of running a node down so more people will do it.

The point about block space being unbounded is that while the block subsidy will run out around the year 2140, there’s no limit to the number of blocks after that. In the fullness of time (centuries), block space continues to grow at 1MB+ per 10 minutes in perpetuity.

Bitcoin rewards patience with lower fees. If you wait, you can move coin more cheaply. 
 Thank you for the detailed response. 

I’m still unconvinced that covenants offer a complete solution to the scaling problem. 

You will never know whether the amount you have in a shared UTXO will be “trapped” by proportionally excessive fees, or how long you will have to wait to retrieve it at reasonable expense, or how much you will receive when you do. 

I believe that changes to the core protocol carry high risk and therefore should not be partial fixes or merely helpful in some circumstances.

We need to ask ourselves:

1) Can the issue be solved in any other way, other than a change to the core protocol? Have we waited long enough for other solutions to emerge?

 2) If we must change the core protocol, what is the most limited change we can make that actually solves the problem?

This is why I would wish for developers to be patient and continue researching the problem until a complete solution is found. It’s also possible that we may all be happy with other solutions that emerge. 
 Agreed that caution is warranted. 

I’d push back though on wanting/expecting a perfect scaling solution. It doesn’t exist. Scaling comes piecemeal.

For example, SegWit transactions are denser than original transactions. Taproot transactions are denser still. Lightning introduced orders of magnitude more throughput, but with different tradeoffs (always online, coin locked in channels, etc.)

These scaling improvements make better use of block space and increase privacy to boot. But they’re not the end of the story. Likewise, whatever comes next won’t be the last word on scaling either. 
 Incorrect.  segwit and taproot decreases density by filling the witness section with spam data and creating utxos without monetary value. 
 I’m not sure these approaches help. It’s like trying to plug a dyke with your fingers. Eventually the water comes in. Any efforts can merely delay the inevitable and risk negative effects like the inscriptions spam. 

Fees are going to increase. Trying to delay the reckoning so that we can buy coffee on L1 for a short time longer seems pointless to me. Why not recognize the inevitable and build for that future instead? 
 Because human nature is that they just can't leave well enough alone.  Have to monkey with it.  Have to mess it up.  Impossible to just sit quietly and watch.  Everyone wants to be a hero.

But thank you for articulating clearly the silliness of their argument.  A couple more cups of coffee on L1 indeed...