Als u ooit in Bitcoin heeft gehandeld, heeft u mogelijk te maken gehad met transactietijden van een uur (of in het slechtste geval een dag). Het wordt gemeengoed voor Bitcoin achterstanden van 150.000 + onbevestigde transacties in tijden van hoge transactievolumes, en als we dit koppelen aan de exorbitante kosten, is het een wonder hoe u het ooit gaat gebruiken om betaal voor die 5-delige maaltijd bij KFC.

Het bliksemnetwerk is hier om daarbij te helpen. Dit concept is het geesteskind van Thaddeus Dryja en Joseph Poon, en het duo presenteerde het met een wit papier terug in 2015. Als je niet zo happig bent op het lezen van het lange papierkrijt vol technisch jargon, zullen we het hier in lekentaal uiteenzetten.

Wat is het Lightning Network?

Op het meest basale niveau is het bliksemnetwerk een methode voor Bitcoin-gebruikers om valutawaarde uit de Bitcoin-blockchain te wisselen. Dit wordt bereikt met behulp van een paar complexe algoritmen die interageren met het basisscript van Bitcoin, en het maakt, dat klopt, bliksemsnelle betalingen mogelijk tegen een fractie van de transactiekosten. Als zodanig wordt het gepresenteerd als een noodzakelijke schaalbaarheidstool, een die Bitcoin nodig heeft als het in de toekomst een haalbare betalingsoptie wil zijn. Deze praktijk kan zich uitstrekken tot atomaire swaps over de hele keten. Deze swaps zijn in de praktijk hetzelfde, behalve dat ze plaatsvinden tussen twee verschillende valuta’s / blockchains. We gaan hier in meer detail over atomaire swaps.

Nu we de veel te simpele uitleg hebben behandeld, is het tijd voor een langere.

Lightning Network: hoe het werkt

Een bilateraal betalingskanaal openen

Om aan de slag te gaan met het Lightning Network, wil je een betalingskanaal opzetten. Betaalkanalen zijn de transactieweg waardoor het bliksemnetwerk waarde overdraagt. Om er een tot stand te brengen, moet u een transactie voor dit kanaal rechtstreeks op de blockchain openen.

“Maar ik dacht dat je zei dat dit allemaal buiten de keten plaatsvindt?” Maakt u zich geen zorgen, het doet het nog steeds, maar u moet eerst het Bitcoin-netwerk laten weten dat u een transactie opent. Zodra je dit hebt gedaan, zullen jij en de andere partij met wie je een transactie uitvoert, je eigen balans bijhouden van de uitwisselingen die je op het kanaal doet. Transacties en bijgewerkte rekeningsaldi worden in dit grootboek geregistreerd elke keer dat er geld wordt verplaatst, en nadat u zaken heeft gedaan op het kanaal, zendt u het eindresultaat naar de blockchain om het account te sluiten.

Portefeuilles met meerdere handtekeningen

“Dus als betalingskanalen buiten de keten plaatsvinden, waar / hoe worden de fondsen dan beheerd totdat ze op de blockchain worden geregistreerd?” Wat een mooie vraag. Om een ​​betalingskanaal te gebruiken, moeten beide partijen hun geld naar een multi-signature wallet-adres sturen.

Laten we zeggen dat Molly en Steve weddenschappen hebben geplaatst op de uitkomst van de Super Bowl. Ze zetten elk 1 BTC in en willen zeker weten dat de ander zijn / haar einde van de afspraak vasthoudt, dus storten ze beide fondsen in een portemonnee met meerdere handtekeningen. Deze portemonnee functioneert als een kluis voor stortingen, terwijl een set privésleutels voor de transacties werkt als combinaties waarmee beide partijen toegang hebben tot het geld. Het geld blijft vergrendeld in de portemonnee totdat:

  • zowel Molly als Steve ondertekenen een laatste transactie met deze privésleutels,
  • een partij besluit de transactie zelf af te ronden, of
  • een tijdslimiet is bereikt en de transactie wordt automatisch verzonden. Zodra dit gebeurt, wordt het geld teruggestort naar de individuele portemonnee van beide partijen.

Om de multi-signature wallet met succes op te zetten, creëren zowel Molly als Steve een waarde (in wezen een geheime sleutel om transacties te ontgrendelen) die ze vervolgens gebruiken om een ​​hash te maken en naar elkaar te verzenden. Bewaar deze informatie: het is essentieel om te begrijpen hoe toezeggingstransacties later werken.

Zodra Molly en Steve hun respectieve geld in de portemonnee met meerdere handtekeningen hebben gestort, kunnen ze een zogenaamd open transactie en zend het uit naar de blockchain. Zodra dit is uitgezonden, wordt een reeks toezeggingstransacties worden vervolgens gebruikt om fondsen te beheren.

