The Cool Kids <3 Erlang

Gustav Simonsson
Founder @ ai effect UG

The Cool Kids <3 Erlang

At the 2014 EUC, Garrett Smith claimed the cool kids do not use Erlang.

Unbeknownst to him – at the very same time, in Berlin – a bunch of hardcore developers prototyped an advanced Bitcoin contract system in Erlang, at the legendary underground bitcoin-accepting bar, room 77.

Cranking out a stack using Erlang and JavaScript, a bleeding-edge, multi-signature Bitcoin system was built, featuring new cryptographic flows that solve the oracle-contracting bottle-neck. Implemented using but the ingrained awesomeness of the core Bitcoin protocol, the system enables safe, easy-to-use, decentralized, 'trust-free' contracts that assign centralised counterparty risk to the dustbin of history.

An initial approach using Java and bitcoinj – a commonly used library in Bitcoin client programming – was abandoned after running into problems implementing the creation of non-standard transactions. The rewrite in Erlang took only days, solving a month-long dead-lock. Accessing the standard Bitcoin daemon, bitcoind, directly at the protocol level, the stack provides the ultimate freedom to unleash hidden treasures in the potential of the Bitcoin blockchain architecture. In effect, the matchless expressiveness of Erlang's binary parsing provided for productivity beating the speed of using an abstracting library. Eventually, the raw performance of Erlang when parsing the blockchain data allowed to cut out PostgreSQL as intermediary, indexed storage, further simplifying the stack, making it more robust and much faster to deploy, test and gear up.

With higher-order functions eating complex logic for brunch and the battle-hardened concurrency model of OTP trivialising design for full concurrency, Erlang truly shines as white knight in this startup situation: coming to the rescue and enabling fast prototyping, clean models and maintainable code. Fit for the demands of the lightning-fast, ever-changing world of Bitcoin.

Looks like the cool kids are using Erlang after all, Garrett.

Talk objectives:

– report about disruptive but lesser known possibilities of the Bitcoin blockchain

– introduce and promote Erlang bit-level parsing and its productivity

– give Java its dues

Target audience:

- Intermediate to advanced developers

- People curious about the technical details of Bitcoin and the blockchain