A Technical Overview
Yesterday, Markus wrote about the philosophical underpinnings of the Libertaria project, and our focus on bringing blockchain and other decentralization technologies to communities. Today, as the technical coordinator of the Libertaria project I’ll be providing a similar overview, but from a slightly more technical standpoint. Note that this is still just a broad overview of the technologies we are building. Readers interested in the full technical details should take a look at the technical papers for each project. These are being released over the next two months, starting with the Libertaria white paper next week.
Libertaria is building the tools to make a real decentralized peer-to-peer (P2P) economy possible. We intend to build the full decentralized stack, with no unwanted interference, in a way that’s accessible to everyone, including non-technical users and people with limited resources and technological infrastructure.
This is obviously extremely ambitious, but we have already completed several of the key technologies needed to make this a reality. And by keeping the scale manageable by focusing on serving smaller, like-minded communities congregating around specific use cases, we have the scope to experiment and expand cautiously and purposefully, to ensure our systems work the way they’re supposed to and actually bring meaningful improvements to users’ lives.
The Libertaria network is a stack of three main technologies: the Titania operating system running on hardware nodes, the Mercury framework and the Hydra blockchain protocol. Each project is led by the member of our core team with the deepest understanding of the relevant technology, and as technical coordinator my role is to understand their decisions and make sure they serve the overall Libertaria vision. What follows is a brief explanation of all three projects and how they will fit together.
Mercury lays the foundation for the federated Libertaria network by enabling secure communication and offering services on a decentralized network.
Mercury allows users to open P2P communication channels over a network maintained by independent nodes. Clients can connect to these nodes to find other clients and initiate direct or relayed client-to-client communication using this federated non-permissioned network. A content-addressable network (CAN) and a location-based network (LOC) allows users to find each other and the nodes that host their profiles and information shared by them while retaining full control of their personally identifiable information (PII). Our identity system supports multiple, unrelated profiles belonging to the same person to let users separate their family life, professional contacts, leisure activities, etc.
We want Libertaria to be usable by as many people as possible. Therefore, many clients are expected to be mobile devices with weak hardware or limited batteries. In current attempts at peer-to-peer communication networks, the large number of open connections to other peers can consume a significant amount of resources. We address this by opening only a single connection to the profile server, and sending most communication through this connection.
The Mercury network will be:
- open, so anyone can add or shut down a node they own
- reliable, so it tolerates node failures or network problems
- trustless, so the system is self-validating
- robust, so it is prepared for malicious nodes
- permissionless, so anyone can join or leave
But Mercury doesn’t just provide basic communication. The Mercury protocol provides the foundation for any kind of decentralized app (dApp). dApp developers can easily build apps that are private and secure from the outset without worrying about the stability of the network or excessive battery use caused by constant sending and receiving actions between the connected smartphones.
Current Status: Mercury currently has a complete functional implementation with prototypes of dApps. We are planning to add implementations in other programming languages of the different components and will incorporate changes to the protocols based on real-life usage. We are currently improving the documentation of the APIs to attract more community developers.
Titania is our custom operating system designed to be installed on various devices, including smartphones, old devices and IoT appliances. We envision a large network of small, low-wattage devices that Libertaria communities all around the world will set up, install and use to connect to each other. Titania makes it easy for anyone to have their own network node at home without running a PC all day or running through a technically demanding initial configuration, although naturally power users will be able to fully customize their devices. With Titania, nodes will be securely deployed to our P2P Mercury network in a very easy, convenient way. The user has full control over their own node and can connect to it via their smartphones.
Titania Boxes are a specific implementation of the Titania OS on Raspberry Pi and Banana Pi devices aimed at people who have minimal technical expertise, limited resources or are in parts of the world with limited infrastructure. The Titania Boxes are designed to be as close to turnkey as possible, with a minimal, intuitive setup allowing users to customize their node for their requirements by answering a few simple questions.
Current Status: The first prototypes our customized embedded Linux operating system are running on ARM-based hardware, running Docker containers for Mercury components and some popular blockchains. We are currently working on an easy-to-use monitoring system that will help power users support less experienced users. We hope to extend our official support to other selected devices in the future, preferably with fully open-source CPUs, network chipsets and printed circuit boards.
Hydra is a multichain protocol which supports the decentralized P2P economy built using Mercury and Titania. Communities will be able to easily set up their own blockchain with its own consensus protocol and token, if desired.
Hydra consists of a parent chain and many customizable child chains. The parent chain secures all the child chains, combining the power of all nodes involved in any of these chains. The parent chain can also be used to exchange value between different child chains in atomic swaps, but because these child chains represent local economies, most transactions stay on the individual chains.
All child chains are technically independent, but by being added to the parent chain, the users of the child chain gain access to the complete Libertaria network and its entire user base. We also provide templates of child chains for different purposes. These templates can be easily parametrized to fine-tune the chain for the needs of its community.
Thus the entire network has the security and power of a global blockchain, but the child chains retain the efficiency and privacy of being self-contained networks.
Status: Our team has gained insights and experience from its involvement in many blockchain projects, having contributed to the development of Bitcoin (BTC), Ethereum (ETH), Internet of People (IOP), PivX and BlockStack. We are currently finalizing the design of the Hydra network of blockchains, but there are already proof-of-concept implementations of some algorithms needed by the Hydra network, and we hope to show a prototype of the system in early 2018.
How does it all fit together?
The Mercury framework runs on the Titania OS or any other flavor of Linux. Its components also have binary builds for Windows and MacOS/X.
Users will flash Titania OS to their low-power ARM-based devices or use the ready-made Titania Box to quickly and easily connect to the Libertaria network.
Once their nodes are set up, users will connect to each other through the Mercury framework, form communities, and on top of this build the backbone for what later will be the real decentralized P2P economy.
A new child chain can be configured by anyone at any time. The Hydra project will provide easy-to-use templates that support a variety of common use cases.
People will group around their preferred node types and form self-governed chapters — the communities that Markus talked about in his article — to collaborate in a truly decentralized fashion. As the network grows, DAOs and corporations that are ready to fully commit to decentralization will find a supportive customer base who share their values and are eager to buy their services.
In combination, these technologies should provide the tools for a truly decentralized society.
Who is Libertaria for?
The glib answer is: everyone! We certainly hope that anyone who wants to be part of the Libertaria network will be able to join, because technical and financial barriers to entry are minimized. Nodes and apps are low-power, intuitive to use, can be set up and run on almost any device.
But, more specifically, we’re designing Libertaria with the following classes of user in mind:
- dApp developers: These are people who want to build decentralized Apps on the Libertaria network. They will obviously need some technical expertise, but they don’t need to understand how the P2P network operates specifically.
- Node operators: These are people who want to support the network by running a node, either as a commercial service for end users incentivized by monthly micropayments, or as a favor for friends, family or other community members to dispense with the need for cloud-based centralized systems. Node operators will need some small understanding of the network, but Titania will do most of the heavy lifting here.
- End users: These are people who want to live a more decentralized life by joining communities and using dApps on the Libertaria network. They don’t need to understand how the network works at all; they can simply enjoy the comfort, privacy and security that dApps provide them over the Libertaria network.
- Groups and Communities: These are like-minded people who want to collaborate on a particular project in a decentralized way. Some technical expertise will be needed to set up and coordinate this collaboration, but this will be minimized if their use case fits one of the standard Hydra blockchain templates.
The project leads of Mercury, Titania and Hydra will be presenting a more in-depth look at each of these technologies over the next few weeks. We’ll also be releasing technical papers for each project and a more general Libertaria white paper. To stay informed, follow our blog here on Medium and sign up for our newsletter. If you have any questions for us, want to know more about Libertaria or want to meet other people interested in decentralization, we’d be delighted for you to join our Discord channel.