Skip to content
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

Open
im4media opened this issue Jan 12, 2023 · 7 comments
Open

Nostr: A censorship-resistant messaging protocol #196

im4media opened this issue Jan 12, 2023 · 7 comments

Comments

@im4media
Copy link

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

@wkrp
Copy link
Member

wkrp commented Jan 12, 2023

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.

@sh4run
Copy link

sh4run commented Jan 12, 2023

another mastodon?

@im4media
Copy link
Author

A censor might block access to Nostr relays by targeting the communication protocol; or by trying to enumerate relay IP addresses

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.

@rabbityear
Copy link

interesting solution, we need more research into decentralising social networks and instant messaging

@im4media
Copy link
Author

Ya, it has a lot of potentials to disseminate information including internet-freedom tools, like this gist suggested:
https://gist.github.com/Semisol/1715258b962cb130bdb62d47f349deb7

@Gowee
Copy link

Gowee commented Jan 29, 2023

Kinda similar to https://en.wikipedia.org/wiki/Twister_(software)?

@wkrp
Copy link
Member

wkrp commented Feb 6, 2023

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)

That was fast

Screenshot of notice transcribed below.

App review

Today at 10:53

Hello,

We are writing to notify you that your application, per demand from the CAC (Cyberspace Administration of China), will be removed from the China App Store because it includes content that is illegal in China, which is not in compliance with the App Store Review Guidelines:

5. Legal
Apps must comply with all legal requirements in any location where you make them available (if you're not sure, check with a lawyer). We know this stuff is complicated, but it is your responsibility to understand and make sure your app conforms with all local laws, not just the guidelines below. And of course, apps that solicit promote, or encourage criminal or clearly reckless behavior will be rejected.

According to the CAC, your app violates the Provisions on the Security Assessment of Internet-based Information Services with Attribute of Public Opinions or Capable of Social Mobilization.

If you need additional information regarding this removal or the laws and requirements in China, we encourage you to reach out directly to the CAC (Cyberspace Administration of China).

While your app has been removed from the China App Store, it is still available in the App Stores for the other territories you selected in App Store Connect. The TestFlight version of this app will

Related reading: https://applecensorship.com/.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants