Bitcoin Obegränsad, en av Bitcoin Core programgafflar som introducerades i slutet av 2015, fick stor uppmärksamhet de senaste månaderna. Projektet fick hash-stöd från flera nya Bitcoin-gruvpooler, inklusive ViaBTC, GBMiners och BTC.TOP, medan antagande av noder verkar också öka.

Den centrala idén bakom Bitcoin Unlimited – specificerad i “Bitcoin Unlimited Improvement Proposal 001”(BUIP001) – är att ge kontroll över Bitcoins gräns för blockstorlek till användare och gruvarbetare. Eller kanske, mer exakt, för att göra denna kontroll mer tydlig och lättare att hantera.

Denna kontroll går dock på bekostnad av Bitcoins starka och automatiserade konsensusmekanism. Med BUIP001 finns det ett antal scenarier där olika användare hamnar i olika kedjor – antingen tillfälligt eller permanent.

Här är en (troligen ofullständig) översikt.

(Obs! Om du inte är säker på hur Bitcoin Unlimited fungerar, se till att du först läser “En närmare titt på Bitcoin Unlimiteds konfigurerbara blockstorleksförslag.”)

Om inte alla byter till Bitcoin Unlimited

Det första exemplet är också det mest uppenbara.

Det verkar för närvarande mycket osannolikt att olika Bitcoin-implementeringar – som Bitcoin Core, Libbitcoin, BTCD eller Bcoin – antar BUIP001 eller något kompatibelt. Detta gäller särskilt eftersom Bitcoin Unlimited-teamet inte har skickat BUIP001 till BIP-processen för tvärimplementering av Bitcoin; de flesta implementeringar har därför inte ens förslaget till behandling.

Men om inte alla viktiga Bitcoin-implementeringar antar BUIP001 eller en kompatibel lösning, kan blockchain inte konvergera på det sätt som Bitcoin Unlimited-förespråkare föreställer sig. I stället, om en majoritet av gruvarbetare (med hashkraft) ökar maximal generationstorlek (MG) och överdriven blockstorlek (EB) för att producera block som är större än en megabyte, skulle Bitcoin delas upp i två oförenliga nätverk och valutor, inte olikt Ethereum och Ethereum Classic.

Eftersom denna splittring inte skulle samordnas eller inkludera säkerhetsåtgärder kan följderna bli mycket värre än splittringen mellan Ethereum och Ethereum Classic..

En megabyte-användare skulle uppleva besvär, och ännu mer om deras hashkraft initialt representerar en mindre minoritet. Detta skulle inkludera (mycket) långsammare blockbekräftelser, kanske till och med till den punkt där deras kedja blir nästan oanvändbar (åtminstone tillfälligt). Dessutom riskerar de spela om attacker om de också vill använda “Bitcoin Unlimited-kedjan”.

Bitcoin Unlimited-användare skulle drabbas av liknande olägenheter, även om deras initiala blockbekräftelser inte skulle vara lika långsamma, eftersom de skulle ha stöd från hash-power-majoriteten.

För att motverka detta skulle dock Bitcoin Unlimited-användare vara osäkra på om “deras” kedja skulle fortsätta att existera alls. Om en megabyte-kedja någonsin skulle komma över “Bitcoin Unlimited-kedjan” i längd (egentligen: totalt bevis på arbete), skulle Bitcoin Unlimited-noder automatiskt byta tillbaka till en megabyte-kedja. Följaktligen skulle de avyttra (“föräldralösa”) hela “Bitcoin Unlimited-kedjan” sedan splittringen, även om kedjan är tusentals kvarter djup. Alla “deras” transaktioner skulle glömmas bort, kanske kostar många människor mycket pengar.

Om en grupp hardcore-en-megabyte-supportrar och spekulanter kan få detta scenario att verka till och med något troligt, kan självuppfyllande profetia-dynamik utgöra ett existentiellt hot mot “Bitcoin Unlimited-kedjan”: ingen vill hålla värdet på kedjan som kan vara kasseras.

Om alla byter till Bitcoin Unlimited

Men låt oss anta att bytet till BUIP001 går smidigt. Alla viktiga Bitcoin-implementeringar använder de nya konfigurerbara alternativen, och alla användare och gruvarbetare uppdaterar sin programvara i enlighet med detta.

