Development Roadmap

We are developing Althea incrementally over several stages. The first couple stages are not anywhere near the full capabilities that Althea will have. They are not even mesh networks. However, developing software in an incremental manner lets us test and prove out various elements of the system continously.

Battlemesh

Last week I went to Battlemesh in Vienna. Battlemesh is a conference and competition that is held in a different location in Europe about once a year. Its original purpose is to test all the routing protocols against each other, hence "battle". It's evolved into a great meeting of community network activists and enthusiasts from around Europe and around the world.

Pay for forward v.s. pay for internet

We've considered two main mechanisms for an incentivized mesh network so far. Pay for forward is the mechanism laid out in Althea v1, and Hocnet. Pay for internet is something I've been working on as Althea v2 and it is also kind of how ISPs work now. This is a brief summary of both approaches.

Scrooge development: Running code

I've been focusing my efforts on Scrooge, a piece of software that will implement the tunnel-based traffic control scheme I've written about previously.

Route quality metric verification

Any kind of incentivized mesh scheme needs a secure routing protocol. Without this, any node can claim anything it wants about the quality of routes that it has to a destination. Depending on how the payments work, there are a variety of different ways that this kind of routing protocol cheating can be financially lucrative. There needs to be a good way to verify that what nodes claim about the quality and quantity of their connections to other nodes is correct.

Dev Update 2: Shell Scripts

I've been experimenting in CORE with some shell scripts to allow nodes to prioritize traffic to and from their peers.

Development Update

If you’ve read my whitepaper and watched my presentations, you can see the general direction I’ve been pursuing for Althea. Since then, I’ve been getting deep into the implementation details. As I’ve worked, I’ve found several ways to simplify Althea and make it more realistic for use in real-world networks.

The free option problem

The free option problem is an apparently inescapable problem in state channels. However, it can be mitigated. I'll cover 3 possible mitigations in this blog post. It's a variant of the fair exchange problem, which is a known concept in the field of cryptography as a whole.

Using C.O.R.E. to work on mesh network routing protocols

C.O.R.E. may sound like the name of a 1980's superhero team, but it is actually a tool that simulates wired and wifi networks, right down to the radio waves. For this reason I am using it to test my modifications to Babel, an ad-hoc 'mesh' routing protocol.

State channel pong

How can a blockchain enforce honest behavior during a game of pong?

Response to "A tale of two cryptocurrencies"

I just read Tony Ascieri’s A tale of two cryptocurrencies and while it’s generally a pleasant overview of what’s going on in cryptocurrency today, it has a few big misconceptions, and is missing a lot of detail on some other fronts.

Althea white paper

I'm working on the white paper for the full Althea system. This post is subject to frequent changes.

Full Althea presentation

I gave a full presentation on Althea at SF Bitcoin Devs. This talk goes into a lot of detail.

CCC lightning talk

I gave a quick overview of Althea and UPC at Chaos Computer Congress 2015. It's a nice easy starting point to understand some of the concepts involved.

Proportional hashlocks

The proportional hashlock gives us the ability to build a sort of higher level micropayment channel that sits on top of a multihop payment which is released incrementally.

Universal Payment Channels

Costless, instantaneous payments let us use money in a completely new way. Conventional payment processors impose arbitrary fees and delays, and cryptocurrencies can function only with inevitable confirmation times and blockchain bloat. Free from these constraints, we can create a new class of applications.