Z innej beczki, ogólnie…

Z innej beczki, ogólnie odnośnie bezpieczeństwa, to wszystko jest relatywne i zależne od tego jakie oczekiwania będzie miał użytkownik i na ile chce nosić czapkę foliarską. Bitcoin jest zależny od infastruktury technicznej i to jest fakt. Większośc ludzi uzna, że np. trezor to bardzo dobry kompris między przesadnym foliarstwem, a w miarę normalnym użytkowaniem. Prawda jest taka, że ataki można mnożyć i gdzieś komuś trzeba zaufać. Jeżeli chcielibyśmy wykluczyć wszystkie wektory ataku musielibyśmy zbudować własny hardware, kompilator itd. oraz zatrudnić masę ludzi, którzy by nam to przetestowali, bo sami byśmy tego nie ogarnęli. Ogólnie nie starczyłoby nam życia nawet gdybyśmy żyli 1000 lat. No chyba, że mamy tyle bitcoinów co pawlo i kupimy sobie korporację typu Microsoft, ale wtedy jakiś złośliwy pracownik też mógłby coś zrobić niefajnego. Błędne koło z którym de facto trzeba się pogodzić.

Może kilka przykładów, żeby to zobrazować. Zakładamy, że kupiliśmy trezora. Podłączamy go do usb do komputera z internetem. Dochodzimy do wniosku, że to może nie jest do końca bezpieczne, bo może jakiś błąd w komunikacji z usb czy coś i może ktoś jakimś cudem dostanie się do naszego urządzenia.

Dobra, kupiliśmy cold wallet. 100 % offline, czujemy się bezpiecznie. A co jeśli jest tam jakiś lewy kontroler, który nie generuje losowych seedów, a podstawia seedy z wbudowanej listy poprzez wbudowaną szynę danych o której wie tylko producent (notabene również dotyczy trezora)? Mamy urządzenie 100 % offline, a i tak tracimy wszystkie pieniądze! Dlaczego mam ufać SatoshiLabs czy Coinkite? Skąd mam wiedzieć, że nie przekupiły ich FBI?

Więc wygenerujemy sobie seeda sami rzucając monetą. Przecież to idealne rozwiązanie. Tylko co jeśli oprogramowanie coldwalleta nie wzięło całej entropii, a np. tylko kilkanaście zdefiniowanych bitów? Mamy wrażenie losowych adresów, a mimo tego dystrybutor hardware ma dostęp do naszych pieniędzy – mimo tego, że korzystaliśmy tylko offline i nawet wygenerowaliśmy sami seeda za pomocą rzutu monetą!

W generowaniu adresów za pomocą jakiejś implementacji w JS podobno był matematyczny błąd, który powodował, że pub keye nie pasowały do priv keyów. Traciliśmy wszystkie pieniądze. W electrum był błąd, który tworzył seedy z niską entropią w przypadku generowania seedów za pomocą własnej entropii. Co jeśli wykryte zostaną poważne błędy w implementacji linuxowego random? Każdy seed generowany na linuxie będzie zagrożony itd.

Mimo tego nie boję się korzystać z bitcoina. Myślę, że nawet powyższe zagrożenia moim rotropnym użytkowaniem mógłbym zminimalizować do minimum. Weźmy np. taki błąd w JS. Większość ludzi po stworzeniu walleta przesyłam tam „testowo” jakąś mniejszą kwotę. Ale kto robi odwrotną transakcję sprawdzając czy np. można wypłacić z tego adresu pieniądze? Mało kto. Producentów walletów hardwerowych darzę ograniczonym zaufaniem. Owiele bardziej ufam otwartemu opgrogramowaniu, które sam skompilowałem na własnej maszynie. Z drugiej strony zdaję sobie sprawę, że hardware wallety mogą mieć pozytywne cechy. Np. powiedzmy, że z takiego trezora korzysta 50 tys. ludzi i nagle u kogoś coś będzie nie tak. Jest duże prawdopodobieństwo, że się o tym dowiecie zanim sami na to wpadniecie. Zaleta popularnego rozwiązania, testowanego przez użytowników docelowego każdego dnia. Można na to patrzeć jak na zaletę i wadę.

Każdy z nas musi podejmowąć decyzję samodzielnie i wybrać odpowiednią strategię. Żeby nie było tak foliarsko, powiem tylko, że prawdopodobieństwo, że bitcoiny wam ukradną w sposób scamersko-socjologiczny jest o rzędy wielkości większe niż że ukradną z powodu błędu w oprogramowaniu czy jakimś hardware wallecie.

#bitcoin