En gång hyllades blockkedjor som ohackbara, men nu hackas blockkedjor

Ett öppet block som avslöjar digitala mynt inuti

Ett öppet block som avslöjar digitala mynt inuti Ms. Tech





I början av förra månaden märkte säkerhetsteamet på Coinbase att något konstigt pågick i Ethereum Classic, en av de kryptovalutor som människor kan köpa och sälja med Coinbases populära utbytesplattform. Dess blockchain, historien om alla dess transaktioner, var under attack.

En angripare hade på något sätt fått kontroll över mer än hälften av nätverkets datorkraft och använde den för att skriva om transaktionshistoriken. Det gjorde det möjligt att spendera samma kryptovaluta mer än en gång – känd som dubbla utgifter. Angriparen sågs när han gjorde detta till ett belopp av 1,1 miljoner dollar. Coinbase hävdar att ingen valuta faktiskt stals från något av dess konton. Men en andra populär börs, Gate.io, har erkänt det var inte så lyckligt att förlora runt 200 000 dollar till angriparen (som konstigt nog, lämnade tillbaka hälften dagar senare).

För bara ett år sedan var detta mardrömsscenario mestadels teoretiskt. Men den så kallade 51%-attacken mot Ethereum Classic var bara den senaste i raden av senaste attacker mot blockkedjor som har ökat insatserna för den begynnande industrin.



Totalt har hackare stulit kryptovaluta till ett värde av nästan 2 miljarder dollar sedan början av 2017, mestadels från börser, och det är bara vad som har avslöjats offentligt. Dessa är inte bara opportunistiska ensamma angripare heller. Sofistikerade cyberbrottsorganisationer gör det nu också: analysföretaget Chainalysis sa nyligen att bara två grupper, som båda tydligen fortfarande är aktiva, kan ha stulit sammanlagt 1 miljard dollar från börser.

Vi borde inte bli förvånade. Blockkedjor är särskilt attraktiva för tjuvar eftersom bedrägliga transaktioner inte kan vändas som de ofta kan vara i det traditionella finansiella systemet. Förutom det har vi länge vetat att precis som blockkedjor har unika säkerhetsfunktioner, har de unika sårbarheter. Marknadsföringsslogans och rubriker som kallade tekniken unhackable var helt fel.

Det har man förstått, åtminstone i teorin, sedan Bitcoin dök upp för ett decennium sedan. Men under det senaste året, mitt i en kambrisk explosion av nya kryptovalutaprojekt, har vi börjat se vad detta betyder i praktiken – och vad dessa inneboende svagheter kan betyda för framtiden för blockkedjor och digitala tillgångar.



Hur hackar man en blockchain?

Innan vi går vidare, låt oss göra några ord raka.

TILL blockchain är en kryptografisk databas som underhålls av ett nätverk av datorer, som var och en lagrar en kopia av den senaste versionen. En blockkedja protokoll är en uppsättning regler som dikterar hur datorerna i nätverket kallas knutpunkter , bör verifiera nya transaktioner och lägga till dem i databasen. Protokollet använder kryptografi, spelteori och ekonomi för att skapa incitament för noderna att arbeta för att säkra nätverket istället för att attackera det för personlig vinning. Om det ställs in på rätt sätt kan detta system göra det extremt svårt och dyrt att lägga till falska transaktioner men relativt lätt att verifiera giltiga.



Det är det som har gjort tekniken så tilltalande för många branscher, till att börja med finans. Snart lanserade tjänster från välkända institutioner som Fidelity Investments och Intercontinental Exchange, ägaren till New York Stock Exchange, kommer att börja integrera blockkedjor i det befintliga finansiella systemet. Till och med centralbanker tittar nu på att använda dem för nya digitala former av nationell valuta.

Men ju mer komplext ett blockchain-system är, desto fler sätt finns det att göra misstag när man ställer upp det. Tidigare denna månad avslöjade företaget som ansvarar för Zcash – en kryptovaluta som använder extremt komplicerad matematik för att låta användare göra privata transaktioner – att det i hemlighet hade fixat en subtila kryptografiska brister av misstag inbakad i protokollet. En angripare kunde ha utnyttjat det för att göra obegränsat med förfalskade Zcash. Lyckligtvis verkar ingen ha gjort det.

Protokollet är inte det enda som måste vara säkert. För att handla kryptovaluta på egen hand, eller köra en nod, måste du köra en mjukvara klient , som också kan innehålla sårbarheter. I september var utvecklarna av Bitcoins huvudklient, kallad Bitcoin Core, tvungna att krypa för att fixa en bugg ( också i hemlighet ) som kunde ha låtit angripare slå fler bitcoins än vad systemet är tänkt att tillåta.



