Avatar
Colby Serpa
59cacbd83ad5c54ad91dacf51a49c06e0bef730ac0e7c235a6f6fa29b9230f02
Merge fields, every discipline is a branch of natureโ€ฆ nature is the only industry.

Trust-minimized Zaps that are verifiable by everyoneโ€ฆ I think Iโ€™ve found a way to do it. An attacker can still fake Zaps to themselves, but they canโ€™t fake Zap honest recipients โ€” and the proofs never expire.โšก๏ธ

Compatible with BOLT12 or LNURL, all a user needs is a normal lightwallet to verify Zaps. #[0]โ€‹ ๐ŸŒฒ

Initially, I thought ION allowed unique URL registration like (did://bob.com), but Daniel clarified that it generates IDs in the format: "ChosenWord-RandomWord-RandomWord" (e.g., "Colby-Purple-Bee").

These trust-minimized IDs are more memorable than npubs or Bitcoin addresses and could function as usernames or domains atop Bitcoin.

Daniel and I discussed Web5 and Nostr 2.0 as co-protocols:

โ€ข Nostr 2.0 provides hosting for websites across hundreds of untrusted relays without the risks of content tampering, thanks to a tamper-evident Merkle root that's on-chain.

โ€ข Web5 enables self-hosting websites across local devices. This combination offers the best of both worlds: decentralized hosting with Nostr 2.0 and local self-hosting with Web5.

๐พ๐‘’๐‘ฆ ๐‘๐‘œ๐‘–๐‘›๐‘ก๐‘  ๐‘“๐‘Ÿ๐‘œ๐‘š ๐‘œ๐‘ข๐‘Ÿ ๐‘‘๐‘–๐‘ ๐‘๐‘ข๐‘ ๐‘ ๐‘–๐‘œ๐‘› ๐‘œ๐‘› ๐‘๐‘œ๐‘ ๐‘ก๐‘Ÿ ๐Ÿ.๐ŸŽ ๐‘Ž๐‘›๐‘‘ ๐‘Š๐‘’๐‘๐Ÿ“ ๐‘Ž๐‘  ๐‘๐‘œ-๐‘๐‘Ÿ๐‘œ๐‘ก๐‘œ๐‘๐‘œ๐‘™๐‘ :

1. Web5 allows website owners to self-host websites locally with decentralized domains, while Nostr 2.0 enables distributed hosting across hundreds of untrusted relays. This offers flexibility depending on the owner's needs.

2. Web5 provides resilient backup solutions for users decentralizing their website with Nostr 2.0, ensuring local copies across their trusted devices.

3. Web5 facilitates direct, encrypted communication between website owners and users. Visitors can browse decentralized websites hosted on many Nostr 2.0 relays and establish a direct connection with the website owners through Web5, all thanks to using the same DID system for domains.

We encourage the Web5 TBD team to develop an ION middlelayer for Nostr 2.0, making ION a middlelayer similar to the decentralized GitHub we are building for the bounty started by #[7]

This modular structure means the Nostr 2.0 base layer for storage ossifies into a standard. This encourages people to build new middlelayers and a diversity of clients for each middlelayer atop the universal, hash-organized off-chain storage. ๐Ÿงฑ

Unlike IPFS, Nostr 2.0 lets people browse and verify websites without hosting them. Users donโ€™t need to rely on public IPFS gateways to verify the data either โ€” thanks to the on-chain Merkle roots Nostr 2.0 utilizes for syncing any off-chain data, identical to the type of on-chain Merkle roots ION uses. We aimed for the same Merkle DAGs and content addressing standards that ION already uses in order to be interoperable.

Most importantly, making all Nostr 2.0 nodes become ION nodes offers a significant advantage: When users type in a DID URL into a browser, the conjoined node would resolve the URL and deliver the tamper-evident website files to the user. ๐Ÿ––

Replacing IPFS with Nostr 2.0 achieves this all-in-one package for a decentralized web powered by Bitcoin, where users can resolve URLs and browse decentralized websites through one type of modular node. If hundreds or thousands of operators run this conjoined node (Nostr 2.0+ION+Bitcoin full-node), the decentralized web becomes a reality. Anytime they want to host specific Twitter profiles or a GitHub repo, they simply add those middlelayers to their node stack and configure their hosting preferences.

Replying to Avatar jack

๐Ÿ

#[0]

Good quote.

โ€œThis paired with the high likelihood that ION DIDs will almost always be resolved by ION nodes instead of clients/light wallets manually doing what an ION node does for you sort of nullifies / diminishes the censorship resistance provided by the anchor to Bitcoin.โ€

Thanks Moe.

We cannot rely on a prevalence of honest ION nodes as a form of security because it creates the risk of an ION Sybil attack. The proof a user receives must prove that the URL is not registered to anyone else, like it does in ENS.

Unlike ENS, an ION node could omit previous registrations of a custom URL and deliver valid proofs of a new on-chain registration. This means an attacker could perform URL spoofing on users with a mere ION node Sybil attack and a few bitcoin transactions, unlike the extremely costly 51% attack required for URL spoofing in ENS.

In ENS, full-nodes canโ€™t perform this trick without launching a 51% attack because users receive a Patricia-Merkle proof from full-nodes that verifies the current state of the domain registry. ION trade-offs arenโ€™t worth the risks.

I can feel the conference vibes from here. Iโ€™ll meet you guys there next year. ๐Ÿป

๐Ÿฅน eureka..

โ›“๏ธ๐Ÿ๐Ÿ”ฎ๐Ÿคซ

Collapses lead to people begging for safety. That desperation might be used as leverage to consolidate government-controlled banking more than ever before.

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 #[1] #[2] and proving me wrong if I am. ION is indeed complicated, and now I understand why #[3] and #[4] complain about it as a standard.

It can also improve the security of websites because anytime a hacker inserts a foreign file, heโ€™ll change the hashes of the websiteโ€ฆ the user or node will automatically detect that it doesnโ€™t match the Merkle Root in the website authorโ€™s original bitcoin transaction.

Websites are stored as Merkle DAGs, so all websites become tamper-evident. It solves security, trust, and distributed hosting issues of the normal web.

Nostr 2.0 is far more than DID key delegationโ€ฆ it will extend nostr to webapps where DIDs are the URLs.

Itโ€™s a tamper-evident web where anyone can host your website without needing to trust them, effectively decentralizing all websites with Nostr. Native apps are great too, but we have a great opportunity to decentralize the web here.

#[0]