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
- Gran parte delle transazioni che avvengono non verranno mai pubblicate
- 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
- C genera un segreto e ne calcola l'hash che passa a B
- 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
- 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
- C verifica la catena di HTLC e, se soddisfatto, rivela il segreto, prendendo i fondi da B
- 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
- 540