Oddbean new post about | logout
 Nip05 fixes this, but then that requires servers. And nostr seems to have an identity crisis that it's not actually using the internet, doesn't need DNS, SSL certs, or servers..  just these magical 'relays' that someday will run on pure ionosphere vibration or something. 👨‍💻

nostr:nevent1qqspq8a92jytj54v6unal3plfgxkhvr2phun6hll280nkxmp89qu29cpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsygpm7rrrljungc6q0tuh5hj7ue863q73qlheu4vywtzwhx42a7j9n5psgqqqqqqskh6k3n 
 i don't get it, the problem is state

application specific data already stores state in encrypted blobs and many apps already use it

a number of prominent nostr devs are extremely thick and idealistic to the point of nonfunctional in some aspects 
 fiatjaf never bothered to learn the CAP theorem

i might have to start beating some devs around the head with some CAP theorem, their thinking is clouded by a lack of understanding of the distinction of STRONG and WEAK guarantees and they think WEAK means ZERO which is not true

Synchrony is another one, that maybe i can illustrate better

Timestamps in Bitcoin are regulated by a set of policies that give you WEAK SYNCHRONY - what this means is that the network basically agrees on time being within a certain narrow range (about one hour either side of whatever they think it is) and blocks dated outside this boundary are not propagated by nodes

this isn't an absolute thing, and it's pretty rare that a server has a clock more than an hour out of sync with the rest of the internet, but for those that are, their mined blocks are not going to be accepted

part of the reason why we have to have this weak synchrony is that synchrony itself can become an attack vector if you try to make nodes agree with tighter boundaries

the Time Warp Attack is literally where you break the synchrony of the system, and the reason why it happened to Verge was because they used a scheme to try and get everyone to compute a time delta against their local clock to try and agree with a tight range of "correct" time

this enabled the attacker to stop time altogether

the weak synchrony is actually better than strong synchrony because it spreads out the attack surface for timestamps in the consensus 
 ...as a physical layer.

Not dismissing your overall point, but we actually could build compatibility for switching out layers lower in the stack.