top of page
  • Skribentens bildCarl

En introduktion till Lightning Network

Bakgrund

Ett vanligt motargument till Bitcoin som funnits med ända sedan starten 2009 är att Bitcoin inte fungerar som ett betalningsmedel. Det fungerar inte att gå till mataffären och betala med Bitcoin. Det går inte att swisha Bitcoin till din kompis när hon betalde för din lunch. Det går inte att betala din Netflix-prenumeration med Bitcoin. Om man inte kan använda sina Bitcoin för att köpa vardagliga produkter och tjänster, hur kan det då vara en digital valuta?


Uppfinningen Bitcoin är inte statisk utan den utvecklas hela tiden, av hundratusentals utvecklare runt om i världen, och självklart är detta ett av de problem som utvecklare har försökt lösa under lång tid. Det finns flera olika projekt som försöker lösa utmaningen. Några försöker lösa det med en egen blockkedja och tokens, till exempel Ripple. Vissa vill ändra Bitcoins grundkod, till exempel Bitcoin Cash. Och den sista gruppen tror lösningen är en påbyggnad till Bitcoin, ett så kallat Layer 2 Protocol.


Det är vida debatterat i cryptovärlden vilket tillvägagångssätt som är det bästa och det är inte avgjort vilket projekt som kommer accepteras som den rätta lösningen. Dock har den sistnämnda metoden, ett Layer 2 Protocol, tagit störst kliv framåt de senaste åren. Projektet går under namnet Lightning Network. Jag tror personligen att Lightning Network är den lösning som kommer användas för att göra vardagliga betalningar med Bitcoin möjligt och i detta inlägg ska jag försöka förklara grunderna till hur Lightning Network fungerar. Men först en kort och förenklad förklaring till varför Bitcoin inte kan hantera vardagliga betalningar.


Problemet med Bitcoin

Problemet som gör att Bitcoin idag inte fungerar som ett betalningsmedel är de relativt höga avgifterna och tiden det tar att bekräfta en transaktion. Avgiften för en transaktion på Bitcoin-nätverket är dynamiskt och varierar beroende på hur många transaktioner som ska verifieras i stunden. Miners verifierar ett block i blockkedjan cirka var tionde minut. Varje block har plats för ett begränsat antal transaktioner (i genomsnitt ca 2100 per block senaste året). Om fler transaktioner står på tur än vad som får plats i blocket som håller på att verifieras, kommer de transaktioner med högst avgift att prioriteras (eftersom miners får avgiften vilket såklart betyder att de väljer de transaktioner som ger dem bäst betalt). Detta betyder alltså att du behöver betala en högre avgift om du vill göra en snabb transaktion när många använder nätverket. Senast jag gjorde en överföring kostade det till exempel 46 kr vilket är alldeles för mycket för en vardaglig transaktion, men såklart billigt om jag skulle köpa något dyrt som till exempel en bil. Notera att avgiften inte påverkas av transaktionens storlek eller destination (annat land etc.).


Tiden att bekräfta en transaktion är samma som det tar att verifiera ett block - i genomsnitt tio minuter. Detta är såklart alldeles för långsamt vid vardagliga köp, kön på Starbucks är redan tillräckligt lång.


Översikt av Lightning Network

Lightning Network är en påbyggnad till Bitcoin som siktar på att möjliggöra för transaktioner att ske direkt och (nästan) utan avgift. Ett Layer 2 Protocol, eller en påbyggnad som jag för enkelhetens skull kallar det, är som det låter - ett andra lager som kan läggas ovanpå ett grundsystem. I detta fall läggs det ovanpå Bitcoin, men skulle kunna vara vilken blockkedja som helst. Påbyggnaden måste kopplas till ett grundsystem för att fungera. När det kopplas ihop med ett grundsystem ändras inte detta systemets egna egenskaper på något vis, utan det andra lagrets funktioner läggs till ovanpå. Påbyggnaden som vi pratar om här är Lightning Network och funktionerna som den erbjuder är blixtsnabba och nästan gratis transaktioner vilket är exakt det Bitcoin-systemet saknar.


