Ostatnio temat blockchaina robi się bardzo gorący i coraz więcej podmiotów – także rządy – chce go wykorzystywać lub co najmniej rozważa jego wykorzystywanie. W tym w bardzo wrażliwych dziedzinach i zastosowaniach. Gdy o tym czytam to włosy jeżą mi się na plechach bo blockchain NIE JEST wcale tak bezpiecznym rozwiązaniem jak to wmawiają ludziom jego piewcy i zdecydowanie nie jest bezpieczniejszy niż scentralizowana baza. Te gadki o bezpieczeństwu blockchaina są tak mocno lansowane – także przez ludzi z profesorskimi tytułami – że czuję się zobowiązany przestrzec Was przed blockchainem. Nie mówię, że to jest „be” rozwiązanie tylko mówię żebyście byli wystarczająco przezorni i ostrożni przy korzystaniu z rozwiązań opartych na blockchainach. A to dlatego, że każda z podawanych zalet (względem bezpieczeństwa) blockchaina może się stać – w przypadku skutecznego ataku – jego ŚMIERTELNĄ wadą.

Popatrzmy na podstawową cechę blockchaina, która rzekomo czyni go bezpieczniejszym od rozwiązań „klasycznych” a w rzeczywistości podatnym na co najmniej trzy proste ataki. Oczywiście to, że są proste nie znaczy, że są łatwe do skutecznego przeprowadzenia.

  1. Zdecentralizowana baza danych rzekomo ma być bezpieczniejsza od scentralizowanej.

W technologiach blockchainowych baza danych skopiowana jest na setkach/tysiącach/milionach węzłów, brak jednego, centralnego punktu z danymi, brak jednej osoby/podmiotu, decydującego co w niej zostaje definitywnie zarejestrowane a co nie [bo jest zostaje uznane za fałszywe]. Każda modyfikacja w warstwie danych musi być zaakceptowana przez większość (uwaga na to!) użytkowników sieci.
Natomiast w klasycznych rozwiązaniach baza danych jest na „jednym” centralnym serwerze, zarządzania przez jakiś podmiot/osobę, która może ją swobodnie wg własnej woli zmodyfikować. Ma to swoje oczywiste wady – wymaga zaufania do tzw. trzeciej strony, czyli osoby/podmiotu zarządzającego tą centralną bazą. Wiadomo też gdzie uderzyć by taką bazę dopaść itd. itp.
Tylko, że taka baza ma też zasadniczą zaletę – przy zachowaniu odpowiednich zasad bezpieczeństwa da się ją zabezpieczyć a nawet odtworzyć w razie skutecznego (niszczącego) ataku.
Nie da się tego powiedzieć o bazie blockchainowej!

Jeżeli ktoś przejmie większość węzłów – nie mówię tu o ich ilości tylko mocy oddziaływania na uznanie czegoś za wiarygodne lub fałszywe w blockchainie – to może taki blockchain zniszczyć lub podłożyć w jego miejsce własny.  I co wtedy z tego, że są jego kopie na endylionie innych węzłów skoro zostaną uznane za fałszywe i odrzucone?
W tym momencie zwolennicy blockchaina powiedzą, że to jest PRAWIE niemożliwe bo trzeba by dysponować ogromnymi środkami i że jeszcze nie doszło do takiej sytuacji. I mają rację, ale tylko w tym drugim przypadku – jeszcze do tego nie doszło, co nie znaczy, że nie dojdzie.
Bo czy rzeczywiście trzeba ogromnych środków?
Weźmy taki bitcoin – w tej chwili bardzo popularne jest przyłączanie się tzw. górników (czyli osób tworzących węzły) do grup wspólnie przeliczających transakcje (nazywanych minning pools, po polsku basenami wydobywczymi). Skutek jest taki, że w tej chwili 6 grup kontroluje ponad 60% blockchaina, przy czym taką grupą przecież KTOŚ po prostu zarządza. A pamiętam, że było okres gdy jedna taka chińska grupa zbliżyła się do 50%.
Gdzie więc ta decentralizacja?

Nietrudno jest też sobie wyobrazić, że te 6 osób się dogaduje lub okazuje się, że te 6 grup kontroluje lub zacznie kontrolować jedna osoba. Może tak być? Może.

Inny scenariusz to napisanie wirusa – jeśli nie na system to choćby zaszytego w uaktualnieniu sterownika do kart graficznych czy innych procesorów stosowanych do obliczeń – i przejęcie w ten sposób kontroli nad większością węzłów lub stworzenie endyliona własnych. Wystarczy chwilowa przewaga, kontrola, wystarczy zablokowanie  dostępu do sieci na choćby kilkanaście minut większości węzłów tak, żeby węzeł atakujacego przekroczył masę krytyczną danej sieci i zdecydował o dalszym rozwoju blockchaina.
Jak wtedy odtworzyć bazę? Która jest ta prawdziwsza? KTO miałby zdecydować o tym co jest prawdziwe a co fałszywe?
Odpowiedzi są smutne: Nie da się.  Nie da się. Nie ma nikogo takiego.
Taki atak byłby całkowicie skuteczny, a w przypadku wyjścia go na światło dzienne oznaczałby całkowitą kompromitację wiarygodności wszystkich baz blockchainowych z wiadomym dla wszystkich skutkiem dla tego rynku.

