Blockchain - szybki przewodnik

W ostatnich latach na Blockchain jest dużo szumu. Wielu określiło to jako najbardziej przełomową technologię ostatniej dekady. W szczególności rynki finansowe mogą być najbardziej dotknięte.

Technologia jest dostosowywana do wielu branż, takich jak opieka zdrowotna, leki, ubezpieczenia, inteligentne nieruchomości, samochody, a nawet rządy.

Jednak jak dotąd najbardziej udaną implementacją Blockchain jest Bitcoin - elektroniczny system płatności peer-to-peer, który nawiasem mówiąc jest również pierwszym wdrożeniem technologii blockchain. Dlatego, aby zrozumieć technologię blockchain, najlepiej jest zrozumieć, w jaki sposób został zaprojektowany i wdrożony system Bitcoin.

W tym artykule dowiesz się, czym jest Blockchain, jaka jest jego architektura, jak jest wdrażany i jakie są jego różne funkcje. Przedstawię implementację Bitcoin, opisując zawiłości blockchain.

Architektura blockchain nie jest tak trywialna i wielu napisało dobre artykuły, samouczki, w tym kilka filmów. Dotyczy to zarówno nowicjuszy, jak i profesjonalistów. W tym samouczku skupię się na koncepcyjnym zrozumieniu architektury blockchain, mając na uwadze zarówno nowicjuszy, jak i profesjonalistów. Zanim zagłębimy się w blockchain, ważne jest, aby wiedzieć, dlaczego pojawiła się potrzeba tej nowej technologii? Odpowiedź na to pytanie znajduje się w tzwDouble − Spending.

Rozważ sytuację pokazaną na obrazku -

Jak wyraźnie widać, Bob oferuje Lisie 10 dolarów w zamian za książkę. Gdy Lisa otrzyma fizyczny rachunek w wysokości 10 dolarów, Bob nie może ponownie użyć tych pieniędzy do innej transakcji, ponieważ fizyczna waluta jest teraz w posiadaniu Lisy.

Rozważmy teraz sytuację, w której pieniądze są wypłacane w formie cyfrowej. Ilustruje to obraz -

Ponieważ format wymiany pieniędzy jest w formacie cyfrowym, jest to zasadniczo binarny plik fizyczny przechowywany gdzieś na urządzeniu Boba. Po tym, jak Bob przekaże ten plik (pieniądze cyfrowe) Lisie, może on również przekazać kopię pliku Alicji. Obaj uważają teraz, że otrzymali pieniądze bez możliwości uwierzytelnienia cyfrowej monety i w ten sposób dostarczyliby swoje towary Bobowi. To się nazywadouble-spending gdy nadawca wydaje te same pieniądze w więcej niż jednym miejscu na zakup usług lub towarów od wielu dostawców.

Aby rozwiązać ten problem podwójnego wydatkowania, należałoby zatrudnić scentralizowany organ do monitorowania wszystkich transakcji. Ilustruje to obraz -

Scentralizowany organ, którym zwykle jest Twój bank, prowadzi księgę rejestrową wszystkich transakcji. Teraz Bob musi wysłać swoje cyfrowe pieniądze do banku, który dokona wpisu do księgi głównej, obciążając jego konto. Po upewnieniu się, że Bob ma wystarczające saldo, aby zapłacić za cyfrowe pieniądze, które chce wysłać, prześle pieniądze Lisie, uznając jej konto w swojej księdze.

Teraz jest gwarantowane, że Bob nie może podwójnie wydawać pieniędzy. Gdyby każda transakcja cyfrowa była kierowana przez scentralizowany organ, taki jak ten, problem podwójnych wydatków zostałby rozwiązany. Daje to również kolejną korzyść w zakresie weryfikacji autentyczności każdej monety (pieniądza cyfrowego), którą otrzymuje w ramach transakcji. Tak więc fałszywe pieniądze (duplikaty pieniędzy, jak w przypadku Boba płacącego Alicji za pomocą kopii) byłyby łatwe do wykrycia i uniemożliwienia ich obiegu.

