@btcplusplus published an excellent article by @AdamISZ (aka waxwing) today. In it, waxwing points out that when it comes to development on Bitcoin, it can seem like,
The vast majority of active work is — rather like work in corporations — erudite work on the details
He goes on to provide a list of examples:
complex mempool management like TRUC and the like; the extreme subtleties of better versions of multisig, backup, stealth addresses (now Silent Payments), coinswap; details of payjoin and other coinjoin variants; signature aggregation. Many of the ideas being refined are over a decade old.
I certainly resonate with this feeling. I haven't felt that it is necessarily a bad thing (nor a good thing) but it does seem like a pretty accurate description of what's going on in Bitcoin right now. It's a lot of reacting, not very much excitement.[1]
"So where does the revolutionary still exist?"
I claim it lives neither in trying to make changes to Bitcoin itself (new opcodes etc.), nor in editing the finer details of what already exists, but separate from all this: in cryptography.
On the one hand, this is a very exciting way to look at it: we have more computing power than ever at our disposal and the ability to do really wild things with math...on the other hand new cryptography is one of the scariest things I can think of. In this age of the constant discovery of vulnerabilities, I often use the fact that SHA256 is really really battle tested as my security blanket.
Nonetheless, what waxwing says here has this advantage: it doesn't require permission. I'm not saying whatever can be done on bitcoin should be done, but at the least, I think we are better off if people are willing to try lots of wacky things (that don't require protocol changes).
"this is the revolutionary, cypherpunk idea: don’t try to overturn the institution; make it irrelevant. If Bitcoin is ossified, fine. So is TCP, for that matter. We work on a new level, a new paradigm."
Don’t get lost in either the reactionary “take down the institution, smash it and build a virtuous new one”, or the “I will join the institution and work on some tiny corner of it for ten years, hoping for an incremental change”. Dare to dream a little bigger.
What is the little bigger that we might dream?
I'm sympathetic to the idea that Bitcoin doesn't need to be exciting. And perhaps I am using the wrong word in "excitement" -- what I mean to identify is the feeling that we somehow are not taking full advantage of money you can send to anyone, anywhere, anytime and no one can stop you. ↩
We didn't make TCP irrelevant tho? We built on top. If right now you configure your firewall on your laptop and your phone to block all TCP traffic, what still works?
In my perhaps simplistic view, I understood the approach to be: make it so you can do whatever it is that you want to do without waiting for the underlying protocol to change. Sure, you still need to use bitcoin script, but if you can do fancy dancy things with cryptography maybe you don't need to wait for new opcodes to do the things you want.
I'm not sure if this is a reasonable approach, but it sounds interesting.
Isn't that what Andrew Poelstra was aiming towards with cat+schorr tricks?
it looks like it, but requires op_cat. I took waxwing's meaning here to be "maybe you can figure out how to build the thing you want using weird math, rather than trying to change bitcoin -- stop waiting for permission."
I wouldn't be hung up about an experiment/demo requiring op_cat. It was showcasing a direction.
Its exactly that same direction, from where I am sitting. Maybe the next question on things like that ought to be: what can we do without op_cat. Not even a tradeoff, but rather a solution to something new.
I think I agree with all of that but not the "irrelevance". The thing that is hopefully becoming irrelevant are all these dreams of enhancing the protocol with features.
I think the tension here came from me choosing the term "irrelevant" to straddle two things: on the one hand, the political sense (see the cypherpunk comments), I'm meaning you can avoid the political decisions or power-plays that might be needed. On the other hand, from a systems design level, "irrelevant" isn't a negative, thought, it's a positive one: it's about what you don't have to include in the analysis, making it simpler. "Doesn't need a new op_code" is about both those things.
Probably, yes. And that's part of it: some bitcoiners consider the desire to add features is pernicious, others do not. It's so much better if we can make new things in outer/upper layers, so there's no need to argue about it.
Agreed.
Optionality is the most powerful feature to any protocol. It often ends in disbelief on SN but I know many bitcoiners, some more OG than yours truly, that are of the opinion than LN isn't "it" and stick p2(w)pkh. And that is fine, because even LN is optional. It's what makes it great.
I disagree with this, as someone that spend a large part of their career in systems design, simply because at some point your system has to work bottom up too. That's maybe not where all these guys that want to change
src/script/interpreter.cppare coming from, but perhaps that's exactly the issue.I guess we just have to agree to disagree then. "Separation of concerns" is what I'm referring to, and I feel like (correct me if I'm wrong!) it's one of the most powerful ideas in system design.
(btw I've always found it interesting that that concept is in some ways the best argument for the general concept of privacy, much better than any moral arguments, but it's just unfortunate that only engineer-types, or similar, would "get it").
Heh, I'm not saying it's useless, I'm saying it's irrelevant. Not only because it's very low level (think machine code), but most especially because it isn't going to change.
So TCP is irrelevant? Despite also your Bitcoin Core AND your {CLN/LND/Eclair/LDK} requiring it? Odd! To me, netbios is irrelevant, because I don't have anything that uses it. So is Windows, because I don't use it and I don't support it. But TCP is very relevant and so is Bitcoin script. Without either of these I can actually not pay my bills, buy food, have a roof over my head, and so on. This makes it very relevant, in fact, it is so relevant that any change to either of these is a threat to me and I will go to some lengths that probably y'alls will shake your head at when it comes to that.
Yet I fully agree with you that ossification of the current state is probably the best assumption, and that a good protocol ought to not need consensus changes.
I tried reading the article, but I don't think I really understood it. He talks about how the revolutionary thing is to make bitcoin relevant for payments---agreed---, but then he says we can do that by "using cryptography". I didn't really understand what he means by that, nor his example. I don't really think inefficient cryptographic algorithms is what's holding back payments adoption. I think the real revolutionary work is gonna be social and political, not technical.
I feared, or maybe expected, this reaction: I think it's kind of the correct reaction. The gap in the rather vague line of thinking I'm expressing here is exactly what you mention, especially for people who aren't in the weeds with Bitcoin research.
Maybe I should have mentioned specific projects like ShieldedCSV, though it really isn't about one specific project, it's about the class of things we can do. Payments that are shielded like zcash, but without a soft fork or a protocol change. Payments that can embed much more complicated state relationships like those needed to build a DEX like you can on Ethereum, but without a protocol change. Ecash where the mint can't rug you. Arbitrarily complex loan protocols (though this one tends not to be pure cryptography ... perhaps if you treat a stablecoin like tether as being cryptographically enforced, although that's sleight of hand, because it's fundamentally fiat money - but who knows?)
If your only goal is pure payments, then note that we are still somewhat short of the goal - can we make fully private payments that scale to at least 10s of millions of users if not higher, have them be quasi instant, have the usage requirements be light on data and bandwidth, have the receiver be offline with a static identifier. Etc. We have a large amount of that now, but we don't have it perfectly. I personally think that payments in the very purest sense are not enough, though they're clearly 50%-90% of what matters.
It was tough to end this article and keep it short and understandable. because "ok we can do cryptography, so what?" is a very natural response if you haven't spent 100s of hours studying zkSNARKs, lol.
I hoped that the Hal Finney SHA-1 preimage would at least give the intuition. Most people have no idea how powerful the things we can do are, today.
It maybe has faded now, but I remember when Ark and BitVM were first proposed, they mostly required a covenants soft fork to really be functional. Since then, people have found interesting ways to work around those requirements and deliver live versions of these things without any soft forks -- but with trade-offs.
I think waxwing is talking about more of this: using novel techniques in cryptography to work around protocol limitations. Instead of seeing what happened with Coldcard and Liquid and working to soft fork in some sort of vault architecture, try doing weird things with cryptography that might achieve the same result.
The same for privacy or more complicated contracts or whatever. I think it's advocating for a don't ask permission sort of attitude -- or perhaps that waxwing thinks a lot of projects have gotten caught up in thinking they need some sort of permission (to change bitcoin core or change the bitcoin protocol), when that may not be the case.
You may be right. But there is a certain temptation to just keep making the tech better.
Which is understandable given the background that most bitcoiners & cypherpunks come from.
But, yeah, we need more input from the theater kids and student council kids in bitcoin!
Sounds like @AdamISZ is talking about a sort of Temporary Autonomous Zone of Bitcoin development. If we're talking about decade or two ago the "revolution" was the creation of the Bitcoin protocol and getting it working. Plumbing isn't really the revolution. though, and most technical Bitcoin dev work is focused on plumbing.
Over the past decade the Bitcoin protocol has matured significantly, and it has become a cyber battleground. State sponsored hackers steal from exchanges that sanction them, darkweb markets offer illicit goods and services, etc. The borders of the TAZ have moved from cyberspace and back into reality.
We could argue that Myanmar, Cambodia, North Korea, and Iran all host actors who use Bitcoin in a way that violates the international order which constitutes a "revolution" against the current power structure. Even the United States plays pirate by stealing stolen coins from Chinese/Cambodian pig butchering scam compounds. North Korea went from being sanctioned and in utter poverty to funding their nuclear weapons program via Bitcoin. If that's not global revolution then I dunno what is.
In my view the revolution isn't in the code of Bitcoin. The revolution is in the minds of the people who are using Bitcoin to change their material conditions, protect their own liberties from infringement by self-appointed authorities, and project their own power.
Although this usage of Bitcoin might not be what some people had in mind, it reflects the reality that the Bitcoin protocol works as it was designed to do. Plumbing isn't the revolution, new cryptography isn't the game changer. The spirit of revolution is found in adoption by people who really need Bitcoin to accomplish their goals.
It being a battleground for state actors is pretty much just evidence that it works as intended, which is to say, as properly censorship resistant value transfer/money.
You could find similar evidence for the power of the US dollar over the past 100 years (and of course, gold, going back much further). It was used for a lot of heinous shit!
Believe me, it was always in the minds of those who had a clue :) Bitcoin is SWIFT not Starbucks points, I always used to say. And the birth of bitcoin as money was in darknet drug markets and wikileaks donations.
That stuff remains somewhat in the background, but your point that it's in state level actions now is a good one.
I beg to differ. Well, obviously :)
I think there's something very important in this particular reaction. I've encountered it before. The thing is, there is (to me) a clean separation between what we use in bitcoin's protocol, the actual "monetary engine", and what we use when we interact with each other.
My bitcoin is as secure as the bitcoin protocol when it's in cold storage [1]. When I use it in my Lightning wallet I have to have a slightly different assumption set. If I then take it and use it in an ecash server (as today, ruggable), it's obviously a vastly different assumption set. L2s and other offchain negotiation protocols sit somewhere between those extremes; if they use cryptographic tools to enforce rulesets, they are only as safe as that cryptography. Crucially they have to have exit mechanisms that are safe, so that when you're done using them, or when you get scared, you can get your money out back to the safety of the pure bitcoin protocol.
[1] modulo not using a terrible model like a single-vendor hardware wallet ... a discussion for another day!
Like... using it as money?