Blockchain Immutability Myth

Källnod: 1738527

Där flexibelt tänkande är att föredra framför dogmatism

"Det högsta godet, än vad det inte finns högre, är blockchainen, och följaktligen är det oerhört bra, därmed verkligen evigt och verkligen odödligt."
- Saint Augustine, De natura boni, i, 405 CE (med mindre ändringar)

Om du frågar någon välinformerad om blockchains egenskaper, kommer ordet "oföränderligt" alltid att visas i svaret. På vanligt engelska används detta ord för att beteckna något som aldrig kan modifieras eller ändras. I en blockchain hänvisar den till den globala logg över transaktioner, som skapas genom konsensus mellan kedjens deltagare. Den grundläggande uppfattningen är detta: när en blockchain-transaktion har fått en tillräcklig valideringsnivå, garanterar viss kryptering att den aldrig kan ersättas eller vändas. Detta markerar blockchains som skiljer sig från vanliga filer eller databaser, där information kan redigeras och raderas när som helst. Eller så går teorin.

I den hårda arenan för blockchain-debatten har oföränderlighet blivit en kvasireligiös doktrin - en grundtank som inte får skakas eller ifrågasättas. Och precis som doktrinerna i vanliga religioner använder medlemmar av motsatta läger oföränderlighet som ett vapen för hån och förlöjelse. Det senaste året har bevittnat två framträdande exempel:

  • Cryptocurrency förespråkar hävdar att oföränderlighet bara kan uppnås genom decentraliserade ekonomiska mekanismer som exempelvis bevis på arbete. Ur detta perspektiv är privata blockchains skrattande eftersom de beror på det kollektiva goda beteendet hos en känd grupp validerare, som helt klart inte kan lita på.
  • Förskräckning hällde på idén om en redigerbar (eller muterbar) blockchain, där retroaktiva ändringar kan göras i transaktionshistoriken under vissa förhållanden. Spottare ställde frågan: Vad kan möjligen vara poängen med en blockchain om innehållet lätt kan ändras?

För oss som är på sidelinjen är det kul att titta på lera. Inte minst för att båda dessa kritiker är helt felaktiga och härrör från ett grundläggande missförstånd av typen av oföränderlighet i blockchains (och faktiskt alla datorsystem). För de korta i tid, här är den nedersta raden:

I blockchains finns det inget sådant som perfekt immutability. Den verkliga frågan är: Vilka är villkoren under vilka en viss blockchain kan och inte kan ändras? Och matchar dessa förhållanden problemet vi försöker lösa?

För att uttrycka det på ett annat sätt skrivs inte blockchains transaktioner in i Guds sinne (med ursäkt till Augustin ovan). Istället beror kedjens beteende på ett nätverk av företagssystem som alltid är sårbara för förstörelse eller korruption. Men innan vi går in på detaljerna om hur, låt oss fortsätta genom att återfå några grunder i blockchains själva.

Blockchains i korthet

En blockchain körs på en uppsättning noder som var och en kan vara under kontroll av ett separat företag eller organisation. Dessa noder ansluter till varandra i ett tätt peer-to-peer-nätverk, så att ingen enskild nod fungerar som en central punkt för kontroll eller misslyckande. Varje nod kan generera och digitalt signera transaktioner som representerar operationer i någon slags huvudbok eller databas, och dessa transaktioner sprids snabbt till andra noder över nätverket på ett skvallerliknande sätt.

Varje nod verifierar oberoende varje ny inkommande transaktion för giltighet, i termer av: (a) dess efterlevnad av blockchainens regler, (b) dess digitala signatur och (c) eventuella konflikter med tidigare sett transaktioner. Om en transaktion klarar dessa test, kommer den in i den nodens lokala lista med provisoriska obekräftade transaktioner ("minnespoolen") och vidarebefordras till dess kamrater. Transaktioner som misslyckas avvisas direkt, medan andra vars utvärdering är beroende av osynliga transaktioner placeras i ett tillfälligt innehavsområde (”orphan pool”).