Wprowadzenie scentralizowanej władzy, choć rozwiązuje problem podwójnych wydatków, wprowadza kolejną poważną kwestię - koszt stworzenia i utrzymania samego scentralizowanego organu.

Ponieważ banki potrzebują pieniędzy na swoją działalność, zaczynają obniżać prowizje od każdej transakcji walutowej, którą robią dla swoich klientów. Czasami może to być bardzo kosztowne, szczególnie w przypadku zagranicznych transferów pieniężnych, w których w całą transakcję może być zaangażowanych wielu agentów (banków).

Wszystkie powyższe problemy rozwiązuje wprowadzenie waluty cyfrowej zwanej Bitcoin. Przedstawię teraz krótkie tło na temat tego, czym jest Bitcoin, zanim zagłębię się w jego projekt i architekturę.

Bitcoin został wprowadzony na ten świat przez Satoshi Nakamoto poprzez białą księgę w stylu badawczym zatytułowaną Bitcoin: elektroniczny system gotówkowy peer-to-peer w roku 2008.

Bitcoin nie tylko rozwiązał problem podwójnego wydawania, ale także oferował wiele innych korzyści. Jedną z takich zalet, o których warto tutaj wspomnieć, jest anonimowość transakcji. Satoshi, który stworzył system i dokonał transakcji na kilku monetach w tym systemie, jest całkowicie anonimowy dla całego świata.

Wyobraź sobie, że w tym świecie mediów społecznościowych, gdy stawką jest prywatność każdego człowieka, świat nie jest w stanie do tej pory wyśledzić, kim jest Satoshi? W rzeczywistości nie wiemy, czy Satoshi to jednostka, czy grupa ludzi. Wygooglowanie tego ujawniło również fakt, że bitcoiny, które posiada Satoshi Nakamoto, są warte około 19,4 miliarda dolarów - te pieniądze są teraz nieodebrane w systemie Bitcoin. Więc czym jest Bitcoin - spójrzmy!

Co to jest Bitcoin?

Jak widzieliście wcześniej, bank prowadzi księgę rejestrującą każdą transakcję. Ta księga jest prywatnie prowadzona i utrzymywana przez bank. Satoshi zaproponował, aby ta księga była publiczna i prowadzona przez społeczność.

W momencie, gdy upublicznisz taką księgę, przyjdzie Ci do głowy kilka kwestii. Księga ta musi być zabezpieczona przed manipulacją, aby nikt nie mógł modyfikować jej wpisów. Ponieważ każdy wpis w księdze jest publicznie widoczny, będziemy musieli dowiedzieć się, jak zachować anonimowość - oczywiście nie chciałbyś, aby wszyscy na świecie wiedzieli, że zapłaciłem ci milion dolarów.

Ponadto, ponieważ istnieje tylko jedna księga rejestrująca każdą transakcję na świecie, rozmiar księgi byłby kolejnym wielkim problemem. Zapewnienie rozwiązania tych zawiłości nie było trywialne i właśnie to próbuję tutaj, abyś zrozumiał podstawową architekturę Bitcoin w prostych słowach.

Ta podstawowa architektura to Blockchaini o tym jest ten samouczek. Aby zrozumieć architekturę Blockchain, musisz zrozumieć kilka kluczowych funkcji, na których się ona opiera. Zacznijmy więc od PKI - kryptografii klucza publicznego.

Kryptografia klucza publicznego lub w skrócie PKI jest również znana jako kryptografia asymetryczna. Używa dwóch par kluczy - publicznego i prywatnego. Klucz to jakaś długa liczba binarna. Klucz publiczny jest rozpowszechniany na całym świecie i jest naprawdę publiczny, jak sugeruje jego nazwa. Klucz prywatny ma być ściśle prywatny i nigdy nie należy go zgubić.

W przypadku Bitcoin, jeśli kiedykolwiek zgubisz klucz prywatny do swojego portfela Bitcoin, cała zawartość Twoich portfeli będzie natychmiast narażona na kradzież i zanim się zorientujesz, wszystkie Twoje pieniądze (zawartość portfela) znikną bez mechanizm w systemie wyśledzenia, kto go ukradł - czyli anonimowość w systemie, o którym wspomniałem wcześniej.

