Etter år med konseptualisering og utvikling er de første lynimplementeringene nå i beta. Som et resultat vises flere noder online hver dag, et økende antall brukere åpner kanaler med hverandre, og noen selgere begynte til og med å godta lynbetalinger.
Men selvfølgelig er dette fortsatt de aller første dagene av Lightning Network. Mens hovedimplementeringene er brukbare og noen lommebøker og andre applikasjoner er tilgjengelige, forventes Bitcoins overleggsbetalingsnett å forbedre seg i løpet av de neste årene i områder som spenner fra nettverksarkitektur til sikkerhet og brukervennlighet, og mer.
Dette er noen av de viktigste Lightning-prosjektene som er under utvikling.
Dobbeltfinansierte kanaler
Lightning Network består av en serie betalingskanaler. Hver betalingskanal eksisterer mellom to brukere, slik at midler kan sendes frem og tilbake mellom dem.
Imidlertid kan betalingskanaler i dette tidlige utviklingsstadiet bare finansieres av en av de to partene. Finansieringspartiet må først foreta en transaksjon med motparten; først da kan motparten returnere en betaling innen samme betalingskanal.
De Lightning Network hvitt papir, imidlertid foreslåtte dobbeltfinansierte kanaler, som a spesifikasjonsforslag har nå også blitt laget av ACINQ, selskapet bak eclair. Som navnet antyder, vil dobbeltfinansierte kanaler la begge brukere delvis finansiere en betalingskanal ved at hver deponerer litt bitcoin. Dette burde gi mer fleksibilitet for Lightning-brukeropplevelsen, ettersom brukere umiddelbart kan sende og motta betaling etter å ha åpnet en kanal.
Ubåtbytter
For å kunne foreta en Lightning-betaling må brukerne sette inn penger i en Lightning-kanal. En gang i en kanal kan ikke disse midlene sendes til vanlige (on-chain) Bitcoin-adresser (med mindre kanalen først lukkes). Dette betyr at bitcoin i en lynkanal er noe skilt fra bitcoin i en vanlig lommebok, ikke ulikt hvordan penger på en brukskonto er noe skilt fra penger på en sparekonto.
Men det er løsninger for å gjøre bytte mellom Lyn- og on-chain-betalinger mer sømløse.
En løsning er Ubåtbytter. Utviklet av Alex Bosworth (men konseptualisert av Lyn Labs CTO Olaoluwa Osuntokun til og med før det), Submarine Swaps lar i hovedsak brukere sende lynbetalinger til en mellommann på Lightning Network; at mellommannen vil sende en tilsvarende mengde bitcoin til en vanlig (on-chain) Bitcoin-adresse. Det fungerer også omvendt: brukere kan sende regelmessige betalinger via kjeden til mellommannen; den mellommannen vil da sende en tilsvarende mengde bitcoin til en mottakende Lightning-node på Lightning Network.
Det er viktigere at med Submarine Swaps gjøres denne konverteringen “atomisk”. Ved å bruke et triks som allerede er innebygd i Lightning Network, kan Lightning-betalingen og betalingen på kjeden effektivt knyttes til hverandre. Dette gjør det umulig for mellommannen å stjele midler ved ikke å videresende betalingen. (Etter avtale med brukerne kunne han kreve et lite gebyr for tjenesten sin.)
Skjøte
En annen løsning for å gjøre Lightning-brukeropplevelsen mer sømløs kalles “spleising”. I hovedsak vil spleising la en bruker “fylle opp” midler i en eksisterende lynkanal, eller “tappe” penger fra den, potensielt mens den holder kanalen åpen..
Ideen er enkel. Enhver lynkanal starter med en åpningstransaksjon, som sikrer at begge brukerne samtykker i å flytte midlene i kanalen. Resten av Lightning-kanalen består av en serie påfølgende transaksjoner utvekslet mellom brukerne, som vanligvis ikke sendes til Bitcoin-nettverket. Midlene i åpningstransaksjonen beveger seg ikke før kanalen er stengt.
Når “spleiser”, tar brukerne åpningstransaksjonen for i stedet å sende penger til en erstatningsåpningstransaksjon, som inkluderer mer bitcoin, fra en eller begge brukere. Når denne nye åpningstransaksjonen er bekreftet på blockchain, fylles kanalen opp. Inntil den nye åpningstransaksjonen er bekreftet, kan de to brukerne bare oppdatere både den gamle og den nye kanalen samtidig for å unngå “nedetid på kanalen.”
Omvendt, når de “splitter ut”, tar brukerne åpningstransaksjonen for å sende midler til en vanlig (on-chain) adresse, og potensielt beholde noe av det i kanalen ved å bruke det samme trikset. På denne måten kan brukere foreta on-chain transaksjoner rett ut av en lynkanal.
Eltoo
Hver gang en ny betaling utføres, oppdateres lynkanaler mellom brukere for å gjenspeile deres gjensidige saldoer. Trikset som ble brukt for å oppnå dette inkluderer for tiden en straff for brukere som prøver å jukse ved å kringkaste en eldre saldo (antagelig fordi den eldre saldoen ville betale dem mer). Fuskbrukere kan miste alle midlene de har i en kanal.
Problemet er at kringkasting av gamle saldoer ikke alltid er et jukseforsøk. Det er en rekke scenarier der brukere ved et uhell kan kringkaste en eldre saldo; for eksempel på grunn av en programvarefeil eller en feil som har gått galt. I slike scenarier er et fullstendig tap av kanalfond ganske tung straff.
Først publisert 30. april 2018, eltoo er det nyeste forslaget omtalt i denne artikkelen. Utviklet av Blockstream’s c-lyn utviklingsteam – Dr. Christian Decker og Rusty Russell – og Osuntokun fra Lightning Labs, oppdaterer eltoo en kanal ved å bygge en kjede av tidslåste transaksjoner, der hver transaksjon bruker midler fra den forrige for å gjenspeile den siste kanalsaldoen.
Hvis en bruker kringkaster en eldre transaksjon (som representerer en eldre kanalsaldo), har motparten litt tid til å kringkaste den siste transaksjonen (som representerer den siste kanalsaldoen).
En løsning som denne kan fungere i dag, men den er ikke praktisk i tilfeller av feil. Det ville kreve at hele kjeden av transaksjoner ble kringkastet og spilt inn på Bitcoin-blockchain, noe som mer eller mindre beseiret formålet med Lightning Network. Decker derfor foreslått en myk gaffelendring av Bitcoin-protokollen for å innføre en type hierarki i disse typer transaksjoner: enhver nyere transaksjon kan overstyre enhver eldre transaksjon uten å kreve at alle transaksjoner i hele kjeden skal kringkastes.
Hvis denne myke gaffelen blir tatt i bruk og aktivert på Bitcoin-nettverket, kan lynbrukere opprette kanaler i både gjeldende stil og ved å bruke eltoo, avhengig av hva de foretrekker.
Kompakt filtrering på klientsiden
Mens Lightning Network er en protokoll fra andre lag, er Bitcoin-blockchain i seg selv fortsatt relevant for Lightning-brukere av sikkerhetshensyn. Spesielt må lynbrukere holde øye med blockchain for å se om spesifikke transaksjoner er inkludert. Dette kan være ressurskrevende, spesielt for mobilbrukere.
En løsning på dette kalles forenklet betalingsverifisering (SPV) og ble beskrevet i Bitcoin-papiret. Nåværende SPV-lommebøker bruker et triks som heter “Bloom-filtre”For å finne ut om relevante transaksjoner skjedde.
Dessverre er Bloom-filtre ganske privatlivsvennlige, da lommebøker i hovedsak avslører alle adressene til noder i Bitcoin-nettverket. De har også problemer med skalering og brukervennlighet, da hver enkelt SPV-lommebok tar opp ressurser fra minst en full Bitcoin-node.
For å takle disse problemene, Lightning Labs ‘Osuntokun og Alex Akselrod, sammen med Coinbase utvikler Jim Posen, designet en ny løsning kalt “kompakt blokkeringsfiltrering på klientsiden”, som de implementerer i Neutrino lommebok.
Kompakt blokkeringsfiltrering på klientsiden inverterer i det vesentlige trikset som dagens SPV-lommebøker bruker. I stedet for lommebøker som ber om transaksjoner som er relevante for dem ved å opprette og sende ut et Bloom-filter til fulle noder, oppretter fulle noder et filter for alle Neutrino-lommebøker. Neutrino-lommeboken bruker deretter dette filteret for å fastslå at den aktuelle transaksjonen ikke skjedde – noe som egentlig er alt brukerne trenger å vite for å være sikre på at de ikke blir lurt. (Hvis filteret produserer en samsvar, henter Neutrino den relevante blokken for å se om kampen virkelig gjelder den nøyaktige transaksjonen i stedet for en falsk positiv.)
Interessant, mens dette trikset ble designet med tanke på Lightning-opplevelsen, kunne det også brukes til å dra fordel av vanlige lommebøker.
Vakttårn
For å unngå å bli lurt, må Lightning-brukere holde oversikt over potensielle on-chain-transaksjoner som kan være relevante for dem.
Mens kompakt blokkeringsfiltrering på klientsiden skal gjøre ting mye enklere, må brukerne sjekke inn en gang i blant for å sikre at de ikke blir lurt. Hvis de glemmer å sjekke, skaper det en sikkerhetsrisiko.
“Vakttårnene” er en potensiell løsning som kan spores tilbake til Lightning Network-papiret og har siden vært forbedret av Lightning Network white paper medforfatter og tent utvikler Tadge Dryja og andre. Som navnet antyder, kan Vakttårnene la brukerne outsource overvåking av blockchain til tredjeparter.
Nåværende Vakttårnsdesign er ikke satt i stein, men vil omtrent fungere slik. Når brukere oppdaterer en kanal, sender de en liten datapakke til Vakttårnet. Den første delen av denne pakken er et “hint” om en transaksjon de bør se etter, som om det var et stykke puslespill. Dette hintet avslører ikke noe om innholdet i transaksjonen som Vakttårnet må passe på; brukere gir ikke opp noe privatliv i denne forstand.
Imidlertid, hvis den aktuelle transaksjonen dukker opp i Bitcoin blockchain, kan Vakttårnet bruke hintet til å gjenkjenne det. Deretter, med transaksjonsdataene på selve blockchain, kan Vakttårnet bruke den andre delen av pakken de har mottatt for å rekonstruere straffetransaksjonen. Denne straffetransaksjonen sender alle midler i kanalen til brukeren som blir lurt. (Eller når det gjelder eltoo, sender den bare riktig kanalsaldo.) Straffetransaksjonen kan også utformes slik at Vakttårnet kan kreve en del av midlene som en belønning, som et incitament til å gjøre jobben sin..
Brukere kan outsource kanalovervåking til flere vakttårn. Selv om en mislykkes, kan en annen ikke, og begrenser risikoen for lynbrukere til det punktet hvor det uten tvil er ubetydelig.
Atomic Multi-Path-betalinger
Hva gjør Lightning Network til Nettverk er at betalingskanalene mellom brukerne er sammenkoblet. Brukere kan betale på tvers av betalingskanaler, gjennom jevnaldrende i nettverket som fungerer som “mellommenn”, til brukere de ikke har en direkte kanal åpen med.
Akkurat nå må imidlertid en enkeltbetaling rutes over en enkelt rute. Hvis en bruker vil betale 5 mBTC til en annen, må han ikke bare ha 5 mBTC i en enkelt kanal, alle mellommenn på ruten må også ha 5 mBTC klar i en kanal for å videresende. Jo større en betaling er, jo mindre er sjansen for at dette er tilfelle.
Atomic Multi-Path Payments (AMP) kan gå langt med å løse denne begrensningen. Først foreslått av Lightning Labs ‘Osuntokun og Conner Fromknecht, er ideen enkel: Større betalinger kan “kuttes opp” i mindre biter, som alle har sin egen rute fra betaleren til betalingsmottakeren, gjennom forskjellige mellommenn..
En utfordring for å realisere denne løsningen er at lynbetalinger kan mislykkes, noe som i dette tilfellet vil bety at en betaling utføres delvis. Delbetalinger kan lett være et større problem enn ingen betaling i det hele tatt, men: en selger vil ikke være fornøyd med en delvis betaling, mens en kunde ikke vil være fornøyd med å bruke penger for ingenting.
Løsningen på dette problemet er at AMP-er bruker en utvidelse av hash-tidslåste kontrakter, som allerede brukes langs lynruter og innebærer å sende hemmelige data langs et nettverk. Ved å bruke et triks som ligner det som brukes av deterministiske lommebøker (som genererer flere Bitcoin-adresser fra et enkelt frø), kan de mindre delene av en større betaling bare løses inn av betalingsmottakeren hvis alle er: hvis noen hemmelige data ikke gjør det gjøre det gjennom hele ruten, mislykkes hele betalingen.
Atomiske bytter
The Lightning Network er designet som et skaleringslag for Bitcoin. Men siden mange altcoins er programvaregafler av Bitcoins kodebase (r), er det ofte ikke vanskelig å lage lignende skaleringslag for disse altcoins. Allerede eksisterer et lite Litecoin Lightning Network, og det er sannsynlig at flere Lightning Networks vil følge.
Interessant, disse nettverkene trenger ikke å være atskilt i fremtiden.
Ved å bruke en grunnleggende byggestein i Lightning Network kalt “atombytter” (først foreslått av Tier Nolan og realisert på Lightning av Lightning Labs ’Fromknecht), kan betalingskanaler kobles over forskjellige blokkeringer. Med andre ord kan en bruker sende bitcoin, og så lenge en node i nettverket er villig til å foreta utveksling, kan en annen bruker motta betalingen som litecoin.
Selvfølgelig betyr dette også at brukere kan sende slike betalinger til seg selv: de kan sende bitcoin og motta litecoin. I virkeligheten kunne Lightning Network etablere et nettverk av pålitelige kryptovaluta-børser.
For mer informasjon om dette emnet, se: “Atomic Swaps: How the Lightning Network Extends to Altcoins.”
Kanalfabrikker
Den største fordelen med Lightning Network er uten tvil dens potensial til å øke den øvre grensen for bitcoin-transaksjoner uten å belaste Bitcoin-nettverket. Så lenge to brukere begge har midler i kanalen sin, kan de betale hverandre et nesten ubegrenset antall ganger, mens de bare krever to on-chain transaksjoner: en for å åpne en betalingskanal og en for å lukke den.
To transaksjoner per betalingskanal kan likevel legge seg til hvis Bitcoin og Lightning Network får mer adopsjon over tid.
Et forslag av ETH Zürich forskere Christian Decker (også fra Blockstream), Roger Wattenhofer og Conrad Burchert kalt “Channel Factories”, kan ytterligere redusere det gjennomsnittlige antall on-chain-transaksjoner som kreves per betalingskanal, kanskje betydelig.
Løst basert på et tidligere lynlignende forslag fra Decker og Wattenhofer fra 2015, er Channel Factories en type betalingskanal som kan eksistere blant mange brukere. I mellomtiden, som enhver betalingskanal, krever en Channel Factory bare to on-chain transaksjoner. (Hvis Schnorr-signaturer er implementert på Bitcoin, kan disse transaksjonene være ganske kompakte, selv om det involverer mange brukere.)
Channel Factories kan igjen fungere som “underkanaler” for Lightning Network. Deltakere i en kanalfabrikk kan åpne og lukke et nesten ubegrenset antall lynkanaler med hverandre uten å kreve ytterligere transaksjoner i kjeden. Ved å gjøre dette kunne de i teorien redusere antallet nødvendige on-chain-transaksjoner for Lightning Network.
For mer informasjon om dette emnet, se: “Dette nye skaleringslaget kan gjøre betalingskanaler ti ganger mer effektive”.
Takk til Blockstream-utvikler Christian Decker, Lightning Labs-utvikler Conner Fromknecht, ACINQ-sjef Pierre-Marie Padiou og andre for informasjon og tilbakemelding.