Återigen – även i det här scenariot – finns det ingen teknisk anledning att alla användare kommer att konvergera i en enda kedja på ett meningsfullt sätt. Olika användare kan konfigurera sina noder så att de inte är samförstånd under resten av livet.

Som ett enkelt exempel kan en minoritet av gruvarbetare konfigurera både MG och EB till en megabyte, medan de ställer överdrivet acceptansdjup (AD) till 10.000.000. Med andra ord kommer dessa noder att efterlikna den aktuella gränsstorleken på en megabyte i ungefär två århundraden – oavsett vad resten av nätverket gör.

Under tiden kan en majoritet av gruvarbetare ställa in MG och EB för att skapa och acceptera block upp till två megabyte.

Så snart en gruvarbetare bryter ett block på två megabyte kommer majoriteten av gruvarbetare att bygga på detta block och utöka denna kedja. Minoriteten av gruvarbetare ignorerar dock denna kedja praktiskt taget för alltid: precis som beskrivs i föregående avsnitt i den här artikeln.

Och det skulle inkludera samma risker som tidigare beskrivits också. Om en-megabyte-kedjan någonsin överträffar två-megabyte-kedjan i längd, kasseras två-megabyte-kedjan helt. Även efter tusentals block.

Om alla begränsar AD till fyra bekräftelser

Bitcoin Unlimited-användare kan ha en starkare grad av konvergens på en enda kedja med tekniska medel, om de håller sin AD-inställning relativt låg. Standardinställningen i Bitcoin Unlimited är fyra: Ett alltför stort block kräver att fyra block som bryts ovanpå det anses vara giltiga.

Men detta ger också problem.

Det första problemet är att även med denna låga standard är alla transaktioner med mindre än fem bekräftelser mycket mindre säkra än de är nu. Anta att en transaktion visar tre bekräftelser i en användares plånbok. Den användaren har inget sätt att veta om en alternativ blockchain bryts med en konkurrerande (dubbelt förbrukad) transaktion, som redan har fyra bekräftelser. Detta kan hända när som helst.

Om den alternativa kedjan når sin femte bekräftelse förstörs användarens kedja och hans inkommande transaktion förloras – även om den hade tre bekräftelser.

Naturligtvis finns “föräldralösa block” redan och användare som behöver mer säkerhet bör vänta på fler bekräftelser.

Men uteslutande av exotiska och dyra typer av skadliga attacker kan tre föräldralösa block för närvarande bara bero på freak-tillfällen. Olika grupper av gruvarbetare måste samtidigt hitta tre kvarter nästan exakt samtidigt, tre separata och efterföljande sammanfall, för att nätverket ska uppleva att många föräldralösa barn.

Bitcoin Unlimited, å andra sidan, kastar en ny faktor i mixen och lägger till en anledning för nätverket att uppleva tre föräldralösa block. Gruvarbetare tävlar inte bara för att förlänga den längsta giltiga kedjan utan röstar också om protokollregler mellan kedjor. Denna process skulle också vara synlig och ganska förutsägbar för angripare och därför lätt att utnyttja.

Det andra problemet är att det att behöva hålla AD vid standardinställningen av fyra bekräftelser av säkerhetsskäl i huvudsak försämrar syftet med BUIP001. Medan Bitcoin Unlimited ska överlämna blockstorleksgränsen till både användare och (alla) gruvarbetare, säkerställer låga AD-nivåer att även den minsta majoriteten av gruvarbetare alltid kan åsidosätta lokala blockstorleksinställningar genom att helt enkelt bryta en serie större block. Detta gör MG och EB meningslösa för alla andra: ”placebokontroller.”

Faktum är att AD föreslår ett udda val: Antingen noder och gruvarbetare sätter en hög AD för relativ autonomi, men riskerar att dela nätverket med potentiellt skadliga konsekvenser; eller dessa noder och gruvarbetare väljer en låg AD för att förbättra konvergensnivån – men bara för att de effektivt ger upp kontrollen till en majoritet av gruvarbetarna. (Och om avsikten är att ge upp kontrollen till en majoritet av gruvarbetare finns det mer enkla lösningar tillgängliga.)

Under kontroversiella förhållanden

Saker blir värre under kontroversiella förhållanden.

