Kryptowalutami interesuję już prawie 3 lata. Przez ten czas przeczytałem tysiące artykułów, niezliczoną ilość postów, a Bitcoin Wiki wertowałem godzinami. Dziś chciałbym podzielić się z wami 20 mniej lub bardziej znanymi ciekawostkami.
Miner może wydać nagrodę oraz opłaty transakcyjne z wykopanego bloku dopiero po 100 kolejnych blokach.
Okres dopasowania trudności trwa ok. 2 tygodnie (2016 bloków). Dopasowanie trudności kopania ma na celu utrzymanie częstotliwości wpadania bloków - 1 blok na 10 minut.
W whitepaperze node = miner.
Niemożliwym jest wydanie nagrody z bloku #0 (genesis block).
Tak naprawdę 21 mln BTC, które kiedykolwiek będą istnieć, to zaokrąglenie. Dokładna liczba wynosi 20999999,97690000.
Istnieje możliwość udowodnienia bycia posiadaczem danego adresu bez ujawniania klucza prywatnego.
Początkowo w kodzie Bitcoin Core nie istniał maksymalny limit bloku. Limit 1 MB został wprowadzony pod koniec 2010 roku i miał zostać w przyszłości zwiększony/zlikwidowany, jeśli zajdzie taka potrzeba.
(We can phase in a change later if we get closer to needing it).
Ludzie często porównują adres do konta bankowego. To bardzo wygodne porównanie, niestety mylące w bardziej zaawansowanych kwestiach. Dłuższe wytłumaczenie tego punktu znajdziesz na samym dole artykułu.
Podstawowa transakcja (1 input, 2 outputy) waży ok. 225 bajtów. Najmniejsza możliwa transakcja (1 input, 1 output, czyli wydanie całości i brak reszty) waży ok. 192 bajty.
Można wygenerować customowy adres, np. 1pies<losowe_znaki>.
15 sierpnia 2010 roku Jeff Garzik odkrył, że ktoś wykopał blok z 92 mld BTC. Dziura została załatana poprzez hardfork.
Po tym incydencie Satoshi zaimplementował "alert system", dzięki której mógł rozgłaszać ważne informacje do wszystkich węzłów. Nigdy jednak nie skorzystał z tej opcji. Została ona usunięta w 2016 roku.
Jeśli transakcja utknie w mempoolu, wróci do nadawcy po 2 tygodniach (kiedyś były to 3 dni). Jest to wartość domyślna (-mempoolexpiry), o której decyduje każdy węzeł. Dla porównania w Ethereum są to 3 godziny.
W przeszłości możliwe było wysłanie transakcji bez opłaty, o ile wartość CoinAge nadawała jej duży priorytet, tzn. monety dawno nie były przesyłane. Opcja ta została usunięta w wersji 0.15.0. Satoshi był zdania, że w blokach zawsze powinno być troszkę miejsca na darmowe transakcje.
Na Mt. Gox odbywało się 70% światowego obrotu BTC.
Wszystkie wypowiedzi Satoshiego można znaleźć na stronie http://satoshi.nakamotoinstitute.org
W skład adresów nie mogą wchodzić następujące znaki: 0, O, I, l (zero, duże o, duże i, małe L).
Miner nie musi załączać do bloku żadnych transakcji.
Zanim Satoshi wydał pierwszą wersję Bitcoin Core (wtedy zwanego jeszcze po prostu "Bitcoin"), przez ponad 2 miesiące dyskutował o nim na liście mailingowej dla kryptograficznych geeków metzdown.com
Milton Friedman przewidział powstanie kryptowalut 1999 roku.
Adnotacja do punktu 8.:
Wyobraź sobie, że monety nie istnieją, a banknoty mogą mieć dowolną wartość. Każdy z nas ma urządzenie, które umożliwia rozdzielenie banknotu na co najmniej dwa, niszcząc uprzednio wprowadzony banknot (jest to moment transakcji). Na przykład wprowadzając 27-złotowy banknot możemy wydrukować banknoty o nominałach 15,50 zł i 11,50 zł. Urządzenie pozwala również na konwersję w drugą stronę. Dziwne? Tak właśnie działa Bitcoin.
Banknoty wprowadzane do urządzenia nazywamy wejściami (inputs), a drukowane banknoty wyjściami (outputs). Podstawowa transakcja składa się z 1 wejścia i 2 wyjść, z czego 1 wyjście wraca do nas (wejście = banknot o dużej wartości, pierwsze wyjście = kwota, jaką płacimy/przelewamy, drugie wyjście = reszta). Wyobraźmy to sobie. Mamy nasz banknot o wartości 27 zł i kupujemy paczkę papierosów za 17 zł. Podajemy banknot kasjerce, ta wkłada go do swojej maszynki (moment transakcji), tworzy banknot 17-złotowy, który wkłada do kasy fiskalnej, oraz banknot 10-złotowy, który nam oddaje.
Dlaczego zrozumienie tego jest takie ważne? Ilość wejść i wyjść to główny czynnik wpływający na koszt opłaty transakcyjnej. Portfele chowają przed nami informację o posiadanych inputach, stąd wiele osób ma mylne wyobrażenie o działaniu transakcji. Przykładowo autor tego zdjęcia myślał, że to bug w programie, podczas gdy winą było posiadanie dużej ilości inputów o małej wartości. Na marginesie: w Ethereum jest prościej - adresy działają dokładnie tak jak konta bankowe :)