Mike Dilger ☑️'s avatar
Mike Dilger ☑️
mike@mikedilger.com
npub1acg6...p35c
Author of Gossip client: https://github.com/mikedilger/gossip Dual National (USA / New Zealand) My principles are Individualism, Equality, Liberty, Justice and Life
Someone tried to blackpill me today. But I coughed it up and spit it out. The blackpill was that decentralized systems can't innovate because it is too hard or impossible to make breaking changes. Centralized systems like facebook can just innovate without permission or compatibility and so they will always innovate much faster, and so decentralized system can never keep up and will never compete with them. I partially agree. Yes, centralized systems can innovate faster. Yes, it might always be that most people will be on the centralized systems. But where I disagree is this: Centralized systems keep letting us down. And some of us are happy enough to use a decentralized system for a subset of our social media, to have at least some level of reliability and trust that we can depend on. Moxie Marlinspike (fittingly named after a knot) poo-poo's decentralization here but much of what he claims is wrong, adjacent to the truth but not quite correct or meaningful. Let's look at breaking changes. Consider how breaking changes can occur: 1) You go around and get everybody to update their software (PITA and eventually impossible) 2) You just give up on the feature and decide we can live without it (a cop out) 3) You version the protocol. @fiatjaf valuing simplicity rejected (3) in his writings early on for nostr. Because versioning multiplies complexity. You have to keep all the old code and have case dependent code for the newer code. But I still believe that (3) is the only way out, and growing complexity is inevitable. Yes of course any change that can be made non-breaking is definately the preferred approach, but not everything can do that. There are real world examples of this that are working just fine. The Vulkan API is in a sense decentralized. It works on many different hardware devices and with many different OS vendors. It is versioned. How did it not ossify? It's a fucking mystery ain't it?! Also, Moxie talks about IPv4 not being able to get to IPv6 and IPv4 ossifying. But fails to mention the obvious: IPv4 is the greatest success story ever. Damn near everybody uses it all the time. So who cares if some parts of it have ossifed? Not me. And to be honest, parts of it (like congestion control) were able to change very late in the game. So this is a piss-poor argument against decentralization. Also, Moxie talks about how many people are programming stuff and you can't keep up with all of them. But he fails to mention that less than 10% of those people are useful. Or that the management interference almost necessarily breaks any useful thing they end up doing. Against the view of all the pundits (Bill Gates most notably) open source software supercedes commercial software in almost every domain. Because in open source, and with decentralized solutions, the entire world participtes, rather than just one or two buildings in Redmond. And generally only the most intellgent high-IQ people can pick it up and run with it, meaning you have a worldwide team of highly intelligent people versus a limited commercial team that is mostly deadweight and plagued by managers who want to make their mark. I may not be a bright-eyed (red eyed?) bushy-tailed spring chicken bitcoiner who is upbeat about everything and believes everything is possible. I'd say I"m a bit more cautious than most about what I hope for or aim at. But I am still a "can do" person and I will never stop trying. *spits out the black pill*
I value order, efficiency, and reliability. I don't value simplicity or chaos quite so much. My effect on the nostr protocol has mainly been proposals to improve the reliability, efficiency, and orderliness of it, and the pushback has come mostly from people that like the freedom that the chaos gives them. Some examples * long ago I proposed that relays remember when an event arrived, and clients could query "all events that arrived after I last asked" to get a perfect next batch. * long ago I proposed gossip/outbox model which specifies where events are expected to be, while many still choose very different and innovative ways to choose and use relays. * I've been pushing for DHT usage to be more fully distributed and uncensorable, and to allow people to kickstart/bootstrap without knowing any relays or any nostr people. We get 99% functionality without it and so as you could imagine other devs don't really embrace the idea. I'm the guy who is never satisfied with 99%. * I've wanted a rigorous standard that doesn't change * I've wanted a binary protocol to juice up efficiency by avoiding JSON parsing I feel like the black sheep in this regard (hence my avatar) because I gather that most nostr developers (and users) more highly value chaotic liberty. Chaotic liberty is a great space to innovate in. But it is not a good space to build a solid user experience which requires a firm standard and compliance for interoperability. Hence I see hundreds of only somewhat compatible half-ass nostr applications that generally scare users off (which one? why are so many of them broken? and so different?). This is all fine. But it means I'm not seeing nostr as the protocol that becomes the social media framework that the Internet eventually adopts. I see it more and more as a playground. Which is critical and innovative and wonderful. I just don't see how it can also be a stable user experience that draws in lots of users and creates substantial network effect value. Mosaic is where I scratch my itch for order, efficiency, and reliability, and my attempt to create a solid user experience. I will be working on both Mosaic and nostr. Mosaic risks being too idealistic, the "betamax" of social media, but it is a risk I'm taking. Take joy knowing that I won't be bugging nostr devs as much about the chaos. Should I post this or edit it more? Fuck it. I saw a meme that said to just post it.
I think the battle for free speech is going to seriously heat up. So far in the West they are making a few famous examples out of people, deporting them, or famously cancelling them somehow. This has a chilling effect on everybody else who becomes afraid to speak openly. But the technology to cancel certain ideas could easily become far greater with AI and automation. The CCP in China puts a lot of effort into controlling what people say, and they are pretty successful at it. And that is prior to AI and automation AFAIK. So I am of the belief that we need to use this short time that we have to leapfrog them, to become seriously and deeply uncensorable, not just "censorship resistant". And to me that means things like (1) linking to previous events so you can at least detect if an event was censored, like scuttlebutt did, (2) avoiding placing trust in DNS and CAs, (3) avoiding any kind of centralization, even the "where should I look for your relay list" semi-centralization of NIP-65 (which I meant as a temporary stop-gap measure). And of course ensuring IP privacy techniques are usable. I think nostr would stand up against a lame censorship attack (taking out a single relay, then another, then another), but not against a sophisticated one.
The next US president will be from the America party. "I guaran-damn-tee it"