PKI spełnia dwie funkcje - uwierzytelnianie i prywatność wiadomości poprzez mechanizm szyfrowania / deszyfrowania. Teraz wyjaśnię obie te funkcje -

Poświadczenie

Kiedy obie strony wymieniają wiadomości, ważne jest, aby ustanowić zaufanie między nadawcą a odbiorcą. W szczególności odbiorca musi ufać źródłu wiadomości. Przechodząc do naszego wcześniejszego scenariusza (przedstawionego na rysunku 1), w którym Bob wysyła Lisie pieniądze za zakup niektórych towarów od niej, zobaczmy, w jaki sposób PKI buduje zaufanie między Bobem i Lisą. Spójrz na poniższy obrazek -

Po pierwsze, jeśli Bob chce wysłać Lisie pieniądze, musi stworzyć własny klucz prywatny / publiczny. Należy pamiętać, że oba klucze są zawsze sparowane i nie można łączyć kluczy prywatnych i publicznych różnych osób lub różnych instancji.

Teraz Bob mówi, że przesyła Lisie 10 dolarów. Tworzy więc wiadomość (zwykłą wiadomość tekstową) zawierającą klucz publiczny Boba (nadawcy), klucz publiczny Lisy (odbiorcy) oraz kwotę (10 USD).

Cel tego przekazu, np. „Chcę kupić od ciebie dynię”, jest również dodany do wiadomości. Cała wiadomość jest teraz podpisana kluczem prywatnym Roberta. Kiedy Lisa otrzyma tę wiadomość, użyje algorytmu weryfikacji podpisu PKI i klucza publicznego Boba, aby upewnić się, że wiadomość rzeczywiście pochodzi od Boba. Sposób działania PKI wykracza poza zakres tego samouczka. Zainteresowanego czytelnika odsyła się do tej witryny, aby uzyskać bardziej szczegółową dyskusję na temat PKI. To potwierdza autentyczność nadawcy wiadomości. Przyjrzyjmy się teraz prywatności wiadomości.

Prywatność wiadomości

Teraz, gdy Lisa otrzymała płatność, chce wysłać link do swojego ebooka, który Bob chce kupić. Więc Lisa utworzyłaby wiadomość i wysłała ją do Boba, jak pokazano na obrazku -

Lisa tworzy wiadomość, taką jak „Oto link do mojego ebooka, o który prosiłeś”, podpisuje ją kluczem publicznym Boba, który otrzymała w wiadomości z żądaniem Boba, a także szyfruje wiadomość za pomocą tajnego klucza, który jest współdzielony między nimi podczas uzgadniania HTTPS.

Teraz Lisa jest pewna, że ​​tylko Bob może zdekodować wiadomość przy użyciu klucza prywatnego, który jest w posiadaniu samego Roberta. Ponadto osoba przechwytująca wiadomość nie byłaby w stanie odzyskać jej zawartości, ponieważ zawartość jest zaszyfrowana tajnym kluczem posiadanym tylko przez Boba i Alicję. To gwarantuje Lisie, że dostęp do jej ebooka ma tylko Bob.

Widząc obie funkcje, uwierzytelnianie i prywatność wiadomości, implikowane przez PKI, przejdźmy dalej, aby zobaczyć, w jaki sposób Bitcoin wykorzystuje PKI do zabezpieczenia księgi publicznej, o której wspomniałem w rozdziale „Czym jest Bitcoin?”.

Dla Twojej wiedzy - Najpopularniejszymi algorytmami PKI są RSA i ECDSA , Bitcoin używa tego drugiego.

Jedną z najważniejszych funkcji w PKI jest funkcja mieszająca. Funkcja skrótu odwzorowuje dane o dowolnym rozmiarze na dane o stałym rozmiarze. Bitcoin używa funkcji skrótu SHA-256, która generuje skrót (wyjście) o rozmiarze 256 bitów (32 bajty). Ilustruje to obraz -

