Why Nostr? What is Njump?
2023-03-16 22:44:28

Colby on Nostr: DIDs as URLs will be needed for a decentralized web, but I have some concerning ...

DIDs as URLs will be needed for a decentralized web, but I have some concerning doubts about ION.

1. ION uses IPFS. Nostr 2.0 will replace IPFS for off-chain data storage. IPFS is clunky software that forces users to spin up a node to verify data, killing the user-server model that we're trying to decentralize with Nostr. Proof of this requirement in IPFS is in the quote below.
https://decrypt.co/resources/how-to-use-ipfs-the-backbone-of-web3

โ€œBrave gives you the option to access IPFS content through a public gateway or ๐˜ต๐˜ฉ๐˜ณ๐˜ฐ๐˜ถ๐˜จ๐˜ฉ ๐˜บ๐˜ฐ๐˜ถ๐˜ณ ๐˜ฐ๐˜ธ๐˜ฏ ๐˜ญ๐˜ฐ๐˜ค๐˜ข๐˜ญ ๐˜ฏ๐˜ฐ๐˜ฅ๐˜ฆโ€”๐˜ต๐˜ฉ๐˜ฆ ๐˜ญ๐˜ข๐˜ต๐˜ต๐˜ฆ๐˜ณ ๐˜ฐ๐˜ฑ๐˜ต๐˜ช๐˜ฐ๐˜ฏ ๐˜ช๐˜ด ๐˜ง๐˜ฐ๐˜ณ ๐˜ต๐˜ฉ๐˜ฐ๐˜ด๐˜ฆ ๐˜ธ๐˜ฉ๐˜ฐ ๐˜ธ๐˜ข๐˜ฏ๐˜ต ๐˜ต๐˜ฐ ๐˜ท๐˜ฆ๐˜ณ๐˜ช๐˜ง๐˜บ ๐˜ค๐˜ฐ๐˜ฏ๐˜ต๐˜ฆ๐˜ฏ๐˜ต ๐˜ญ๐˜ฐ๐˜ค๐˜ข๐˜ญ๐˜ญ๐˜บ.โ€

In Nostr 2.0, user light wallets can verify data with on-chain Merkle proofs without needing to spin up an IPFS node or Nostr node. This advancement addresses some of the resource-intensiveness associated with IPFS and can help improve the user experience and scalability of decentralized web applications.

2. Light wallet users verifying a custom URL on ION doesn't seem as secure as light wallet users doing so via an ENS registry. To my knowledge, ION doesn't support custom domains yet; this might be why.๐Ÿ‘‡๐Ÿงต

The ENS registry lets user light wallets verify the state of the on-chain domain registry smart contract with a Patricia-Merkle proof that prevents duplicate registration of domains. This way, light wallet users can't be tricked into resolving a domain to the wrong IP.

ION, on the other hand, verifies domains through a normal Merkle proof, but light wallet users can be tricked because an ION node could modify their ION software and deliver a Merkle proof to users showing a new on-chain registration of an already registered domain.

