Bitcoin Ubegrenset, en av Bitcoin Core programvaregafler introdusert i slutten av 2015, fikk stor oppmerksomhet de siste månedene. Prosjektet fikk hash-kraftstøtte fra flere nye Bitcoin-gruvebassenger, inkludert ViaBTC, GBMiners og BTC.TOP, samtidig som adopsjon av noder ser ut til å øke også.
Den sentrale ideen bak Bitcoin Unlimited – spesifisert i “Bitcoin Unlimited Improvement Proposal 001”(BUIP001) – er å gi kontroll over Bitcoins grense for blokkstørrelse til brukere og gruvearbeidere. Eller kanskje, mer nøyaktig, for å gjøre denne kontrollen mer eksplisitt og lettere å håndtere.
Imidlertid kommer denne kontrollen på bekostning av Bitcoins sterke og automatiserte konsensusmekanisme. Med BUIP001 er det en rekke scenarier der forskjellige brukere havner i forskjellige kjeder – enten midlertidig eller permanent.
Her er en (sannsynligvis ufullstendig) oversikt.
(Merk: Hvis du ikke er sikker på hvordan Bitcoin Unlimited fungerer, må du først lese “En nærmere titt på Bitcoin Unlimiteds konfigurerbare forslag til blokkstørrelse.”)
Hvis ikke alle bytter til Bitcoin Unlimited
Det første eksemplet er også det mest åpenbare.
Det virker for tiden veldig usannsynlig at forskjellige Bitcoin-implementeringer – som Bitcoin Core, Libbitcoin, BTCD eller Bcoin – vil vedta BUIP001, eller noe kompatibelt. Dette gjelder spesielt fordi Bitcoin Unlimited-teamet ikke har sendt BUIP001 til kryssimplementeringsprosessen for Bitcoin Improvement Proposal (BIP); de fleste implementeringer har derfor ikke engang forslaget til vurdering.
Men hvis ikke alle viktige Bitcoin-implementeringer vedtar BUIP001 eller en kompatibel løsning, kan ikke blockchain konvergere på den måten Bitcoin Unlimited-talsmenn ser for seg. I stedet, hvis et flertall av gruvearbeidere (med hashkraft) øker maksimal generasjonsstørrelse (MG) og overdreven blokkstørrelse (EB) for å produsere blokker som er større enn en megabyte, vil Bitcoin dele seg i to inkompatible nettverk og valutaer, ikke ulikt Ethereum og Ethereum Classic.
Men fordi denne splittelsen ikke ville bli koordinert eller inkludere sikkerhetsforanstaltninger, kan konsekvensene være mye verre enn splittelsen mellom Ethereum og Ethereum Classic..
En megabyte-brukere vil oppleve ulemper, og enda mer hvis deres hashkraft i utgangspunktet representerer et mindre mindretall. Dette vil omfatte (mye) langsommere blokkbekreftelser, kanskje til og med til det punktet hvor kjeden deres blir nesten ubrukelig (i det minste midlertidig). I tillegg er de i fare for replay-angrep hvis de også vil bruke “Bitcoin Unlimited-kjeden”.
Bitcoin Unlimited-brukere vil lide lignende ulemper, selv om deres første blokkbekreftelse ikke ville være så treg, ettersom de ville ha støtte fra hash-power-flertallet.
For å motvirke det, vil imidlertid Bitcoin Unlimited-brukere være usikre på om “deres” kjede i det hele tatt vil fortsette å eksistere. Hvis den ene megabytekjeden noen gang skulle overgå “Bitcoin Unlimited-kjeden” i lengde (egentlig: total bevis på arbeid), ville Bitcoin Unlimited-noder automatisk bytte tilbake til den ene megabytekjeden. Følgelig vil de avhende (“foreldreløs”) hele “Bitcoin Unlimited-kjeden” siden splittelsen, selv om kjeden er tusenvis av blokker dyp. Alle “deres” transaksjoner ville bli glemt, og kanskje koste mange mennesker mye penger.
Hvis en gruppe hardcore-tilhengere og spekulanter på en megabyte kan få dette scenariet til å virke til og med litt plausibelt, kan selvoppfyllende profetiedynamikk utgjøre en eksistensiell trussel mot “Bitcoin Unlimited-kjeden”: ingen vil ha verdi på kjeden som kan være forkastet.
Hvis alle bytter til Bitcoin Unlimited
Men la oss anta at byttet til BUIP001 går greit. Alle viktige Bitcoin-implementeringer vedtar de nye konfigurerbare alternativene, og alle brukere og gruvearbeidere oppdaterer programvaren deretter.
Nok en gang – selv i dette scenariet – er det ingen teknisk grunn til at alle brukere vil konvergere i en enkelt kjede på en meningsfull måte. Ulike brukere kan konfigurere nodene sine slik at de forblir utenfor konsensus resten av livet.
Som et enkelt eksempel kan et mindretall av gruvearbeidere konfigurere både MG og EB til en megabyte, mens de setter Excessive Acceptance Depth (AD) til 10.000.000. Disse nodene vil med andre ord etterligne den nåværende blokkstørrelsesgrensen på en megabyte i omtrent to århundrer – uavhengig av hva resten av nettverket gjør.
I mellomtiden kan et flertall av gruvearbeidere stille MG og EB til å opprette og akseptere blokker opptil to megabyte.
Så snart en gruvearbeider bryter en blokk på to megabyte, vil flertallet av gruvearbeidere bygge på denne blokken og utvide denne kjeden. Mindretallet av gruvearbeidere ignorerer imidlertid denne kjeden praktisk talt for alltid: nøyaktig som beskrevet i forrige del av denne artikkelen.
Og det vil inkludere de samme risikoene som tidligere beskrevet også. Hvis kjeden på en megabyte noen gang overgår kjeden på to megabyte i lengden, blir kjeden på to megabyte fullstendig forkastet. Selv etter tusenvis av blokker.
Hvis alle begrenser AD til fire bekreftelser
Bitcoin Unlimited-brukere kan ha en sterkere grad av konvergens på en enkelt kjede på teknisk måte, hvis de holder AD-innstillingen relativt lav. Standardinnstillingen i Bitcoin Unlimited er fire: En overdreven blokk krever at fire blokker utvinnes på toppen av den for å bli ansett som gyldige.
Men dette gir også problemer.
Det første problemet er at selv med denne lave standard er enhver transaksjon med mindre enn fem bekreftelser mye mindre sikker enn den er nå. Si at en transaksjon viser tre bekreftelser i brukerens lommebok. Denne brukeren har ingen måte å vite om en alternativ blockchain blir utvunnet med en konkurrerende (dobbel brukt) transaksjon, som allerede har fire bekreftelser. Dette kan skje når som helst.
Hvis den alternative kjeden først når sin femte bekreftelse, kastes brukerens kjede, og den innkommende transaksjonen går tapt – selv om den hadde tre bekreftelser.
Selvfølgelig eksisterer allerede “foreldreløse blokker”, og brukere som krever mer sikkerhet, bør vente på flere bekreftelser.
Men uten eksotiske og dyre typer ondsinnede angrep, kan tre foreldreløse blokker for øyeblikket bare skyldes freak-tilfeldigheter. Ulike grupper av gruvearbeidere må tilfeldigvis finne tre blokker nesten nøyaktig samtidig, tre separate og påfølgende tilfeldigheter, for at nettverket skal oppleve at mange foreldreløse barn.
Bitcoin Unlimited, derimot, kaster en ny faktor inn i blandingen, og legger til en grunn for at nettverket opplever tre foreldreløse blokker. Gruvearbeidere løper ikke bare for å utvide den lengste gyldige kjeden, men stemmer også om protokollregler mellom kjeder. Denne prosessen vil også være synlig og ganske forutsigbar for angripere, og derfor lett utnyttbar.
Det andre problemet er at å måtte beholde AD som standard på fire bekreftelser av sikkerhetsmessige grunner, beseirer egentlig formålet med BUIP001. Mens Bitcoin Unlimited skal gi kontroll over blokkstørrelsesgrensen til både brukere og (alle) gruvearbeidere, sørger lave AD-nivåer for at selv det minste flertall av gruvearbeidere alltid kan overstyre lokale blokkstørrelsesinnstillinger ved ganske enkelt å utvinne en serie med større blokker. Dette gjør MG og EB meningsløs for alle andre: “placebokontroller.”
Faktisk foreslår AD et merkelig valg: Enten noder og gruvearbeidere setter en høy AD for relativ autonomi, men risikerer å splitte nettverket med potensielt skadelige konsekvenser; eller disse noder og gruvearbeidere velger en lav AD for å forbedre nivået av konvergens – men bare fordi de effektivt gir opp kontrollen til et flertall av gruvearbeidere. (Og hvis intensjonen er å gi opp kontrollen til et flertall av gruvearbeidere, er det mer enkle løsninger tilgjengelig.)
Under kontroversielle forhold
Ting blir verre under kontroversielle forhold.
Hvis ikke alle vil ha det som er best for Bitcoin, og i stedet vil noen enheter – uansett årsak – heller se at Bitcoin mislykkes, forringes sikkerhetsforutsetningene til BUIP001 ytterligere. Og jo mer midler en motstander har til rådighet for å forårsake uro, jo verre vil Bitcoin Unlimiteds konvergensmekanisme utføre.
For det første er nodesignalering trivielt spoofed. Alle som har ressurser til å spinne opp “falske” (økonomisk irrelevante) noder, kan late som det er utbredt brukerstøtte for et visst grensenivå for blokkstørrelse, mens det i virkeligheten ikke er det. Hvis gruvearbeidere følger disse signalene, kan de forkaste kjeden med mindre brukerstøtte enn forventet.
I tillegg kan en ondsinnet gruvearbeider ofte dele nettverket. En slik gruvearbeider kan overvåke EB-nivåene som er signalisert av andre gruvearbeidere (som ikke er like lett forfalsket), og med vilje bryte en blokk som faller midt i mellom hva disse gruvearbeiderne vil godta. Hvis noen 50 prosent av hashkraften aksepterer blokker opptil to megabyte, og de andre 50 prosent støtter større blokker, vil en 2,01 megabyte-blokk bli ignorert av de første 50 prosentene, og akseptert av de andre 50 prosentene.
Forutsatt at standard AD på fire opprettholdes, kan kjeden splitte i mer enn en time. Som forklart i forrige avsnitt, vil Bitcoin-nettverket / -nettene være svært upålitelige i denne perioden, da kjeden på hver side av splittelsen kan kastes.
En motstander som bare kontrollerer 0,7 prosent av den globale hashkraften, kan forårsake dette uroen omtrent en gang hver dag. Og med mindre det overveldende flertallet av gruvearbeidere allerede er enige om deres EB uansett, bør det søte stedet å misbruke nettverket alltid eksistere.
Videre, som et resultat av dette angrepet, ville halvparten av alle gruvearbeidere nå AD-terskelen og åpne sine “klebrig porter.” Dette kan tillate en ny bølge av angrep. Nå har den ondsinnede gruvearbeideren rundt 24 timer på seg til å utvinne en enda større blokk, som – ironisk nok – bare den opprinnelig mindre siden av kjeden ville akseptere fordi deres klissete porter er åpne, og den opprinnelig større siden av kjeden ville avvise. Dette ville skape en splittelse.
Sist, hvis og når denne nye “klebrig portkjeden” når AD-terskelen til de gjenværende nodene, alle klebrig porter er åpne, og det er ingen blokkstørrelsesgrense i det hele tatt. En motstander kan nå bryte blokker som er så store at de kan fragment kjeden, da ikke alle noder kan følge med – kanskje på grunn av båndbreddebegrensninger, ventetid eller andre maskingrenser.
Emergent Consensus
Mens Bitcoin Unlimited uten tvil tilbyr brukere mer personlig autonomi, sikrer det ikke teknisk blockchain-konvergens. Men dette er ikke nytt. I noen grad er det til og med berørt i Bitcoin Unlimited FAQ.
Likevel forventer Bitcoin Unlimited-talsmenn at brukerne skal konvergere på en enkelt blockchain. Dette forklares med det som kanskje er best ansett som Bitcoin Unlimiteds underliggende filosofi: “Emergent Consensus.”
I stedet for en rent teknisk mekanisme, er Emergent Consensus en overbevisning om at alle deltakere i Bitcoin-økosystemet har et sterkt nok (økonomisk) insentiv til å finne konsensus om en enkelt blockchain, selv om programvaren ikke gjør dette automatisk.
Den neste artikkelen vil se nærmere på denne Emergent Consensus-filosofien.
Forfatterens merknad: Denne artikkelen er ikke en fullstendig oversikt over alle problemene som kan oppstå fra BUIP001. Viktigst, det ignorerer kompromisser og svakheter som kommer fra en overdimensjonert (eller flytende) blokkstørrelsesgrense, som node sentralisering, gruvearbeider sentralisering, eller avgift økonomi, å i stedet fokusere på (mangel på) blockchain-konvergens.
“Jonny1000” bidro til denne artikkelen.