Bob, składając zamówienie u Lisy, tworzy wiadomość podobną do pokazanej powyżej. Ta wiadomość jest mieszana przez funkcję skrótu, która tworzy 32-bajtowy skrót. Piękno tego skrótu polega na tym, że ze względów praktycznych skrót (liczba 256-bitowa) jest uważany za unikalny dla treści wiadomości. Jeśli wiadomość zostanie zmodyfikowana, wartość skrótu ulegnie zmianie. Mało tego, biorąc pod uwagę wartość skrótu, niemożliwe jest odtworzenie oryginalnej wiadomości.

Po zapoznaniu się ze znaczeniem haszowania przejdźmy do innej koncepcji w Bitcoinie, czyli wydobywania.

Kiedy Bob tworzy zlecenie zakupu dla Lisy, nie wysyła go do samej Lisy. Zamiast tego wiadomość z żądaniem jest emitowana w całej sieci, do której jest podłączony. Sieć Boba jest przedstawiona na obrazku.

Wiadomość trafia do wszystkich podłączonych węzłów (maszyn). Niektóre węzły na diagramie są oznaczone jako górnicy. Są to maszyny, które uruchamiają oprogramowanie do wydobywania wiadomości bitcoin. Wyjaśnię ci teraz, co oznacza to wydobywanie.

Proces wydobycia

Ponieważ cała sieć jest szeroko rozpowszechniona, oczekuje się, że każdy górnik w sieci otrzyma wiele wiadomości od wielu dostawców w danym okresie. Górnik łączy te wiadomości w jednym bloku. Ilustruje to obraz -

Po utworzeniu bloku wiadomości górnik tworzy skrót na bloku za pomocą funkcji skrótu opisanej wcześniej. Teraz, jak wiesz, jeśli jakakolwiek osoba trzecia zmodyfikuje zawartość tego bloku, jego hash stałby się nieważny. Nawiasem mówiąc, każda wiadomość jest oznaczona datą, więc nikt nie może modyfikować jej kolejności chronologicznej bez wpływu na wartość skrótu bloku. W ten sposób wiadomości w bloku są doskonale zabezpieczone przed manipulacją. W jaki sposób ten fakt jest wykorzystywany do zabezpieczania wszystkich transakcji w sieci, wyjaśniono dalej.

Bloki utworzone przez różnych górników są połączone razem, tworząc tak zwaną prawdziwie rozproszoną księgę publiczną.

Każdy blok w łańcuchu zawiera wiele wiadomości (transakcji), jak pokazano wcześniej na Rysunku 8. Blok w łańcuchu może pochodzić od dowolnego górnika. Podczas tworzenia łańcucha bloków obserwujemy zasadę, że hash poprzedniego bloku jest dodawany do bieżącego bloku.

W ten sposób górnik podczas tworzenia bloku zbiera skrót ostatniego bloku w łańcuchu, łączy go z własnym zestawem wiadomości i tworzy skrót dla nowo utworzonego bloku. Ten nowo utworzony blok staje się teraz nowym końcem łańcucha, a zatem łańcuch nadal rośnie, ponieważ górnicy dodają do niego coraz więcej bloków.

Ponieważ wszystkie transakcje są oznaczone sygnaturą czasową, musimy zaimplementować rozproszony serwer znaczników czasu w sieci peer-to-peer. Wymaga to dodatkowej implementacji i jest to dowód pracy, który teraz opiszę. Do każdego bloku dodajemy teraz jeszcze jeden element o nazwieNonce jak pokazano na poniższym rysunku -

Nonce to liczba taka, że ​​hash bloku spełnia określone kryterium. Tym kryterium może być to, że wygenerowany hash musi mieć początkowe cztery cyfry równe zero.

W ten sposób wygenerowany hash wyglądałby jak 000010101010xxx. Ogólnie rzecz biorąc, górnik zaczyna od wartości jednorazowej równej 0 i kontynuuje jej zwiększanie, aż wygenerowany skrót spełnia określone kryterium.