Waarde overdragen met verbintenistransacties

Het blijkt dat Molly de weddenschap heeft gewonnen, maar ze is aardig, dus ze zegt dat Steve haar slechts 0,5 BTC verschuldigd is in plaats van 1. Om een ​​overdracht van dit vermogen te starten, zouden zowel Molly als Steve hun respectieve saldi in het betalingskanaal bijwerken door een toezegging te ondertekenen. transactie. Verplichtingstransacties verdelen geld tussen beide deelnemers volgens hun wederzijdse overeenkomst – in wezen gedragen deze transacties zich als IOU’s die zullen worden uitbetaald zodra het betalingskanaal is gesloten.

Om bijvoorbeeld waarden uit te wisselen, ondertekent Molly een transactie die 1,5 BTC naar zichzelf stuurt en 0,5 naar een nieuw portefeuilleadres met meerdere handtekeningen. Vervolgens ondertekent ze deze transactie en stuurt ze de hasj naar Steve. Op zijn beurt tekent Steve een toezeggingstransactie om Molly’s te spiegelen, waarbij hij 0,5 BTC naar zichzelf stuurt en 1,5 naar een andere portemonnee met meerdere handtekeningen. Hij ondertekent dit vervolgens en stuurt de hash van deze transactie naar Molly.

Lightning Network-transactie

We hebben dus a) de originele 2 BTC in de multi-signature wallet van het betalingskanaal, b). 5 BTC in een multi-signature wallet die aan Steve moet worden betaald, en c) 1,5 BTC in een multi-signature wallet portemonnee die aan Molly moet worden betaald. In feite zou, zodra een van de partijen hun respectievelijke transactie-hashes heeft verzonden, de balans in de meervoudige handtekening van het betalingskanaal worden bijgewerkt, aangezien beide partijen zijn overeengekomen met de overdracht. Viola, de valuta zijn uitgewisseld zonder gebruik te maken van de blockchain van Bitcoin.

De waarden van deze wallets kunnen alleen onder drie voorwaarden worden ontgrendeld:

  1. een bepaalde tijd verstrijkt,
  2. beide partijen ontgrendelen het geld van de portefeuilles met meerdere handtekeningen die ze hebben opgezet met de waarde van de portemonnee (sleutel), of
  3. beide partijen besluiten de transactie samen af ​​te tekenen.

Het is belangrijk op te merken dat, als een partij besluit het kanaal te sluiten en alleen een transactie af te melden, hij / zij een vooraf bepaalde hoeveelheid tijd zal moeten wachten (bepaald door het contract) vanaf het moment dat de transactie is ondertekend. om zijn / haar geld te ontvangen. Dit lijkt misschien overdreven, maar het is absoluut noodzakelijk om bedrog via betalingskanalen te voorkomen – hierover later meer.

Terugkerende betalingen / het kanaal bijwerken

Wat als Molly en Steve het kanaal willen blijven updaten of meer dan één uitwisseling willen doen??

Om dit verder te illustreren, stel dat Steve Molly betaalde voor een terugkerende dienst, zoals een knipbeurt. Steve stort 0,2 BTC in hun multi-signature wallet, en elke keer dat hij zijn lokken bijgesneden krijgt, tekent hij een toezeggingstransactie aan Molly voor 0,001 BTC en stuurt deze naar het nieuwe multi-signature adres. Om dit te doen, moet hij de stappen herhalen die we zojuist hebben doorlopen, zonder een transactie op het netwerk te openen, want dat is gedaan tegen de tijd dat de eerste toezeggingstransactie is ondertekend.

Om terugkerende betalingen te verwerken, moeten de rekeningsaldi in de multi-sig dus elke keer worden bijgewerkt. Om dit te doen, moet Steve elke keer dat zijn haar wordt geknipt, een nieuw bedrag toewijzen aan de portemonnee met meerdere handtekeningen die hij heeft opgezet om Molly te betalen. Maar daarmee creëert hij een nieuwe waarde en een nieuwe hasj voor deze nieuwe transactie. Molly doet hetzelfde, en wanneer beide partijen de nieuwe hashes uitwisselen, nemen ze ook de oude waarden (sleutels) op voor de vorige transactie.

In feite zorgt dit ervoor dat geen van beide partijen de ander kan bedriegen. Als Steve bij het sluiten van het betalingskanaal probeert Molly te bedriegen van haar betalingen door een oud transactiebedrag uit te zenden, heeft hij problemen.

