Since MASQ Network is built on an entirely unique network protocol, it operates on the top of the network stack using leading edge communication - no out of the box OpenVPN protocols or other means
How do Nodes connect & communicate?
Nodes in the Network communicate using special a ‘Gossipʼ networking protocol – a means of communicating with neighbors without having to reveal too much information about themselves.
Nodes connected directly together (only 1-hop away) are called neighbors, and these neighborhoods can overlap and span across the entire mesh network
This allows them to connect and send CORES packages to each other securely, and identify when Nodes are allowed to route requests.
What is a neighborhood?
Each user in the MASQ Network is part of a subset of connected Nodes that called a Neighborhood. Each Neighborhood is responsible for keeping track of other Nodes in the network, their reputation, and if they have active connections to one another.
The neighborhood groups of nodes also provide layers of abstraction, so any one user is only aware of up to 5 other users in their neighborhood.
How does Gossip help the Network stay secure?
Gossip allows Nodes to 'know' if they can connect to each other, and also if they can complete requests for each other.
Gossip also allows the Network to ‘self-heal' so that routing can continue around the Network if Nodes happen to go offline, get congested or are ‘bad actorsʼ
The MASQ Network uses packages of data called CORES packets – it is the unit of clandestine communication between two MASQNodes.
It stands for:
CLIENT – ORIGIN – RELAY – EXIT – SERVER
It is how data travels in the MASQ Network!
A Neighborhood is composed of multiple MASQ Nodes. Each Node is only aware of its immediate neighbors, and their IP addresses, through a unique node descriptor.
The limit of immediate neighbors is 5 Nodes, thus limiting the ability of Nodes to identify the wider network.
This helps ensure anonymity for the Nodes and boosts security by preventing the level to which any attacker could potentially penetrate the network.
The Neighbor Node Descriptor is a kind of pseudo-anonymous identifier to connect nodes in a Neighborhood.
How does the Network trust that users are 'paying' for your Traffic Requests?
The originating Node (the one requesting data from the Network) will have a route consisting of several Nodes to complete the data request.
For each of these other Nodes it is requesting services from, it will sign that Node's public key with its consuming wallet's private key (which includes hashing for security).
This process proves that the originating Node knows the private key of it's consuming wallet so it can pay for it's own requests!
Nodes providing routing services keep track of what other users owe them via public wallet address - if a user Node does not pay within certain thresholds, then it will result in a temporary ban from routing for that node (this is referred to as being delinquent)
How are user debts and credits tracked and kept accountable?
Encrypted in each node database there is a set of financials table managed by an Accountant module which keeps track of earning wallet addresses of the nodes that your Node needs to pay for serving or routing traffic.
It also keeps track of any nodes that owe you for performing routing services for them
Since earning wallet is public non-identifying information, your node will simply send the MASQ tokens to them at certain thresholds built-in to the accountant scanning.
How is the Accountant Module decentralized?
Since the financials table is operating similar to a DLT type list (distributing ledger technology), if it is tampered with, other nodes will be able to tell that the payables or receivables isn't correct.
If a malicious node tried to change the amounts they were owed for example, the other nodes would reference their own table during periodic scanning, and see that debts are unpaid or underpaid.
How many Nodes can I run behind one IP Address?
Only one Node can be run per Public IP address.
It is important to understand that even running multiple Nodes through one IP will be limited by bandwidth, so there is not much benefit to do so.