Zwróć uwagę, że generowanie skrótu działa losowo i jest poza Twoją kontrolą - to znaczy nie możesz zmusić funkcji skrótu do wygenerowania określonego skrótu. W związku z tym może minąć kilka iteracji, zanim zostanie wygenerowany żądany skrót z czterema wiodącymi zerami. Oczekiwany czas na wygenerowanie bloku w systemie bitcoin to 10 minut. Gdy górnik pomyślnie wydobywa blok, uwalnia go w systemie, czyniąc go teraz ostatnim blokiem w łańcuchu.

Zwróć uwagę, że istnieje wielu górników konkurujących o wygenerowanie legalnego bloku. System Bitcoin nagradza pierwszego górnika odnoszącego sukcesy, dając mu określone bitcoiny. Ogólnie rzecz biorąc, górnik z większą mocą obliczeniową może być wczesnym zwycięzcą. Może to spowodować ataki na cały system ze strony osób dysponujących ogromną mocą obliczeniową. Pod koniec tego samouczka opiszę ataki i sposoby ich łagodzenia.

Podsumuję teraz kroki opisane powyżej; tak się dzieje w sieci -

  • Każdy, kto chce skorzystać z usług strony trzeciej, która ogłosiła się w sieci, najpierw tworzy transakcję (wiadomość do żądanego odbiorcy).

  • W danym okresie może istnieć wielu nadawców (kupujących) i odbiorców (sprzedających) tworzących takie transakcje.

  • Wszystkie transakcje są transmitowane w sieci do wszystkich węzłów. Zwróć uwagę, że nie jest konieczne, aby dana transakcja dotarła do każdego innego węzła w sieci.

  • Każdy węzeł łączy nowe transakcje w blok. Zwróć uwagę, że zestaw transakcji w każdym bloku jest niezależny od zestawu bloków utworzonych przez innych i naturalnie będzie inny niż pozostałe. To nie ma znaczenia; system zapewnia, że ​​każda transakcja transmitowana w sieci zostaje zawarta w jakimś bloku w rozsądnym czasie. Ogólnie rzecz biorąc, nadawca zachęci węzeł, oferując górnikowi określoną ilość bitcoinów za jego wysiłki. Górnik może zdecydować się na nadanie pierwszeństwa włączenia do bloku tym, którzy mają większe zachęty.

  • Węzeł pracuje teraz nad znalezieniem dowodu pracy dla złożonego bloku.

  • Gdy węzeł znajdzie dowód pracy, rozgłasza zmontowany blok w sieci.

  • Węzły, które otrzymają nowy blok, zaakceptują go dopiero po sprawdzeniu, czy wszystkie transakcje w bloku są prawidłowe i nie zostały jeszcze wykorzystane.

  • Jeśli blok zostanie zaakceptowany jako ważny, węzeł, który pracuje na swoim własnym nowym bloku, będzie musiał ponownie złożyć transakcje w swoim bloku, zapewniając, że transakcje nie zostaną zduplikowane. Węzeł pracuje teraz nad znalezieniem dowodu pracy na nowo utworzonym bloku; robiąc to, zajmie hash zaakceptowanego bloku jako poprzedni hash.

  • Podobnie, blockchain nieustannie się rozwija.

Teraz, gdy widzieliśmy, jak działa cały system, pozwólcie mi opisać niektóre skutki uboczne i sposoby ich rozwiązania.

Jak widzieliśmy w rozdziale Bitcoin - Mining, górnik może zostać zalany wieloma transakcjami w danym okresie. Maksymalny rozmiar bloku jest wstępnie zdefiniowany w systemie, co powoduje, że blok musi zawierać tylko określoną liczbę transakcji.

Liczba transakcji w bloku jest określana przez predefiniowany rozmiar bloku i średnią długość każdego bloku. Ważną wskazówką jest to, że nadawca nie powinien zawierać zbyt wielu informacji w swojej wiadomości, aby była krótka i tym samym zachęcała górnika do zaakceptowania jej przed innymi długimi wiadomościami.