Als Steve bijvoorbeeld bij het sluiten van het kanaal Molly 1 BTC verschuldigd is van de oorspronkelijke 2 BTC die hij heeft gestort, maar hij ondertekent de oorspronkelijke transactie om zichzelf het oorspronkelijke bedrag te geven, kan Molly hem erop bellen omdat ze de waarden heeft van alle eerdere transacties . Bovendien moet Steve wachten voordat zijn transactie wordt afgehandeld volgens het tijdsbestek dat beide partijen zijn overeengekomen voordat hij zaken kan doen, terwijl die van Molly onmiddellijk is. Dus als ze ziet dat ze 0 BTC heeft ontvangen voor haar diensten, kan ze zich afmelden bij de 2 BTC in de portemonnee met meerdere handtekeningen omdat ze de sleutel heeft voor deze transactie en dus de mogelijkheid om het geld ervan te ontgrendelen.

Dus als een partij probeert een andere partij te bedriegen, krijgt de tegenpartij alle fondsen van de kwaadwillende partij. Deze sanctie is van toepassing om slechte actoren ervan te weerhouden misbruik te maken van de gedeelde financiering van het betalingskanaal.

Bovendien kunnen node-operators en mijnwerkers die dit vuile spel opmerken namens Molly optreden als ze niet online is om het bedrog op te merken. Ter compensatie ontvangen deze beschermengelen een premie (vergoeding) in de verwerkte valuta voor hun diensten.

Een betalingskanaal sluiten

Wanneer Molly en Steve klaar zijn om hun rekeningen te sluiten, ondertekenen ze eenvoudig een transactie met hun privésleutels om hun definitieve rekeningsaldi naar de blockchain te verzenden. Op dit punt zullen mijnwerkers het zoals gebruikelijk verifiëren en opslaan in het grootboek. Net als bij een openingstransactie is deze sluitingstransactie de enige interactie die beide partijen hebben met de blockchain van Bitcoin.

Als alternatief kunnen twee partijen ook een vervaldatum instellen voor de duur van het contract. Met behulp van het nLockTime-algoritme zouden ze bijvoorbeeld een betalingskanaal voor 30 dagen kunnen openen, waarna het kanaal zal sluiten en de eindsaldi worden uitgezonden naar de blockchain. Elke keer dat de partijen hun saldo willen actualiseren, wordt de vervaldatum echter verlaagd. Dus als Molly en Steve gedurende een seizoen weddenschappen zouden plaatsen op meerdere voetbalwedstrijden, zou het nLockTime-contract elke keer dat een weddenschap werd uitbetaald een nieuwe, verkorte vervaldatum hebben (bijv. Als de eerste toezeggingstransactie binnen 30 dagen zou worden afgerond, de tweede transactie zou in 29 worden uitbetaald, daarna zou de derde in 28 worden uitbetaald, enzovoort).

Het doel van nLockTime-contracten is eenvoudig: het houdt de rekeningsaldi up-to-date en voorkomt dat één partij een rekeningoverzicht vervalst. Zoals we eerder hebben besproken, wordt elke keer dat een toezeggingstransactie wordt overeengekomen, het oude rekeningsaldo vervangen door een nieuw en elke betrokken partij heeft een administratie van dit nieuwe saldo en een oude transactiewaarde (sleutel). Als een partij de ander probeert te bedriegen, wordt de frauduleuze partij bestraft.

Betalingen via meerdere kanalen en contracten met hashtijdvergrendeling

“Wat als Molly en Steve elkaar Bitcoin willen sturen maar geen betaalkanaal open hebben?” Ze kunnen via een tussenpersoon gaan. We noemen deze man Chuck. Zeg Chuck hallo.

Het blijkt dat Molly en Steve allebei betaalkanalen hebben geopend met Chuck, dus in plaats van een nieuw kanaal te openen, besluiten ze ons hun respectieve bidirectionele betalingskanalen te laten handelen via Chuck.

Nu is dit theoretisch een vertrouwde transactie, dus de truc is om de uitwisseling op een veilige manier te vergemakkelijken. Om dit te doen, implementeert het Lightning Network Hash Time Locked Contracts (HTLC’s).

Lightning Network-betalingskanaal met HTLC's

Stel dat Molly 0,5 BTC aan Steve wil geven omdat ze zo aardig is – serieus, wat een perzik. Om dit te doen, moet Steve een reeks cryptografische nummers maken, een zogenaamde waarde (in wezen een bevestigingscode of sleutel). Hij maakt vervolgens een hasj van deze waarde om naar Molly te sturen. Om deze geschreven illustratie te vereenvoudigen, geven we waarde weer met V en hash met H.

Wanneer Molly H ontvangt, deelt ze het met Chuck. Op dit punt stuurt Molly Chuck alleen de 0,5 BTC als hij V onthult. Om V te krijgen, stuurt Chuck 0,5 van zijn eigen BTC naar Steve in ruil voor V. Zodra hij dit nummer heeft, stuurt hij V naar Molly die vervolgens 0,5 stuurt. BTC aan Chuck. En daar heb je het: Molly heeft effectief 0,5 BTC overgedragen aan Steve.

