Satashi Nakamoto sendte et forslag til "et nytt elektronisk kontantsystem som er fullt ut peer-to-peer, uten pålitelig tredjepart, " til en kryptografisk adresseliste fredag 31. oktober 2008. Den første responsen - første gang noen offentlig kommenterte bitcoin - kom påfølgende søndag: "Vi har veldig, veldig behov for et slikt system, " skrev James A. Donald, "men slik jeg forstår forslaget ditt, ser det ikke ut til å skalere til ønsket størrelse."
Etter 10 år senere, ringer den kritikken fortsatt. Til og med bitcoins ivrigste evangelister innrømmer at det er verdiløst å gjøre små, hverdagskjøp. Men Lightning Network, et av de mest lovende bitcoin-skaleringsprosjektene som pågår, kan endre det.
Lynet nettverk
Lightning Labs administrerende direktør Elizabeth Stark satte tale på Blockstack-toppmøtet i juli 2017, og siterte den første kritikken av Nakamotos elektroniske kontanter, men uttrykte tillit til at bitcoin faktisk kan skalere. "Vi er i utgangspunktet i 1995 igjen når det gjelder blockchains og desentraliserte teknologier, " sa hun, og refererte til tiden før internett kjøpte HTTP og de andre transport- og applikasjonslagene av TCP / IP.
Blant de mest omtalte "lag 2" -applikasjonene for bitcoin blockchain er lynnettet. Først foreslått av Joseph Poon og Tadge, alias Thaddeus Dryja i 2015 (den nyeste versjonen av whitepaper er tilgjengelig her), lynet har blitt bearbeidet til en fungerende spesifikasjon kalt lyn-rfc eller "BOLTS" av tre selskaper, som hver har sin egen implementering: Lightning Labs har lnd, Blockstream har c-lightning, og ACINQ har eclair. Det er også implementeringer som ikke er BOTLS, som torden.
Lynnettet er allerede i gang, men det er i sin ekstreme spedbarn. Ekte bitcoin er sendt og nesten alltid mottatt ved bruk av Lightning Labs, Blockstream og ACINQs implementeringer, og alle tre er interoperable. Videoen nedenfor viser en ACINQ-ingeniør som sender 0.000001 bitcoin (omtrent $ 0.01) nesten øyeblikkelig fra en eclair-nod til en lnode gjennom en c-lynknute:
For å se hvor mye av en forbedring dette representerer, prøvde vi en lignende transaksjon på bitcoin blockchain ved å bruke GreenAddress, en mobil lommebok-app. Appen foreslo å betale gruvearbeidere 0, 00001907 BTC ($ 0, 19): en avgift på 1, 907%. Selv om det ikke er klart hvor mange blokker denne avgiften var ment å bekrefte innen (vi har nådd GreenAddress for å finne ut av det), er svaret sannsynligvis seks blokker, eller rundt en time.
Vi vil imidlertid aldri finne ut hvor lang tid den spesielle transaksjonen faktisk ville ha tatt: en feilmelding informerte oss om at "output under 546 satoshis anses som uøkonomisk støv av Bitcoin. Vennligst øk verdien."
Lightning Labs har også testet atomkjekser med tvers av kjeder ved hjelp av nettverket; dette er verdioverføringer mellom forskjellige blockchains, i dette tilfellet bitcoin og litecoin, som potensielt markerer et første skritt mot å bygge desentraliserte børser.
Lyn muliggjør mikrobetalinger som bitcoin ikke kan på egen hånd, men eksisterende implementeringer er fremdeles avlyttede. Stark oppfordrer brukerne til å lære om lyn ved å bruke bitcoin "testnet" (det vil si å bruke falske penger), i stedet for "live-fire" mainnet. Rundt $ 50 000 for transaksjoner er imidlertid blitt utført på mainnet i skrivende stund, og noen mennesker har tapt penger til en c-lynfeil. (Christian Decker, kjernetekniker i Blockstream, fortalte meg via e-post at midlene til slutt ble utvunnet i de fleste tilfeller.)
Så hvordan fungerer lynet?
Hvordan lyn fungerer
Lyns løsning er basert på toveis, utenfor kjeden betalingskanaler. Si at Alice og Bob ofte handler med hverandre i små mengder. On-chain betalinger er ikke praktiske i dette tilfellet på grunn av gebyrene og lange bekreftelsestider som er involvert, så de bestemmer seg for å åpne en kanal som lar dem sende bitcoin frem og tilbake, øyeblikkelig og gebyrfritt.
Åpner en kanal
For å åpne en kanal bidrar Alice, Bob eller begge deler en viss mengde bitcoin til en spesiell adresse gjennom det som kalles en finansieringstransaksjon (den grønne ruten i diagrammet nedenfor). Si at Alice bidrar med 1 BTC. Hun sender midlene til det som kalles en 2-av-2 multisig-adresse, som krever at både Alice og Bob kryptografisk "signerer" enhver sendingstransaksjon med sine private nøkler. En normal transaksjon krever bare signatur av den (enkelt) private nøkkelen som tilsvarer avsendeadressens offentlige nøkkel.
Det er viktig at finansieringstransaksjonen ennå ikke er signert eller sendt til nettverket.
Deretter oppretter Alice og Bob en "forpliktelsestransaksjon" ved å bruke finansieringstransaksjonen som sin "overordnede": de bruker den ubekreftede utgangen på 1 BTC som input for en "barn" -transaksjon som sender 0, 5 BTC til Alice (utgang 0) og 0, 5 BTC til Bob (utgang 1). Hvis du protesterer mot at bitcoin-protokollen ikke tillater brukere å signere et forbruk uten å kjenne til inngangens signaturer, ble denne muligheten gitt gjennom en myk gaffel.
Alice signerer deretter output og sender 0, 5 BTC til Bob; Bob signerer output og sender 0, 5 BTC til Alice. Begge signerer og sender deretter finansieringstransaksjonen, som er forpliktet til bitcoin blockchain (og er underlagt nettverksavgifter og ventetider).
De har nå en åpen betalingskanal som de kan skifte bitcoin frem og tilbake umiddelbart og gebyrfritt. Enten Alice eller Bob kan lukke det når som helst og kreve 0, 5 BTC hver, eller hva den oppdaterte saldoen er.
Åpner en kanal… På engelsk
Med mindre du allerede vet en god del om lynets nettverkets indre, er det sannsynligvis vanskelig å fordøye "skiltet her, først her, tilbring dette, kringkast det - nei ikke det. "
Her er en mer konseptuell beskrivelse. Finansieringstransaksjonen er slik det høres ut: den gir midler til kanalen. Det fungerer også som et tak for kanalen: Ingen av partene kan ende opp med mer enn det opprinnelige finansieringsbeløpet, og begge parters saldo må legge opp til det beløpet. Årsaken til at finansieringstransaksjonen opprettes først, men sendes sist, er at hvis den ganske enkelt ble lagt ut til blockchain på ett trinn, ville ingenting blitt oppnådd bortsett fra en enkelt, vaniljetransaksjon. Lyn gjør ikke dem raskere eller billigere.
Ved å la finansieringstransaksjonen være åpen, sette inn en forpliktelsestransaksjon - som, som beskrevet nedenfor, fungerer som en slags smart kontrakt - og deretter stenge finansieringstransaksjonen, åpner lynet en slags ormhull i nettverket. Det lar deg bevege bitcoin frem og tilbake langs en enkelt, definert bane. Du bruker bitcoin-protokollen, men omgår forsinkelser og utgifter som gruvearbeiderne pålegger.
Keeping Lightning Trustless
Si at Bob nå vil betale Alice 0, 1 BTC ved å bruke deres åpne kanal. De to partiene oppdaterer ganske enkelt forpliktelsestransaksjonen - ingen grunn til å appellere til gruvearbeiderne. Saldoen, tidligere 0, 5 BTC hver, er nå 0, 6 BTC til Alice, 0, 4 BTC for Bob.
Det eneste problemet er, hvordan gjøre det sikkert? Fordi de allerede har byttet signaturer for den innledende transaksjonen, kan Bob signere den ene - i stedet for den nyeste - og gå bort med 0, 5 BTC i stedet for den 0, 4 BTC han faktisk skyldte. Med andre ord kan han stjele rundt 1000 dollar fra Alice, basert på priser i skrivende stund. Svaret kan være å bare åpne kanaler med folk du stoler på. Men hva er da poenget med å bruke bitcoin?
Å finne en kryptografisk løsning på dette dilemmaet koker ned til ett mål: å gjøre det umulig å signere en gammel transaksjon og lukke kanalen på en måte som gjenspeiler en tidligere tilstand. Så lenge dette er et alternativ, har lynet et dobbeltforbruksproblem.
Husk at Bob signerer halvparten av forpliktelsestransaksjonen (Forpliktelse Tx 1a nedenfor), som bare Alice kan kringkaste fordi hennes er den manglende signaturen. Alice signerer den andre (Commitment Tx 1b), som bare Bob da kan kringkaste. Enten kan man gjøre det og lukke kanalen, men ved å bruke bitcoin (begrensede) smarte kontraktskrivingsfunksjoner, kan resultatene til de to halvdelene av forpliktelsestransaksjonen være underlagt forskjellige begrensninger. Konkret kan den ene utgangen gjøre at mottakeren kan bruke midlene umiddelbart, mens den andre kan bli gjenstand for kansellering av begge parter - via en Revocable Sequence Maturity Contract (RSMC) - i en definert periode, for eksempel 1000 blokker, eller ca. en uke.
Her er grunnen til at det er nyttig. Hvis Bob viser seg å være svik og prinsippløs, kan han bare signere og kringkaste Commitment Tx 1b (over), som utbetaler Alice umiddelbart (levering 1b) og holder midlene sine i tilbakekallbar limbo i en uke (Revocable Delivery 1b). Alice, som ser at Bob har forsøkt å kortslutte henne, kan utløse tilbakekall og hevde ikke bare 0, 1 BTC Bob prøvde å stjele, men den 0, 4 BTC han ellers ville ha hatt krav på.
Hele kanalen går med andre ord til Alice hvis hun fanger Bob som jukser. Det er mulig fordi når partene oppretter en ny forpliktelsestransaksjon (C2a og C2b nedenfor), og lover faktisk ikke å kringkaste en gammel forpliktelsestransaksjon (C1a eller C1b), legger de pengene sine der hvor munnen er. Sammen med den nye forpliktelsestransaksjonen oppretter de en overtredelsesmiddeltransaksjon med to utganger (BR1a og BR1b) som gjelder for den forrige forpliktelsen. Alice gir Bob hennes private nøkkel for hans halvparten av transaksjonsmiddelet, og omvendt. Hvis nå en av dem prøver å kringkaste den gamle transaksjonen, kan motparten dra nytte av ventetiden på 1000 blokker og svøpe inn foran den transaksjonen og ta den fornærmende partens hele saldo.
Problemet er at Alice må ta semi-konstant oppmerksomhet til kanalene sine, for at ikke Bob tar henne vakt i 1000 blokker. Poon og Dryja foreslår å utpeke noen tredjepart hvis jobb det er å utløse transaksjoner med brudd på botemidler - de som belønner alle kanalens midler til den forurettede parten - når en motpart prøver å jukse. Disse kan betales et gebyr ut av straffen.
Olaoluwa Osuntokun, Lightning Labs 'medgründer og CTO, utvikler "vakttårn" for å fungere som disse tredjeparts håndheverne. Mens det er reist bekymringer for at disse nodene kan fungere som pålitelige parter og innføre usikkerhet i nettverket, sier Osuntokun til CoinDesk at bare en ærlig vakttårn ville være nødvendig for en gitt kanal.
Som Christian Decker, kjernetekniker i Blockstream, påpeker i en e-post, er svindel risikabelt. Det er et betydelig gamble å anta at partiet du prøver å rane ikke vil sjekke inn minst en gang i uken, og risikoen for å miste alle pengene i kanalen din kan være nok av avskrekkende.
Koble til kanalene
I den virkelige verden ønsker ikke Alice å utelukkende handle med Bob, og heller ikke Bob utelukkende med Alice. Begge har et hvilket som helst antall motparter de trenger å betale og få betalt av. Å åpne kanaler med hvert av disse partiene ville være upraktisk. Selv om brukergrensesnittet ble forenklet til perfeksjon, ville få brukere ha likviditeten som er nødvendig for å binde opp bitcoin i et dusin eller flere åpne kanaler.
Heldigvis trenger de ikke. Som videoen over viser, kan brukere rute betalinger gjennom mellomliggende brukernes kanaler, slik at det skal være mulig å betale alle med en åpen kanal eller to gjennom seks-separasjonsprinsippet. I motsetning til transaksjoner innenfor en enkelt kanal, vil disse flerkanalstransaksjonene trolig innebære små gebyrer for å stimulere noder for å finansiere kanaler og holde dem åpne. Løkruting, teknikken som brukes til å skjule TOR-nettleserbrukere, forhindrer mellomliggende noder i å se hele banen som er tatt av en transaksjon, og dempe personvernhensyn.
Hvor godt dette nettet av kanaler fungerer i praksis gjenstår å se, og det kan tenkes at hvis betalinger må ta en omviklet rute - med for mange "humle" gjennom mellomkanaler - kan gebyrer som brukerne betaler opp.
Kan lyn bli desentralisert?
Disse bekymringene er relatert til en som for kritikere representerer en uoverkommelig feil i lynnettet. I dagens implementeringer kommer en kanal med et tak: mengden bitcoin i den innledende finansieringstransaksjonen begrenser det totale beløpet i kanalen.
Denne situasjonen påfører brukere en avveining med rimelig begrensede ressurser. De kan enten finansiere kanaler med store mengder bitcoin for å sikre at de har midler til å utføre enhver betaling de trenger, eller de kan finansiere mindre kanaler og ha bitcoin tilgjengelig for annen bruk. (Fordi betalinger kan dirigeres via koblede kanaler, trenger en gitt bruker sannsynligvis ikke å åpne mer enn en håndfull kanaler, og kanskje bare et par.)
Valget koker ned til å ha likviditet i lynkanaler eller likviditet utenfor dem, i kjeden. Å velge å finansiere likvide betalingskanaler kan være risikabelt hvis vakttårn eller annen løsning ikke forhindrer tap av midler gjennom uoppmerksomhet. På den annen side, hvis betalingskanaler blir sikret og lynet blir den viktigste metoden for å bruke bitcoin hver dag, ville det være lite problem med å forlate midler i kanaler. De ville tjent som "et ladbart debetkort eller kontanter", som Decker uttrykker det, mens hovedkjeden fungerer som en sparekonto.
Stark gir et lignende argument: Å finansiere en lynkanal forhindrer deg i å bruke den bitcoin til noe annet, bortsett fra "et nettverk av potensielt mange noder som på tvers av multihop vil akseptere bitcoin øyeblikkelig, " skrev hun via e-post. "Vi ser for oss at midler på Lightning-kanaler skal være mer nyttige enn bitcoin-kjeder til å handle på grunn av øyeblikkelig hastighet og lave avgifter, " la hun til.
Huber?
Men hvem vil du sette opp disse kanalene med? Å velge Bob til din Alice er en økonomisk avgjørelse, ikke en kryptografisk, og for kritikere av lynnettet vil det åpenbare svaret være en slags "hub", en node med mye kapital, og gi den muligheten til å opprettholde godt finansierte åpne kanaler med en rekke partier på en gang.
Ideen om at det som tilsvarer en off-chain bitcoin bankindustri kan utvikle forstyrrer bitcoin-entusiaster, som ser på det som sentralisering av nettverket.
Stark bestrider denne argumentasjonen. "Tusenvis av brukere kjører fulle noder for bitcoin, " skriver hun, "og vi tror de og andre også vil kjøre noder på Lightning (det er lettere fordi du ikke trenger en bitcoin full node sammen med det, og i motsetning til bitcoin full noder du kan tjene små gebyrer fra ruting). " Hun påpeker også at teamet hennes jobber med "spleising", noe som vil tillate at kanaler kan fylles opp ved hjelp av bitcoin fra hovedkjeden. Denne evnen kan lindre avveiningen mellom å sette bitcoin i en kanal eller la den ligge på hovedkjeden, noe som igjen kan redusere tendensen til at nav dannes.
Decker ser det som sannsynlig at det vil danne seg et "to-lags nettverk, med et stort antall noder som er pålitelige og fungerer som ryggraden i nettverket." Han regner imidlertid med at disse skal være selgere, snarere enn knutepunkter som bare består for å skaffe flytende kanaler. Å gi disse kanalene til flere brukere, hevder han, ville være dyrt, og krever at knutepunktene krever høye gebyrer og gjør dem konkurransedyktige sammenlignet med andre noder.
ACINQ-administrerende direktør Pierre-Marie Padiou bekjenner seg ikke til å vite hvordan lynnettet kan utvikle seg. "Det er veldig vanskelig å forutsi hvilken likevekt det vil være mellom sentralisering og desentralisering, " skrev han via e-post. "Selvfølgelig vil det være større noder og mindre noder, men i hvilken grad det er vanskelig å fortelle på forhånd."
Riktig måte å skalere på?
Poon og Dryja hevder at "ved å bruke et nettverk av disse mikropayment-kanalene, kan Bitcoin skalere til milliarder av transaksjoner per dag med beregningskraften som er tilgjengelig på en moderne stasjonær datamaskin i dag." Kanskje, men det er absolutt ikke tilfelle i dag. Færre enn 1000 mainnet lynnoder er åpne i skrivende stund.
Lynet er heller ikke det eneste skaleringsforslaget der ute. En stor konkurrent er bitcoin cash, en omstridt hard gaffel av bitcoin som gir rom for større blokker. Debatten mellom bitcoin-støttespillere, lynsupportere og forkjempere for forskjellige tredje måter - til og med den sporadiske antiskalereren - er livlig, om den er skikkelig. Det kan være at det ene eller det andre vil komme ut på toppen, at de vil fortsette å sameksistere, eller at alle vil mislykkes.
I alle fall er lynnettverket et lovende forsøk på å overvinne skalerbarhetsdilemmaet som har hjemsøkt bitcoin siden bitcoin første helg i 2008.
