-
Notifications
You must be signed in to change notification settings - Fork 75
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Nostr: A censorship-resistant messaging protocol #196
Comments
As I understand this, it's not censorship-resistant in the sense we usually mean on this forum; rather it's more akin to "deletion-resistant publishing" like the Eternity Service, Publius, or IPFS. I don't see anything in the NIP-01 document that makes the WebSocket-based protocol especially resistant to blocking. A censor might block access to Nostr relays by targeting the communication protocol; or by trying to enumerate relay IP addresses. One could replace the protocol with something else designed to be blocking resistant, but then blocking resistance would be a property of that protocol, and not anything really to do with the structure of Nostr itself. The property of not relying on a trusted central server probably has security and privacy benefits, but it does not inherently help with resistance to blocking—a client with an effective circumvention system can access a central server as easily as multiple decentralized servers. The existence of a swarm of relays at multiple IP addresses also does not itself necessarily help with blocking resistance, unless there is an argument for how legitimate users can discover relay addresses without a censor also discovering them. That said, there's no reason why a deletion-resistant system cannot also be blocking-resistant (marrying the two meanings of "censorship-resistant"). It's just that the blocking resistance part needs separate consideration. Edit to add: active probing is likely to be a significant challenge in an application like this. Even with an inter-node transport protocol that is costly to block, and some secure way of distributing relay addresses, a censor can still watch for suspected Nostr connections, initiate its own connections to the servers involved, and block them if they respond in a way characteristic of Nostr relays. If you're interested in exploring how to make Nostr resist this and other attacks, you're welcome to do so here. Some good resources for background, for a WebSocket/HTTP/TLS-based protocol, are HTTPT, V2Ray's WebSocket transport, and HTTP Transport Authentication. |
another mastodon? |
I think the most challenging part to censor is they need to distinguish those relays are not beyond BGPs that they can readily impose firewall rules, instead those relays could be just be some commercial nodes nearby unless there are regulatory forces to shut them down. It's how Nostr could be just like a commodity everywhere and noway to hunt and jail. While agreed, the blending strategy is not an inherent design for censorship-resistant, rather it's a sidekick but may achieve the same result. |
interesting solution, we need more research into decentralising social networks and instant messaging |
Ya, it has a lot of potentials to disseminate information including internet-freedom tools, like this gist suggested: |
Kinda similar to https://en.wikipedia.org/wiki/Twister_(software)? |
I saw a tweet saying that a Nostr-related app had been removed from the Apple App Store in China. It included a screenshot of a notice stating that the removal was at the order of the Cyberspace Administration of China (CAC). Before this, I had not known that Apple would send overt notices like this. https://twitter.com/damusapp/status/1621220422216998915 (archive)
Related reading: https://applecensorship.com/. |
Nostr is a new open protocol that aims to create a censorship-resistant global data-sharing network, primarily focusing on improving social networks. The protocol doesn't rely on a trusted central server; instead, all users can run a client.
Based on a simple packet-like event structure, Nostr uses swarms of WebSocket to keep relay connectors alive and self-updating from the messages it convey. In this way, it can survive with relying on any single-featured transporting protocol but utilizing all the open bespoke technologies.
https://github.com/nostr-protocol/nips/blob/master/01.md
Using any clients, users publish content by writing a post, signing it with their private key and sending it to other servers, which then relay that content.
The relays are simple: Their only job is to accept posts and forward them along to relay participants. Users could trust one relay or several relays with their data, and should relays collude to remove their information or block their broadcasts; the user could run their own relay instead.
Users censored from certain relays could even start their own network of relays and share data with one another to create a robust network for redistributing their content.
![image](https://user-images.githubusercontent.com/117985476/211950499-0bdb5a92-34c9-4ee8-8255-ede2c6f2850a.png)
The text was updated successfully, but these errors were encountered: