Debatten om blockstorlek

Det pågår en stundtals hätsk debatt om Bitcoins framtid. De block av transaktioner som skapas var tionde minut börjar bli fulla, d.v.s. de närmar sig nu den gräns på 1MB som finns i Bitcoinprotokollet, en gräns som innebär att nätverket i nuläget, i bästa fall, kan hantera ca 7 transaktioner per sekund. Att öka blockstorleken är tekniskt väldigt enkelt men dels så finns det en oro för vilka konsekvenser det skulle få och dels så är det en ”hard fork”, vilket innebär att alla som kör en Bitcoinserver måste uppgradera när ändringen görs. Man vill inte göra sådana förändringar om det inte verkligen behövs så många diskuterar exakt hur förändringen ska se ut och andra motsätter sig den helt.

För

Det huvudsakliga argument som förs för att (så snart som möjligt) öka blockstorleken är helt enkelt att 7 transaktioner per sekund är på tok för lite för ett internationellt betalningsnätverk (jämför med VISA som har flera tusen transaktioner per sekund) och att det inte finns något tekniskt hinder för att göra det. Man oroar sig för att Bitcoins tillväxt kommer att stanna av eller att Bitcoin helt tappar all trovärdighet om inte människor får igenom sina transaktioner. Man pekar också på att gränsen när den sattes var tänkt att vara en temporär lösning för att förhindra attacker/spam.

Emot

Argumenten mot en ökning är lite mer komplicerade. Dels handlar det om att Bitcoin kommer att bli mer centraliserat eftersom det blir mer resurskrävande att driva en full nod. Möjligheten att skapa stora block som propagerar långsammare gynnar stora aktörer. Det finns också en risk att Bitcoins totala hash rate kommer att minska (vilket gör nätverket mer känsligt för en attack) i takt med att blockbelöningen minskar (vilket händer igen om ca ett år när den minskar från 25 till 12,5 BTC). Transaktionsavgifter är tänkt att ersätta blockbelöningen men om det inte finns någon konkurrens om plats i blocken kommer inte heller avgifterna att bli signifikanta nog.

Ett annat argument är att Bitcoin oavsett ökningar aldrig kommer att kunna hantera all världens transaktioner, att det inte är rimligt att minsta kaffeköp världen över ska hanteras av alla som deltar i nätverket.

Vad är Bitcoin?

En del av motsättningarna bottnar alltså i att man har olika syn på vad Bitcoin ska vara. Är det ett nätverk som alla ska använda dagligen (som VISA) eller är det snarare en typ av avvecklingstjänst där de dagliga transaktionerna sker i lager byggda ovanpå Bitcoin? En anledning till att många velat se att man faktiskt använder själva Bitcoinnätverket till alla transaktioner är att de alternativ, de ”lager ovanpå”, som hittills funnits i princip är samma typ av mellanhänder som dagens banker. Centraliserade och har kontroll över dina pengar, alltså inte alls i linje med Bitcoins vision.

