Kryptowaluta dla opornych: Bitcoin i nie tylko
Opublikowany: 2022-03-11Bitcoin wywołał spore zamieszanie w Internecie. Został wyśmiany, został zaatakowany, aż w końcu został zaakceptowany i stał się częścią naszego życia. Jednak Bitcoin nie jest sam. W tej chwili istnieje ponad 700 implementacji AltCoin, które wykorzystują podobne zasady i różne algorytmy kryptowalut.
Czego więc potrzebujesz, aby stworzyć coś takiego jak Bitcoin?
Nie próbując zrozumieć Twojej osobistej motywacji do stworzenia zdecentralizowanego, anonimowego systemu wymiany pieniędzy/informacji (ale wciąż mając nadzieję, że dotyczy to działań moralnych i prawnych), najpierw podzielmy podstawowe wymagania dla naszego nowego systemu płatności:
- Wszystkie transakcje powinny być dokonywane przez Internet
- Nie chcemy mieć centralnego organu, który będzie przetwarzał transakcje
- Użytkownicy powinni być anonimowi i identyfikowani wyłącznie przez ich wirtualną tożsamość
- Pojedynczy użytkownik może mieć tyle wirtualnych tożsamości, ile chce
- Podaż wartości (nowe wirtualne rachunki) musi być dodawana w kontrolowany sposób
Zdecentralizowane udostępnianie informacji przez Internet
Spełnienie dwóch pierwszych wymagań z naszej listy, czyli usunięcie centralnego organu wymiany informacji przez Internet, jest już możliwe. Potrzebujesz sieci peer-to-peer (P2P) .
Udostępnianie informacji w sieciach P2P jest podobne do udostępniania informacji wśród znajomych i rodziny. Jeśli udostępniasz informacje przynajmniej jednemu członkowi sieci, w końcu informacje te dotrą do wszystkich pozostałych członków sieci. Jedyna różnica polega na tym, że w sieciach cyfrowych informacje te nie zostaną w żaden sposób zmienione.
Prawdopodobnie słyszałeś o BitTorrent, jednym z najpopularniejszych systemów udostępniania plików P2P (dostarczania treści). Inną popularną aplikacją do udostępniania P2P jest Skype, a także inne systemy czatu.
Podsumowując, możesz zaimplementować lub użyć jednego z istniejących protokołów P2P typu open source do obsługi nowej kryptowaluty, którą nazwiemy Topcoin .
Algorytm haszujący
Aby zrozumieć tożsamości cyfrowe, musimy zrozumieć, jak działa szyfrowanie kryptograficzne . Haszowanie to proces mapowania danych cyfrowych o dowolnym rozmiarze na dane o stałym rozmiarze. Mówiąc prościej, haszowanie to proces zbierania pewnych informacji, które są czytelne i tworzenia czegoś, co w ogóle nie ma sensu.
Możesz porównać haszowanie do uzyskiwania odpowiedzi od polityków. Informacje, które im przekazujesz, są jasne i zrozumiałe, a dane wyjściowe wyglądają jak losowy strumień słów.
Jest kilka wymagań, które musi spełnić dobry algorytm mieszający:
- Długość wyjściowa algorytmu haszującego musi być stała (dobra wartość to 256 bajtów)
- Nawet najmniejsza zmiana w danych wejściowych musi powodować znaczną różnicę w danych wyjściowych
- Te same dane wejściowe zawsze dadzą te same dane wyjściowe
- Nie może być możliwości odwrócenia wartości wyjściowej w celu obliczenia danych wejściowych
- Obliczanie wartości HASH nie powinno być intensywne obliczeniowo i powinno być szybkie
Jeśli spojrzysz na proste statystyki, będziemy mieli ograniczoną (ale ogromną) liczbę możliwych wartości HASH, po prostu dlatego, że nasza długość HASH jest ograniczona. Jednak nasz algorytm mieszający (nazwijmy go Polityk256) powinien być na tyle niezawodny, że generuje zduplikowane wartości skrótu dla różnych danych wejściowych mniej więcej tak często, jak małpie w zoo udaje się poprawnie wpisać Hamlet na maszynie do pisania!
Jeśli uważasz, że Hamlet to tylko imię lub słowo, przestań teraz czytać lub przeczytaj o twierdzeniu o nieskończonej małpie.
Podpis cyfrowy
Podpisując pracę, wystarczy dołączyć swój podpis do tekstu dokumentu. Podpis cyfrowy jest podobny: wystarczy dołączyć swoje dane osobowe do podpisanego dokumentu.
Jeśli rozumiesz, że algorytm mieszający stosuje się do zasady, zgodnie z którą nawet najmniejsza zmiana danych wejściowych musi powodować znaczną różnicę w danych wyjściowych , to oczywiste jest, że wartość HASH stworzona dla oryginalnego dokumentu będzie inna niż wartość HASH stworzona dla dokumentu z dołączonym podpisem.
Połączenie oryginalnego dokumentu i wartości HASH utworzonej dla dokumentu z dołączonymi danymi osobowymi jest dokumentem podpisanym cyfrowo .
I w ten sposób docieramy do Twojej wirtualnej tożsamości , która jest zdefiniowana jako dane dołączone do dokumentu przed utworzeniem tej wartości HASH.
Następnie musisz upewnić się, że Twój podpis nie może zostać skopiowany i nikt nie może wykonać żadnej transakcji w Twoim imieniu. Najlepszym sposobem, aby upewnić się, że Twój podpis jest bezpieczny, jest zachowanie go samodzielnie i udostępnienie innej metody weryfikacji podpisanego dokumentu przez inną osobę. Ponownie możemy polegać na technologii i algorytmach, które są łatwo dostępne. Musimy użyć kryptografii klucza publicznego , znanej również jako kryptografia asymetryczna .
Aby to zadziałało, musisz utworzyć klucz prywatny i klucz publiczny . Te dwa klucze będą w jakiejś matematycznej korelacji i będą od siebie zależne. Algorytm, którego użyjesz do utworzenia tych kluczy, zapewni, że każdy klucz prywatny będzie miał inny klucz publiczny. Jak sugerują ich nazwy, klucz prywatny to informacje, które zachowasz tylko dla siebie, a klucz publiczny to informacje, które będziesz udostępniać.
Jeśli używasz swojego klucza prywatnego (tożsamości) i oryginalnego dokumentu jako wartości wejściowych algorytmu podpisywania w celu utworzenia wartości HASH, zakładając, że zachowałeś swój klucz w tajemnicy, możesz być pewien, że nikt inny nie może wygenerować tej samej wartości HASH dla tego dokumentu .
Jeśli ktoś będzie musiał zweryfikować Twój podpis, użyje oryginalnego dokumentu, utworzonej przez Ciebie wartości HASH i Twojego klucza publicznego jako danych wejściowych algorytmu weryfikacji podpisu, aby sprawdzić, czy te wartości są zgodne.
Jak wysłać Bitcoin/pieniądze?
Zakładając, że wdrożyłeś komunikację P2P, mechanizmy tworzenia tożsamości cyfrowych (klucze prywatne i publiczne) oraz zapewniłeś użytkownikom sposoby podpisywania dokumentów za pomocą ich kluczy prywatnych, jesteś gotowy do rozpoczęcia wysyłania informacji do swoich partnerów.
Ponieważ nie mamy centralnego organu, który potwierdzi, ile masz pieniędzy, system będzie musiał Cię o to za każdym razem pytać, a następnie sprawdzać, czy skłamałeś, czy nie. Tak więc Twój rekord transakcji może zawierać następujące informacje:
- Mam 100 Topcoins
- Chcę wysłać 10 monet do mojego farmaceuty za lek ( tutaj należy podać klucz publiczny farmaceutów )
- Chcę przekazać systemowi jedną monetę jako opłatę transakcyjną ( wrócimy do tego później )
- Chcę zatrzymać pozostałe 89 monet
Jedyne, co pozostało do zrobienia, to cyfrowe podpisanie rekordu transakcji swoim kluczem prywatnym i przesłanie go do swoich partnerów w sieci. W tym momencie każdy otrzyma informację, że ktoś (twoja wirtualna tożsamość) wysyła pieniądze komuś innemu (wirtualna tożsamość twojego farmaceuty).
Twoja praca jest skończona. Jednak za twój lek nie zostanie zapłacony, dopóki cała sieć nie uzna, że naprawdę masz 100 monet i dlatego możesz wykonać tę transakcję. Dopiero po zatwierdzeniu transakcji Twój farmaceuta otrzyma środki i wyśle Ci lek.

