Bez ohledu na proof of work PoW, proof of equity PoS nebo delegovaný proof of equity DPoS, pokud existuje problém s konsensem, teoreticky řečeno, 51% útokům se nelze vyhnout. Útočník ovládá hlavní síť prostřednictvím 51% reverzibilní bloky, výsledkem je dvojitý květ.
základní znalosti
Blockchain jako decentralizovaný distribuovaný veřejný systém ukládání dat nemá centrální organizaci pro správu. Místo toho je společně spravován distribuovanými uzly pomocí kryptografických protokolů a každý uzel udržuje celý systém. Konzistence účetní knihy musí být zajištěna prostřednictvím základní konsensuální protokol. Blockchainy mají různé praktické využití v různých scénářích reálného života, jako jsou veřejné řetězce, soukromé řetězce a alianční řetězce. Různé řetězce používají různé konsenzuální algoritmy, jako je konsensus PoW používaný bitcoiny a konsenzus PoW používaný Ethereem. , DPoS konsensus používaný EOS a zabezpečení zahrnuté v různých konsenzuálních algoritmech je odlišné.
Tento článek podrobně popisuje rizika útoku přítomná v protokolech PoW konsensu, které používají Bitcoin a Ethereum.
Mechanismus konsenzu PoW
Nejprve se podívejme na to, co je protokol PoW konsenzu.
Z pohledu decentralizovaného účetního systému musí každý uzel, který se připojí k systému, vést kompletní účetní knihu, ale každý uzel nemůže vést účty současně, protože uzly jsou v různých prostředích a přijímají různé informace. Proto je potřeba dosáhnout konsensu který uzel má právo vést účetnictví. Blockchainy bitcoinů a etherea řeší problém konzistence decentralizovaného účetního systému prostřednictvím konkurenčního účetnictví, tedy mechanismu, který využívá výpočetní výkon každého uzlu, tedy „výpočetní sílu“ k soutěži o účetní práva je „těžba“.
Kdo má však v decentralizovaném systému právo určovat výsledek soutěže? Bitcoinové a Ethereum blockchainové systémy jsou realizovány prostřednictvím mechanismu konsensu zvaného Proof of Work (PoW).
PoW (Proof of Work), tedy „Proof of Work“ Jednoduše řečeno, PoW je certifikát, který potvrzuje, že pracovní konec vykonal určitý kus práce. Pracovní část musí vykonat určité množství obtížné práce, aby dosáhla výsledku, a ověřovatel používá výsledky ke kontrole, zda pracovní část vykonal odpovídající práci.
Při těžbě na základě konsensu o proof-of-work je třeba dodržovat tři pravidla:
Pouze jedna osoba může úspěšně zaznamenávat účty v určitém časovém období
Soutěžte o získání jediného účetního práva vyřešením kryptografických hádanek (tj. doklad o práci)
Ostatní uzly ověřují a kopírují účetní výsledky
Například s ohledem na řetězec „blockchain“ je požadavkem na pracovní zátěž, že můžeme zřetězit řetězec celočíselné hodnoty nazvaný nonce za tímto řetězcem a provést operaci hash SHA256 na zřetězeném řetězci If The získaný výsledek hash (vyjádřený v šestnáctkové soustavě forma) začíná několika nulami, poté je ověření úspěšné. Abychom dosáhli tohoto cíle proof-of-work, musíme průběžně zvyšovat hodnotu nonce a na nově získaném řetězci provádět hashovací operaci SHA256.
Hash (hodnota předchozí hash, sada informací záznamu transakce) = 29329385BNDH749 Hash (hodnota předchozí hash, sada informací záznamu transakce, náhodné číslo, které není) = 000029329385BNDH749
Například hash výšky bloku 512884 v bitcoinu je:
000000000000000000188d44fd53064469b17c3590a0c4df8e90626d11e25a69
Důkazem práce potřebné k vygenerování tohoto bloku prostřednictvím účetnictví je 16**18 hašovacích výpočtů, což je velmi velké množství výpočtů.
51% útok
Po krátkém představení jednoduchých principů balení bloků prostřednictvím účetnictví a PoW se vraťme k naší otázce, co je 51% útok a co je útok s dvojitou útratou?
Útok s dvojitou útratou jednoduše odkazuje na útok, při kterém je token použit prostřednictvím více platebních metod, což znamená, že stejná měna je utracena vícekrát. Existuje mnoho způsobů, jak zahájit útok s dvojitou útratou, včetně následujících forem:
51% útok
Rasový útok
Útok vektoru 76
útok na alternativní historii
To znamená, že pokud útočník ovládá více než 50 % výpočetního výkonu celé sítě, může prostřednictvím 51% útoku implementovat dvojnásobnou útratu.
Zde analyzujeme pouze 51% proces útoku.
51% útok, také známý jako majoritní útok. Tento útok dosahuje dvojnásobných výdajů řízením výpočetního výkonu sítě. Pokud útočník ovládá více než 50 % výpočetního výkonu v síti, pak během období, kdy ovládá výpočetní výkon, může zvrátit blok, provádět zpětné transakce a dosáhnout dvojnásobných výdajů.
V protokolu PoW consensus umožňuje blockchainový systém existenci více forkovaných řetězců současně a každý řetězec může vnějšímu světu prohlásit, že je to správné, nicméně v konceptu blockchainu existuje nejdelší účinný princip: "Nezáleží na tom, v jakém bodě je nejdelší řetězec považován za hlavní řetězec s největší prací?"
Pojďme krátce simulovat proces 51% útoku:
Pokud existuje takový útočník, záměrně odvysílá první transakci do poloviny sítě a druhou transakci vysílá do druhé poloviny sítě a pak jsou na obou stranách přesně dva těžaři, aby získali účetní práva téměř stejně. čas a jejich příslušná účetní práva jsou Blok je vysílán všem. V tuto chvíli si můžete vybrat libovolnou účetní knihu.
Dále, pokud se další těžař rozhodne pokračovat v účtování na základě A, bude větev A delší než větev B. Podle pravidel blockchainu bude nejdelší větev uznána, krátká větev bude opuštěna a účetní kniha bude stále se vrátí na jeden a pouze jedna transakce je platná.
V tomto okamžiku je rozpoznána větev A a je potvrzena příslušná transakce. Pokud útočník získá produkt, okamžitě se promění v těžaře a získá dvě po sobě jdoucí účetní práva a poté přidá dva bloky do větve B.
Poté se větev B stane uznanou větví. V této době již není transakce ve větvi A zavedena, ale útočník již získal zboží A. Útok na výdaje byl úspěšně dokončen. Problém je v tom, že když větev B zaostává, je velmi těžké ji donutit reálně překonat větev A a pravděpodobnost úspěchu je však velmi nízká, pokud útočník ovládá více než 50 % výpočetního výkonu celou síť, pak i když zaostává, hodně a je jen otázkou času, kdy to dožene. Toto je výše zmíněný "51% útok".
Bitcoin Gold 51% analýza případů útoku
V reálném světě blockchainu došlo k mnoha dvojnásobným výdajům způsobeným 51% útoky.
Například problém dvojitého utrácení v bitcoinovém zlatě (BTG coin) je 51% útok. Proces útoku je následující:
Útočník ovládá více než 51 % výpočetního výkonu na síti Bitcoin Gold Během období kontroly výpočetního výkonu poslal do své peněženky na burze určité množství BTG.
Zároveň poslal tyto BTG do jiné peněženky, kterou ovládal, tuto pobočku jsme pojmenovali B.
Po potvrzení transakce na větvi A útočník okamžitě prodá BTG a získá hotovost. V tomto okamžiku se větev A stává hlavním řetězcem.
Poté útočník těží na větvi B. Vzhledem k tomu, že ovládá více než 51 % výpočetního výkonu, má útočník vysokou pravděpodobnost získání účetních práv, takže brzy délka větve B překročí hlavní řetězec (tj. A), pak se větev B stane hlavním řetězcem a transakce na větvi A budou vráceny zpět, čímž se data obnoví do posledního správného stavu.
Jinými slovy, větev A je obnovena do stavu před tím, než útočník zahájil první transakci, a BTG, které útočník předtím přeměnil na hotovost, jsou zpět v jeho rukou.
Nakonec útočník pošle tyto BTG do jiné své peněženky. Tímto způsobem útočník ovládl více než 51 % výpočetního výkonu, aby dosáhl „dvojího utracení“ stejného tokenu.
Podle zprávy o blockchainu o tomto útoku útočník úspěšně obrátil 22 bloků. Adresa bitcoinu Gold, která se tohoto útoku účastnila, obdržela více než 388 200 $ BTG finanční prostředky mohly být z burzy ukradeny
Kromě problému s dvojím utrácením, ke kterému došlo u bitcoinového zlata, existuje mnoho případů útoků s dvojím utrácením způsobených 51% útoky:
Anonymní hranice digitální měny kdysi zlomyslně vytěžila více než 35 milionů #xvg během několika hodin v hodnotě přibližně 1,75 milionu USD.
Japonská kryptoměna monacoin byla zjevně zasažena útokem blokového odpočtu poté, co těžař získal až 57 % hashovací síly sítě.
Oficiální zprávy Litecoin Cash (LCC), LCC utrpělo 51% útok.
Digitální měna #zen také utrpěla 51% útok.
Nedávno Ethereum Classic #etc utrpělo 51% útok.