Detta kan dock komma att ändras tack vare nya tekniska framsteg. Ett av de mest intressanta projekten kallas Lightning Network och skulle innebära att det faktiskt blev möjligt att använda Bitcoin som en slags avvecklingstjänst utan att för den sakens skull tumma på decentraliseringen. Mer om Lightning Network kommer i nästa inlägg.

 

  • Jonathan Silverblood

    ”Detta kan dock komma att ändras tack vare nya tekniska framsteg. Ett av de mest intressanta projekten kallas Lightning Network”

    Utvecklarna bakom Lightning Network har i flera fall själva sagt att vi måste öka blockstorleken för att det skall vara möjligt att driva Lightning Network på bitcoins blockkjedga, så det är inte en lösning som tillåter oss att stanna med 1MB block.

    • D.H.

      För att vi ska kunna skala upp till typ VISA-nivå tror jag de pratade om då va? Det finns inget tekniskt som hindrar att köra Lightning Network med 1MB-block, eller har jag missat nåt?

      • Jonathan Silverblood

        Vet inte med säkerhet om det skulle vara teoretiskt möjligt att köra LN på 1MB block men i intervjuer har utvecklarna sagt att LN inte är en lösning på problemet med att 1MB är för små då LN kräver större block än vad vi har idag.

        Så som jag ser det så kommer LN bara att minska transaktionsflödet i dem parter där det finns återkommande transaktioner eller där vi har mycket starka hubbar (många anslutna) och att det även med LN kommer att användas en hel del vanliga transaktioner (+counterparty/color-coin, +factom, +andra applikationer) så med LN behöver ökningen inte ske lika snabbt men måste ändå ske.

        • Thor

          LN går definitivt att använda med 1MB block. Det utvecklarna pratade om var att storleken på blocken behövde höjas om 7 miljarder människor skulle kunna använda det, och då skulle åtminstone 133MB block behövas.

          Med 1MB block och de siffror som utvecklarna använde så skulle LN möjliggöra att 50 miljoner människor skulle kunna använda Bitcoin via LN.

          I vilket fall som helst så är LN det bästa alternativ till att skala Bitcoin, men till slut så behöver blockstorleken ökas och det bästa alternativet jag sett än så länge är Peter Wuilles förslag: https://gist.github.com/sipa/c65665fc360ca7a176a6

          I övrigt väntar jag ivrig på Gregory Maxwell’s så kallade flexcap förslag: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-May/008017.html

          Det viktigaste med en hardfork, i min mening, är att det finns en bred konsensus kring det som implementeras.

  • Jonathan Silverblood

    ”Argumenten mot en ökning är lite mer komplicerade. Dels handlar det om
    att Bitcoin kommer att bli mer centraliserat eftersom det blir mer
    resurskrävande att driva en full nod.”
    – Det blir bara mer resurskrävande OM blocken får mer transaktioner i sig. Skulle det vara så att bitcoin blir såpass populärt och använt att blocken faktiskt växer på grund av användningen så är det ett problem vi kan ta itu med då. (det finns flera förslag på hur man minimerar resursförbrukningen idag, fler kommer säkert komma om det blir ett reallt problem istället för ett teoritiskt.)

    ”Möjligheten att skapa stora block
    som propagerar långsammare gynnar stora aktörer.”
    – Detta är falskt. Det är inte storleken på aktörerna, utan deras nätverkscapacitet som är avgörande, så en full nod på en stabil 100/100 lina här i sverige är minst like bra eller bättre som flertalet av dem stora aktörerna som sitter i länder där sådana anslutningar knappt är tillgängliga. Vidare så är fördelen som det skulle gett dem mycket låg (vi talar <1%), jämfört med värdet av att kunna skapa sådana block.

    "Det finns också en risk
    att Bitcoins totala hash rate kommer att minska (vilket gör nätverket
    mer känsligt för en attack) i takt med att blockbelöningen minskar
    (vilket händer igen om ca ett år när den minskar från 25 till 12,5 BTC)."
    – Detta verkar inte ha så mycket med blockstorleken att göra.

    "Transaktionsavgifter är tänkt att ersätta blockbelöningen men om det
    inte finns någon konkurrens om plats i blocken kommer inte heller
    avgifterna att bli signifikanta nog."
    – Avgifterna idag är redan signifikanta, och i en del sammanhang lika höga som etablerade bank och betalväsendet. Problemet är att inte tillräckligt många transaktioner sker i volym och att även om nätverket växer så har vi inte utrymme för särskilt många mer transaktioner om vi inte ökar blockstorleken.

    • D.H.

      ”Det blir bara mer resurskrävande OM blocken får mer transaktioner i sig”

      Jovisst, men det tror jag är underförstått i alla diskussioner om blockstorleken att det kommer att hända (på lite sikt).

      ”Det är inte storleken på aktörerna, utan deras nätverkscapacitet som är avgörande”

      Det är en bra poäng, det var lite slarvigt uttryckt. Det gynnar vissa aktörer hur som helst.

      ”Detta verkar inte ha så mycket med blockstorleken att göra”

      Det hänger ihop med efterföljande mening. Alltså, om utrymmet i blocken är i praktiken obegränsat när blockbelöningen inte längre finns kvar så finns det risk att ingen betalar några avgifter. Med ”signifikanta” menar jag alltså tillräckligt stora totalt sett för att Bitcoin inte ska få en farligt låg hash rate.

      • Jonathan Silverblood

        Det är bra om det finns inbyggda incitament för att miners skall fortsätta sitt arbete, och när blockrewarden i stort sett försvinner så är det avgifterna som blir intressanta.

        Om miners kommer att ställa egna minimikrav på avgifterna (i förhållande till sina utgifter) eller om man skall hårdkoda en begränsning i blockstorlek för att göra resursen mer sällsynt är jag lite tveksam till.

        Jag tror att mitten-vägen är den bästa, dvs, höj storleken långsamt, så att den psykologiska effekten finns kvar (folk tänker: block är inte oändligt stora, då kommer det kosta att få plats), men inte så långsamt att folk misslyckas med att genomföra transaktioner.

  • Lars Pensjö

    Såg just ett intressant inlägg i frågan: http://www.reddit.com/r/ethereum/comments/3h6268/bitcoin_blocksize_debate/cu4lrha

    Tl;dr Obegränsade block fungerar dåligt eftersom det finns incitament från miners att hålla nere storleken pga risken för ”stale blocks”.