Kopacze kryptowalut: nowa rasa agenta
Znani są z tego, że górnicy są bardzo ciężko pracującymi ludźmi, którzy moim zdaniem są bardzo nisko opłacani. W cyfrowym świecie kryptowalut górnicy odgrywają bardzo podobną rolę, z tym że w tym przypadku zamiast kopać stosy ziemi, wykonują intensywną pracę obliczeniową. W przeciwieństwie do prawdziwych górników, niektórzy górnicy kryptowalut zarobili niewielką fortunę w ciągu ostatnich pięciu lat, ale wielu innych straciło fortunę na tym ryzykownym przedsięwzięciu.
Koparki są podstawowym elementem systemu, a ich głównym celem jest potwierdzenie ważności każdej transakcji żądanej przez użytkowników.
Aby potwierdzić ważność Twojej transakcji (lub kombinacji kilku transakcji żądanych przez kilku innych użytkowników), górnicy zrobią dwie rzeczy.
Po pierwsze, będą polegać na fakcie, że „wszyscy wiedzą wszystko”, co oznacza, że każda transakcja wykonywana w systemie jest kopiowana i dostępna dla każdego peera w sieci. Sprawdzą historię Twoich transakcji, aby sprawdzić, czy faktycznie masz 100 monet na początku. Po potwierdzeniu salda konta wygenerują określoną wartość HASH. Ta wartość skrótu musi mieć określony format; musi zaczynać się od pewnej liczby zer .
Istnieją dwa dane wejściowe do obliczenia tej wartości HASH:
- Dane ewidencji transakcji
- Dowód pracy górnika
Biorąc pod uwagę, że nawet najmniejsza zmiana danych wejściowych musi spowodować znaczną różnicę w wyjściowej wartości HASH , górnicy mają bardzo trudne zadanie. Muszą znaleźć konkretną wartość zmiennej dowodu pracy , która wygeneruje HASH zaczynający się od zer. Jeśli Twój system wymaga co najmniej 40 zer w każdej zweryfikowanej transakcji, górnik będzie musiał obliczyć około 2^40 różnych wartości HASH, aby znaleźć odpowiedni dowód pracy .
Gdy górnik znajdzie odpowiednią wartość za dowód pracy, ma prawo do opłaty transakcyjnej (pojedyncza moneta, którą chciałeś zapłacić), która może zostać dodana jako część zatwierdzonej transakcji. Każda zweryfikowana transakcja jest przesyłana do partnerów w sieci i przechowywana w określonym formacie bazy danych znanym jako Blockchain .
Ale co się stanie, jeśli liczba górników wzrośnie, a ich sprzęt stanie się znacznie wydajniejszy? Bitcoin był kiedyś wydobywany na procesorach, następnie na GPU i FPGA, ale ostatecznie górnicy zaczęli projektować własne układy ASIC, które były znacznie potężniejsze niż te wczesne rozwiązania. Wraz ze wzrostem hash rate rośnie również trudność wydobycia, zapewniając w ten sposób równowagę. Gdy do sieci wprowadzi się więcej mocy haszującej, trudność wzrasta i vice versa; jeśli wielu górników zdecyduje się wyciągnąć wtyczkę, ponieważ ich działalność nie jest już opłacalna, trudność jest dostosowywana do nowego współczynnika haszowania.
Blockchain dla opornych: globalna księga kryptowalut
Blockchain zawiera historię wszystkich transakcji wykonanych w systemie. Każda zweryfikowana transakcja lub partia transakcji staje się kolejnym pierścieniem w łańcuchu. Każda firma deweloperska blockchain polega na tej księdze publicznej.
Tak więc łańcuch bloków Bitcoin jest zasadniczo księgą publiczną, w której transakcje są wymienione w porządku chronologicznym.
Pierwszy pierścień w łańcuchu bloków Bitcoina nazywa się Genesis Block
Aby przeczytać więcej o tym, jak działa blockchain, proponuję przeczytać Blockchain Technology Explained: Powering Bitcoin, autorstwa Nermina Hajdarbegovica.
Nie ma ograniczeń co do liczby aktywnych górników w twoim systemie. Oznacza to, że dwóch lub więcej górników może zweryfikować tę samą transakcję. Jeśli tak się stanie, system sprawdzi całkowity wysiłek zainwestowany przez każdego górnika w walidację transakcji, po prostu licząc zera. Górnik, który zainwestował więcej wysiłku (znalazł więcej wiodących zer), zwycięży, a jego blok zostanie zaakceptowany.
Kontrolowanie podaży pieniądza
Pierwszą zasadą systemu Bitcoin jest to, że może zostać wygenerowanych maksymalnie 21 000 000 Bitcoinów. Ta liczba wciąż nie została osiągnięta, a zgodnie z aktualnymi trendami uważa się, że liczba ta zostanie osiągnięta do 2140 roku.
To może spowodować, że zaczniesz kwestionować użyteczność takiego systemu, bo 21 milionów sztuk to niewiele. Jednak system Bitcoin obsługuje wartości ułamkowe do ósmego miejsca po przecinku (0,0000001). Ta najmniejsza jednostka bitcoina nazywa się Satoshi , na cześć Satoshi Nakamoto, anonimowego twórcy protokołu Bitcoin.
Nowe monety są tworzone jako nagroda dla górników za walidację transakcji. Ta nagroda nie jest opłatą transakcyjną określoną podczas tworzenia rekordu transakcji, ale jest definiowana przez system. Kwota nagrody zmniejsza się z czasem i ostatecznie zostanie ustawiona na zero po osiągnięciu całkowitej liczby wyemitowanych monet (21 mln). Kiedy tak się stanie, opłaty transakcyjne będą odgrywać znacznie ważniejszą rolę, ponieważ górnicy mogą zdecydować się na priorytetowe traktowanie bardziej wartościowych transakcji do walidacji.
Oprócz ustawienia górnego limitu maksymalnej liczby monet, system Bitcoin wykorzystuje również ciekawy sposób na ograniczenie dziennej produkcji nowych monet. Kalibrując minimalną liczbę wiodących zer wymaganych do obliczenia proof-of-work, czas wymagany do walidacji transakcji i otrzymania nagrody w postaci nowych monet jest zawsze ustawiony na około 10 minut. Jeśli czas między dodaniem nowych bloków do łańcucha bloków ulegnie skróceniu, system może wymagać, aby dowód pracy wygenerował 45 lub 50 wiodących zer.
Tak więc, ograniczając szybkość i liczbę nowych monet, które można wygenerować, system Bitcoin skutecznie kontroluje podaż pieniądza.
Zacznij „drukować” własną walutę
Jak widać, stworzenie własnej wersji Bitcoina nie jest takie trudne. Wykorzystując istniejącą technologię, wdrożoną w innowacyjny sposób, masz wszystko, czego potrzebujesz do kryptowaluty.
- Wszystkie transakcje są dokonywane przez Internet z wykorzystaniem komunikacji P2P, eliminując w ten sposób potrzebę centralnego organu
- Użytkownicy mogą przeprowadzać anonimowe transakcje przy użyciu kryptografii asynchronicznej i są identyfikowani tylko przez kombinację klucza prywatnego/klucza publicznego
- Wdrożyłeś zwalidowaną globalną księgę wszystkich transakcji, która została bezpiecznie skopiowana do każdego partnera w sieci
- Masz zabezpieczoną, zautomatyzowaną i kontrolowaną podaż pieniądza, która zapewnia stabilność Twojej waluty bez potrzeby organu centralnego
Ostatnią rzeczą, o której warto wspomnieć, jest to, że w swej istocie kryptowaluta jest sposobem przesyłania anonimowej wartości/informacji od jednego użytkownika do drugiego w rozproszonej sieci peer-to-peer .
Rozważ zastąpienie monet w rekordzie transakcji losowymi danymi, które mogą być nawet zaszyfrowane za pomocą kryptografii asynchronicznej, aby tylko nadawca i odbiorca mogli je odszyfrować. Teraz pomyśl o zastosowaniu tego do czegoś takiego jak Internet Rzeczy !
Szereg wielkich technologów już bada zastosowanie technologii blockchain na platformach IoT, ale to nie jedyne potencjalne zastosowanie tej stosunkowo nowej technologii.
Jeśli nie widzisz powodu, aby tworzyć własną alternatywną walutę (poza praktycznym żartem), możesz spróbować użyć tego samego lub podobnego podejścia do czegoś innego, takiego jak uwierzytelnianie rozproszone, tworzenie walut wirtualnych używanych w grach, sieciach społecznościowych , i innych aplikacji lub możesz przystąpić do tworzenia nowego programu lojalnościowego dla swojego biznesu e-commerce, który nagradza stałych klientów wirtualnymi tokenami, które można później wykorzystać.