The #Bitcoin #Lightning Spec Part 1/8

Rusty Russell
1 min readDec 4, 2016

Welcome, friend!

After Scaling Bitcoin Milan we invited all the people implementing Lightning variants to a 2-day meeting to thrash out a common protocol; Joseph Poon has organized most of us into a series of two-weekly warmup calls to set the scene, and despite the unfortunate absence of Mats Jerratsch we made excellent progress.

The next step was a giant Google Doc for massive collaborative editing, which was then split into the github repository with separate “BOLT” RFC-style documents and continues to be refined. There is more to do, but I think it’s time to cover the (80+ page!) spec from a high level: that’s the purpose of these posts, which mirror the structure of the draft specification itself (skipping the interim BOLT #6 covering the IRC bootstrap protocol).

No specification can ever really be marked “complete” until we have two inter-operating implementations, and that work is ongoing as I write this (which includes clarifying the spec and creating test vectors).

  1. BOLT #0: Introduction and Index (you are here!)
  2. BOLT #1: Base Protocol (blog post)
  3. BOLT #2: Peer Protocol for Channel Management (blog post)
  4. BOLT #3: Bitcoin Transaction and Script Formats (blog post)
  5. BOLT #4: Onion Routing Protocol (blog post)
  6. BOLT #5: Recommendations for On-chain Transaction Handling (blog post)
  7. BOLT #7: P2P Node and Channel Discovery (blog post)
  8. BOLT #8: Encrypted and Authenticated Transport



Rusty Russell

Rusty is a Linux kernel dev who wandered into Blockstream, and is currently trying to produce a prototype and spec for bitcoin lightning. Hodls bitcoin (only).