Avatar
ynniv
576d23dc3db2056d208849462fee358cf9f0f3310a2c63cb6c267a4b9f5848f9
epistemological anarchist follow the iwakan scale things

I think it was the eternal battle between perfection and pragmatism. People often say "worse is better" when doing something the "right" way has failed. I think it's usually meant to imply that there's some luck or non-functional advantage allowing the lesser solution to be more successful.

But the literal interpretation is in fact that the "wrong" way was better. Why was that? Is it really luck and better community, or is there something in our blindspot? I like to first look at complexity: things are always more complex than they seem.

If something looks a little more complex, you could easily find it is an order of magnitude more complex, and you just haven't looked into it. That's a lot of work for other people to use. Potentially a lot of additional costs that are invisible to the core group. As you get deep into a problem you can find important things that justify the additional cost to you, but to other people the numbers don't add up.

Which is why I like the sometimes brutal simplicity of nostr. There is room for improvement (keys keys keys), but the core is so simple and cheap to implement that it's very hard to argue. (Which is why non JSON formats NEED to be optional).

But there's plenty of room for distributed protocols. SSL has made centralization easy and fun, and the net has suffered as a result.

#HtP

Replying to Avatar hodlbod

I learned a little more about why people have such a hard time with bitcoin's "intangibility" while talking to my mom last night.

I asked her what it was like when credit cards were invented, and she explained that before electric cards there was something called a "charga-plate":

This was a metal rectangle you would present at shops, which would be pressed into paper to create an authenticated artifact of the transaction.

The precursor to charga-plates was just regular paper checks. In either case though, the mental model is the same, and credit cards simply extended the same mental model of having some physical cash in the bank (whether or not that is strictly true), and authorizing someone else to talk to your bank and pull some out.

Bitcoin completely breaks this mental model. The problem isn't that it's intangible, because we've been using intangible money since the 16th century. The thing that breaks people's minds is that it is intangible, and has no custodian.

When you sign a transaction, who are you authorizing, and to request money from whom? It really doesn't make any sense from the legacy money perspective to authenticate ownership of a UTXO with cryptography, broadcast it to an etherial network, *pay* one of several miners to include your transaction in a "block" (?) so that the math money can be split and some handed to your counterparty.

Anyway, I think this difficulty might exist for nostr as well. Credentials authenticate you with the account holder, but keys authenticate your content with the reader. To make this worse, users have to custody their keys, making them the account holder and custodian — and when they log in to an application, they have to ask themselves permission to create self-authenticating messages! Weird.

Someone asked me how you know how many sats you have, without a wallet. I told them you paste your pubkey into a service and it can look it up for you.

They said, no how do you *really* look it up? You know, without trusting anyone. And I said ohhh, right. Well, you can look your own key up in the "database". This drive right here has a copy of that, the ...entire... global history of Bitcoin. Right here on this tiny drive.

Damn.

This is Wall Street for GFY nostr:note15jwgy2s62qvnk8ssle70ha7lrn2h8fzv5uk4m5yqdh5ndz55lgjs3ya6u8

Replying to Avatar fiatjaf

# The case against edits

Direct edits are a centralizing force on Nostr, a slippery slope that should not be accepted.

Edits are fine in other, more specialized event kinds, but the `kind:1` space shouldn't be compromised with such a push towards centralization, because [`kind:1` is the public square of Nostr, where all focus should be on decentralization and censorship-resistance](cd8ce2b7).

- _Why?_

Edits introduce too much complexity. If edits are widespread, all clients now have to download dozens of extra events at the same time while users are browsing a big feed of notes which are already coming from dozens of different relays using complicated outbox-model-based querying, then for each event they have to open yet another subscription to these relays -- or perform some other complicated batching of subscriptions which then requires more complexity on the event handling side and then when associating these edits with the original events. I can only imagine this will hurt apps performance, but it definitely raises the barrier to entry and thus necessarily decreases Nostr decentralization.

Some clients may be implemneted in way such that they download tons of events and then store them in a local databases, from which they then construct the feed that users see. Such clients may make edits potentially easier to deal with -- but this is hardly an answer to the point above, since such clients are already more complex to implement in the first place.

- _What do you have against complex clients?_

The point is not to say that all clients should be simple, but that it should be simple to write a client -- or at least as simple as physically possible.