๐˜›๐˜ฉ๐˜ฆ ๐˜๐˜–๐˜• ๐˜ฏ๐˜ฐ๐˜ฅ๐˜ฆ ๐˜ค๐˜ฐ๐˜ถ๐˜ญ๐˜ฅ ๐˜ช๐˜จ๐˜ฏ๐˜ฐ๐˜ณ๐˜ฆ ๐˜ข ๐˜ฑ๐˜ณ๐˜ฆ๐˜ท๐˜ช๐˜ฐ๐˜ถ๐˜ด ๐˜ณ๐˜ฆ๐˜จ๐˜ช๐˜ด๐˜ต๐˜ณ๐˜ข๐˜ต๐˜ช๐˜ฐ๐˜ฏ ๐˜ฐ๐˜ง ๐˜ต๐˜ฉ๐˜ฆ ๐˜ค๐˜ถ๐˜ด๐˜ต๐˜ฐ๐˜ฎ ๐˜ฅ๐˜ฐ๐˜ฎ๐˜ข๐˜ช๐˜ฏ, ๐˜ฏ๐˜ฐ๐˜ต ๐˜ฅ๐˜ฆ๐˜ญ๐˜ช๐˜ท๐˜ฆ๐˜ณ ๐˜ข ๐˜”๐˜ฆ๐˜ณ๐˜ฌ๐˜ญ๐˜ฆ ๐˜ฑ๐˜ณ๐˜ฐ๐˜ฐ๐˜ง ๐˜ฐ๐˜ง ๐˜ช๐˜ต ๐˜ต๐˜ฐ ๐˜ต๐˜ฉ๐˜ฆ ๐˜ถ๐˜ด๐˜ฆ๐˜ณ, ๐˜ข๐˜ฏ๐˜ฅ ๐˜ต๐˜ฉ๐˜ฆ ๐˜ญ๐˜ช๐˜จ๐˜ฉ๐˜ต ๐˜ธ๐˜ข๐˜ญ๐˜ญ๐˜ฆ๐˜ต ๐˜ถ๐˜ด๐˜ฆ๐˜ณ ๐˜ธ๐˜ฐ๐˜ถ๐˜ญ๐˜ฅ ๐˜ฏ๐˜ฆ๐˜ท๐˜ฆ๐˜ณ ๐˜ฌ๐˜ฏ๐˜ฐ๐˜ธ. ๐˜š๐˜ช๐˜ฏ๐˜ค๐˜ฆ ๐˜ญ๐˜ช๐˜จ๐˜ฉ๐˜ต ๐˜ธ๐˜ข๐˜ญ๐˜ญ๐˜ฆ๐˜ต ๐˜ถ๐˜ด๐˜ฆ๐˜ณ๐˜ด ๐˜ฅ๐˜ฐ๐˜ฏ'๐˜ต ๐˜ฉ๐˜ข๐˜ท๐˜ฆ ๐˜ข ๐˜—๐˜ข๐˜ต๐˜ณ๐˜ช๐˜ค๐˜ช๐˜ข-๐˜”๐˜ฆ๐˜ณ๐˜ฌ๐˜ญ๐˜ฆ ๐˜ฑ๐˜ณ๐˜ฐ๐˜ฐ๐˜ง ๐˜ต๐˜ฐ ๐˜ท๐˜ฆ๐˜ณ๐˜ช๐˜ง๐˜บ ๐˜ต๐˜ฉ๐˜ฆ ๐˜ด๐˜ต๐˜ข๐˜ต๐˜ฆ ๐˜ฐ๐˜ง ๐˜ต๐˜ฉ๐˜ฆ ๐˜ณ๐˜ฆ๐˜จ๐˜ช๐˜ด๐˜ต๐˜ณ๐˜บ, ๐˜ต๐˜ฉ๐˜ฆ๐˜บ'๐˜ณ๐˜ฆ ๐˜ซ๐˜ถ๐˜ด๐˜ต ๐˜ณ๐˜ฆ๐˜ญ๐˜บ๐˜ช๐˜ฏ๐˜จ ๐˜ฐ๐˜ฏ ๐˜ต๐˜ฉ๐˜ฆ ๐˜ง๐˜ข๐˜ค๐˜ต ๐˜ต๐˜ฉ๐˜ข๐˜ต ๐˜ต๐˜ฉ๐˜ฆ ๐˜”๐˜ฆ๐˜ณ๐˜ฌ๐˜ญ๐˜ฆ ๐˜ณ๐˜ฐ๐˜ฐ๐˜ต ๐˜ฐ๐˜ง ๐˜ต๐˜ฉ๐˜ฆ ๐˜ฑ๐˜ณ๐˜ฐ๐˜ฐ๐˜ง ๐˜ช๐˜ด ๐˜ฐ๐˜ฏ-๐˜ค๐˜ฉ๐˜ข๐˜ช๐˜ฏ ๐˜ง๐˜ฐ๐˜ณ ๐˜ต๐˜ฉ๐˜ฆ๐˜ช๐˜ณ ๐˜ฅ๐˜ฐ๐˜ฎ๐˜ข๐˜ช๐˜ฏ ๐˜ท๐˜ฆ๐˜ณ๐˜ช๐˜ง๐˜ช๐˜ค๐˜ข๐˜ต๐˜ช๐˜ฐ๐˜ฏ โ€” ๐˜ต๐˜ฉ๐˜ข๐˜ต ๐˜ช๐˜ด๐˜ฏ'๐˜ต ๐˜ฆ๐˜ฏ๐˜ฐ๐˜ถ๐˜จ๐˜ฉ.

An ION node could deliver a valid Merkle proof showing the data is on-chain while omitting the previous registration. Since the user doesn't have the ability to verify if the registry rejected the domain registration entry in ION, it is vulnerable to this omission attack โ€” unlike the ENS registry, where light wallet users can verify if the ENS registry rejected the custom URL by checking the state of the ENS smart contract with Patricia-Merkle trees. Light wallet users don't have the luxury of a Patricia-Merkle tree in ION, so they don't get the same level of verification.

This is likely why ION does not support custom URLs.

The normal internet started with IP addresses, then custom domains came afterward. It seems like a wise route to follow for now, as current solutions for custom URLs on Bitcoin are inadequate. Bitcoin addresses will be our URLs for now, like IPs in the early '80s.

I'd appreciate anyone skilled in DID URLs responding and proving me wrong if I am. ION is indeed complicated, and now I understand why and complain about it as a standard.
Author Public Key
npub1t89vhkp66hz54kga4n635jwqdc977uc2crnuyddx7maznwfrpupqwra5h9