We do not communicate over the shared blockchain, we share the blockchain by communicating.
Here is an illustration of how the BIP 78 protocol pairs with the BOLT 2 Channel establishment protocol:
┌──────────────┐ ┌─────────────────┐ ┌──────┐
│Lightning Peer│ │My Lightning Node│ │Sender│
└──────┬───────┘ └───────┬─────────┘ └───┬──┘
│ │ │
│ BOLT 2 ├─────── Bip21 with ?pj= ───────►│
│ Channel Establishment │ │
│ │◄────── Original PSBT ──────────┤
│ │ │
│ │ │
│◄──────── open_channel ─────────┤ │
│ │ │
├──────── accept_channel ───────►│ │
│ │ BIP 78 │
│ │ │
│◄─────── funding_created ───────┤ │
│ │ │
├──────── funding_signed ───────►│ │
│ │ │
│ │ PayJoin Proposal │
│ ├────── PSBT ───────►│
│ │ │
│ │ │
│ │ ┌─ PayJoin + Funding ───────┤
│ │ │ Transaction │
│ │ │ │
x│xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx│xxx ▼ xxxxxxxxxxxxxxxxxxxxxxxxxx│x
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx BITCOIN NETWORK xxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
x│xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx│xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx│x
│ │ │
│◄────────channel_ready ─────────┤ │
│ │ │
├──────── channel_ready ────────►│ │
│ │ │
I thank Martin Habovštiak for the initial work on this idea. Thank you to Riccardo Casatta for developing the rust payjoin crate further. Thank you to Evan Lin for early hacking late nights on this idea. Thanks to my Legends of Lightning Tournament teammates Armin Sabouri and Nick Farrow.
We have released "nolooking," an experimental alpha that implements this work, on the Umbrel app store.
A brand new node can become totally connected in a single transaction that opens channels to outbound peers, and could immediately swap for inbound capacity. Just by scanning a single QR code.
Dan