Ändå var de flesta av de senaste rubrikerna inte attacker på själva blockkedjorna, utan på utbyten , webbplatserna där människor kan köpa, handla och hålla kryptovalutor. Och många av dessa rån kan skyllas på dålig grundläggande säkerhetspraxis. Det ändrades i januari med attacken på 51 % mot Ethereum Classic.

51%-regeln

Mottaglighet för 51% attacker är inneboende för de flesta kryptovalutor. Det beror på att de flesta är baserade på blockkedjor som använder bevis på arbete som deras protokoll för att verifiera transaktioner. I denna process, även känd som brytning , spenderar noder enorma mängder datorkraft för att bevisa att de är tillräckligt pålitliga för att lägga till information om nya transaktioner till databasen. En gruvarbetare som på något sätt får kontroll över en majoritet av nätverkets gruvkraft kan lura andra användare genom att skicka dem betalningar och sedan skapa en alternativ version av blockkedjan där betalningarna aldrig ägde rum. Denna nya version kallas a gaffel . Angriparen, som kontrollerar det mesta av gruvkraften, kan göra gaffeln till den auktoritativa versionen av kedjan och fortsätta att spendera samma kryptovaluta igen.

För populära blockkedjor kommer det sannolikt att bli extremt dyrt att försöka sig på den här typen av rån. Enligt hemsidan Krypto51 , att hyra tillräckligt med gruvkraft för att attackera Bitcoin skulle för närvarande kosta mer än $260 000 per timme. Men det blir mycket billigare snabbt när du flyttar ner på listan över de mer än 1 500 kryptovalutorna där ute. Sjunkande myntpriser gör det ännu billigare, eftersom de får gruvarbetare att stänga av sina maskiner, vilket ger nätverken mindre skydd.

Mot mitten av 2018 började angripare attackera 51 % mot en serie relativt små, lätt handlade mynt inklusive Verge, Monacoin och Bitcoin Gold, och stjäl uppskattningsvis 20 miljoner dollar totalt. I höstas stal hackare runt 100 000 dollar med hjälp av en rad attacker på en valuta som heter Vertcoin. Hit mot Ethereum Classic, som gav mer än 1 miljon dollar, var den första mot en topp-20-valuta.

David Vorick, medgrundare av den blockchain-baserade fillagringsplattformen Sia, förutspår det 51 % attacker kommer att fortsätta att öka i frekvens och svårighetsgrad, och att utbyten kommer att ta största delen av skadorna som orsakas av dubbla utgifter. En sak som driver denna trend, säger han, har varit uppkomsten av så kallade hashrate-marknadsplatser, som angripare kan använda för att hyra datorkraft för attacker. Utbyten kommer i slutändan att behöva vara mycket mer restriktiva när man väljer vilka kryptovalutor som ska stödjas, skrev Vorick efter hacket Ethereum Classic.

En helt ny burk med maskar

Bortsett från 51% attacker, finns det en helt ny nivå av blockchain-säkerhetssvagheter vars konsekvenser forskare precis har börjat utforska: smarta kontraktsbuggar. Av en slump är Ethereum Classic – närmare bestämt historien bakom dess ursprung – en bra utgångspunkt för att förstå dem också.

TILL smart kontrakt är ett datorprogram som körs på ett blockchain-nätverk. Den kan användas för att automatisera rörelsen av kryptovaluta enligt föreskrivna regler och villkor. Detta har många potentiella användningsområden, som att underlätta verkliga juridiska kontrakt eller komplicerade finansiella transaktioner. En annan användning – det aktuella fallet här – är att skapa en röstningsmekanism genom vilken alla investerare i en riskkapitalfond kollektivt kan bestämma hur pengarna ska fördelas.

Just en sådan fond, kallad Decentralized Autonomous Organization (DAO), inrättades 2016 med hjälp av blockkedjesystemet Ethereum. Kort därefter stal en angripare kryptovaluta för mer än 60 miljoner dollar genom att utnyttja ett oförutsett fel i ett smart kontrakt som styrde DAO. I huvudsak tillät felet hackaren att fortsätta begära pengar från konton utan att systemet registrerade att pengarna redan hade dragits ut.

Som hacket illustrerade kan en bugg i ett smart kontrakt skapa en unik sorts nödsituation. I traditionell programvara kan en bugg fixas med en patch. I blockchain-världen är det inte så enkelt. Eftersom transaktioner på en blockchain inte kan ångras, är att implementera ett smart kontrakt lite som att skjuta upp en raket, säger Petar Tsankov, forskare vid ETH Zürich och medgrundare av en smart-kontrakt säkerhetsstartup som heter ChainSecurity . Programvaran kan inte göra ett misstag.