Lightning Network är i grund och botten ett nätverk bestående av betalkanaler och noder. En nod är ett program som körs på en dator. Att driva en Lightning Network-nod är inte alls krävande och kan göras på vilken dator som helst. Noden har två uppgifter:

  1. Kommunicera med grundsystemet (Bitcoin-nätverket).

  2. Kommunicera och hantera betalningar med andra noder.

För att en nod ska kunna kommunicera och hantera betalningar med en annan nod krävs det att en betalkanal skapas mellan noderna. När två noder skapar en betalkanal mellan sig måste båda parter bakom noderna låsa in en summa Bitcoin i kanalen. Parterna kan sedan skicka och ta emot betalningar mellan varandra upp till summan av det inlåsta kapitalet.


Låt oss säga att vi har två noder, A och B, som öppnar en betalkanal mellan sig där båda låser in 100 satoshi. Nod A skickar 70 satoshi till nod B. Då har nod A 30 satoshi kvar som den skulle kunna skicka till B. Nod B har nu 170 satoshi som den skulle kunna skicka till A. Nod B väljer nu att skicka tillbaka 100 satoshi till nod A vilket gör att Nod A nu har 130 satoshi och nod B har 70 satoshi tillgängliga i betalkanalen. Nu har parterna handlat färdigt med varandra och vill använda sina Bitcoin till annat. För att låsa upp betalkanalens Bitcoin avslutar parterna kanalen och först då kommunicerar Lightning Network ändringen av antalet Bitcoin i noderna till Bitcoin-nätverket. I vårt exempel blir då transaktionen som skickas för att verifieras i Bitcoin-nätverket att nod B har skickat 30 satoshi till nod A. Notera att oändligt många transaktioner kan ske mellan noderna men bara en transaktion måste verifieras på Bitcoin-nätverket, vilket sker när betalkanalen avslutas.


Routing

Anledningen till att Lightning Network anses som en skalbar lösning är något som kallas för routing. Som användare av nätverket behöver du inte skapa en betalkanal till varje nod utan protokollet kan hitta vägar via andras noder till den nod du vill kommunicera med. I bilden nedan visas ett exempel på routing.

För att nod A ska kunna kommunicera med nod Q räcker det att ha en betalkanal med B, C eller D, resten sköts automatiskt. Om det finns flera möjliga vägar till noden kommer protokollet antingen att välja den billigaste eller den snabbaste vägen, beroende på användarens (nod A) preferens.


Avgifter

Avgiften som uppstår vid transaktioner över Lightning Network är kopplade till noderna. Varje nod får bestämma en eventuell avgift för att andra ska få använda deras betalkanaler. Orsaken till att denna avgift behövs är att noderna måste låsa in Bitcoin i betalkanalerna. För att få aktörer till att vilja göra detta krävs det att de kompenseras. Avgifterna kommer troligtvis att hållas låga eftersom en användare enkelt kan få protokollet att välja den billigaste vägen. Om aktörens nod är dyr kommer ingen trafik att köras där och då får aktören inga intäkter.


Sammanfattning

Lightning Network är ett nätverk bestående av noder som kopplas samman av betalkanaler. Detta nätverk kan kopplas ihop med Bitcoin-nätverket. Transaktioner kan ske mellan noderna genom betalkanalerna. När två noder kopplas samman måste båda noderna låsa in Bitcoin i betalkanalen. Transaktioner mellan noderna kan ske utan någon fördröjning eftersom kapitalet redan är säkrat genom inlåsta Bitcoin. Noder kan kommunicera med noder som den inte är direkt kopplad till genom routing. Routing kan optimeras efter antingen den snabbaste eller billigaste vägen. Varje nod får lov att ta en avgift för varje transaktion som går genom deras kanaler för att kompensera för det inlåsta kapitalet. Det krävs ingen dyr utrustning eller stora mängder energi för att driva en nod. Detta i kombination med att protokollet kan programmeras för att hitta den billigaste vägen gör att det är troligt att transaktioner kommer att vara (nästan) gratis. När en betalkanal bryts skapas en transaktion på Bitcoin-nätverket som verifierar balansändringen mellan noderna.


Lightning Network löser därmed Bitcoin-nätverkets två stora problem med dyra och långsamma transaktioner och möjliggör för att Bitcoin ska kunna användas för vardagliga betalningar.


0 kommentarer

Senaste inlägg

Visa alla
Post: Blog2_Post
bottom of page