Med jämna mellanrum genereras ett nytt block av en av "validator" -noderna i nätverket, som innehåller en uppsättning som ännu inte har bekräftats. Varje block har en unik 32-byte-identifierare som kallas ”hash”, vilket bestäms helt av blockets innehåll. Varje block innehåller också en tidsstämpel och en länk till ett tidigare block via sin hash, vilket skapar en bokstavlig "blockkedja" som går tillbaka till början.

Precis som transaktioner sprids block över nätverket på peer-to-peer-sätt och verifieras oberoende av varje nod. För att accepteras av en nod måste ett block innehålla en uppsättning giltiga transaktioner som inte står i konflikt med varandra eller med de i de tidigare länkade blocken. Om ett block klarar detta och andra tester läggs det till den nodens lokala kopia av blockchain, och transaktionerna inom är "bekräftade". Alla transaktioner i nodens minnespool eller föräldralös pool som strider mot dem i det nya blocket kastas omedelbart.

Varje kedja använder en sorts strategi för att säkerställa att block genereras av ett flertal av dess deltagare. Detta säkerställer att ingen enskild eller liten grupp noder kan ta kontroll över blockchainens innehåll. De flesta offentliga blockchains som bitcoin använder "proof-of-work" som gör att block kan skapas av vem som helst på Internet som kan lösa ett meningslöst och fiendiskt svårt matematiskt pussel. Däremot tenderar block i privata blockchains att undertecknas av en eller flera tillåtna validerare, med hjälp av ett lämpligt schema för att förhindra minoritetskontroll. Vår produkt MultiKedja använder en teknik som kallas "gruvdiversitet" som kräver en minsta andel av tillåtna validerare att delta för att skapa en giltig kedja.

Beroende på vilken konsensusmekanism som används kan två olika validatornoder samtidigt generera motstridiga block, som båda pekar på samma föregående. När en sådan "gaffel" händer kommer olika noder i nätverket att se olika block först, vilket leder till att de har olika åsikter om kedjans senaste historia. Dessa gafflar löses automatiskt av blockchain-programvaran, med enighet återuppnås när ett nytt block kommer till en av grenarna. Noder som var på den kortare grenen spolar automatiskt tillbaka sitt sista block och spelar upp de två blocken på det längre. Om vi ​​verkligen är otur och båda grenarna utvidgas samtidigt, kommer konflikten att lösas efter det tredje blocket på en gren, eller den efter det, och så vidare. I praktiken sjunker sannolikheten för att en gaffel kvarstår exponentiellt när dess längd ökar. I privata kedjor med en begränsad uppsättning validatorer kan sannolikheten reduceras till noll efter ett litet antal block.

Det är ändå viktigt att komma ihåg att varje nod körs på ett datorsystem som ägs och kontrolleras av en viss person eller organisation, så blockchainen kan inte styrka det för att göra någonting. Syftet med kedjan är att hjälpa ärliga noder att förbli synkroniserade, men om tillräckligt många av dess deltagare väljer att ändra reglerna, kan ingen jordisk kraft stoppa dem. Det är därför vi måste sluta fråga om en viss blockchain är verkligen och absolut oföränderlig, eftersom svaret alltid kommer att vara nej. Istället bör vi överväga villkor under vilken en viss blockchain kan modifieras och kontrollera sedan om vi är bekväma med dessa förhållanden för det användningsfall vi har i åtanke.

Mutabilitet i offentliga kedjor

Låt oss återgå till de två exemplen som citeras i inledningen, där läran om oföränderlighet har använts som underlag för löj. Vi börjar med påståendet att de samförståndsvalideringsförfaranden som används i tillåtna blockchains inte kan åstadkomma den "verkliga oföränderlighet" som lovats av offentliga kedjor.

Denna kritik behandlas lättast genom att peka på sårbarheten hos offentliga blockchains själva. Ta till exempel Ethereum blockchain, som drabbades av en förödande utnyttja i juni 2016. Någon hittade ett kodande kryphål i ett smart kontrakt som heter "DAO", där nästan 250 miljoner dollar hade investerats, och började dränera sina medel snabbt. Även om detta tydligt kränkte avsikterna från kontraktets skapare och investerare, så är dess Villkor förlitade sig på mantraet om att "kod är lag". Lag eller inte, mindre än en månad senare uppdaterades Ethereum-programvaran för att förhindra hackaren att dra tillbaka cryptocurrency "tjänat".

