The Bitcoin Rocketship @ BTC Miami 2015

Preview:

Citation preview

The Bitcoin RocketshipJeff Garzik

CEO @ Dunvegan Space Systems

Bitcoin Core Developer @ BitPay

Bitcoin Core

“Headers first” network sync

Operation:

1. Download all 300,000+ block headers x 80 bytes

2. Download blocks proven to be in longest chain

Faster… than a speeding torrent

Parallel

More secure

Smart transaction fees

bitcoind wallet

Estimate TX fee required to confirm “quickly”

Statistically based

Observes mempool + blocks to ascertain which TXs

confirmed within 1 block, 2 blocks, … etc.

HTTP REST API

Unauthenticated access to public blockchain data

GET /rest/tx/$TXID

GET /rest/block/$BLOCKID

Same address/port as RPC

Other queries planned, such as UTXO

Other changes

Almost any P2SH redemption script relayed. Permits apps to make use

of scripts such as “m-of-n OR y” or hash-locked oracle addresses.

Watch-only wallets, sans private keys.

Improved signing security (RFC 6979) via

libsecp256k1 - Believed to be better reviewed & tested than

OpenSSL itself

Consensus library: Make consensus-critical code available to other

applications and language bindings.

CLI utility “bitcoin-tx” enables easy creation, manipulation of

transactions

Impulse instant payments

Impulse resources

http://impulse.is

http://impulse.is/impulse.pdf

Overview

• Holy grail:

Instant, secure

payments

• Payment channel

technology base

• Open protocol; not

limited to BitPay.

Payment channel review

Trustless

Multi-sig 2-of-2 (Customer + BitPay)

1. Exchange public keys, opening BTC value.

2. Customer creates on-chain payment, provides TXID only to BitPay.

3. Customer creates time-locked refund TX, BitPay signs.

4. Customer publishes on-chain payment. Channel open.

5. Customer makes one or more off-chain 2of2 payments.

6. Final payment signed by both parties, published on block chain.

Impulse payment example

Model: Payment channels at unspent transaction outputs (UTXOs)

Example: Customer pays Lyft 1.0 BTC for a ride.

Wallet keeps open multiple payment channels at all times

Wallet obtains payment information from somewhere, determines processor

(BitPay) and merchant (Lyft).

Wallet gathers open channels totaling 1 BTC

Wallet adds Lyft TX output to each payment channel payment, signs, obtains

BitPay signature.

Wallet closes channels just used; opens new “change” channel.

Impulse analysis

What just happened?

Customer made instant, secure payment to Lyft

Customer is secure against BitPay stealing funds

Lyft & BitPay are secure against Customer clawback

BitPay does not hold funds; funds go straight to Lyft.

Caveat: Increased TX activity on blockchain (+fees)

Impulse status

Protocol specification published

Basic payment channel work in Bitcore, the open

source JavaScript bitcoin library @ http://bitcore.io

Impulse protocol code under development

Publishing now to engage others in space working on

payment channels, e.g. StrawPay’s hub-and-spoke

payment channel technology can complement this.

BitSat: bitcoins in space

BitSat design parameters

5-year lifespan

3U cubesat

33 kb/s downlink

100 kb/s uplink

Peak power 18.5W

15 minutes comms per pass

4-14 ground station passes/day

Status

Design & operate BitSat

Design completed State

Dept. review

Commerce Dept

reviewing

Current raising investor

capital

Fini

Open email policy — anyone can email a question

jgarzik@bitpay.com + https://BitPay.com

jgarzik@dunveganspace.com +

http://DunveganSpace.com

Thanks for listening!

Recommended