Bezpečnost je komplexní téma. Zahrnuje ochranu proti vytváření nových coinů ze vzduchu, decentralizaci, konsensus protokol, neměnnost účetní knihy, bezpečnost transakcí, soukromí, vlastní úschovu aktiv, útoky Sybil, odolnost vůči různým útokům, správu aktiv a rozpočet na zabezpečení. Blockchain je komplexní systém, ve kterém některé komponenty spoléhají na bezpečnost ostatních. Závislosti někdy nejsou na první pohled patrné. Cílem článku je ukázat začátečníkům rozsah tématu a inspirovat je k dalšímu studiu. Nebudeme zacházet do detailů. Mnoha tématům se podrobně věnujeme v našich starších článcích. Cílem je, aby čtenář pochopil, že bezpečnost není o jednom tématu (útok 51 %) a že je potřeba o ní přemýšlet komplexně.
Uživatelské požadavky
Lidé musí důvěřovat systému, který se rozhodnou používat. Mají určitá očekávání a ta se musí splnit. Vztah mezi bezpečím a důvěrou je zásadní a symbiotický. Bezpečnostní mechanismy jsou důležité pro vytvoření a udržení důvěry mezi uživateli a systémem do které patří účastníci konsensu a tým.
Lidé používají síť prostřednictvím blockchainové peněženky. Musí si uvědomit, že důvěřují softwaru (protokolu), který je spravován týmem. Do této kategorie spadá governance která může mít různé formy. Navíc uživaelé důvěřují všem účastníkům konsensu, tedy těm, kteří produkují bloky a/nebo delegují drahý zdroj (například ADA coiny do Cardano poolů nebo hash rate do Bitcoin poolů).
Dá se říci, že uživatelé věří, že síť je decentralizovaná. Jak uvidíte dále v textu, bezpečnost v mnoha případech závisí na decentralizaci.
Jaká jsou očekávání lidí?
Očekávání uživatelů jsou založena na narativech a veřejně dostupných informacích v médiích. Pokud se nenaplní očekávání nebo dojde k vážnému problému, můžeme mluvit o narušení bezpečnosti.
Jedním z nejsilnějších narativů, které se šíří o technologii blockchainu, je, že není možné (nebo snadné) změnit měnovou politiku blockchainu nebo vytvořit nové coiny ze vzduchu.
Kromě toho se lidé domnívají, že pokud používají self-custody peněženky, nikdo na světě nemůže ukrást jejich aktiva, změnit jejich zůstatek nebo jim zabránit v utrácení. Oni, a pouze oni, mohou utrácet svůj vlastní majetek prostřednictvím transakcí.
Coiny lze utratit kdykoli, takže síť se nikdy nesmí zastavit. Blockchain síť musí být robustní a odolná vůči různým útokům. Nikdo by neměl mít možnost zmrazit uživatelské účty, vytvářet neplatné transakce, které by umožňovaly převod coinů na jinou adresu (bez platného podpisu majitele), nebo nafouknout množství coinů.
Dostupnost sítě souvisí s dlouhodobou ekonomickou udržitelností. Účastníci konsensu musí být za práci pro síť finančně odměněni. To znamená, že bezpečnost závisí na měnové politice a mechanismech odměňování.
Pojďme si to shrnout. Bezpečnostní požadavky jsou kladeny na:
- Tým a řízení. Schopnost opravovat chyby a řešit nedostatky.
- Kvalita zdrojového kódu (nesmí v něm být žádné zranitelnosti).
- Čestné chování účastníků konsensu (výrobců bloků a delegátů).
- Síťový konsensus. Musí zajistit kontinuitu, neměnnost historie blockchainu a integritu dat.
- Decentralizace (rozdělení rozhodovací pravomoci).
- Ekonomická udržitelnost a mechanismus odměňování. To přispívá k zajištění spravedlivého chování účastníků konsensu a dlouhé životnosti systému.
- Funkčnost zajišťuje, že nikdo (tým, účastníci konsensu atd.) nezcizí aktiva od uživatelů, kteří se sami spravují. V článku se zaměříme především na transakce.
Jak vidíte, bezpečnost je komplexní téma. Pokud je jen jeden z uvedených bodů nějak nefunkční, nespolehlivý nebo omezený, je nějakým způsobem ohrožen majetek uživatelů. To nutně neznamená, že mohou přijít o majetek. Znamená to například, že mohou čelit omezením při používání sítě nebo že někdo získal výhody (upřednostnění transakcí, útok MEW atd.), takže není zajištěna férovost či korektnost.
Do výše uvedeného seznamu lze přidat další body. Například soukromí, regulace, a vlastní péče (útoků na uživatele je mnoho). Vlastní správa aktiv se týká spíše uživatelů než samotného blockchainu. To je důvod, proč je téma v noci pokryto.
Cardano je platforma SC, takže dalším širokým tématem by mohla být bezpečnost související s používáním služeb DeFi. Témata v tomto článku se nebudeme zabývat.
Ukažme si pár příkladů, které ohrožují bezpečnost blockchainu.
Tým se může pokusit změnit pravidla, neopravit chyby nebo omylem zavést nové chyby. Každý klient může obsahovat chyby (velmi pravděpodobně ano, ale nemusí se to projevit). Účastníci konsensu se mohou začít chovat nečestně (cenzurovat transakce, vyrábět prázdné bloky atd.). Pokud je počet výrobců bloků nízký (malý počet má dominantní postavení), může mít jejich nečestné chování velký dopad na síť. Nízká decentralizace může vést k externímu nebo internímu útoku (DDoS útok, pokus o ovlivnění týmu nebo účastníků konsenzu). Účastníci konsensu mohou opustit síť, pokud nedostanou zaplaceno.
51% útok
Když se lidí zeptáte, co je to zabezpečení blockchainu, často říkají, že je to odolnost proti takzvanému 51% útoku. Tento útok je významnou bezpečnostní hrozbou pro decentralizaci. Útok je zaměřen na síťový konsensus, tedy na výrobce bloků a držitele drahého zdroje nutného pro decentralizaci.
Dochází k němu, když jeden subjekt nebo skupina získá kontrolu nad více než polovinou podílu sítě (vsazené coiny) nebo výpočetního výkonu (hash rate). Nemusí se nutně jednat o externí útok kdy se soupeř snaží získat více drahého zdroje než čestní účastníci. Může dojít k vnitřnímu zneužití moci dominantními účastníky konsensu.
Vysoká úroveň kontroly podkopává základní princip decentralizace v blockchainu, který je navržen tak, aby zabránil kterékoli straně mít příliš velký vliv na síť. Dá se mluvit o útoku na pověst blockchainu.
V Bitcoin síti těží více než 55% bloků pouze 2 dominantní pooly. Existuje teoretické riziko že tito dva účastníci budou na vnitřním útoku spolupracovat, ale nemusí se to nikdy stát. Riziko není binární proměnná, ale škála.
Pokud útočník získá nadvládu nad konsensem sítě, může přepsat historii blockchainu, utratit stejné coiny dvakrát (útok double-spend), cenzurovat transakce, zabránit ostatním účastníkům získat odměnu atd. Podrobnosti se mohou u jednotlivých blockchainů lišit.
I když útočník získá 51% kontrolu nad blockchainovou sítí, nemůže přímo krást uživatelské prostředky. Bezpečnost jednotlivých peněženek a kryptografických klíčů, které je zajišťují, totiž není ohrožena 51% útokem.
Zatímco 51% útok umožňuje útočníkovi manipulovat s blockchainem určitými způsoby, neposkytuje mu možnost vytvářet transakce jménem uživatelů nebo měnit zůstatky v peněžence. Útočník může ovlivnit pouze transakce, které odeslal.
Všimněte si, že bezpečnost závisí na decentralizaci. Jak se decentralizace snižuje, zvyšuje se riziko útoku. Pokud je možné získat převahu v držení drahého zdroje, je možné zaútočit na síť.
Decentralizace Cardana je jedna z nejvyšších v kryptoměnách, s tisíci aktivních poolů a 1,3 milionu stakerů. V tuto chvíli se možnost spáchání 51% útoku zdá nepravděpodobná.
Útok na sítě je však vždy o ochotě investovat velké množství finančních prostředků do nákupu drahého zdroje nebo přijít s nápadem, jak zdroj podvodně získat od současných držitelů.
Možnost pokusit se o spáchání 51% útok je inherentní vlastnost veřejného blockchnu. Jedinou prevencí jsou vysoké náklady nebo složitost provedení útoku.
Bezpečnost a decentralizace
Bezpečnost a decentralizace spolu úzce souvisí.
Decentralizace chrání blockchain nejen před 51% útokem, ale také před různými síťovými útoky, jako je DDoS útok.
Decentralizovaná síť nesmí mít takzvaný jediný bod selhání. To by byl bod v síti, který by mohl způsobit problém, pokud by se ho útočníkovi podařilo úspěšně ovládnout nebo deaktivovat. Pokud má síť velký počet poolů, je velmi obtížné na ni zaútočit, protože útok musí být proveden současně na mnoha uzlech současně.
Dále musí být síť odolná proti přepsání historie hlavní knihy. Kromě toho je nutné zajistit konzistenci dat napříč uzly.
Decentralizace zvyšuje zabezpečení distribucí dat přes více uzlů (hlavní kniha je distribuovaná databáze). To ztěžuje zlovolným aktérům kompromitovat celou síť, protože by museli zaútočit na významnou část uzlů současně.
Integrita blockchainu je udržována pomocí kryptografických hashů a řetězení bloků. Útočník nemůže změnit minulé transakce, které jsou již potvrzené a zahrnuté v blockchainu. To by vyžadovalo schopnost vytvořit alternativní podvodný řetězec (řadu bloků) pro všechny již existující bloky od určitého bodu v minulosti po nejnovější blok. To není možné bez získání převahy v držení drahého zdroje.
Jak již bylo naznačeno v předchozím odstavci, vysoká decentralizace zvyšuje odolnost sítě proti cenzuře transakcí. Čím více producentů bloků učiní autonomní rozhodnutí o tom, které transakce zahrnout do nového bloku, tím větší je šance, že k cenzuře nedojde. Konkrétněji, někteří výrobci bloků mohou začít cenzurovat transakce. Pokud je jejich počet nízký (jejich stake nebo hash rate bude nízký), jejich chování výrazně neohrozí celkovou funkčnost sítě.
Je proto žádoucí mít v síti nejen velký počet výrobců bloků, ale také velký počet delegátů drahého zdroje.
Pokud by byly transakce v síti úspěšně cenzurovány, jednalo by se o narušení bezpečnosti, protože někteří uživatelé by nemohli utrácet majetek (z jejich pohledu by majetek byl bezcenný).
Odolnost vůči změnám pravidel klienta
Distribuovaná povaha konsensu je důležitá v kontextu přepisování síťových pravidel. Například není možné měnit měnovou politiku protokolu, vytvářet nové coiny ze vzduchu atd. Dále není možné měnit chování klienta ani v tom smyslu, že by bylo možné zmrazit uživatelské účty nebo změnit jejich zůstatky.
Tým definoval chování klienta a implementoval ho. Zdrojový kód najdete na GitHubu, takže je volně dostupný všem na světě. Veřejné blockchainové projekty jsou transparentní ohledně chování. Je však nutné zajistit, aby chování nemohl snadno změnit útočník ani tým.
Nesmí být možné libovolně měnit původní pravidla, ale mělo by být možné opravit chyby.
Pravidla protokolu jsou zapsána ve zdrojovém kódu klienta. Všichni operátoři v síti rozhodují, jakou verzi klienta budou provozovat. Útočník nemá šanci vnutit instalaci podvodného klienta všem operátorům. Za předpokladu, že všichni poctiví účastníci konsensu budou provozovat verzi klienta s pravidly, která jsou v souladu s očekáváním komunity a mají dominanci, nemá útočník šanci pravidla protokolu změnit.
Bez platných podpisů není možné převádět mince (toto je původní pravidlo klienta). Pokud je do bloku vložena neplatná transakce, blok bude neplatný. Takový blok poctivé uzly v síti zahodí. Síťový konsensus chrání měnovou politiku tím, že nedovoluje vytvoření mince ze vzduchu prostřednictvím transakce.
Uživatelé očekávají, že systém zajistí neměnnost měnové politiky a nemožnost manipulace s jejich majetkem. To je zajištěno pomocí decentralizace a kryptografie. Pokud uživatelé používají vlastní peněženky, jsou jejich prostředky velmi dobře chráněny. I kdyby se blockchainová síť na chvíli zastavila a poté znovu spustila, uživatelé by stále vlastnili své coiny a tokeny.
Solana síť bylo nutné v minulosti několikrát restartovat. O assets nikdo nepřišel. Kdyby se však tým a producenti bloků domluvili mezi sebou že například odmažou posledních 10 bloků, ke ztrátě assets by dojít mohlo (smazané transakce mění historii).
Proto je blockchain síť postavena tak, že ji nelze zastavit (kontinuit/živost). I když některé uzly přejdou do režimu offline, zbytek uzlů v síti může nadále aktivně pracovat na konsensu. Síťové konsensy se však mezi sebou liší. Některé preferují liveness (živost), jiné correctness (korektnost).
K neočekávanému vypnutí sítě může dojít pouze v případě nějaké softwarové chyby. Síť Cardano se od svého spuštění nikdy nezastavila. To platí pro většinu ostatních projektů.
Bezpečnostní rozpočet a mechanismus odměňování
Z pohledu uživatelů není tak důležitá existence coinů a tokenů, ale hlavně možnost přesunout je na jinou adresu, aby je mohli utratit.
Uživatelé mohou držet aktiva ve své vlastní peněžence prostřednictvím kryptografického tajemství (přístupové fráze). Toto tajemství však nelze sdílet s někým jiným tak, aby bylo zajištěno výhradní vlastnictví. Každý, kdo zná tajemství, je vlastníkem mincí.
Uživatelé jsou závislí na schopnosti sítě zpracovat transakci, zahrnout ji do nového bloku a bezpečně přidat blok do blockchainu. Blockchain transakce je jediný způsob, jak může původní vlastník aktiv převést vlastnictví (kontrolu) mincí na někoho jiného. Nový vlastník bude mít nad mincemi výhradní kontrolu.
Síť tedy musí být dostupná, musí existovat. Bohužel to není samozřejmost. Existence sítě je podmíněna schopností pokrýt náklady na provoz.
Posledním tématem, kterému se budeme věnovat, je bezpečnostní rozpočet a schopnost sítě platit účastníky konsensu.
V tomto případě se nejedná o útok prováděný třetí stranou s cílem se obohatit (double-spend attack) nebo snížit reputaci blockchainu. To by mohlo být důsledkem neustále se snižujícího rozpočtu na bezpečnost.
Problém lze snadno vysvětlit na sítích PoW, jako je Bitcoin. PoW sítě potřebují spotřebovat obrovské množství elektřiny na výpočetní výkon (hash rate). Náklady na provoz Bitcoinu hradí těžaři. Těžaři dostávají nové BTC od Bitcoinového protokolu za každý vytěžený blok.
Problém je, že počet BTC coinů je omezen na 21M a aktuálně je v oběhu více než 19,5M coinů. BTC coiny pomalu docházejí z rezervy. S každým půlením, ke kterému dochází každé 4 roky, se odměna bloková odměna v BTC snižuje.
Udržování stejného (nebo vyššího) hash rate je založeno na předpokladu, že síť bude vybírat velké množství poplatků a že tržní hodnota BTC coinů bude nadále růst. V opačném případě budou těžaři dostávat stále menší a menší odměny, což povede ke snížení hash rate, tedy ke snížení bezpečnosti.
Snížení zabezpečení znamená, že bude levnější provést 51% útok. Odliv těžařů může vést k poklesu decentralizace.
Dlouhodobá existence blockchain sítí je tedy založena na mnoha předpokladech a není zaručena.
Cardano a mnoho dalších blockchainových sítí čelí v podstatě stejnému problému. PoS sítě mají výhodu levnějšího provozu (provozní náklady jsou až o 99 % nižší). Cardano uvolní do oběhu pouze 45B ADA coinů. V rezervě je méně než 9B mincí ADA.
Stejně jako u Bitcoinu, když je rezerva Cardano vyčerpána, poplatky by měly být dostatečné k odměňování SPO a stakerů.
Bezpečnostní rozpočet je pro uživatele nebezpečný v tom, že je obtížné odhadnout budoucí vývoj. Riziko se může zvyšovat postupně a teoreticky velmi pomalu. 51% útok však může přijít nečekaně.
Závěr
V článku jsme se zaměřili na témata, o kterých se v rámci bezpečnosti tak často nediskutuje a o kterých nováčci často ani nevědí (z naší zkušenosti). Článek nepokrývá všechna témata a podrobnosti. Cílem bylo ukázat začátečníkům záběr tohoto tématu a nasměrovat je správným směrem v jejich vzdělávání.
Dobrou zprávou je, že většina útoků nevede ke ztrátě uživatelských aktiv. Pokud uživatelé používají vlastní peněženky a mohou chránit kryptografické tajemství (heslo), téměř jistě o majetek nepřijdou. Jak je vysvětleno v článku, to, co musí uživatele zajímat, je schopnost utrácet aktiva.
Článek připravili Cardanians s podporou od Cexplorer.
Přečtěte si celý článek: https://cexplorer.io/article/understanding-blockchain-security