Naturligtvis kunde inte denna uppdatering verkställas, eftersom varje Ethereum-användare kontrollerar sin egen dator. Ändå stöds det offentligt av Vitalik Buterin, Ethereums grundare, såväl som många andra samhällsledare. Som ett resultat följde de flesta användare, och blockchain med de nya reglerna behöll namnet "Ethereum". En minoritet stämde inte med förändringen och fortsatte blockchainen enligt sina ursprungliga regler och fick titeln ”Ethereum Classic”. Ett mer exakt val av namn kan vara "Ethereum komprometterad" och "Ethereum den rena". I vilket fall som helst, demokrati är demokrati, och (det pragmatiska och populära) "Ethereum" är nu värt över tio gånger (det idealistiska men på sidan) "Ethereum Classic".

Låt oss nu överväga ett mindre välvilligt sätt på vilket offentliga blockchainimmutabilitet kan undermineras. Kom ihåg att blockering eller "gruvdrift" i bitcoin och Ethereum använder ett proof-of-work-schema, där ett matematiskt problem måste lösas för att generera ett block och göra anspråk på dess belöning. Värdet på denna belöning förvandlar oundvikligen gruvdrift till ett vapenras, där gruvarbetare tävlar om att lösa problemen snabbare. För att kompensera, justerar nätverket med jämna mellanrum svårigheten att upprätthålla en konstant hastighet för att skapa block, en gång var 10 minut i bitcoin eller 15 sekunder i Ethereum.

Under de senaste 5-åren, bitcoin svårigheter har ökat med en faktor 350,000 1,089 ×. I dag sker det stora flertalet bitcoin-gruvdrift på dyr specialiserad hårdvara på platser där vädret är kallt och el är billigt. Till exempel kommer XNUMX XNUMX dollar att köpa dig en Antminer S9, som bryter block 10,000 10 gånger snabbare än någon stationär dator och förbränner XNUMX gånger mer el. Allt detta är långt ifrån de demokratiska ideal som bitcoin skapades med, även om det gör blockchainen extremt säker.

Tja, typ av säker. Om någon ville undergräva immutabiliteten för bitcoin blockchain, så här gör de. Först skulle de installera mer gruvkapacitet än resten av nätverket sammansatt och skapa en så kallad "51% attack". För det andra, istället för att öppet delta i gruvprocessen, skulle de bryta sin egen ”hemliga gren”, innehållande vilka transaktioner de godkänner och censurera resten. Slutligen, när den önskade tiden hade gått, skulle de anonymt sända sin hemliga gren till nätverket. Eftersom angriparen har mer gruvkraft än resten av nätverket, kommer deras gren att innehålla mer bevis på arbete än det offentliga. Varje bitcoin-nod kommer därför att växla, eftersom reglerna i bitcoin säger att den svårare grenen vinner. Alla tidigare bekräftade transaktioner som inte är i den hemliga filialen kommer att återföras, och bitcoin de spenderade skulle kunna skickas någon annanstans.

Nu kommer de flesta bitcoin-troende att skratta, eftersom jag skrev "installera mer gruvkapacitet än resten av nätverket sammansatt" som om detta är trivialt att uppnå. Och de har en poäng, för det är naturligtvis inte lätt, annars skulle många redan ha gjort det. Du behöver mycket gruvutrustning och mycket el för att driva den, som båda kostar massor av pengar. Men här är det obekvämt faktum att de flesta bitcoiners borstar över: För regeringen i alla medelstora länder är de pengar som krävs fortfarande små förändringar.

