Concept:
Normally an avatar spawns at the coordinate derived from their raw pubkey.
I originally had the idea that one could alternatively spawn at the simhash256 of their NIP-05 identifier, ie embedCoordinate( simhash256( "[email protected]" ) )
Problems:
However, when validating an action chain, the first action would be invalid unless it could be proven that the NIP-05 was valid at that time of the action. NIP-05s can become invalid very easily if a hosting bill is not paid or a profile is updated. Therefore, checking if a NIP-05 is valid now is not a sufficient or useful way to validate if a NIP-05 was valid then when the first action was published.
One big fundamental problem with this idea is that it makes the validity of one's action chain subject to state outside of cyberspace -- to very unstable whims of networking, DNS, and server uptime. The state of cyberspace should not be independent from these things. if one's website hosting goes down for a little bit then it technically kills them and forces a respawn. This doesn't make sense.
Another big problem with this is that it could be abused really badly by switching your NIP-05. I don' think the validation rules can be strong enough to prevent abusing this as a janky teleport system.
Impact:
This problem is roadblocking the possibility of letting an avatar spawn at their simhashed NIP-05.
Potential solutions:
- NIP-03 OpenTimestamp attestations may be a possible (albeit clunky) way to prove the NIP-05 is valid.
- An impartial NOMAD validator could attest to the NIP-05 validity, but how to capture this in time?
Most likely solution:
- Every action has an "e" tag referencing the root event of the action chain; the "C" tag of the root event should be the sha256 of the NIP-05 identity. Observers can verify it against the pubkey's kind 0 NIP-05. Should it ever become invalid at any point (404 or other appropriate error indicating that the NIP-05 no longer exists or has changed or was broken), the user's whole action chain is invalidated and they must respawn.