Jednym słowem – bądźcie przezorni!
Pamiętajcie, że to jest tylko oprogramowanie, które zawsze można zmienić, podmienić, wykryć i wykorzystać w nim błąd lub dziurę.

This article has 2 comments

  1. Zx Reply

    Witaj Arnoldzie,

    Mylisz się po wielokroć. Atak większościowy zdarzył się już kilkukrotnie i jak widać nie ma tragedii. Co prawda nie odnosiło się to do Bitcoina, ale fork był stworzony na podstawie ălgo tej właśnie kryptowaluty. A jakie są możliwe rozwiązania?

    „Z drugiej strony, deweloperzy Feathercoin mogą wydać aktualizację klienta który zawierać będzie zaprogramowany „punkt kontrolny” w bloku, zanim rozpoczął się atak – tworząc tym samym tzw. „hard fork”. Taki ruch spowodowałby cofnięcie i przywrócenie wszystkich transakcje do dnia 8 czerwca. Taki ruch skutecznie odwróciłby wszystko, co miało miejsce od tamtego czasu. Górnicy rozpoczęliby wydobycie z poprzedniego bloku, ignorując jednocześnie „złośliwy łańcuch bloków”

    http://bitcoiny.pl/atak-wiekszosciowy-51-czego-bitcoin-moze-nauczyc-sie-od-innych-kryptowalut/

    Poza tym był już atak hakerski na Bitcoina i ukradziono wtedy mnostwo bitkôw. I z tym też sobie poradzono.

    https://en.bitcoin.it/wiki/Value_overflow_incident

    Również kopie zapasowe można robić bezproblemowo. Poczytaj trochę zanim o czymś piszesz.

  2. Arek Reply

    Przez rozpęd skasowałem komentarz, który został uznany za spam.
    Ponieważ nie daje się go przywrócić normalnie to go przekopiuję.
    Autorem jest Krzysztof (https://steemit.com/@noisy)

    Fajnie, że piszesz, szkoda że tak bez sensu.. zacznę od tyłu:

    > Inny scenariusz to napisanie wirusa – jeśli nie na system to choćby zaszytego w uaktualnieniu sterownika do kart graficznych czy innych procesorów stosowanych do obliczeń

    Górnicy Bitcoina już dawno (od 2013 roku) nie używają do liczenia hashy ani CPU ani GPU. Od dawna taki sposób jest nieoptymalny. Bitcoin jest obecnie wydobywany na zaprojektowanych do tego celu układach scalonych, które nie potrafią robić nic innego jak liczyć hashe. Powodzenia w pisaniu wirusa na układ scalony

    > Jak wtedy odtworzyć bazę? Która jest ta prawdziwsza? KTO miałby zdecydować o tym co jest prawdziwe a co fałszywe?

    Słyszałeś o przypadku ETC i ETH? W przypadku różnicy zdań, dwa blockchainy mogą istnieć niezależnie. Wartość sieci nie musi się nawet zmienić, po prostu to jest kwestia tego, którą walutę ludzie będą chętniej akceptować – ta będzie miała większą wartość.

    > Jeżeli ktoś przejmie większość węzłów – nie mówię tu o ich ilości tylko mocy oddziaływania na uznanie czegoś za wiarygodne lub fałszywe w blockchainie – to może taki blockchain zniszczyć lub podłożyć w jego miejsce własny.

    LOL Drogi Arnoldzie, nie masz pojęcia jak działa Proof of Work.

    Po pierwsze, nie jesteś w stanie zniszczyć blockchaina, z jednego powodu. Jeżeli na świecie będzie istnieć chociaż jedna kopia tego blockchaina o którym nie wiesz, to blockchain przetrwa. A dlatego, że są osoby (jak choćby taki gość, który kiedyś kupił sobie bunkier nuklearny: http://www.datasecuritynode.com/ ), który robi backupy blockchainów i trzyma je offline – to jak chciałbyś zniszczyć taki blockchain tam przechowywany, skoro atomówka nie wystarczy?

    Inna sprawa jest taka… że kwestia zniszczenia blockchaina jest bezznaczenia, bowiem nie jesteś w stanie stworzyć równie długiego blockchaina.

    Gdybyś przejął 100% mocy sieci, zajęło by Ci to 8 lat by stworzyć alternatywny blockchain, który byłby dłuższy od obecnego – i to było by 8 lat w czasie których musiałbyś płacić za prąd tyle co Słowenia, bo prawa matematyki i termodynamiki mówią, że nie jesteś w stanie policzyć stwosownych hashy, jak próbować pierdyliardy jeden za drugim… a to wymaga obliczeń, a one prądu.

    Polecam obejrzeć https://www.youtube.com/watch?v=rsLrJp6cLf4

    Może to rozjaśni Ci jaka jest różnica pomiędzy blockchainami opartymi na Proof Of Work, które są niemożliwe do zmiany a systemy opartymi m.in. na Proof Of Stake, które dają dowód niezmienności.

Leave a Comment

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *