Przejdź do głównej zawartości

Posty

Jak zabezpieczyć portfel Bitcoin SV: Argon2id, UTXO i wysyłanie transakcji (Część 3)

 „Krótko: w tej części portfela Bitcoin SV zamieniam PBKDF2 na Argon2id (odporność na ataki GPU), dodaję obsługę UTXO, checksum HMAC do keystore, bezpieczne czyszczenie mnemonika z pamięci i wysyłanie transakcji z walidacją adresu. To część 3 serii." W poprzedniej części obiecałem że zajmiemy się bezpieczeństwem i wysyłaniem transakcji. Tym razem pracy było sporo, bo po drodze okazało się że "trochę większe" bezpieczeństwo. to tak naprawdę kilka całkiem konkretnych rzeczy do zmiany. I znowu skończyło się na tym, że siedziałem i dłubałem.. Co się zmieniło względem części 2? Zanim wrzucę kod, powiem co i dlaczego. W poprzedniej wersji portfela używaliśmy PBKDF2 do wyprowadzania klucza z hasła. To całkiem przyzwoity algorytm, ale ma jedną słabość - jest podatny na ataki GPU. Karta graficzna może liczyć miliony prób na sekundę równolegle a atakujący z porządną kartą graficzną może dość sprawnie przeszukiwać słowniki haseł.  PBKDF2 vs ...

Blockchain w Wordzie.

Nuda Cześć. Dopadła mnie ostatnio meeega nuda. Miałem wreszcie trochę świętego spokoju późnymi wieczorami, nikt nic ode mnie nie chciał, nie trzeba nic załatwiać, a siedziałem przed monitorem jak ten kołek. Na komputerze mam kilka gier ale od miesięcy ich nie uruchamiałem. Konsola jest. Leży. Mógłbym ją podłączyć do telewizora, tylko że samo wyciąganie kabli wydawało mi się bardziej męczące niż potencjalna rozrywka. Wiadomości (tych internetowych ściekowych) nie czytam, bo od dłuższego czasu ćwiczę cyfrowy minimalizm i ograniczam codzienne karmienie mózgu cudzymi problemami. Więc siedziałem tak i zastanawiałem się, czy to przez pogodę, czy przez wiek, czy może po prostu mój organizm uznał, że czterdziesty któryś rok życia to odpowiedni moment, żeby ekscytację nowymi grami zamienić na ekscytację dobrze działającym odkurzaczem. I co? I jak to z nudów, zaczynam myśleć. A moje myśli od dłuższego czasu krążą wokół blockchaina. Nie dlatego, że...

Krótka teoria r-ewolucji Bitcoina.

Blockchainy nie są postrzegane jak produkty, tylko jak żywe, długoterminowe narracje, w które ludzie są emocjonalnie i ekonomicznie wrośnięci.  Kiedy pojawia się nowy komunikator, przeglądarka czy konsola do gier, użytkownik może ją porzucić praktycznie bez emocji i przejść do konkurencji. W świecie blockchainów wygląda to inaczej, ponieważ ludzie nie inwestują wyłącznie czasu w naukę danego systemu (o ile ktoś w ogóle chcę się nauczyć) . Inwestują również pieniądze, przekonania, nadzieje, a często także część swojej tożsamości. Z czasem wokół projektu powstaje społeczność, własny język, zestaw wartości i wizja przyszłości. Technologia staje się tylko jednym z elementów większej opowieści. Dlatego historia Bitcoin |ów jest w dużej mierze historią konkurujących ze sobą narracji. Aby zrozumieć późniejsze podziały, konflikty i wojny ideologiczne, trzeba wrócić do momentu, w którym pojawiła się pierwsza z nich. Jeśli cofniemy się do początk...

Płacę ludziom za czytanie mojego bloga!

Reklamy mnie nie przekonują, paywalle irytują, a klasyczne modele monetyzacji internetu coraz częściej odstraszają użytkowników. Dlatego postanowiłem przetestować coś zupełnie innego - płacenie czytelnikom za czytanie moich wpisów. No cześć. Nie byłbym sobą, gdybym po rozpoczęciu/zakończeniu jednego eksperymentu nie znalazł sobie natychmiast następnego. To już chyba taki stan umysłu, z którym nie ma sensu walczyć. Narzędzie, o którym wspominałem wcześniej, działa, testy idą całkiem nieźle i nawet mam dla niego sensowne zastosowanie, ale problem z projektami jest taki, że gdy tylko jeden zaczyna przypominać coś gotowego, mój mózg natychmiast rozgląda się za kolejnym zajęciem. I właśnie podczas jednego z takich momentów twórczego bezrobocia, przypomniał mi się temat monetyzacji bloga. Reklamy, paywalle i inne internetowe utrapienia. Od samego początku wiedziałem, że nie interesuje mnie ta klasyczna droga, którą internet zdążył już wydeptać do gołej ziemi. Nie mam ochoty za...

Nie tylko Diablo 4. Kiedy gra staje się usługą.

Wspólny mianownik jest prosty: współczesna gra coraz rzadziej chce, żebyś ją ukończył. Ona chce, żebyś do niej wracał. Pisałem już kiedyś o grach i mechanizmach uzależniających. O tym, jak łatwo pomylić zabawę z nawykiem i satysfakcję z ciągłym poczuciem niedokończonego zadania. Ostatnio wróciłem do Diablo 4. Kupiłem dodatek, pograłem kilka dni i.. odpuściłem. Co ciekawe, nie dlatego, że gra była trudna. Nie dlatego, że była brzydka. Nie dlatego, że nie miałem czasu. Po prostu po raz kolejny zobaczyłem mechanizm, który od kilku lat rozlewa się po całej branży jak plaga. Diablo 4 jest tutaj tylko przykładem. Bardzo drogim, bardzo głośnym i bardzo widocznym. Są gry, które - przynajmniej do pewnego momentu - nagradzają czas. Potrafią z cyferek, animacji i efektów specjalnych zbudować w głowie gracza poczucie, że każda godzina jednak coś znaczy. Że postać rośnie. Że świat się otwiera. Że wysiłek zostawia po sobie jakiś ślad. I są też gry współczesne.  Takie, które pod po...

Eksperyment z wykorzystaniem blockchain Bitcoin (BSV)

Czas na coś nietypowego. Od kilku lat i od czasu do czasu, wracam do blockchaina Bitcoin SV , testując różne pomysły i możliwości tej sieci. Tym razem jednak, planuję przeprowadzić nieco bardziej nietypowy eksperyment, którego głównym celem będzie sprawdzenie kilku rzeczy w praktyce, a nie tylko w teorii. Pierwszym elementem będzie zweryfikowanie rzeczywistych kosztów wykonywania dużej liczby transakcji. W świecie blockchainów często mówi się o opłatach ale znacznie ciekawiej jest zobaczyć konkretne liczby niż marketingowe deklaracje. Chcę więc zebrać własne dane i sprawdzić, jak wygląda to w rzeczywistych warunkach. Drugim elementem będzie przepustowość. Interesuje mnie, jak wiele transakcji można wygenerować i rozesłać w krótkim czasie. Nie chodzi wyłącznie o sam blockchain, ale również o moje narzędzia, które będą uczestniczyć w całym procesie. Zakładam, że nie pobije żadnego rekordu, bo API w trybie darmowym zapewnia 3 wywołania na 1 sekundę, a w trybie płatnym 40/1,...

Tęsknię za kilkoma chwilami, które zdarzyły się w dzieciństwie.

Człowiek przestaje mówić było świetnie albo było fatalnie i zaczyna mówić było różnie, ale pewne chwile były naprawdę piękne. Mam czasem takie chwile, że bardziej niż w przyszłość, patrzę w bok - w jakąś szczelinę w czasie, przez którą na chwilę zaglądam do dawnych lat. W ciągu dnia albo wieczorem potrafi mnie nagle złapać wspomnienie tak gęste, że dosłownie czuję, jakbym na kilka sekund się tam przeniósł. Nie tylko obraz, ale też światło, zapach i spokój, którego dzisiaj trochę mi brakuje. Lata 90. Widzę swój pokój, ładnie oświetlony przez wpadające smugi letniego słońca. Ciepło dnia rozlewa się po ścianach, kurz tańczy w powietrzu, a ja siedzę gdzieś między łóżkiem a telewizorem, w świecie, w którym największym problemem jest to, czy dziś zagram jeszcze jedną planszę, czy już wyjść na podwórko. Za chwilę scena się zmienia: zeskakuję po schodach, wybiegam na dwór, ktoś krzyczy, że gramy, ktoś się huśta na huśtawce, ktoś zbiega ze ślizgawki (pamiętam nawet ten odgłos) , kt...

Tworzenie własnego portfela Bitcoin SV: Bezpieczeństwo, baza danych (Część 2)

W poprzedniej części zbudowaliśmy fundament - wiemy już czym jest entropia, mnemonic i seed. Potrafiliśmy z jednego sekretu wyprowadzić 10 adresów i podejrzeć ich klucze prywatne. Fajne ćwiczenie, ale tamten kod nadawał się tylko do zabawy w konsoli. Klucze prywatne wypisywane wprost na ekran, mnemonic trzymany w zmiennej to.. to nie jest coś, co chciałbyś zobaczyć w prawdziwym portfelu. Przez ostatnie kilka dni (a może i tygodni) jak znalazłem trochę wolnego czasu, to siedziałem i coś tam dłubałem sobie przy portfelu. Na początku wwaliłem wszystko do jednego pliku, później rozdzieliłem, po jakimś czasie znowu w jednym i w sumie ostatecznie rozdzieliłem na moduły. Szkoda, że nie zapisywałem wszystkich moich potknięć (a może to i dobrze) bo można by było zobaczyć mój tok myślowy. Na początek postawiłem na minimum bezpieczeństwa. Dziś zrobimy to porządniej. Zbudujemy portfel który: szyfruje mnemonic hasłem i zapisuje go bezpiecznie na dysku trzyma adresy w bazie SQLite ...