Om inte alla vill ha det som är bäst för Bitcoin, och istället skulle vissa enheter – av vilken anledning som helst – hellre se att Bitcoin misslyckas, försämras säkerhetsantagandena från BUIP001 ytterligare. Och ju mer pengar en motståndare har till förfogande för att orsaka oroligheter, desto värre skulle Bitcoin Unlimiteds konvergensmekanism utföra.

För det första är nodsignalering trivialt falsk. Alla som har resurser för att snurra upp “falska” (ekonomiskt irrelevanta) noder kan låtsas att det finns utbrett användarsupport för en viss blockstorleksgränsnivå, medan det i verkligheten inte finns det. Om gruvarbetare går efter dessa signaler kan de dela kedjan med mindre användarstöd än förväntat.

Dessutom kan en skadlig gruvarbetare ofta dela upp nätverket. En sådan gruvarbetare kan övervaka EB-nivåer som andra gruvarbetare signalerar (vilket inte är så lätt att förfalska) och medvetet bryta ett block som faller mitt emellan vad dessa gruvarbetare kommer att acceptera. Om cirka 50 procent av hashkraften accepterar block upp till två megabyte, och de andra 50 procent stöder större block, skulle ett 2,01 megabyteblock ignoreras av de första 50 procenten och accepteras av de andra 50 procenten.

Förutsatt att standard AD på fyra bibehålls kan kedjan splittras i mer än en timme. Som förklarats i föregående avsnitt skulle Bitcoin-nätverket / -nätverken vara väldigt opålitliga under denna period, eftersom kedjan på vardera sidan om split kan kasseras.

En motståndare som kontrollerar endast 0,7 procent av den globala hashkraften kan orsaka denna oro ungefär en gång varje dag. Och såvida inte den överväldigande majoriteten av gruvarbetare redan är överens om deras EB i alla fall, bör den där lilla platsen att missbruka nätverket alltid finnas.

Dessutom, som ett resultat av denna attack, skulle hälften av alla gruvarbetare nå sina AD-trösklar och öppna sina “klibbiga portar.” Detta kan möjliggöra en andra våg av attacker. Nu har den skadliga gruvarbetaren ungefär 24 timmar på sig att bryta ett ännu större block, som – ironiskt nog – bara den initiala mindre sidan av kedjan skulle acceptera eftersom deras klibbiga portar är öppna, och den ursprungligen större sidan av kedjan skulle avvisa. Detta skulle skapa ytterligare en splittring.

Senast, om och när den här nya “klibbiga grindkedjan” når AD-trösklarna för de återstående noderna, Allt klibbiga portar är öppna och det finns ingen begränsning av blockstorleken alls. En motståndare kan nu bryta block som är så stora att de kan fragment kedjan eftersom inte alla noder kan hålla jämna steg – kanske på grund av bandbreddsbegränsningar, latens eller andra maskingränser.

Emergent Consensus

Medan Bitcoin Unlimited utan tvekan erbjuder mer personlig autonomi för användarna, säkerställer det inte teknisk blockchain-konvergens. Men det här är inte nytt. Till viss del berörs det till och med i Bitcoin Unlimited FAQ.

Ändå förväntar sig Bitcoin Unlimited-förespråkare att användare konvergerar i en enda blockchain. Detta förklaras av vad som kanske bäst anses vara Bitcoin Unlimiteds underliggande filosofi: “Emergent Consensus.”

I stället för en rent teknisk mekanism är Emergent Consensus en övertygelse om att alla deltagare i Bitcoin-ekosystemet har ett tillräckligt starkt (ekonomiskt) incitament att hitta samförstånd om en enda blockchain, även om deras programvara inte gör detta automatiskt.

Nästa artikel kommer att ta en närmare titt på denna Emergent Consensus-filosofi.

Författarens anteckning: Den här artikeln är inte en fullständig översikt över alla problem som kan uppstå från BUIP001. Viktigast av allt ignorerar det avvägningar och svagheter som härrör från en överdimensionerad (eller flytande) blockstorleksgräns, som nod centralisering, gruvarbetare centralisering, eller avgift ekonomi, att istället fokusera på (brist på) blockchain-konvergens.

”Jonny1000” bidrog till den här artikeln.