Det finns korrigeringar, av ett slag. Även om de inte kan korrigeras, kan vissa kontrakt uppgraderas genom att använda ytterligare smarta kontrakt för att interagera med dem. Utvecklare kan också bygga in centraliserade kill-switchar i ett nätverk för att stoppa all aktivitet när ett hack upptäcks. Men för användare vars pengar redan har stulits kommer det att vara för sent.

Det enda sättet att få tillbaka pengarna är i praktiken att skriva om historien – att gå tillbaka till punkten på blockkedjan innan attacken inträffade, skapa en gaffel till en ny blockkedja och låta alla i nätverket gå med på att använda den istället. Det är vad Ethereums utvecklare valde att göra. De flesta, men inte alla, i samhället bytte till den nya kedjan, som vi nu känner som Ethereum. En mindre grupp holdouts höll fast vid den ursprungliga kedjan, som blev Ethereum Classic.

Förra månaden räddade Tsankovs team på ChainSecurity Ethereum från en möjlig upprepning av DAO-katastrofen. Bara en dag innan en större planerad mjukvaruuppgradering sa företaget till Ethereums ledande utvecklare att det skulle få den oavsiktliga konsekvensen att lämna vissa kontrakt på blockkedjan som nyligen är sårbara för samma typ av bugg som ledde till DAO-hacket. Utvecklarna sköt omedelbart upp uppgraderingen och kommer att ge den en ny chans senare denna månad.

Ändå var hundratals värdefulla Ethereum-smarta kontrakt redan sårbara för denna så kallade reentrancy-bugg, enligt Victor Fang, medgrundare och VD för blockchain-säkerhetsföretaget AnChain.ai. Tiotusentals kontrakt kan innehålla någon annan typ av sårbarhet, enligt forskning som utfördes förra året. Och själva karaktären hos offentliga blockkedjor betyder att om det finns en bugg med smarta kontrakt, kommer hackare att hitta den, eftersom källkoden ofta är synlig på blockkedjan. Det här är väldigt annorlunda än traditionell cybersäkerhet, säger Fang, som tidigare arbetat för cybersäkerhetsföretaget FireEye.

Buggy-kontrakt, särskilt de som innehar tusentals eller miljoner dollar, har lockat hackare lika avancerade som de som attackerar banker eller regeringar. I augusti identifierade AnChain fem Ethereum-adresser bakom en extremt sofistikerad attack som utnyttjade ett kontraktsfel i ett populärt hasardspel för att stjäla 4 miljoner dollar.

Kan hackarna besegras?

AnChain.ai är en av flera nystartade företag som skapats för att ta itu med hotet mot blockkedjehackning. Den använder artificiell intelligens för att övervaka transaktioner och upptäcka misstänkt aktivitet, och den kan skanna smartkontraktskod efter kända sårbarheter.

Andra företag, inklusive Tsankovs ChainSecurity, utvecklar revisionstjänster baserade på en etablerad datavetenskaplig teknik som kallas formell verifiering. Målet är att matematiskt bevisa att ett kontrakts kod faktiskt kommer att göra vad dess skapare avsåg. Dessa revisionsverktyg, som har börjat dyka upp under det senaste året eller så, har gjort det möjligt för skapare av smarta kontrakt att eliminera många av de buggar som varit lågt hängande frukter, säger Tsankov. Men processen kan vara dyr och tidskrävande.

Det kan också vara möjligt att använda ytterligare smarta kontrakt för att sätta upp blockchain-baserade buggbonusar. Dessa skulle uppmuntra människor att rapportera brister i utbyte mot en kryptovaluta-belöning, säger Philip Daian , en forskare vid Cornell University's Initiative for Cryptocurrencies and Contracts.

Men att se till att koden är ren kommer bara att gå så långt. En blockchain är trots allt ett komplext ekonomiskt system som beror på människors oförutsägbara beteende, och människor kommer alltid att leta efter nya sätt att spela det. Daian och hans kollegor har visat hur angripare redan har listat ut hur att tjäna på att spela populära Ethereum smarta kontrakt , till exempel.

Kort sagt, medan blockchain-tekniken länge har hyllats för sin säkerhet, kan den under vissa förhållanden vara ganska sårbar. Ibland kan skum utförande skyllas på, eller oavsiktliga programvarubuggar. Andra gånger är det mer av en gråzon - det komplicerade resultatet av interaktioner mellan koden, ekonomin i blockkedjan och mänsklig girighet. Det har varit känt i teorin sedan teknikens början. Nu när så många blockkedjor finns ute i världen lär vi oss vad det faktiskt betyder – ofta den hårda vägen.

Dölj