2017 An incentivized mesh network protocol
# An incentivized mesh network protocol
Metadata
- CiteKey:: trembackIncentivizedMeshNetwork
- Type:: document
- Author:: Jehan Tremback Justin Kilpatrick
- Editor::
- Publisher::
- Series::
- Series Number::
- Journal::
- Volume::
- Issue::
- Pages::
- Year:: 2017
- DOI::
- ISSN::
- ISBN::
- Format:: PDF
Abstract
As the number of connected individuals and devices expands, the “last mile”a continues to be the greatest challenge both in the connected and developing worlds, representing a disproportionate portion of the cost and difficulty of connecting the world.
Files and Links
Tags and Collections
- Keywords::
- Collections:: PoN
# Annotations
# Imported: 2022-12-10 6:27 pm
- ["] As the number of connected individuals and devices expands, the “last mile” continues to be the greatest challenge both in the connected and developing worlds, representing a disproportionate portion of the cost and difficulty of connecting the world. Page 1
- ["] Althea is meant to operate on the last mile, from a source of internet connectivity to the end user, and creates a distributed ISP. Page 1
- ["] Althea’s goal is for any person to be able to install a piece of equipment, participate in the decentralized ISP, and receive payment for the service. Page 1
- ["] Althea allows routers to pay each other for bandwidth using cryptocurrency payment channels. An important architectural detail is that nodes only pay neighbors for forwarding packets. On top of this pay-for-forward network, we build a system allowing consumers to pay for internet access. Althea is intended to be used in local “mesh” [2] networks. Page 2 ^fe57d7
- ["] User nodes are installed by people who want to buy internet access on Althea. Page 3 ^9c65ec
- ["] Intermediary nodes are installed by people who want to earn money by forwarding internet traffic Page 3 ^49797c
- ["] Gateway nodes are like intermediary nodes, but they are connected to a source of cheap internet bandwidth such as an internet exchange, an internet backbone connection, or even a business-grade connection from a conventional ISP. Page 3 ^5a1542
- ["] Exit nodes are not necessarily part of the local physical network, but can be hosted in a datacenter reachable over the internet. They are connected to gateway nodes over VPN tunnels. Exit nodes provide an endpoint to verify quality metrics propagated by nodes in the network. Page 3 ^3ec249
- ["] Routing in distance vector protocols is based on an advertised connection quality metric. Nodes send an announcement packet stating their identity and existence to the network once every predetermined period. These announcement packets are then passed from node to node. Each node updates the metric to reflect the connection quality between it and the neighbor it got the announcement from. Using this information, each node is able to build up a routing table of the best neighbors to forward packets in order to reach any destination on the network. Page 4
- ["] We propose two main additions to distance vector routing: – A verifiable quality metric. – A price metric. Page 4
- ["] A verifiable quality metric is a connection quality metric that can be verified by a node and the destination that it is sending packets to. Page 4 ^a5aec6
- ["] To advertise prices a second metric is added to the routing advertisements, this time containing a ‘price’ value for some arbitrary but agreed upon amount of data transfer. Page 4 ^a29f0d
- ["] Routes are then selected by optimizing the quality metric vs the price metric and paying the selected the full sum required to route all the way to the destination. Page 4 ^65f7e5
- ["] Each node on the network establishes payment channels with each of its neighbors. A payment channel is a method for two parties to exchange payments trustlessly by signing transactions that alter the balance of an escrow account held by a bank or blockchain (we may use the Ethereum blockchain for Althea) Page 5
- ["] The important thing about a payment channel is that after the channel has been opened, and funds have been placed in escrow, individual payments can be made directly between the two parties without submitting anything to the bank or blockchain. Page 5
- ["] Nodes keep track of data they have forwarded for their neighbors, and how much they have been paid. If these two amounts do not match up, they must having some way of cutting off access to the delinquent neighbor. Page 5
- ["] Routing in Althea is based on the Babel routing protocol Page 6
- ["] Nodes first perform some kind of link quality test on the connections to their neighbors. This is known as the “link cost”. They then share information about which destinations they can reach at which quality Page 6
- ["] Whenever a node receives information about a destination1, it combines this information with the link cost of the neighbor it received this information from. This composite score is known as the “route metric”, and represents the quality with which the destination can be reached across several hops. Page 6
- ["] All current distance vector protocols, including Babel, have a major weakness. All information about link cost and route metrics is provided on a completely trusted and unverified basis. Page 7
- ["] In Althea, nodes are owned by many people and entities, all competing to provide the best service. Leaving this vulnerability unaddressed would allow financially-motivated attacks, such as nodes claiming to have better routes than they actually do in an effort to get more business. Page 7
- ["] We propose a modification to the Babel protocol to allow for verification of routes. Page 8
- ["] Verification runs on a timer. Page 9
- ["] To test the route, we send the destination “Remote Hello” packets for some amount of time. Page 9
- ["] The above system is used to weed out chronically inaccurate neighbors, but it also supplies us with a stream of correct route metrics. Page 10
- ["] To strike the right balance, exponentially increasing time-out will be used for bandwidth corrections beyond a small tolerance. Page 11
- ["] It consists of an additional 16 bit price field in each Babel update TLV and in each route in a node’s routing table. This represents the amount of Althea tokens that it costs to forward one kilobyte of data to a destination. Page 11
- ["] As update packets are propagated through the network, each node increases the route’s price by a certain amount. Page 11
- ["] By adjusting n, nodes can determine how much weight to give price in the calculation. A node with a lower value for n will tend to prefer expensive but higher quality routes. Page 12
- ["] This or a similar mechanism could be used to allow neighbors to choose from among a range of price-quality tradeoffs. Page 12
- ["] On the other hand, if nodes pay after receiving service, malicious nodes that repeatedly receive service and don’t pay will get nothing but a bad connection. Page 12
- ["] Althea uses a Solidity contract for channels. This compiles to bytecode which runs natively on the Ethereum blockchain Page 13
- ["] When two nodes wish to open a channel, each one sends a channel FundingTx to the contract Page 13
- ["] There needs to be some control over which neighbors receive internet access. It’s easy to spoof a MAC address, so we need some kind of cryptographic authentication. Page 15
- ["] The best solution for now is to use an encrypted and authenticated tunneling software Page 15
- ["] Nodes create tunnels with each of their neighbors and can allow, block, or shape traffic on each tunnel, depending on payment. Page 15
- ["] If payment over a neighbor’s payment channel stops, their packets are blocked by the firewall and are no longer forwarded. Page 15
- ["] There is also a Wireguard tunnel from the exit node to the user node Page 15
- ["] The base primitive that Althea is built on is a pay-for-forward network. Page 16
- ["] A gateway node connects to an exit node over a tunnel. The tunnel creates a virtual interface which Babel is run on, treating it like any other link. Page 16
- ["] Gateway nodes set a price and receive payment for routes to the exit node just like any other route. User nodes are connected to chosen exit nodes over encrypted tunnels, and receive internet access over these tunnels. The only thing that gateway and intermediary nodes see is encrypted traffic between user nodes and exit nodes. Page 17
- ["] Exit nodes perform almost all the functions of an ISP, except for actually carrying packets. This lets the other nodes in the network focus only on connectivity, while exit nodes get paid for interfacing Althea to the rest of the internet Page 17
- ["] User nodes pay their neighbors to forward traffic to the exit node they are using and onto the internet, but someone needs to pay for the traffic coming back. User nodes give exit nodes some money which the exit nodes use to pay their neighbors for the return traffic. Page 18