Nadawca generalnie doliczy również opłatę transakcyjną w postaci pewnej liczby bitcoinów, aby zachęcić górnika do wczesnego włączenia do swojego bloku.

Inną konsekwencją w budowaniu łańcucha blokowego jest jego rozmiar. Z biegiem czasu cały łańcuch bloków może stać się zbyt duży, aby węzeł mógł go przechowywać na swoim dysku. Można to rozwiązać za pomocą drzewa Merkle, które jest opisane poniżej.

Problem miejsca na dysku w węźle można łatwo rozwiązać, ponieważ wszystkie transakcje w bloku są hashowane w drzewie Merkle, jak pokazano na obrazku -

Nagłówek bloku zawiera teraz skrót poprzedniego bloku, wartość jednorazową i Root Hashwszystkich transakcji w bieżącym bloku w drzewie Merkle. Jak toRoot Hashzawiera skróty wszystkich transakcji w bloku, transakcje te mogą zostać przycięte, aby zaoszczędzić miejsce na dysku. Więc teraz twój blockchain będzie wyglądał jak na poniższym obrazku -

Może to skutkować dużą oszczędnością miejsca na dysku. Ta strategia jest stosowana przez zwykłego klienta, który jest zainteresowany otrzymywaniem płatności od innych. Jednak górnicy muszą zachować pełny łańcuch bloków. Powstaje teraz pytanie, w jaki sposób odbiorca weryfikuje płatność bez możliwości prześledzenia otrzymanej monety do jej pochodzenia. To jest wyjaśnione dalej.

Rozważ przypadek, w którym jako sprzedawca możesz chcieć zweryfikować pewną płatność dokonaną w przeszłości. Ponieważ łańcuch bloków, który trzymasz na swoim komputerze, zawiera tylko nagłówki bloków, jak pokazano na wcześniejszym rysunku, w kopii Twojego łańcucha blokowego brakuje transakcji, której szukasz.

Możesz teraz przeszukiwać wstecz w swojej kopii łańcucha bloków, aż znajdziesz blok, w którym żądana transakcja jest oznaczona sygnaturą czasową. Teraz poproś o drzewo merkle wybranego bloku, a otrzymasz transakcję, której szukasz. Ilustruje to poniższy rysunek -

Tutaj zakładamy, że szukasz Tx103. Chociaż możesz nie być w stanie zobaczyć zawartości Tx103, wiesz, że zostało to zaakceptowane przez blok, do którego należy, i wszystkie kolejne bloki w łańcuchu. Dzięki temu możesz bezpiecznie zaufać tej transakcji i kontynuować swoją działalność.

Jak widzieliśmy, sieć Bitcoin obejmuje kilku kopaczy. Jest możliwe, że dwóch różnych górników rozwiązuje Proof of Work w tym samym czasie i tym samym dodają swoje bloki do ostatniego znanego bloku w łańcuchu. Ilustruje to poniższy obrazek -

Teraz mamy dwie gałęzie po bloku 3. Obie gałęzie są prawidłowe. Zatem następny wydobyty blok może zostać dodany do którejkolwiek z gałęzi. Załóżmy, że górnik dodaje nowo wydobyty blok do Bloku 104-A, gałąź zawierająca Blok 104-A będzie dłuższa niż gałąź zawierająca Blok 104-B. Ilustruje to poniższy obrazek -

W architekturze Bitcoin zawsze wygrywa najdłuższa gałąź, a krótsze są czyszczone. Więc blok 104-B musi zostać wyczyszczony. Przed wyczyszczeniem tego bloku wszystkie transakcje w tym bloku zostaną zwrócone do puli transakcji, aby zostały wydobyte i dodane do jakiegoś przyszłego bloku. W ten sposób konflikty są rozwiązywane, a system obsługuje tylko jeden łańcuch bloków.

Ponieważ księga rejestru, która rejestruje wszystkie transakcje bitcoin, jest naprawdę publiczna, w grę wchodzi prywatność. Każdy na świecie mógłby wiedzieć, kto komu zapłacił? Tradycyjny system bankowy jest w stanie zachować ten rodzaj prywatności, zachowując poufność swoich danych.