Låt oss uppskatta kostnaden för en attack på 51% som vänder ett år med bitcoin-transaktioner. Vid det nuvarande bitcoinpriset på $ 1500 och belöning av 15 bitcoins (inklusive transaktionsavgifter) per 10-minutersblock tjänar gruvarbetare cirka 1.2 miljarder dollar per år ($ 1500 × 15 × 6 × 24 × 365). Om man antar (rimligen) att de inte förlorar pengar totalt sett, eller åtminstone inte förlorar mycket, betyder det att de totala gruvdriftens utgifter också måste vara i samma intervall. (Jag förenklar här genom att amortera engångskostnaden för att köpa gruvutrustning, men $ 400 miljoner kommer att köpa dig tillräckligt med Antminer 9s för att matcha det nuvarande bitcoin-nätverkets gruvkapacitet, så vi är i rätt bollpark.)

Tänk nu på rapporter att bitcoin används av kinesiska medborgare för att kringgå sitt lands kapitalkontroll. Och överväga vidare att den kinesiska regeringens skatteintäkter är ungefär $ 3 biljoner per år. Skulle ett icke-demokratiskt lands regering spendera 0.04% av sin budget för att stänga av en populär metod för att olagligt ta ut pengar ur det landet? Jag skulle inte hävda att svaret är nödvändigtvis ja. Men om du tror att svaret är definitivt nej, du är mer än lite naiv. Speciellt med tanke på att Kina enligt uppgift sysselsätter 2 miljoner människor till polisens internetinnehåll, vilket uppgår till 10 miljarder dollar per år om vi antar en låg lön på 5,000 1.2 dollar. Det sätter kostnaden för XNUMX miljarder dollar för att vända ett år med bitcoin-transaktioner i perspektiv.

Till och med denna analys underskattar problemet, eftersom den kinesiska regeringen kan undergräva bitcoin-nätverket mycket lättare och billigare. Det verkar som om majoriteten av bitcoin gruvdrift äger rum i Kina, på grund av låg kostnad vattenkraft och andra faktorer. Med tanke på några tankar och platonger kunde Kinas armé fysiskt utnyttja dessa bitcoin-gruvverksamheter och återanvända dem för att censurera eller vända transaktioner. Medan den bredare bitcoinvärlden utan tvekan skulle märka, finns det ingenting som den skulle kunna göra utan att grundläggande förändra styrelsestrukturen (och därför naturen) för bitcoin själv. Vad var det med censurfria pengar?

Inget av detta bör tolkas som en kritik av bitcoin design, eller en förutsägelse om att en nätverkskatastrof faktiskt kommer att hända. Bitcoin-blockchainen är en anmärkningsvärd teknik, kanske till och med perfekt för det syfte som skaparen (er) hade i åtanke. Och om jag var tvungen att lägga pengar på det, skulle jag satsa på att Kina och andra regeringar förmodligen kommer inte att attackera bitcoin på detta sätt, eftersom det inte är i deras yttersta intresse att göra det. Mer troligt kommer de att fokusera sin vrede på dess mer ospårbara kusiner som Dash, Zcash och Monero.

Icke desto mindre sätter den enkla möjligheten till denna form av störningar cryptocurrency-immutabilitetsläran på sin plats. Bitcoin-blockchainen och dess svårigheter är inte oföränderliga i någon perfekt eller absolut mening. Snarare är de oföränderliga så länge ingen stor nog och rik nog beslutar att förstöra dem. Fortfarande, genom att förlita sig på ekonomisk kostnaden för att subvertera nätverket, uppfyller cryptocurrency immutability de specifika behoven hos människor som inte vill lita på regeringar, företag och banker. Det kanske inte är perfekt, men det är det bästa de kan göra.

Omskrivningsbara privata kedjor

Låt oss nu gå vidare till privata blockchains, utformade för behoven hos regeringar och stora företag. Vi kan börja med att notera att från dessa organisationers perspektiv är oföränderlighet baserad på bevis på arbete en kommersiella, laglig och regulatorer icke-starter, eftersom det tillåter alla (tillräckligt rik) skådespelare att anonymt attackera nätverket. För institutioner kan oföränderlighet endast grundas på goda beteenden hos andra liknande institutioner, med vilka de kan underteckna ett avtal och stämma vid behov. Som en bonus är privata blockchains mycket billigare att köra, eftersom block bara behöver en enkel digital signatur från noderna som godkänner dem. Så länge som en majoritet av valideringsnoder följer reglerna är slutresultatet starkare och billigare immutabilitet än någon offentlig cryptocurrency kan erbjuda.

