Closed RoboticMind closed 5 years ago
Feedback: i do not see a point of bridges.
The point is that it allows anyone to connect to the Gridcoin network even if a government or some entity is very heavily monitoring connections and trying to stop people from using cryptocurrencies. It would make it so that they also could be protected by not having their IP shared across the network (which could allow a government/entity to find any person using Gridcoin).
Are you suggesting an onion-routed communication system? This could be configured in a file, I suppose, however, any additional features that require setup could potentially confuse newbies. I think this could be looked into, but not given much attention until the kinks with the new blocks, the new mandatory, and the unnecessarily complicated documentation are worked out.
It wouldn't be mandatory to setup, rather it would be an optional system where you can opt-in to use onion routing for the traffic and only communicate with nodes that have an encryption key setup.
Let me break this down:
To communicate via a bridge securely, you would either need to trust that bridge or have a means to obtain a list of trusted nodes and their (public)keys. Otherwise the bridge can just redirect you to spy nodes.
To conceal a communication from organized Spies one would have to:
I'm going to clarify what I meant by talking to specific nodes. I meant that you would only talk to nodes/bridges that use encryption.
Also, to make sure no one is confused, the difference between a node that is a bridge and just a regular node:
Bridges relay information more information than regular nodes. Regular nodes can use encryption if it is setup but it is not required. Bridges must use encryption.
As to how you would verify keys: There would be some large list of Gridcoin seed bridges with encryption where the public key would be known. You could then connect to a bunch of bridges through a single bridge and verify their identities. Once you have connected to those seed bridges, you could verify other bridges keys through the seed ones. Checking that all the keys are the same. Finding the other bridges would be similar to regular peer discovery.
As to how to mask the encrypted traffic, you could make it look like https traffic the way tor does with meek: https://github.com/arlolra/meek
As to why you wouldn't use Tor or VPN: Tor: Bandwith limitations VPN: Sometimes Bandwith limitations, cost, and being completely blocked in some locations
Looking more into this, there are cryptocurrencies that use TOR and are fine with bandwidth limitations. I think it would be necessary to build this.
Gridcoin Bridges would be a tool that would allow a user to connect to an intermediary node that allows them to connect to the main network in a decentralized manner (excluding the intermediary node). Benefiting the user in terms of anonymity and or if they live in a region where using cryptocurrencies could be dangerous.
First, a user would connect to a bridge. Then, it would use the bridge to make connections to other nodes. The traffic between the bridge and the user would be encrypted so that if some entity tries to use traffic analysis it would yield no result.
To verify that any given bridge is not inserting incorrect data into any of the connections I have a few Ideas: 1) Talk with the same node over other bridges, and ask what the last thing you sent on all the other bridge or ask the same node the same questions over multiple bridges to give validity to the node's response
2) Each node would have a public and private key to encrypt and decrypt all data flow
3) Connect from a bridge to another bridge and verifying some sort of public key/private key system and each bridge in this connection could act as a node. You would know if any given bridge was changing the data. Similar to each node having a public and private key.
There would be a list of bridges handed out in a way similar to Tor Bridges; some very easy to find and public and some that are handed out one at a time very slowly as to not be blocked.
Feedback on this idea would be greatly appreciated!