Fork me on GitHub

Open Source: Beyond Bitcoin

How Bitcoin Changes Everything



Eric Martindale

@martindale • MIT Bitcoin Expo • March 8th, 2015

Founded: May, 2011

Bitcoin price: $1

Merchants: 2

Today: March, 2015

Bitcoin price: $272

Merchants: 60,000+

Our Customers Include...

  • Microsoft
  • AdYen
  • Gyft

Over 100,000 businesses now accept Bitcoin.

Growing around 1,000 per week.



What's next?

DECENTRALIZE
ALL
THE THINGS!

Open Source

started here at MIT!

Richard Stallman

Free Software Foundation

Ken Thompson and Dennis Ritchie

Creators of Unix

Given enough eyeballs, all bugs are shallow.
                  – Eric Raymond, "Linus' Law"

Open source systems are a requirement.


What Is Open Source & Why Do I Feel So Guilty?

goo.gl/ur5ldW

    Built for BitPay's needs:

    Secure, modular, and extensible

Abstract classes for taking Bitcoin beyond currency

PublicKey , PrivateKey , Script , Peer , ...

and much more:

bitcore.io/docs

Networking

Foxtrot
      by bitpay

secure routing network

same cryptography as Bitcoin (ecdsa, secp256k1)

Public keys, not IP addresses!

github.com/bitpay/foxtrot


var Foxtrot = require('foxtrot');
var foxtrot = new Foxtrot({
  discovery: {
    tcpserver: 'bootstrap.localhost.localdomain'
  }
});

foxtrot.on('peerConnect',    logPeerConnection );
foxtrot.on('peerDisconnect', logPeerDisconnection );

var client = foxtrot.connect({
  address: '404371705fa9bd789a2fcd52d2c580b65d35549d'
}, function() {
  // hey!  we're connected.  let's say hello.
  client.write('hello, network!');
});

client.on('data', function(data) {
  console.log('data received: ', data.content );
});
            
 

Building a Rural Wireless Mesh Network

A do-it-yourself guide to planning and building a Freifunk-based mesh network

wirelessafrica.meraka.org.za

Mesh Networks

...become really interesting when
combined with Payment Channels.

some other projects

CJDNS
or "Hyperboria"
projectmeshnet.org
FreeNet freenetproject.org
MaidSafe maidsafe.net

disintermediate the ISPs

Databases

ChainDB
      by bitpay

blockchain database framework

define your own, custom transaction rules

Secured by the Bitcoin Blockchain.

What is a blockchain?

  • Distributed system
  • Tamper-resistant history
  • Rewind, Replay, Resume
  • Data Consistency

var ChainDB = require('chaindb');
var chaindb = new ChainDB({
  consensus: {
    type: 'pof', // proof of fee
    xprivkey: 'someprivkey', // bitcoin HD private key with funds
  },
  db: {
    type: 'script', // script based transactions based on bitcoin
    path: './pof-script.db' // actual on-disk datastore
  }
});

var address = chaindb.genesis.getCoinbaseAddress();
var destination = 'some receiving address';

chaindb.on('ready', function() {
  chaindb.sendFunds( destination , 1000000 , function(err, transaction) {
    ...
  });
});

chaindb.initialize();
            

Proof of Fee

resolve chain conflicts not based on block height,

but based on the Bitcoin spent for the entire chain,

weighted towards older blocks.

Applications (Short Term)

  • Key-value stores
    • Proof of Existence
    • DNS for Public Key Hashes
    • DNS for, well, DNS
  • Document stores
    • Tamper-proofing existing databases
    • Atomic snapshots
    • Verifiable state history

Applications (Long Term)

  • Replace the SSL/TLS PKI (eliminate CAs)
  • Identity Assertion
  • Proof of Ownership
    • Deeds
    • Titles
    • Equity
  • Smart Contracts

Challenges

  1. Blockchain Bloat
  2. High-volume changes are difficult!
  3. 10 minute transaction times might be too slow

Sidechains offer a solution to these problems,

as it is very important to be secured by the

strongest chain. Today, that is Bitcoin.

Other Projects

Namecoin

namecoin.org

DNSChain

github.com/okTurtles/dnschain

Blockstore

github.com/openname/blockstore

DEJE

github.com/DJDNS/go-deje

Storage

Not quite a database, but data housing nonetheless.

Storj

storj.io

IPFS

ipfs.io

MaidSafe

maidsafe.net

Compute

Smart Contracts

"Bitcoin 2.0"

Prediction Markets

Augur    augur.net

Decentralized Exchanges

Double-deposit smart contracts

Elimination of clearing houses



Coinffeine    coinffeine.com

OpenBazaar    openbazaar.org

Challenges

  • trusted oracles
  • performance
  • legal cruft

Projects

Codius

codius.org

Ethereum

ethereum.org

Real world applications?

    The "Wallet for Everyone."

    Easy to manage, securely.

copay.io

github.com/bitpay/...

bitcore-wallet
bitcore-wallet-service
bitcore-wallet-client

Up next...

- Foxtrot, for all network messages.

- Air-gapping, hardware wallet support.

- Decentralized identity management.

Discussion & Questions

eric@bitpay.com    •    @martindale

github.com/martindale