Naturligtvis är oföränderlighet fortfarande lätt att undergräva om alla deltagare i en kedja beslutar sig för att göra det tillsammans. Låt oss föreställa oss en privat blockkedja som används av sex sjukhus för att samla data om infektioner. Ett program på ett sjukhus skriver en stor och felaktig datauppsättning till kedjan, vilket är en källa till besvär för de andra deltagarna. Några telefonsamtal senare kommer IT-avdelningarna på alla sjukhus överens om att "spola tillbaka" sina noder en timme, radera den problematiska datan och sedan låta kedjan fortsätta som om ingenting hänt. Om alla sjukhus går med på att göra detta, vem ska stoppa dem? Ja, förutom den inblandade personalen, vem vet ens att det hände? (Det bör noteras att vissa konsensusalgoritmer gillar PBFT tillhandahåller inte en officiell mekanism för återkoppling, men det hjälper inte med styrning eftersom noder fortfarande är fria att kringgå reglerna.)

Överväg nu ett fall där de flesta av en privat blockchains deltagare går med på att spola tillbaka och ta bort vissa transaktioner, men några få håller tillbaka sitt samtycke. Eftersom varje organisations nod är under sin yttersta kontroll kan ingen tvinga minoriteten att gå med i konsensus. Men genom att hålla sig till sina principer kommer dessa användare att hitta sig på en gaffel som ignoreras av alla andra. Liksom Ethereum Classics dygdiga förespråkare kan deras plats i himlen mycket väl säkerställas. Men här på jorden kommer de att uteslutas från den konsensusprocess för vilken kedjan var utplacerad och kan lika gärna ge upp helt. Den enda praktiska tillämpningen av transaktioner utanför konsensus är att tjäna som bevis i en domstol.

Med detta i åtanke, låt oss prata om det andra fallet där doktrinen om blockchainimmutabilitet har använts för att förlora idéer. Här hänvisar vi till Accentures idé om med en kameleon-hash för att enkelt kunna byta ut ett block som ligger begravd djupt i en kedja. Den primära motivation, som beskrivs av David Treat, är att låta en gammal problematisk transaktion tas bort snabbt och effektivt. Enligt schemat, om en blockersättning ersätts, lämnas ett "ärr" som alla deltagare kan se. (Det bör noteras att eventuella senare transaktioner som är beroende av den raderade också måste tas bort.)

Det är svårt att överdriva hur många som hällde hån mot denna idé när den tillkännagavs. Twitter och LinkedIn var häpnadsväckande. Och jag talar inte bara om kryptopubliken, som får idrottsglädje att håna vad som helst relaterat till företagets blockchains. Idén släpptes också i stort av privata förespråkare för blockchain.

Och ändå, under de rätta förhållandena, kan tanken på att tillåta blockchains ändras retroaktivt via kameleon hashes vara perfekt meningsfullt. För att förstå varför börjar vi med en enkel fråga: i den här typen av blockchain, vem skulle faktiskt ha makten att ersätta gamla block? Det är uppenbart att det inte kan vara någon oidentifierad nätverksdeltagare, eftersom det skulle göra kedjan ogovernabel.

Svaret är att en kameleon-hash bara kan användas av dem som har dess hemliga nyckel. Nyckeln krävs för att en ny version av ett block, med olika transaktioner, ska kunna få samma kameleon-hash som tidigare. Naturligtvis vill vi förmodligen inte ha centraliserad kontroll i en blockchain, så att vi kan göra schemat starkare genom att ha flera kameleonhasar per block, som var och en av nycklarna hålls av en annan part. Eller så kan vi använda hemlig delning tekniker för att dela en enda kameleon hash nyckel mellan flera parter. Hursomhelst kan kedjan konfigureras så att en retroaktiv blockersättning endast kan ske om en majoritet av nyckelinnehavarna godkänner den. Börjar detta låta bekant?