You may not be thinking about it, but if you believe in the promise of Nostr then we should expect to see Nostr feeds in many other contexts other than on a big super app in a phone -- we should see Nostr notes being referenced from and injected in unrelated webpages, unrelated apps, hardware devices, comment sections and so on. All these micro-clients will have to implement some complicated edit-fetching logic now?

- _But aren't we already fetching likes and zaps and other things, why not fetch edits too?_

Likes, zaps and other similar things are optional. It's perfectly fine to use Nostr without seeing likes and/or zaps -- and, believe me, it does happen quite a lot. The point is basically that likes or zaps don't affect the content of the main post at all, while edits do.

- _But edits are optional!_

No, they are not optional. If edits become widespread they necessarily become mandatory. Any client that doesn't implement edits will be displaying false information to its users and their experience will be completely broken.

- _That's fine, as people will just move to clients that support edits!_

Exactly, that is what I expect to happen too, and this is why I am saying edits are a centralizing force that we should be fighting against, not embracing.

If you understand that edits are a centralizing force, then you must automatically agree that they aren't a desirable feature, given that if you are reading this now, with Nostr being so small, there is a 100% chance you care about decentralization and you're not just some kind of lazy influencer that is only doing this for money.

- _All other social networks support editing!_

This is not true at all. Bluesky has 10x more users than Nostr and doesn't support edits. Instagram doesn't support editing pictures after they're posted, and doesn't support editing comments. Tiktok doesn't support editing videos or comments after they're posted. YouTube doesn't support editing videos after they're posted. Most famously, email, the most widely used and widespread "social app" out there, does not support edits of any kind. Twitter didn't support edits for the first 15 years of its life, and, although some people complained, it didn't hurt the platform at all -- arguably it benefitted it.

If edits are such a straightforward feature to add that won't hurt performance, that won't introduce complexity, and also that is such an essential feature users could never live without them, then why don't these centralized platforms have edits on everything already? There must be something there.

- _Eventually someone will implement edits anyway, so why bother to oppose edits now?_

Once Nostr becomes big enough, maybe it will be already shielded from such centralizing forces by its sheer volume of users and quantity of clients, maybe not, we will see. All I'm saying is that we shouldn't just push for bad things now just because of a potential future in which they might come.

- _The market will decide what is better._

The market has decided for Facebook, Instagram, Twitter and TikTok. If we were to follow what the market had decided we wouldn't be here, and you wouldn't be reading this post.

- _OK, you have convinced me, edits are not good for the protocol. But what do we do about the users who just want to fix their typos?_

There are many ways. The annotations spec, for example, provides a simple way to append things to a note without being a full-blown edit, and they fall back gracefully to normal replies in clients that don't implement the full annotations spec.

Eventually we could have annotations that are expressed in form of simple (human-readable?) diffs that can be applied directly to the post, but fall back, again, to comments.

Besides these, a very simple idea that wasn't tried yet on Nostr yet is the idea that has been tried for emails and seems to work very well: delaying a post after the "submit" button is clicked and giving the user the opportunity to cancel and edit it again before it is actually posted.

Ultimately, if edits are so necessary, then maybe we could come up with a way to implement edits that is truly optional and falls back cleanly for clients that don't support them directly and don't hurt the protocol very much. Let's think about it and not rush towards defeat.

Agreed. One of the things that has bothered me about the debate is people's insistence that support for edits and deletions was merely an omission that needed to be corrected. Edits and deletions are censorship. A morally valid form of censorship, perhaps, but from a technical standpoint almost the same.

How long will deletion requests persist on relays? What happens when someone, perhaps specifically waiting for the opportunity, republishes a "deleted" message after the deletion request has been purged?

What about relays that retain "deleted" messages intentionally? Or ONLY publish deleted requests? The friendly use of deletion requests doesn't work in adversarial environments, and you don't get to choose where your data flows. Nostr doesn't have forward secrecy.

Annotations are a better alternative. They solve the friendly case while not pretending to solve the adversarial one. They also keep the required protocol simpler, which leads to greater adoption.

And how cheap the Bitcoin vote is

If you voted for bullshit... I do care.

Vote for whomever you like, but do it for good reasons.

You still have the same number of sats no matter who sits in a chair.

"Ross is free!" solved my feed pruning problem.

I'm sure they'll get around to it in the 3rd or 4th term

AI is a catalyst that turns context into value