Lightning Network

Alekos Filini (@afilini) - BHB Network

Scaling di Bitcoin

  • Limite fisico di ~3 - 7 transazioni al secondo
    • Blocchi da (circa) 1 MB
    • Tempo di blocco di 10 minuti
  • Tentativo di massimizzare la decentralizzazione
    • Permettere a chiunque di mantenere un "full node"
    • Agevola i miners più piccoli

Bitcoin senza blockchain

 

  • La blockchain è l'arbitro che decide chi ha ragione solo in caso di controversie
    • Gran parte delle transazioni che avvengono non verranno mai pubblicate
      • Spazio risparmiato nei blocchi
    • Non è necessario aspettare conferme
      • Pagamenti istantanei
  • Sistema per scambiare transazioni senza pubblicarle 

(normalmente)

sulla blockchain

Payment Channels

One use of nLockTime is high frequency trades between a set of parties. [...] Intermediate transactions do not need to be broadcast. Only the final outcome gets recorded by the network. Just before nLockTime, the parties and a few witness nodes broadcast the highest sequence tx they saw.

- Satoshi Nakamoto

Cosa Sono

  • Canali di pagamento diretti tra nodi della rete
  • Possono essere "ricaricati" con dei Bitcoin
    • Come una carta di credito prepagata
  • Ogni transazione successiva all'interno del canale è gratuita e istantanea
    • Zero fee perché non viene coinvolta la blockchain
    • Istantanea perché è un "accordo" tra le singole parti che compongono il canale, senza coinvolgere il resto della rete
    • Come se fosse una scrittura privata tra le parti
  • In caso di disaccordo tra le parti si torna dal "giudice"
    • Ovvero la blockchain

Multi-hop Payments

  • Creare canali direttamente con molte persone non è efficiente
  • Sarebbe comodo poter "prendere in prestito" il canale di qualcun altro per fare un pagamento
    • Pagando una piccola fee
  • HTLC permettono di implementare una soluzione molto elegante
    • HTLC = Hashed Time-lock Contract
    • Contratto che permette di sbloccare dei fondi presentando una pre-image entro un certo timeout
    • Scaduto il timeout i fondi tornano al mittente

Esempio

Stato iniziale: A <-> B <-> C. A vuole pagare C

  1. C genera un segreto e ne calcola l'hash che passa a B
  2. B crea un HTLC che permette a C di ottenere i fondi se mostra il segreto entro un giorno. Scaduto il timeout B recupera i propri soldi
  3. A crea un HTLC che permette a B di ottenere i fondi se mostra il segreto entro un giorno. Scaduto il timeout A recupera i propri soldi
  4. C verifica la catena di HTLC e, se soddisfatto, rivela il segreto, prendendo i fondi da B
  5. B copia il segreto e può prendere i soldi da A

Punti critici

  • Bilanciamento dei canali
  • Routing inefficiente - al momento
  • Necessario essere online anche per ricevere transazioni
  • Rischio di perdere fondi se non mi accorgo del broadcast dell'altra persona

Sviluppi futuri

  • Channel factories
    • Rendono ancora più economica la creazione dei canali
  • Cross-chain atomic swap
  • AMP - Atomic Multi-Path Payments
    • Permette di dividere un pagamento su più rotte garantendo l'atomicità
  • Asset generici su Lightning - RGB

Mappa di mainnet

Lightning Network (SIMPLIFIED) - IT

By Alekos Filini

Lightning Network (SIMPLIFIED) - IT

  • 486