Låt mig göra parallellen mer tydlig. Låt oss säga att vi delar kontroll över kameleonhascher mellan samma validerande noder som är ansvariga för att skapa block. Detta innebär att ett gammalt block endast kan ersättas om en majoritet av validerande noder accepterar att göra det. Och ändå, som vi diskuterade tidigare, vilken som helst blockchain kan redan modifieras retroaktivt med en majoritet av validerande noder, genom spolning och återuppspelningsmekanismen. Så när det gäller styrning, kameleon hashes som är föremål för en validerings majoritet gör ingen skillnad alls.

Om så är fallet, varför bry sig om dem? Svaret är: prestandaoptimering, eftersom kameleont hascher tillåter gamla block att ersättas i en kedja som är mycket effektivare än tidigare. Föreställ dig att vi måste ta bort en transaktion från början av en blockchain som har körts i 5 år. Det beror kanske på EU: s rätt att bli bortglömd lagstiftning, som gör det möjligt för individer att ta bort sina personuppgifter från företagens register. Noder kan inte bara torka av den kränkande transaktionen från deras diskar, eftersom det skulle ändra motsvarande blockets hash och bryta en länk i kedjan. Nästa gång blockchain skannades eller delades, skulle allt falla isär.

För att lösa det här problemet utan kameleont haskar, noder skulle behöva skriva om det tidiga blocket utan den problematiska transaktionen, beräkna blockets nya hash och ändra sedan hash som är inbäddad i nästa block för att matcha. Men detta skulle också påverka nästa blockets egen hash, som måste beräknas om och uppdateras i det efterföljande blocket, och så vidare hela vägen längs kedjan. Även om denna mekanism i princip är möjlig kan det ta timmar eller dagar att slutföra i en blockchain med miljoner block och transaktioner. Ännu värre, medan en nod är involverad i denna process, kan inte hantera ny inkommande nätverksaktivitet. Så kameleont hascher ger ett mycket mer beräkningseffektivt sätt att uppnå samma mål. Om du föreställer dig en dålig transaktion som en sten begravd många miles under jorden, kan kameleont hashes teleportera berget till ytan, istället för att få oss att gräva hela vägen ner, hämta berget och fylla i hålet.

Oändlighet är nyanserad

Genom att granska riskerna för korrektur-of-work blockchains och det tekniska värdet av kameleon hashes, hoppas jag att ha övertygat er om att blockchain immutability är mycket mer nyanserad än en "ja eller nej" fråga. Att citera Simon Taylor citerar Ian Grigg, frågan måste alltid vara "vem är du och vad vill du uppnå?"

För cryptocurrency-troende som vill undvika statligt utgivna pengar och det traditionella banksystemet är det perfekt att tro på ett offentligt proof-of-work blockchain, vars oföränderlighet beror på ekonomi snarare än pålitliga parter. Även om de måste leva med möjligheten att en stor regering (eller annan rika aktör) tar ner nätverket, kan de ta tröst i det faktum att detta skulle vara en smärtsam och dyr operation. Och utan tvekan hoppas de att cryptocurrencies bara kommer att bli säkrare eftersom deras värde och gruvkapacitet fortsätter att växa.

Å andra sidan, för företag och andra institutioner som på ett säkert sätt vill dela en databas över organisatoriska gränser, är det inte meningsfullt att bevisa arbete. Det är inte bara häpnadsväckande dyrt, utan det tillåter alla tillräckligt motiverade deltagare att anonymt ta kontroll över kedjan och censurera eller omvända transaktioner. Vad dessa användare behöver är oföränderlighet grundad i det goda beteendet hos en majoritet av identifierade valideringsnoder, med stöd av kontrakt och lag.

Slutligen, för de flesta tillåtna blockchain-fall, vill vi förmodligen inte att valideringsnoder ska kunna enkelt och billigt ersätta gamla block i kedjan. Som Dave Birch sade vid tiden, "Sättet att korrigera fel debitering är med rätt kredit", snarare än att låtsas att debet aldrig har ägt rum. Men för de fall där vi behöver extra flexibilitet, hjälper kameleonhas att göra blockchains till ett praktiskt val.

Skicka eventuella kommentarer på Link.

Tidsstämpel:

Mer från Multikedja