Damus
mleku · 6d
byzantine fault tolerance is one of the ways you get a partition resistant system. bitcoin vs proof of stake systems is the bitcoin favors has stronger availability but weaker consistency (6 blocks pr...
inkan profile picture
"when there is no utxo ... in the data"

But the data that inkan is trying to handle *does* have "utxo." There are two competing artifacts that each is cryptographically valid by itself:

1. A revocation declaration R signed by pubkey X saying "X revokes signing authority from Y"
2. A nostr event E signed by pubkey Y

The "unspent transaction output" is the output of the the delegation transaction that occurred earlier, i.e.:

utxo = the delegation of signing authority from X to Y

Now the revocation transaction R invalidates that delegation, i.e. it consumes / burns the utxo.

At the same time, the transaction consisting of the signing by Y of event E tries to draw on that utxo, i.e. it tries to draw on the delegation relationship to cause E to be attributed to X.

So both the revocation and the signing of the nostr event are trying to "spend" the same utxo, one by burning it and the other by drawing on it.

But this type of utxo can only be "drawn on" when it hasn't yet been "burned." So we need to know in which order these transactions occurred.

Classic double-spend.
2
Râu Cao ⚡ · 6d
It's not double-spend, because Y can never spend anything that X signs. Order is irrelevant. We can just trust X's `created_at` in the revocation event. If we don't trust X anymore, then the revocation itself is useless anyway.
mleku · 6d
Yes but they don't fork andbjoin. They are individual and remain so. The consensis not just to stop doubre spend it is to store and validate the DAG. The chain issues new utxos every ten minutes. Inkan issues them for humans. it cannot prove they are human and this would be the only kind of validity...