Bitcoin Ubegrænset, en af de Bitcoin Core softwaregafler introduceret i slutningen af 2015, fik stor opmærksomhed i de seneste måneder. Projektet fik hash-strømstøtte fra flere nye Bitcoin-minedrifter, herunder ViaBTC, GBMiners og BTC.TOP, mens vedtagelse af node synes også at være stigende.
Den centrale idé bag Bitcoin Unlimited – specificeret i “Forslag til forbedring af Bitcoin ubegrænset 001”(BUIP001) – er at håndstyre Bitcoins blokstørrelsesgrænse til brugere og minearbejdere. Eller måske mere præcist for at gøre denne kontrol mere eksplicit og lettere at håndtere.
Denne kontrol kommer dog på bekostning af Bitcoins stærke og automatiserede konsensusmekanisme. Med BUIP001 er der en række scenarier, hvor forskellige brugere ender i forskellige kæder – enten midlertidigt eller permanent.
Her er en (sandsynligvis ufuldstændig) oversigt.
(Bemærk: Hvis du ikke er sikker på, hvordan Bitcoin Unlimited fungerer, skal du først læse “Et nærmere kig på Bitcoin Unlimited’s konfigurerbare forslag til blokstørrelse.”)
Hvis ikke alle skifter til Bitcoin Ubegrænset
Det første eksempel er også det mest oplagte.
Det virker i øjeblikket meget usandsynligt, at forskellige Bitcoin-implementeringer – som Bitcoin Core, Libbitcoin, BTCD eller Bcoin – vil vedtage BUIP001 eller noget kompatibelt. Dette gælder især, fordi Bitcoin Unlimited-teamet ikke har sendt BUIP001 til krydsimplementeringsprocessen med Bitcoin Improvement Proposal (BIP); de fleste implementeringer har derfor ikke engang forslaget til behandling.
Men hvis ikke alle vigtige Bitcoin-implementeringer vedtager BUIP001 eller en kompatibel løsning, kan blockchain ikke konvergere på den måde, som Bitcoin Unlimited-talsmænd forestiller sig. I stedet for, hvis et flertal af minearbejdere (med hashkraft) øger Maksimal generationstørrelse (MG) og Overdreven blokstørrelse (EB) for at producere blokke større end en megabyte, ville Bitcoin opdele sig i to inkompatible netværk og valutaer, ikke ulig Ethereum og Ethereum Classic.
Men fordi denne opdeling ikke ville blive koordineret eller omfatte sikkerhedsforanstaltninger, kan konsekvenserne være meget værre end opdelingen mellem Ethereum og Ethereum Classic.
En megabyte-bruger ville opleve ulemper, og endnu mere, hvis deres hashkraft oprindeligt repræsenterer et mindre mindretal. Dette vil omfatte (meget) langsommere blokbekræftelser, måske endda til det punkt, hvor deres kæde bliver næsten ubrugelig (i det mindste midlertidigt). Derudover er de i fare for replay-angreb hvis de også vil bruge “Bitcoin Unlimited-kæden”.
Bitcoin Unlimited-brugere vil lide lignende ulemper, selvom deres oprindelige blokbekræftelse ikke ville være så langsom, da de ville have støtte fra hash-power-flertallet.
For at imødegå dette ville Bitcoin Unlimited-brugere imidlertid være usikre på, om “deres” kæde overhovedet ville fortsætte med at eksistere. Hvis den ene megabyte-kæde nogensinde skulle overhale “Bitcoin Unlimited-kæden” i længden (virkelig: samlet bevis for arbejde), ville Bitcoin Unlimited-noder automatisk skifte tilbage til den ene megabyte-kæde. Derfor vil de bortskaffe (“forældreløs”) hele “Bitcoin Unlimited-kæden” siden splittelsen, selvom denne kæde er tusindvis af blokke dyb. Alle “deres” transaktioner ville blive glemt, og måske koste mange mennesker mange penge.
Hvis en gruppe af hardcore en megabyte-tilhængere og spekulanter kan få dette scenarie til at virke endda lidt plausibelt, kan selvopfyldende profetiedynamik udgøre en eksistentiel trussel mod “Bitcoin Unlimited-kæden”: ingen ønsker at holde værdi på den kæde, der kan være kasseret.
Hvis alle skifter til Bitcoin Ubegrænset
Men lad os antage, at skiftet til BUIP001 går glat. Alle vigtige Bitcoin-implementeringer vedtager de nye konfigurerbare muligheder, og alle brugere og minearbejdere opdaterer deres software i overensstemmelse hermed.
Endnu en gang – selv i dette scenario – er der ingen teknisk grund til, at alle brugere konvergerer i en enkelt kæde på en meningsfuld måde. Forskellige brugere kan konfigurere deres noder til at forblive uden for konsensus resten af deres liv.
Som et simpelt eksempel kan et mindretal af minearbejdere konfigurere både MG og EB til en megabyte, mens de indstiller Excessive Acceptance Depth (AD) til 10.000.000. Med andre ord vil disse noder efterligne den nuværende grænse på en megabyte blokstørrelse i omkring to århundreder – uanset hvad resten af netværket gør.
I mellemtiden kan et flertal af minearbejdere indstille MG og EB til at oprette og acceptere blokke op til to megabyte.
Så snart en minearbejder udvinder en to-megabyte-blok, bygger flertallet af minearbejdere på denne blok og udvider denne kæde. Mindretallet af minearbejdere ignorerer imidlertid denne kæde praktisk talt for evigt: nøjagtigt som beskrevet i det foregående afsnit af denne artikel.
Og det vil også omfatte de samme risici som tidligere beskrevet. Hvis kæden på en megabyte nogensinde overhænger kæden på to megabyte i længden, kasseres kæden på to megabyte fuldstændigt. Selv efter tusinder af blokke.
Hvis alle begrænser AD til fire bekræftelser
Bitcoin Unlimited-brugere kan have en stærkere grad af konvergens på en enkelt kæde ved tekniske midler, hvis de holder deres AD-indstilling relativt lav. Standardindstillingen i Bitcoin Unlimited er fire: En overdreven blok kræver, at fire blokke, der udvindes oven på den, betragtes som gyldige.
Men dette giver også problemer.
Det første problem er, at selv med denne lave standard er enhver transaktion med mindre end fem bekræftelser meget mindre sikker end den er nu. Sig, at en transaktion viser tre bekræftelser i en brugers tegnebog. Den bruger har ingen måde at vide, om en alternativ blockchain udvindes med en konkurrerende (dobbelt brugt) transaktion, der allerede har fire bekræftelser. Dette kan ske når som helst.
Hvis den alternative kæde først når sin femte bekræftelse, kasseres brugerens kæde, og hans indgående transaktion mistes – selvom den havde tre bekræftelser.
Selvfølgelig findes der allerede “forældreløse blokke”, og brugere, der kræver mere sikkerhed, bør vente på flere bekræftelser.
Men udelukkende eksotiske og dyre typer ondsindede angreb, kan tre forældreløse blokke i øjeblikket virkelig kun skyldes freak-sammenfald. Forskellige grupper af minearbejdere skal tilfældigvis finde tre blokke på næsten nøjagtigt samme tid, tre separate og efterfølgende sammenfald, for at netværket kan opleve, at mange forældreløse børn.
På den anden side kaster Bitcoin Unlimited en ny faktor i blandingen og tilføjer en grund til, at netværket oplever tre forældreløse blokke. Minearbejdere kæmper ikke kun for at udvide den længste gyldige kæde, men stemmer også om protokolregler mellem kæder. Denne proces ville også være synlig og ganske forudsigelig for angribere og derfor let at udnytte.
Det andet problem er, at det at skulle beholde AD som standard på fire bekræftelser af sikkerhedsmæssige årsager i det væsentlige besejrer formålet med BUIP001. Mens Bitcoin Unlimited formodes at give kontrol over blokstørrelsesgrænsen til både brugere og (alle) minearbejdere, sikrer lave AD-niveauer, at selv det mindste flertal af minearbejdere altid kan tilsidesætte lokale blokstørrelsesindstillinger ved blot at udvinde en række større blokke. Dette gør MG og EB meningsløs for alle andre: “placebokontrol.”
Faktisk foreslår AD et ulige valg: Enten noder og minearbejdere sætter en høj AD for relativ autonomi, men risikerer at opdele netværket med potentielt skadelige konsekvenser; eller disse knudepunkter og minearbejdere vælger en lav AD for at forbedre konvergensniveauet – men kun fordi de effektivt opgiver kontrol til et flertal af minearbejdere. (Og hvis hensigten er at opgive kontrollen til et flertal af minearbejdere, er der mere enkle løsninger til rådighed.)
Under kontradiktoriske forhold
Tingene bliver værre under kontroversielle forhold.
Hvis ikke alle ønsker, hvad der er bedst for Bitcoin, og i stedet vil nogle enheder – uanset årsag – hellere se Bitcoin mislykkes, nedbrydes sikkerhedsantagelserne fra BUIP001 yderligere. Og jo flere midler en modstander har til rådighed for at skabe uro, jo værre vil Bitcoin Unlimited’s konvergensmekanisme udføre.
For det første er nodesignalering trivielt spoofed. Enhver med ressourcerne til at spinde “falske” (økonomisk irrelevante) noder op kan lade som om der er bred brugerstøtte til et bestemt grænseniveau for blokstørrelse, mens det i virkeligheden ikke er. Hvis minearbejdere følger disse signaler, kan de forkæle kæden med mindre brugerstøtte end forventet.
Derudover kan en ondsindet minearbejder ofte opdele netværket. En sådan minearbejder kunne overvåge EB-niveauer, der er signaleret af andre minearbejdere (hvilket ikke er så let forfalsket), og med vilje minere en blok, der falder midt imellem, hvad disse minearbejdere accepterer. Hvis cirka 50 procent af hashkraft accepterer blokke op til to megabyte, og de andre 50 procent understøtter større blokke, ville en 2,01 megabyte blok blive ignoreret af de første 50 procent og accepteret af de andre 50 procent.
Forudsat at standard AD på fire opretholdes, kunne kæden splittes i mere end en time. Som forklaret i det foregående afsnit ville Bitcoin-netværket være meget upålideligt i denne periode, da kæden på begge sider af split kan kasseres.
En modstander, der kun kontrollerer 0,7 procent af den globale hashkraft, kan forårsage dette niveau af uro omkring en gang hver dag. Og medmindre det overvældende flertal af minearbejdere allerede er enige om deres EB alligevel, skal det søde sted at misbruge netværket altid eksistere.
Desuden ville halvdelen af alle minearbejdere som et resultat af dette angreb nå deres AD-tærskler og åbne deres “klæbende porte.” Dette kan muliggøre en anden bølge af angreb. Nu har den ondsindede minearbejder omkring 24 timer til at udvinde en endnu større blok, som – ironisk nok – kun den oprindeligt mindre side af kæden ville acceptere, fordi deres klæbende porte er åbne, og den oprindeligt større side af kæden ville afvise. Dette ville skabe en anden split.
Sidste, hvis og når denne nye “klæbende portkæde” når AD-tærsklerne for de resterende knudepunkter, alle klæbende porte er åbne, og der er slet ingen grænse for blokstørrelse. En modstander kan nu udvinde blokke, der er så store, at de kan fragment kæden, da ikke alle noder kan følge med – måske på grund af båndbreddebegrænsninger, latens eller andre maskinbegrænsninger.
Emergent Consensus
Mens Bitcoin Unlimited uden tvivl tilbyder brugerne mere personlig autonomi, sikrer det ikke teknisk blockchain-konvergens. Men dette er ikke nyt. Til en vis grad berøres det endda i Bitcoin Unlimited FAQ.
Alligevel forventer Bitcoin Unlimited-fortalere, at brugerne konvergerer på en enkelt blockchain. Dette forklares med, hvad der måske bedst betragtes som Bitcoin Unlimited’s underliggende filosofi: “Emergent Consensus.”
I stedet for en rent teknisk mekanisme er Emergent Consensus en overbevisning om, at alle deltagere i Bitcoin-økosystemet har et stærkt (økonomisk) incitament til at finde konsensus om en enkelt blockchain, selvom deres software ikke gør dette automatisk.
Den næste artikel vil se nærmere på denne Emergent Consensus-filosofi.
Forfatterens note: Denne artikel er ikke et komplet overblik over alle de problemer, der kan skyldes BUIP001. Vigtigst er det, at det ignorerer afvejninger og svagheder, der stammer fra en overdimensioneret (eller flydende) blokstørrelsesgrænse, som knude centralisering, minearbejder centralisering, eller betaling økonomi, for i stedet at fokusere på (mangel på) blockchain-konvergens.
“Jonny1000” bidrog til denne artikel.