Voor het geval je verdwaalt, is dit als volgt:

Steve maakt V en H → Steve stuurt H naar Molly → Molly stuurt H naar Chuck → Chuck stuurt BTC naar Steve → Steve stuurt V naar Chuck → Chuck stuurt V naar Molly → Molly stuurt BTC naar Chuck

De waarde (V) dient dus als een bevestigingscode / sleutel voor de hash (H), die een ontvangstbewijs / vergrendeling voor de transactie vertegenwoordigt.

“Dat is allemaal prima en dandy, maar hoe weet Molly dat de waarde die Chuck haar stuurt legitiem is, en wat weerhoudt Steve ervan weg te rennen met de BTC die Chuck hem betaalt?”

Nogmaals, goede vragen. Net zoals nLockTime iedereen eerlijk houdt in een bidirectioneel betalingskanaal, houden Hash Time Locked Contracts partijen verantwoordelijk in dit model.

Met HTLC’s worden de Bitcoin-fondsen die worden verhandeld opnieuw opgesloten in een portemonnee met meerdere handtekeningen en kunnen ze alleen worden ontgrendeld a) nadat de waarde (V) en hash (H) zijn gepresenteerd of b) het contract verloopt na een time-outperiode.

In feite betekent dit dat, wanneer Molly en Chuck een overeenkomst sluiten voor Molly om Steve te betalen, ze de Bitcoin die ze aan Chuck verschuldigd is op slot doet in een portemonnee met meerdere handtekeningen met behulp van de HTLC. Zodra Chuck Steve betaalt en V ontvangt, kan hij V en H invoeren in de HTLC om te worden terugbetaald met de Bitcoin Molly die zich aan het contract heeft verbonden. Als alternatief, als Chuck zijn einde van de afspraak niet nakomt en het contract afloopt na bijvoorbeeld een week, wordt Molly’s Bitcoin vrijgemaakt en gaat terug naar haar persoonlijke portemonnee..

Dezelfde interactie vindt plaats op Chuck en Steve’s eigen betalingskanaal. Chuck kan zijn Bitcoin niet aan Steve afstaan ​​totdat Steve V onthult. Zodra Steve V onthult in het multi-sig contract, heeft Chuck nu V en ontvangt Steve zijn BTC.

Dit proces zou theoretisch via meerdere betalingskanalen en meerdere individuen kunnen verlopen.

Lightning Network-diagram

Afronden: waarom het Lightning Network belangrijk is

Het is een ingewikkeld onderwerp. Het was al moeilijk genoeg om deze informatie samen te voegen tot verteerbare brokken, dus we hopen dat je er zo lang mee bezig bent.

Voor een TL; DR-samenvatting: Het Lightning Network is een off-chain systeem waarmee individuen meerdere keren valuta’s kunnen wisselen zonder al deze transacties aan de ketting te hoeven zetten. In plaats daarvan worden slechts twee transacties (en openen en sluiten) geregistreerd op de blockchain, terwijl alle andere transacties, zoveel als er mogelijk zijn, worden verwerkt via een secundaire laag van knooppunten buiten de keten..

Dit model heeft een aantal belangrijke voordelen:

Effectieve microtransacties: Het Lightning Network is gericht op microtransacties. In plaats van exorbitante vergoedingen te moeten betalen die mogelijk opwegen tegen de waarde die wordt overgedragen, stelt het Lighting Network gebruikers in staat om kleine sommen valuta naar elkaar te sturen zonder rechtstreeks via het Bitcoin-netwerk te hoeven gaan. Ze moeten nog steeds een vergoeding betalen voor de node-operaties, maar het is minuscuul vergeleken met de gebruikelijke netwerkkosten van Bitcoin.

Schaalbaarheid en latency-oplossingen: In overeenstemming met het vorige punt, zou het Lightning Network de netwerkzwelling verminderen. Het verminderen van het aantal on-chain transacties betekent minder werk voor miners, wat op zijn beurt leidt tot snellere transactietijden en lagere kosten. Als niet elke transactie in het grootboek van de blockchain hoeft te worden geplaatst, zou het netwerk veel soepeler werken. Verder zouden Lightning Network-transacties veel sneller zijn dan die in de keten.

U vraagt ​​zich waarschijnlijk af hoe een gemiddelde gebruiker zou kunnen navigeren door het meerstappenproces dat we zojuist goed hebben geschetst. Nou, Dryja, Poon en anderen werken aan applicaties / interfaces die alle gecompliceerde stappen voor je uitwerken – je hoeft alleen maar op een paar knoppen te drukken.

Momenteel worden Lightning Networks ontwikkeld voor Bitcoin, Litecoin en Vertcoin. Het Lightning Network is nog steeds actief testnet, en op het moment van deze publicatie is nog geen primaire netto lanceringsdatum bevestigd.