My Vision of a Free Internet April 17, 2010

Recently on reddit there’s been some discussion of free (as in freedom) alternatives to the current internet structure. As of now, the only systems to connect people globally via computer networks are hierarchical and state-controlled, even if they are powered by free software. There are a few localized alternatives (mesh networks), but they typically are very local and depend on non-free software (at low levels of the wireless stack).

I think that the level of focus on wireless systems is probably a bad idea. As a reddit commenter pointed out (not that I wholly agree):

Wireless networks are a fad and a terrible idea. They’re easy to

legislate against, easy for the police to locate, easy to

passively intercept, easy to perform MITM attacks, etc.

I think that the best non-hierarchical internet would be created using existing technologies and protocols – they’ve served us well in the past and there’s no indication that they won’t in the future. The only thing that needs to change is the methods of organizing those systems.

Today the LAN…

Starting Out

Rather than being based on wireless systems like mesh networking, local networks should be wired. I like to think this would start on the house or apartment level, where a group of (radically-minded) roommates strings Ethernet through their living space. Now, instantly, they all have high-bandwidth links to each other – and take note, the "high" in that "high bandwidth" is far beyond anything you could buy from an ISP in the United States, if you’re a person who is not fantastically rich.

Of course, all those high-bandwidth connections are useless if you aren’t doing anything with them. In corporate America’s ideal scenario, people are passive consumers, put into little nesting boxes and fed content from elite sources. They are forbidden from creating and sharing between themselves. Free Software and free culture rejects this by explicitly permitting and encouraging redistribution and remixing, and this p2p direction is the one that the world should certainly be going in.

So, the next step is to create some sort of local infrastructure wherein people are encouraged to share with each other. The most obvious is a multi-terabyte file server, where people can store extra-legally shared data on such that everyone in the space has access to it. That’s one example, but really, anything people can put on a server and run is fair game.

Spreading out

After individual living units are fully internetworked, they should approach others in their neighborhood/building/vicinity and invite them to join. There are two ways to do this: extending the existing network to accommodate the new computers on it, or create a new network in the other space and connect it to the first. The former approach should be preferred, since it allows for a more fully connected system – instead of one link between the two networks, there’s One Big Network.

The other advantage of the One Big Network approach is that it encourages people to share internet connections, rather than creating two (or more) connections out of the internal network – one for the main Internet pipe and one for the community network. This is typically against ISP’s terms of service – however, below a certain threshold there isn’t a reasonable way for ISPs to detect this. Two households can afford a lot more internet (especially if redundant high-bandwidth activities are eliminated, like downloading the same movie twice) together than they can alone, and sharing this resource promotes solidarity and community.

Taking over

Hopefully, this network would spread across its local area. A block of houses might be internetworked, an apartment floor (or even building!) could be internetworked, and so on. This should promote local community – if it doesn’t, it’s being done wrong.

Large local networks would have a lot of benefits for the users. The infrastructure required to route data would be significant, which implies that the community has dedicated "tech people". These people can set up services beyond merely routing traffic in and out of the network – services which the users can trust as they trust their community.

Further, this is a much more secure system in terms of certain types of capitalist-forbidden sharing, because most sharing will occur within the extended LAN, rather than on the corporate internet. This will lead to an increase in forbidden sharing, and as such, an increase in solidarity, as community members help each other violate laws for their mutual gain.

This creates a social system wherein people are encouraged to share data with each other, and to create or remix. It increases the visibility of running sophisticated computer systems – instead of a SysAd’min god-king running The Networke, it’s just the dude on the third floor, or the woman in the house on the left. Most importantly, it creates a social system within which federated network services have a real place – there is a very real reason to use the local GNU Social node instead of the http://daisycha.in node because you can trust the operator and have a direct line of communication to them.

Tomorrow the world!

Spinning the Grassroots Web

So now we have our fully internetworked apartment building, house block, whatever. The next step towards creating a free Internet is connecting those extended LANs.

The boundary of the extended LAN should be the farthest reaches of trust. We shouldn’t fall into the trap of thinking in terms of physical structures – arbitrary housing blocks or apartment buildings could be in a single extended LAN, provided that the users within those networks are near enough to the administrators to trust them. When the users in a given LAN no longer can reasonably trust the administrator, they are part of two different communities.

At that point, instead of extending the LAN, a new LAN should be created containing the second community, and the two extended LANs should bridge into each others networks. Depending on how close the two LANs are, this can be done in a variety of ways. For geospatially close LANs, the bridge could just be a few Ethernet cables. For farther LANs, the bridge could be directional wireless internet. LANs could even bridge over the hierarchical Internet by way of a VPN. This bridge will represent the highest possible bandwidth between the two communities – administrators should keep that in mind.

Bridges should not be trusted – they inherently lie outside of both communities and should be treated as such. As a result traffic over the bridges should always be encrypted in a safe and as future-proof as possible manner.

Six Degrees of Solidarity

While geospatial proximity is generally a good indicator of trust and community-ness, it shouldn’t be over-relied on. There are other levels of trust, and when building a solidarity-based routed network, those should be taken into account. The best way to do that is to trust human networks. Just as we can set up point-to-point encrypted bridges between local communities and achieve a high-bandwidth link, we can set up point-to-point encrypted bridges between remote communities and achieve a lower-bandwidth but equal-trust link.

Over time, this will create a small-world network: a graph of networks linked to other networks where there are, on average, a very low number of edges between any given two nodes.

Take that in for a minute: Humans automatically create decentralized networks that scale all over the world. This gives us reason to be hopeful about the prospects for a decentralized Internet.

Pulling it off

The technologies needed to accomplish these goals already exist and will only become more available over time.

To deal with allocating our own IP (internet protocol) addresses without the oversight of the centralized governing bodies of the hierarchical Internet, communities should use IPv6, which has enough addresses per person as a metric ton of elemental carbon has atoms. With IPv6, communities could pick addresses virtually at random and have some assurance that there were no collisions. Also, IPv6 includes IPSEC, a standard which assures that all traffic between hosts can be encrypted at the IP level.

Connecting networks via an encrypted link is the very definition of a VPN. About a half-dozen free software VPN implementations exist – communities can choose a system which works for them.

Systems for making centralized high-capacity file servers have existed for as long as computers, but by donating a portion of their hard drive and using systems like GNUnet, Freenet, or Tahoe-LAFS, users can pool their hard drive space to create distributed and encrypted storage systems. With GNUnet and Freenet, data can be automatically shared across the network, and accessed/stored anonymously, so even a person from inside the network can’t identify to whom a given file belongs.

A variety of services typically delegated to centralized or hierarchical systems have decentralized and federated equivalents. For instance, instead of the non-free AIM, MSN, YIM, or ICC instant messaging systems, users on a free Internet could use Jabber/XMPP, and instead of using Facebook or MySpace, communities could have local GNU Social or Elgg instances.

Conclusion

The software needed to create a free Internet is free as in freedom, and exists now. The hardware needed to create a free Internet is readily available, as refuse from digital overconsumption or from shared pre-existing computing resources. The most pressing limiting factor is not hardware or software, but political will on behalf of those wishing to create a free world with a free Internet. It is this issue that those concerned with a free Internet should first concern themselves with.