⚡ Lightning Network ⚡

Scalare Bitcoin mantenendo la decentralizzazione

Alekos Filini - @afilini

Bitcoin Dev Kit

Introduction

  • Lavoro su bitcoin dal 2017
  • Precedentemente a BHB Network e Blockstream
  • Dal 2020 maintainer di BDK (Bitcoin Dev Kit)
    • Libreria open source in Rust per creare wallet bitcoin
    • Grant annuale da Brink

"Decentralizzazione"

  • Permissionless
  • Nessun single point of failure
  • Zero fiducia
  • Zero censura

 

  • Per garantire la decentralizzazione, il protocollo deve essere accessibile a tutti

"Scaling"

  • Bitcoin attualmente può confermare ~3 tx/s
  • Chiaramente insufficiente per un utilizzo "di massa"
  • Ingrandire i blocchi rende più difficile validare
    • e sostanzialmente non risolve il problema

More
with
Less

  • È possibile ottenere
    • Più trasferimenti bitcoin
    • Meno transazioni Bitcoin
  • Si
    • Esempio: Coinbase
  • È possibile ottenere
    • Più trasferimenti bitcoin
    • Meno transazioni Bitcoin
    • ... mantenedo custodia dei propri BTC
    • ... in modo trustless
  • Si
    • Con i payment channels

Payment Channels

  • Due parti collaborano e bloccano fondi on-chain
  • Le transazioni che rappresentano in ogni momento lo stato del canale vengono tenute off-chain
  • Il canale può essere chiuso in qualunque momento
    • Pubblicando l'ultimo stato

Canali Monodirezionali

  • Alice blocca dei fondi in un 2-of-2 con Bob

Canali Monodirezionali

  • Ad ogni pagamento verso Bob spende dal 2-of-2 e crea due output
    • Uno verso sé stessa
    • Uno verso Bob
  • Firma la transazione e la passa a Bob

Canali Monodirezionali

  • Bob può chiudere il canale in qualunque momento aggiungendo la propria firma
  • È incentivato economicamente a pubblicare l'ultimo stato

Canali Bidirezionali

  • Alice e/o Bob bloccano fondi in un 2-of-2
  • Preparano una transazione con i due output e un timelock nel futuro
  • Si scambiano le firme

Canali Bidirezionali

  • Ad ogni pagamento viene aggiornato il valore dei due output e ridotto il timelock
  • L'ultimo stato può essere confermato prima dei precedenti
  • Il canale va chiuso quando la blockchain raggiunge l'ultimo timelock

Punishment-Based Enforcement

  • Gli output di Alice e Bob contengono in aggiunta una revocation key
    • Scambiata ad ogni aggiornamento di stato
    • Sono reedemable da Alice o Bob dopo alcuni blocchi

Punishment-Based Enforcement

  • Incentivo a pubblicare l'ultimo stato
  • Se Bob provasse a pubblicare uno stato revocato
  • Alice potrebbe spendere entrambi gli output
    • Il proprio con la propria key
    • Quello di Bob con la revocation key

HTLC - Hash Time Locked Contract

  • Condizione di spesa che può essere soddisfatta da una firma in aggiunta a
    • Mostrare la preimage di un hash
    • Oppure aspettare un timelock

Routing

  • Una parte del balance di un canale può essere allocato per il routing di pagamenti
  • Catene di HTLC dal payer al payee
  • Se il pagamento ha successo viene risolto con la preimage
  • Altrimenti può andare in timeout

Routing

  • Quando la catena raggiunge il payee, lui mostra la preimage
  • A catena tutti i pagamenti vengono risolti

⚡ Lightning Network ⚡

Scalare Bitcoin mantenendo la decentralizzazione

Alekos Filini - @afilini

Bitcoin Dev Kit

Lightning Network - rev 2

By Alekos Filini

Lightning Network - rev 2

  • 194