Úvod
Útok Eclipse je relativně jednoduchý útok, který může zlomyslný aktér použít k narušení uzlů v síti. Jak název napovídá, cílem útoku je zakrýt pohled účastníka na síť peer-to-peer, aby způsobil obecné narušení nebo aby se připravil na sofistikovanější útoky.
Útoky Eclipse mohou na povrchu znít podobně jako útoky Sybil. I když sdílejí určité podobnosti – zákeřný herec zaplaví síť falešnými vrstevníky – jejich konečný cíl je nakonec jiný. Útok Eclipse se zaměřuje na jeden uzel (z důvodů vysvětlených v další části), zatímco útok Sybil je celosíťový útok navržený tak, aby ohrozil reputační systém protokolu.
Tento koncept je podrobně diskutován v dokumentu Eclipse Attacks on Bitcoin’s Peer-to-Peer Network z roku 2015, ve kterém vědci z Bostonské univerzity a Hebrejské univerzity informují o svých zjištěních ze svých experimentů s narůstajícími útoky zatmění a také o možných protiopatřeních k boji proti nim.
Jak funguje útok zatmění
Těžaři bitcoinů vyžadují specializované vybavení, aby mohli generovat nové bloky, ale netěžící (nebo plné) uzly lze snadno provozovat s minimálním výpočetním výkonem. To napomáhá decentralizaci bitcoinu, protože kdokoli může roztočit uzel na zařízení s nízkou specifikací. Software udržuje databázi transakcí, které synchronizuje se svými bezprostředními partnery, aby zůstal v kontaktu se sítí.
Limitujícím faktorem pro mnoho uzlů je šířka pásma. Přestože software používá obrovské množství zařízení, průměrné zařízení se k mnoha z nich nemůže připojit přímo kvůli omezením stanoveným v softwaru bitcoinů (který povoluje pouze maximálně 125 připojení).
Při útoku Eclipse se zlomyslný aktér postará o to, aby všechna spojení cíle byla navázána na uzly ovládané útočníkem. Entita nejprve zaplaví cíl svými vlastními IP adresami, ke kterým se oběť pravděpodobně připojí po restartu svého softwaru. Restart může být buď vynucený (tj. s DDoS útokem na cíl), nebo může útočník jednoduše počkat, až k němu dojde.
Jakmile k tomu dojde, je nic netušící oběť vydána na milost a nemilost škodlivých uzlů – bez výhledu na širší síť jim může útočník poskytnout nesprávná data.
Důsledky útoku zatmění
Pokud útočník utrácí prostředky, aby odcizil peer ze sítě, pravděpodobně k tomu má motiv. Existuje několik po sobě jdoucích útoků, které lze snáze spustit, jakmile je uzel udušen.
0-potvrzení dvojité útraty
Pokud jednotlivec přijme transakci bez potvrzení, hrozí mu dvojnásobná útrata. Transakce mohla být odvysílána, ale dokud nebude zahrnuta do bloku (a tedy oddána blockchainu), může odesílatel snadno vytvořit novou transakci, která utratí stejné prostředky někde jinde. Pokud má nová transakce vyšší poplatek, těžař ji pravděpodobně zahrne před původní, čímž zruší platnost předchozí.
Některé firmy a jednotlivci přijímají tyto transakce s nulovým potvrzením. Vezměme si obchodníka Boba, který prodává špičková vozidla. Neví, že Alice zastínila jeho uzel, a nic netuší, když zadává objednávku na luxusní sportovní vůz. Vytvoří transakci, kterou pak Bob odešle do sítě. Spokojený s tím, že platba je na cestě, předá klíčky od auta a Alice uhání.
Transakce samozřejmě nebyla vysílána do sítě – Bob ji pouze předal Aliciným škodlivým uzlům, které ji nepřenesou poctivým uzlům. Zatímco tato transakce visí v limbu, Alice utrácí stejné prostředky na (skutečné) síti, ať už na jinou stranu nebo na adresu, kterou vlastní. I když je nakonec vidět počáteční transakce Bobovi, bude odmítnuta, protože mince již byly utraceny.
Dvojité výdaje na potvrzení N
Dvojitá útrata s potvrzením N je podobná jako s potvrzením 0, ale vyžaduje více přípravy. Mnoho podniků dává přednost čekání na určitý počet potvrzení, než platbu označí za platnou. Aby to útočník obešel, musí zastínit jak těžaře, tak obchodníka. Jakmile útočník vytvoří objednávku u obchodníka, odešle transakci (zastíněným) těžařům. Transakce je potvrzena a zahrnuta do blockchainu – ale tento blockchain není řetězec, který většina sítě sleduje, protože těžař je odříznut.
Odtud útočník předá tuto verzi blockchainu obchodníkovi, který uvolní zboží v domnění, že transakce byla potvrzena. Jakmile se zatemněné uzly znovu připojí ke skutečné síti, blockchain, o kterém se mylně domnívají, že je platný, osiřel tím, na kterém pracoval zbytek sítě (toto má určitou podobnost s 51% útokem).
Oslabení konkurenčních horníků
Zatmělý uzel bude nadále fungovat, aniž by si uvědomil, že byl oddělen od sítě. Těžaři budou nadále těžit bloky v rámci pravidel stanovených protokolem, ale přidané bloky budou vyřazeny, protože se synchronizují s poctivými kolegy.
Teoreticky by mohl být použit rozsáhlý útok zatmění na hlavní těžaře k usnadnění 51% útoku. V současné době jsou náklady na převzetí většiny bitcoinové hashovací síly prostě příliš vysoké i pro ty nejvynalézavější útočníky – při ~80TH/s by entita potřebovala více než 40TH/s, aby se o takový manévr pokusila.
V hypotetickém scénáři, kde je tato hashovací síla rozdělena mezi 10 stran (takže každá vlastní 8TH/s), může útočník výrazně snížit požadavky na 51% útok tím, že tyto strany odřízne od sítě. Pokud je zakryto pět, je ze závodu odstraněno 40 TH/s, aby našel další blok, a útočníkovi nyní stačí získat o něco více než 20 TH/s, aby převzal kontrolu.
Mezi další sabotáže, kterých lze dosáhnout zastíněním cílů, patří manipulace s uzly pro sobecké těžení nebo inženýrství ras mezi těžaři za účelem nalezení dalšího bloku.
Zmírnění
S dostatkem IP adres může útočník zastínit jakýkoli uzel. Nejjednodušší metodou, jak tomu zabránit, je, že operátor zablokuje příchozí připojení a vytvoří odchozí připojení pouze ke konkrétním uzlům (jako jsou ty, které byly přidány na bílou listinu jinými partnery). Jak však zdůrazňuje výzkumný dokument, nejedná se o přístup, který funguje ve velkém měřítku – pokud tato opatření přijmou všichni účastníci, nové uzly se nebudou moci připojit k síti.
Autoři navrhují několik vylepšení bitcoinového softwaru, z nichž některé byly integrovány od vydání článku. Ty zdražují útoky Eclipse drobnými úpravami kódu, jako je náhodný výběr nových připojení a větší kapacita pro ukládání adres.
Závěrečné myšlenky
Útoky Eclipse se provádějí na úrovni sítě typu peer-to-peer. Jsou-li nasazeny jako samostatný útok, mohou být trochu na obtíž. Jejich skutečná účinnost je v potencování dalších útoků, které mají finanční dopad na cíle nebo poskytují útočníkovi výhodu na těžební frontě.
Ve volné přírodě zatím nedošlo k vážným následkům vyplývajícím z útoku zatmění, ale hrozba stále existuje i přes protiopatření integrovaná do sítě. Stejně jako u většiny útočných vektorů, které existují pro bitcoiny a další kryptoměny, bude nejsilnější obranou ta, která z finančního hlediska znemožňuje zlomyslným stranám se o ně pokoušet.