Prywatność w systemie Bitcoin osiąga się inną strategią. Zauważ, że powiedzieliśmy, że nadawca bitcoina musi wiedzieć, komu zapłacić. Dlatego prosi o klucz publiczny dostawcy, któremu chce dokonać płatności. Ten klucz publiczny może być anonimowy.

W tym sensie, jako sprzedawca niektórych usług, gdy ktoś zapyta Cię, gdzie wysłać płatność, po prostu wyślesz mu swój klucz publiczny. Powiązanie tego klucza publicznego z Tobą nie jest rejestrowane w żadnym miejscu w księdze. W ten sposób każdy poza tą transakcją wiedziałby tylko, ile pieniędzy jest przedmiotem transakcji i na który klucz publiczny pieniądze są wypłacane.

Aby osiągnąć wyższy poziom prywatności, dla każdej transakcji możesz wygenerować nowy klucz prywatny / publiczny dla każdej transakcji, tak aby wiele dokonanych przez Ciebie transakcji nie mogło zostać zgrupowanych przez stronę trzecią. Dla osoby postronnej oznaczałoby to po prostu, że dokonano wielu transakcji o mniejszych wartościach i nigdy nie będą one powiązane ze wspólnym źródłem.

Wreszcie, każdy internetowy system internetowy jest podatny na nadużycia. Opiszę teraz kilka możliwych typów ataków na system Bitcoin i sposoby ich łagodzenia.

Omówię trzy różne typy prawdopodobnych ataków w systemie Bitcoin -

Race Attack

Jako atakujący możesz wysłać tę samą monetę do różnych dostawców w krótkich odstępach czasu, prawdopodobnie używając dwóch różnych maszyn. Jeśli sprzedawcy nie czekają na potwierdzenie bloku przed dostarczeniem towaru, bardzo szybko zorientują się, że transakcja została odrzucona podczas procesu wydobywania. Rozwiązaniem tego rodzaju ataku jest to, że sprzedawca musi czekać na co najmniej jedno potwierdzenie bloku przed wysłaniem towaru.

Finney Attack

W tym przypadku atakującym jest górnik. Górnik wydobywa blok ze swoją transakcją i nie uwalnia go w systemie. Teraz używa tych samych monet w drugiej transakcji, a następnie uwalnia wstępnie wydobyty blok. Oczywiście druga transakcja zostanie ostatecznie odrzucona przez innych górników, ale zajmie to trochę czasu. Aby zminimalizować to ryzyko, sprzedawca powinien poczekać co najmniej sześć potwierdzeń blokowych przed wydaniem towaru.

Atak 51%

W tego rodzaju ataku wychodzimy z niepraktycznego założenia, że ​​ktoś jest właścicielem 51% mocy obliczeniowej sieci. Atakujący w tego rodzaju ataku wydobywa prywatny łańcuch bloków, w którym dwukrotnie wydaje monety.

Ponieważ posiada większość mocy obliczeniowej, ma gwarancję, że jego prywatny blockchain w pewnym momencie byłby dłuższy niż łańcuch „uczciwej” sieci. Następnie uwalnia swój prywatny łańcuch bloków w systemie, sprawiając, że wszystkie transakcje zapisane wcześniej w uczciwym łańcuchu bloków są nieważne.

Ten rodzaj ataku jest fikcyjny, ponieważ uzyskanie mocy obliczeniowej równej lub przekraczającej 51% mocy obliczeniowej całej sieci jest bardzo kosztowne.

W tym krótkim samouczku zapoznałeś się z kilkoma koncepcjami Blockchain, biorąc Bitcoin jako studium przypadku. Bitcoin to pierwsza udana implementacja blockchain. Obecnie świat znalazł zastosowania technologii blockchain w kilku branżach, w których pożądane jest zaufanie bez udziału scentralizowanej władzy. Witamy w świecie Blockchain.

Dalsze lektury -

  • Oryginalny artykuł autorstwa Satoshi - Bitcoin: A Peer-to-Peer Electronic Cash System

  • Oficjalna strona - Bitcoin.org