
Lightning-solmun rahat eivät voi olla kylmäsäilytyksessä
- Maksukanava lukitsee rahat lohkoketjussa yhteiseen tapahtumaan, jota kumpikaan ei pura yksin, ja saldoa päivitetään lohkoketjun ulkopuolella.
- Solmun allekirjoitusavaimen on oltava verkossa, joten sama kolikko ei voi olla kylmäsäilytyksessä.
- Kanavan voi sulkea yksipuolisesti, jolloin viimeisin sovittu saldo kirjataan lohkoketjuun aikalukon jälkeen.
- LND, Core Lightning ja Eclair ovat eri toteutuksia, eikä yhden vika koske automaattisesti muita.
Maksukanavan saldo on käytettävissä vain silloin, kun solmu on verkossa ja pystyy allekirjoittamaan kanavan uuden saldojaon. Ylläpitäjä kantaa siitä riskin, mutta Lightningilla maksava asiakas ei luovuta yhtään avainta. Ero solmun pyörittämisen ja Lightningin käyttämisen välillä ratkaisee lähes kaiken.
Perjantaina hyökkääjät tyhjensivät CoinDeskin mukaan kauppiaiden Lightning-solmuja, joita ajettiin BTCPay Server -ohjelmiston alla, ja moni kysyi sen jälkeen, olivatko omat rahat vaarassa.
Vastaus riippuu erottelusta, joka ei ole itsestään selvä. Solmun ylläpitäminen ja Lightningin käyttäminen ovat kaksi eri asiaa.
Lightning-verkko on bitcoinin päälle rakennettu erillinen verkko nopeita ja halpoja siirtoja varten. Sen perusyksikkö on maksukanava.
Mitä maksukanavassa tapahtuu
Maksukanava on kahden osapuolen yhteinen potti. Se lukitsee rahat lohkoketjussa yhteiseen tapahtumaan, jota kumpikaan osapuoli ei pysty purkamaan yksin. Sen jälkeen saldoa päivitetään lohkoketjun ulkopuolella.
Jos asiakas lukitsee kanavaan sata euroa bitcoinia, kanavan tila on aluksi 100–0. Kymmenen euron maksu kauppiaalle tarkoittaa, että osapuolet allekirjoittavat uuden jaon 90–10. Potti pysyy samana, vain jakosuhde muuttuu.
Lohkoketjuun asti päätyvät vain kanavan avaaminen ja sulkeminen. Siitä nopeus ja alhainen hinta tulevat.
Väliin jäävät maksut ovat kahden koneen välistä viestinvaihtoa, eivät louhijoiden vahvistamia tapahtumia. Tuhannen maksun jälkeen lohkoketjussa näkyy edelleen vain yksi avaus.
Harvalla maksajalla on suoraa kanavaa kauppiaan kanssa. Maksu etenee ketjuna useamman solmun kanavien kautta. Jokainen väliporras maksaa summan eteenpäin omasta kanavastaan ja saa saman summan takaisin edelliseltä portaalta, joten kenenkään rahat eivät lopulta vähene.
Miksi saldo on väistämättä kuuma
Kanavan saldo on käytettävissä vain silloin, kun solmu on verkossa ja pystyy allekirjoittamaan kanavan uuden saldojaon. Allekirjoitusavaimen on siis oltava koneella, joka on avoinna ulkoverkkoon.
Sama kolikko ei voi olla yhtä aikaa kylmäsäilytyksessä ja Lightning-kanavassa. Kyse ei ole yhden ohjelman virheestä vaan siitä, miten Lightning on rakennettu.
LND:n ja Core Lightningin omat käyttöohjeet sanovat sen suoraan. Solmun lompakko on kuuma lompakko.
Kuka kantaa minkäkin riskin
Jos solmu itse joutuu vääriin käsiin, uhattuna ovat ylläpitäjän omat kanavasaldot. Kauppiaalle Lightningilla maksanut asiakas ei luovuta avaimiaan eikä kirjautumistietojaan, ja maksu joko menee läpi tai ei mene.
Haltuun otetun solmun tyhjentäminen ei vaadi kummoisia temppuja. Hyökkääjä sulkee kanavat ja ohjaa vapautuvat kolikot omaan osoitteeseensa lohkoketjussa.
Jos kanavan vastapuoli katoaa tai vaarantuu, kanava voidaan sulkea yksipuolisesti. Viimeisin sovittu saldo kirjataan silloin lohkoketjuun.
Rahat eivät katoa, mutta ne palaavat käyttöön viiveellä ja siirtomaksua vastaan. Viive on tyypillisesti tunneista muutamaan vuorokauteen.
Yksipuolinen sulkeminen sisältää aikalukon: lohkoketju pitää rahoja panttina sovitun ajan, jotta vastapuoli ehtii kiistää väärän saldon.
Vanhan, itselle edullisemman saldon julkaiseminen ei kannata. Jos vastapuoli huomaa sen aikalukon aikana, hän voi ottaa kanavan koko saldon itselleen. Rangaistus on rakennettu protokollaan.
Yksipuolinen sulkeminen on juuri se keino, johon ylläpitäjä häiriötilanteessa turvautuu. Keino on hidas ja kallis, mutta se toimii ilman vastapuolen suostumusta.
Toteutuksia on useita, ei yhtä
LND, Core Lightning ja Eclair ovat eri ohjelmistoja, jotka noudattavat samaa protokollaa. Projektien omat dokumentaatiot tekevät eron selväksi.
Yhden toteutuksen tai sen päälle rakennetun ohjelmiston haavoittuvuus ei siis automaattisesti koske muita. Ylläpitäjän kannattaa tietää, mitä toteutusta oman palvelun alla ajetaan.
Tavalliselle käyttäjälle Lightningin riski palautuu oikeastaan kysymykseen avainten hallinnasta. Jos lompakkoa hoitaa säilytyspalvelu, kyse on säilytysriskistä eikä Lightning-riskistä. Sitä eroa harva uutinen tekee lukijan puolesta.









