Bitcoin Blockchain

Omówiliśmy już podstawową strukturę danych blockchain w poprzedniej części, a także omówiliśmy podstawowe elementy składowe struktury danych blockchain, takie jak techniki mieszania i kryptografia asymetryczna. W tej sekcji poznamy specyfikę blockchaina Bitcoin. Blockchain Bitcoin, podobnie jak każdy inny blockchain, ma podobną strukturę danych blockchain. Klient Bitcoin Core korzysta z bazy danych LevelDB Google do wewnętrznego przechowywania struktury danych blockchain. Każdy blok jest identyfikowany przez swój skrót (Bitcoin używa algorytmu mieszającego SHA256). Każdy blok zawiera skrót poprzedniego bloku w sekcji nagłówka. Pamiętaj, że ten skrót nie jest tylko skrótem poprzedniego nagłówka, ale całego bloku, w tym nagłówka, i trwa aż do bloku genezy. Blok genezy jest początkiem każdego łańcucha bloków. Zazwyczaj łańcuch bloków Bitcoin wygląda jak pokazano na rysunku

Jak widać w tym łańcuchu bloków, istnieje część nagłówka bloku, która zawiera informacje nagłówka, oraz część ciała, w której transakcje są grupowane w każdym bloku. Nagłówek każdego bloku zawiera skrót poprzedniego bloku. Tak więc każda zmiana w dowolnym bloku łańcucha nie będzie taka łatwa; wszystkie kolejne bloki muszą zostać odpowiednio zmienione. Przykład: jeśli ktoś próbuje zmienić poprzednią transakcję, która została przechwycona, powiedzmy, w bloku 441, po zmianie transakcji, skrót tego bloku, który znajduje się w nagłówku bloku 442, nie będzie zgodny, więc należy go zmienić także. Zmiana nagłówka za pomocą nowego skrótu będzie wtedy wymagać aktualizacji skrótu w nagłówku bloku następnego bloku w sekwencji, który jest blokiem nr 443, i będzie to trwało do bieżącego bloku, co jest trudne. Staje się to prawie niemożliwe, gdy wiemy, że każdy węzeł ma własną kopię, a włamanie się do wszystkich węzłów lub co najmniej 51% z nich jest niemożliwe. W blockchain istnieje tylko jedna prawdziwa ścieżka do bloku genesis. Jeśli jednak zaczniesz od bloku genezy, mogą istnieć widelce. Gdy dwa bloki są proponowane w tym samym czasie i oba są ważne, tylko jeden z nich stanie się częścią prawdziwego łańcucha, a drugi zostanie osierocony. Każdy węzeł opiera się na najdłuższym łańcuchu i cokolwiek usłyszy jako pierwszy, i którykolwiek stanie się najdłuższy, będzie tym, na którym można budować. Taki scenariusz można przedstawić zgodnie z rysunkiem

Zauważ na rysunku, że na wysokości bloku-3 proponuje się, aby dwa bloki stały się blokiem-3, ale tylko jeden z nich mógł dostać się do końcowego łańcucha bloków, a reszta została osierocona. Oczywiste jest, że na pewnej wysokości bloku istnieje możliwość jednego lub więcej bloków, ponieważ na tej wysokości mogą znajdować się również osierocone bloki, więc wysokość bloku nie jest najlepszym sposobem jednoznacznej identyfikacji bloku, a skrót blokowy to właściwy sposób, aby to zrobić.

Praca z bitcoinami

Aby zacząć korzystać z Bitcoinów, nie jest wymagana żadna technika. Wystarczy pobrać portfel Bitcoin i zacząć z nim korzystać. Po pobraniu i zainstalowaniu portfela na laptopie lub telefonie komórkowym generuje on pierwszy adres Bitcoin (klucz publiczny). Możesz jednak wygenerować o wiele więcej i powinieneś. Najlepszą praktyką jest używanie adresów Bitcoin tylko raz. Ponowne użycie adresu jest niezamierzoną praktyką w Bitcoin, chociaż działa. Ponowne użycie adresu może zaszkodzić prywatności i poufności. Na przykład, jeśli ponownie używasz tego samego adresu i podpisujesz transakcję za pomocą tego samego klucza prywatnego, odbiorca może łatwo i niezawodnie ustalić, że adres, który jest ponownie używany, jest twój. Jeśli ten sam adres jest używany w wielu transakcjach, można je wszystkie śledzić, a znalezienie tożsamości staje się jeszcze łatwiejsze. Pamiętaj, że Bitcoin nie jest w pełni anonimowy; mówi się, że jest to pseudonim, a istnieją sposoby śledzenia pochodzenia transakcji, które mogą ujawnić właścicieli. Musisz ujawnić swój adres Bitcoin osobie, która chce przesłać Bitcoiny do Ciebie. Jest to bardzo bezpieczne, ponieważ klucz publiczny i tak jest publiczny. Wiemy, że nie ma pojęcia salda końcowego w Bitcoin i wszystkie zapisy są tam jako transakcje. Portfele Bitcoin mogą łatwo obliczyć saldo wydatków, ponieważ mają prywatne klucze odpowiednich kluczy publicznych, na których otrzymywane są transakcje. Istnieje wiele portfeli Bitcoin dostępnych od tak wielu dostawców portfeli. Istnieją portfele mobilne, portfele stacjonarne, portfele internetowe oparte na przeglądarce, portfele sprzętowe itp. O różnym poziomie bezpieczeństwa. Podczas pracy z bitcoinami musisz zachować szczególną ostrożność w kwestii bezpieczeństwa portfela. Płatności Bitcoin są nieodwracalne. Musisz się zastanawiać, jak zabezpieczone są te portfele. Różne typy portfeli mają różne poziomy bezpieczeństwa i zależy to od tego, jak chcesz z nich korzystać. Wiele usług portfeli internetowych ucierpiało z powodu naruszenia bezpieczeństwa. Dobrą praktyką jest zawsze włączanie uwierzytelniania dwuskładnikowego, gdy ma to zastosowanie. Jeśli jesteś regularnym użytkownikiem Bitcoinów, dobrym pomysłem może być użycie niewielkich ilości w swoich portfelach i trzymanie reszty osobno w bezpiecznym środowisku. Portfel offline lub zimny portfel, który nie jest podłączony do sieci zapewnia najwyższy poziom bezpieczeństwa oszczędności. Ponadto powinny istnieć odpowiednie mechanizmy tworzenia kopii zapasowych portfela na wypadek utraty komputera / telefonu komórkowego. Pamiętaj, że jeśli stracisz swój klucz prywatny, stracisz wszystkie związane z nim pieniądze. Jeśli nie dołączyłeś do Bitcoin jako górnik prowadzący pełny węzeł, możesz być użytkownikiem lub handlowcem Bitcoinów. Na pewno potrzebujesz wymiany, z której możesz kupić Bitcoiny za dolary amerykańskie lub inne waluty zaakceptowane przez giełdy. Powinieneś kupować Bitcoiny z legalnej i bezpiecznej wymiany. Istnieje wiele przykładów wymian, które ucierpiały z powodu naruszenia bezpieczeństwa.

Co to jest Bitcoin?

Blockchain oferuje kryptowalutę: cyfrowe pieniądze! Tak jak możemy dokonywać transakcji za pomocą fizycznej waluty bez banków lub innych scentralizowanych podmiotów, tak Bitcoin ma na celu ułatwienie transakcji pieniężnych peer-to-peer bez zaufanych pośredników. Przyjrzyjmy się, co to jest, a następnie dowiedzmy się w dalszej części rozdziału, jak to naprawdę działa. Bitcoin to zdecentralizowana kryptowaluta, która nie jest ograniczona do żadnego kraju i jest walutą globalną. Jest zdecentralizowany pod każdym względem – technicznym, logicznym i politycznym. W trakcie sprawdzania poprawności transakcji wydobywane są nowe bitcoiny i można wyprodukować maksymalnie 21 milionów bitcoinów. W przybliżeniu, aby osiągnąć 21 milionów Bitcoinów, potrwa to do roku 2140. Każdy, kto ma dobrą moc obliczeniową, może uczestniczyć w wydobyciu i generować nowe Bitcoiny. Po wygenerowaniu wszystkich Bitcoinów nie można bić żadnych nowych monet i można używać tylko tych w obiegu. Pamiętaj, że Bitcoiny nie mają ustalonych nominałów, takich jak krajowe waluty fiducjarne. Zgodnie z projektem Bitcoiny mogą mieć dowolną wartość z dokładnością do dziesięciu miejsc po przecinku. Tak więc najmniejszą wartością w Bitcoin jest 0,00000001 BTC, która nazywa się 1 Satoshi. Górnicy wydobywają transakcje w celu wybicia nowych monet, a także zużywają opłatę transakcyjną, którą osoba gotowa dokonać transakcji jest gotowa zapłacić. Gdy łączna liczba monet osiągnie 21 milionów, górnicy sprawdzą transakcje wyłącznie pod kątem opłat transakcyjnych. Jeśli ktoś spróbuje dokonać transakcji bez opłaty transakcyjnej, nadal może zostać wydobyty, ponieważ jest to ważna transakcja (jeśli w ogóle jest), a także górnik jest bardziej zainteresowany nagrodą górniczą, która pozwala mu generować nowe monety. Zastanawiasz się, co decyduje o wartości Bitcoinów? Kiedy waluta była wspierana przez złoto, miała wielkie znaczenie i łatwo było oszacować wartość na podstawie standardów złota. Kiedy mówimy, że Bitcoin jest wspierany przez moc obliczeniową, z której ludzie korzystają do wydobywania, to nie wystarczy, aby zrozumieć, w jaki sposób osiąga swoją wartość. Oto drobna ekonomia wymagana do zrozumienia tego. Kiedy po raz pierwszy wprowadzono walutę fiducjarną, była ona zabezpieczona złotem. Ponieważ ludzie wierzyli w złoto, wierzyli również w walutę. Po kilku dekadach waluta nie była już wspierana przez złoto i była całkowicie zależna od rządów. Ludzie nadal w to wierzą, ponieważ sami tworzą lub przyczyniają się do tworzenia własnego rządu. Ponieważ rządy zapewniają jej wartość, a ludzie jej ufają, więc osiąga tę wartość. W kontekście międzynarodowym wartość waluty w poszczególnych krajach zależy od różnych czynników, a najważniejszym z nich jest „podaż i popyt”. Należy pamiętać, że niektóre kraje, które wydrukowały wiele banknotów fiducjarnych, zbankrutowały; ich ekonomia spadła! Wróćmy na razie do Bitcoinów. Kiedy Bitcoin został wprowadzony po raz pierwszy, nie miał żadnej oficjalnej ceny ani wartości, w którą ludzie by uwierzyli. Jeśli ktoś sprzedałby go za kilka dolarów amerykańskich (USD), nigdy bym go nie kupił. Stopniowo, gdy zaczęła się wymiana, rozwinęła się cena, a jeden bitcoin nie był wtedy nawet jednym USD. Ponieważ Bitcoiny są generowane przez konkurencyjny i zdecentralizowany proces zwany „wydobywaniem”, i są generowane według stałej stawki z górną granicą 21 milionów Bitcoinów, które mogą kiedykolwiek istnieć, czyni to Bitcoin rzadkim zasobem. Odnosząc ten kontekst do gry „podaż i popyt”, wartość Bitcoin zaczęła się zawyżać. Powoli, kiedy cały glob zaczął w to wierzyć, jego cena wzrosła nawet z kilku USD do tysięcy USD. Przyjęcie bitcoinów wśród użytkowników, handlowców, start-upów, dużych firm i wielu innych firm rośnie jak nigdy wcześniej, ponieważ są one wykorzystywane w formie pieniędzy. Tak więc na wartość Bitcoin duży wpływ mają „zaufanie”, „adopcja” oraz „podaż i popyt”, a jego cena jest ustalana przez rynek. Teraz pytanie brzmi, dlaczego wartość Bitcoinów jest tak niestabilna jak w tym piśmie i bardzo się zmienia. Jednym z oczywistych powodów jest podaż i popyt. Dowiedzieliśmy się, że w obiegu może być tylko ograniczona liczba Bitcoinów, która wynosi 21 milionów, a tempo ich generowania maleje z czasem. Z powodu tej konstrukcji zawsze występuje luka w podaży i popycie, co powoduje tę zmienność. Innym powodem jest to, że Bitcoiny nigdy nie są wymieniane w jednym miejscu. Istnieje tak wiele giełd w tak wielu miejscach na całym świecie, a wszystkie te giełdy mają swoje własne ceny wymiany. Widoczne indeksy zbierają ceny wymiany Bitcoin z kilku giełd, a następnie je uśredniają.

Ponownie, ponieważ wszystkie te indeksy nie zbierają danych z tego samego zestawu giełd, nawet one się nie zgadzają. Podobnie współczynnik płynności, który implikuje ilość Bitcoinów przepływających przez cały rynek w danym momencie, również wpływa na zmienność ceny Bitcoin. Na razie jest to zdecydowanie aktywa wysokiego ryzyka, ale z czasem może się ustabilizować. Rzućmy okiem na poniższą listę czynników, które mogą wpływać na podaż i popyt bitcoinów, a tym samym na ich cenę:

  • Zaufanie ludzi do Bitcoin i strach przed niepewnością
  • Relacje prasowe z dobrymi i złymi wiadomościami na temat Bitcoin
  • Niektórzy ludzie są właścicielami Bitcoinów i nie pozwalają im przepływać przez rynek, a niektórzy ludzie kupują i sprzedają, aby zminimalizować ryzyko. Dlatego poziom płynności Bitcoinów ciągle się zmienia.
  • Akceptacja bitcoinów przez wielkich gigantów e-commerce
  • Banowanie Bitcoinów w określonych krajach

Jeśli zastanawiasz się teraz, czy istnieje jakakolwiek możliwość całkowitego upadku Bitcoinów, odpowiedź brzmi „Tak”. Istnieje wiele przykładów krajów, w których system walutowy się zawiesił. Cóż, istniały polityczne i ekonomiczne powody ich awarii, takie jak hiperinflacja, co nie ma miejsca w przypadku Bitcoinów, ponieważ nie można wygenerować tylu Bitcoinów, ile chcą, a całkowita liczba Bitcoinów jest ustalona. Istnieje jednak możliwość awarii technicznej lub kryptograficznej bitcoinów. Pamiętaj, że Bitcoin przetrwał próbę czasu od momentu jego powstania w 2008 roku i istnieje możliwość, że z czasem będzie on znacznie większy, ale nie można tego zagwarantować!

Świt Bitcoin

W pierwszym rozdziale przyjrzeliśmy się technologicznym aspektom rewolucji internetowej, a w poprzedniej części tego rozdziału przyjrzeliśmy się ewolucji pieniądza. Powinniśmy teraz spojrzeć na nie obok siebie, aby zrozumieć perspektywę Satoshi Nakamoto stojącą za projektowaniem Bitcoin – kryptowaluty. W tej sekcji i gdzie indziej w tym tekście postaramy się rozwinąć wypowiedzi Satoshi w artykule, który napisał na temat Bitcoin. Dowiedzieliśmy się o świątyniach, a następnie rządach i bankach o roli, jaką odgrywają w systemach walutowych, które wyszły z systemów wymiany. Nawet dzisiaj sytuacja jest taka sama. Jeśli trochę powiększysz te systemy, przekonasz się, że najważniejszą rzeczą, która sprawia, że ​​systemy te są stabilne, jest element „zaufania”. Ludzie ufali świątyniom, a następnie ufali rządom i bankom. Cały handel w Internecie opiera się obecnie na scentralizowanych, zaufanych stronach trzecich do przetwarzania płatności. Chociaż Internet został zaprojektowany jako peer-to-peer, ludzie budują na nim scentralizowane systemy odzwierciedlają tę samą starą praktykę. Technicznie zbudowanie systemu peer-to-peer w 2000 roku było dość trudne, biorąc pod uwagę dojrzałość technologii w tym czasie. W konsekwencji koszt transakcji, czas potrzebny na rozliczenie transakcji i inne problemy związane z centralizacją były oczywiste. Nie było tak w przypadku walut fizycznych, ponieważ transakcje oznaczały rozliczenie. Czy może istnieć cyfrowa waluta wspierana mocą obliczeniową, w taki sam sposób, w jaki złoto było wykorzystywane do zabezpieczenia pieniędzy w obiegu? Odpowiedź brzmi „Tak” dzięki Bitcoinom Satoshi. Bitcoiny zostały zaprojektowane w celu umożliwienia płatności elektronicznych między dwiema stronami w oparciu o dowód kryptograficzny, a nie w oparciu o zaufanie ze względu na pośredniczące strony trzecie. Jest to dziś możliwe dzięki postępowi technologicznemu. W tym rozdziale zobaczymy, jak Satoshi Nakamoto połączył kryptografię, teorię gier i podstawy inżynierii informatycznej, aby zaprojektować system Bitcoin w 2008 roku. Po uruchomieniu w 2009 roku i do dziś system jest dość stabilny i wystarczająco wytrzymały, aby utrzymać dowolne rodzaj cyberataków. Wytrzymał próbę czasu i zajął pozycję globalnej waluty.

Historia pieniędzy

Czy zastanawiałeś się kiedyś, czym są pieniądze i dlaczego w ogóle istnieją? Pieniądze są przede wszystkim środkiem wymiany wartości, czyli wszystkiego, co ma wartość. Ma to swoją historię. Szybko podsumujemy historię, aby zrozumieć, w jaki sposób pieniądze wyewoluowały do ​​tego, jak je znamy dzisiaj i jak Bitcoin przenosi je na wyższy poziom. Nie każdy ma wszystko. W dawnych dobrych czasach, kiedy nie było pojęcia o pieniądzu ani pieniądzach, ludzie wciąż zastanawiali się, jak wymienić nadwyżkę na to, czego potrzebowali od kogoś innego. To były dni systemu handlu wymiennego. Systemem była pszenica w zamian za peddy lub pomarańcze na cytryny. Wszystko było dobrze, ale co jeśli ktoś, kto ma pszenicę, potrzebuje lekarstw, których nie ma druga osoba? Przykład: Alice ma pszenicę i potrzebuje lekarstw, ale Bob wie, że ma dostęp do kogoś, kto ma pomarańcze, a Bob potrzebuje pszenicy. W tej sytuacji wymiana nie działa. Muszą więc znaleźć trzecią osobę, Charlie, która może potrzebować pomarańczy, a także ma nadwyżki lekarstw. Zawsze ciężko było znaleźć osobę taką jak Charlie w poprzednim przykładzie, która mogłaby tak łatwo wpasować się w układankę; ten problem musiał zostać rozwiązany. Ludzie zaczęli więc myśleć o utowarowionym systemie wymiany wartości. Było kilka rzeczy, których wszyscy potrzebowaliby, takich jak mleko, sól, nasiona, owce itp. Ten system prawie się sprawdził! Wkrótce ludzie zdali sobie sprawę, że przechowywanie takich towarów jest dość niewygodne i trudne. W końcu odkryto, że lepszymi technikami są instrumenty finansowe, takie jak kawałki metalu. Ludzie cenili rzadkie metale bardziej niż zwykłe. Złote i srebrne metale znalazły się na szczycie listy, jak by tego nie zrobiły aby korodować. Następnie kraje zaczęły bić własną walutę (metalowe monety o różnej wadze) z oficjalną pieczęcią w nich. Chociaż metalowe elementy i monety były lepsze niż w poprzednim systemie, ponieważ można je było łatwo przechowywać i przenosić, były one podatne na kradzież. Świątynie przybyły na ratunek, ponieważ ludzie im ufali i wierzyli, że nikt nie będzie kraść ze świątyń. Kapłani przekazaliby pokwitowanie osobie składającej złoto, podając ilość złota / srebra otrzymaną, jako obietnicę uznania ich depozytu i zwrócenia posiadaczowi pokwitowania tego samego po powrocie. Osoba posiadająca paragon może rozpowszechniać paragon na rynku, aby uzyskać to, czego chce. To był początek naszego systemu bankowego. Paragon działał, ponieważ waluta fiducjarna i świątynie odgrywały rolę scentralizowanych banków, którym ludzie ufali. We wspomnianym systemie walutę zawsze wspierał jakiś szlachetny metal, taki jak złoto lub srebro. System ten trwał nawet po tym, jak banki i banki wymieniły świątynie. W ten sposób pojawiła się na rynku waluta towarowa, aby umożliwić uniwersalny środek wymiany wartości towarów i usług. Jakakolwiek waluta w tamtych czasach była wspierana złotem / srebrem. Powoli rządy wprowadziły „walutę fiducjarną” jako legalny środek płatniczy, który nie był już wspierany złotem ani srebrem. Opierał się wyłącznie na zaufaniu, w tym sensie, że ludzie nie mieli wyboru, musieli zaufać rządowi. Waluta Fiata nie ma żadnej wewnętrznej wartości, jest tylko wspierana przez rząd. Dzisiaj pieniądze, o których wiemy, to wszystkie waluty fiducjarne. Tak więc wartość pieniądza zależy dziś od stabilności i wyników rządów, w których jurysdykcji emitowana i wykorzystywana jest waluta. Te papierowe waluty były same w sobie pieniędzmi i w bankach nie było nic więcej. Taki był stan systemów bankowych i jednocześnie kształtował się świat cyfrowy. Około lat 90. świat Internetu nabrał tempa, a systemy bankowe ulegały cyfryzacji. Ponieważ pewien poziom dyskomfortu utrzymywał się przy walutach fiducjarnych, ponieważ były one łatwo psujące się i podatne na kradzież, banki zapewniły, że ludzie mogą po prostu przejść na technologię cyfrową! Był to okres, w którym nawet papierowe notatki nie musiały być drukowane. Pieniądze stały się cyfrowymi liczbami w systemach komputerowych banków. Dzisiaj, gdyby każdy posiadacz rachunku poszedł do swojego szanowanego banku i zażądał banknotów za kwotę, którą przechowują na swoich rachunkach, banki miałyby poważne kłopoty! Całkowita ilość prawdziwych pieniędzy w obiegu jest niezwykle marginalna w porównaniu z ilością pieniędzy cyfrowych na całym świecie.

Jak działa Bitcoin?

Technologia Blockchain jest obecnie modna dzięki Bitcoinowi! Blockchain, jaki znamy, jest darem Bitcoin i jego wynalazcy, Satoshi Nakamoto, dla całego świata. Jeśli zastanawiasz się, kim jest Satoshi Nakamoto, jest to nazwa używana przez nieznaną osobę lub osoby, które stworzyły Bitcoin. Sugerujemy, abyś zrozumiał i docenił wspaniałą technologię Bitcoin bez szukania wynalazcy. Poznanie technicznych podstaw Bitcoin pozwoli ci zrozumieć inne aplikacje blockchain dostępne na rynku. Ponieważ Bitcoin od lat świadczy o solidności technologii blockchain, ludzie teraz w nią wierzą i zaczęli badać inne możliwe sposoby jej wykorzystania. W poprzednim rozdziale omawialiśmy już, jak działa blockchain na poziomie technicznym, ale nauka Bitcoin może dać ci prawdziwy smak blockchaina. Możesz rozważyć Bitcoin jako przypadek użycia kryptowaluty technologii blockchain. Zatem ten rozdział nie tylko pomoże ci zrozumieć, w jaki sposób działa Bitcoin, ale także da ci perspektywę, w jaki sposób można budować różne przypadki użycia przy użyciu technologii blockchain, w jaki sposób budowany jest Bitcoin. Omówimy Bitcoiny bardziej szczegółowo w tym rozdziale, a jednocześnie robiąc to, wiele podstaw blockchain zostanie również wyjaśnionych bardziej praktycznymi spostrzeżeniami. Jeśli znasz już podstawy Bitcoin, możesz pominąć ten rozdział. W przeciwnym razie zalecamy zapoznanie się z koncepcjami w podanej kolejności. W tym rozdziale wyjaśniono, czym jest Bitcoin, w jaki sposób jest on zaprojektowany technicznie, i zawiera analizę niektórych mocnych i słabych stron Bitcoin.

Sharding Blockchain State

Sharding jest jedną z technik skalowalności, która istnieje od wieków i jest bardziej poszukiwanym tematem dla baz danych. Ludzie stosowali tę technikę w różny sposób w różnych przypadkach użycia, aby sprostać konkretnym wyzwaniom związanym z kalibracją. Zanim zrozumiemy, w jaki sposób można go wykorzystać w skalowaniu łańcucha bloków, najpierw zrozummy, co to znaczy. Odczyt / zapis dysku zawsze był wąskim gardłem w przypadku dużych zbiorów danych. Gdy dane są dzielone na wiele dysków, odczyt / zapis można wykonać równolegle, a opóźnienia znacznie się zmniejszają. Ta technika nazywa się sharding. Spójrz na rysunek

Zauważ na rysunku, w jaki sposób dokonuje się partycjonowania poziomego, aby rozdzielić tabelę bazy danych 300 GB na trzy odłamki po 100 GB każdy i przechowywać na osobnych instancjach serwera. Ta sama koncepcja ma również zastosowanie do blockchain, w którym ogólny stan blockchain jest podzielony na różne odłamki, które zawierają własne podstacje. Cóż, zdecydowanie nie jest to tak proste, jak dzielenie bazy danych po prostu na partycjonowanie w poziomie. Jak więc sharding naprawdę działa w kontekście blockchaina? Chodzi o to, aby węzły nie były wymagane do pobierania i przechowywania kopii całego łańcucha bloków. Zamiast tego pobierają i zachowują odpowiednie fragmenty (odłamki). W ten sposób przetwarzają tylko te transakcje, które są istotne dla przechowywanych danych, i możliwe jest równoległe wykonywanie transakcji. Tak więc, gdy wystąpi transakcja, jest ona kierowana tylko do określonych węzłów, w zależności od odłamków, których dotyczą. Jeśli spojrzysz na to z innej soczewki, wszystkie węzły nie muszą wykonywać różnego rodzaju obliczeń i weryfikacji dla każdej transakcji. Można zdefiniować mechanizm lub protokół do komunikacji między niezależnymi fragmentami, gdy do przetworzenia dowolnych określonych transakcji wymagany jest więcej niż jeden niezależny fragment. Należy pamiętać, że różne łańcuchy bloków mogą mieć różne warianty dzielenia. Aby dać przykład, możesz wybrać określoną technikę dzielenia fragmentów dla danej sytuacji. Jednym z przykładów może być odłamki wymagane do posiadania wielu unikatowych kont. Innymi słowy, każde unikalne konto jest w jednym niezależnym fragmencie (bardziej odpowiednie dla blokowych łańcuchów w stylu Ethereum, które są stanowe) i bardzo łatwo jest przeprowadzać transakcje między kontami w jednym niezależnym fragmencie. Oczywiście do dzielenia na fragmenty wymagany jest jeszcze jeden poziom ekstrakcji na poziomie niezależnego fragmentu, a węzły mogą przechowywać tylko podzbiór informacji.

Podsumowanie

Zagłębiliśmy się w podstawowe podstawy kryptografii, teorii gier i inżynierii informatycznej. Wyuczone koncepcje pomogą ci zaprojektować własne rozwiązanie blockchain, które może mieć określone potrzeby. Blockchain zdecydowanie nie jest srebrną kulą dla wszelkiego rodzaju problemów. Jednak dla tych, w których blockchain jest wymagane, jest wysoce prawdopodobne, że przy różnych konstrukcjach projektowych potrzebne będą różne smaki rozwiązań blockchain. Nauczyliśmy się różnych technik kryptograficznych w celu zabezpieczenia transakcji i przydatności funkcji mieszających. Przyjrzeliśmy się, jak teorię gier można wykorzystać do zaprojektowania solidnych rozwiązań. Dowiedzieliśmy się także o niektórych podstawowych podstawach informatyki, takich jak struktura danych blockchain i drzewa Merkle. Niektóre z tych koncepcji zostały uzupełnione o przykładowe fragmenty kodu, aby zapewnić szybki start w zadaniach blockchain. W następnym rozdziale dowiemy się o Bitcoin jako przypadku użycia blockchain i o tym, jak dokładnie działa.

Obliczenia poza łańcuchem

Obliczenia poza łańcuchem są jedną z najbardziej obiecujących technik skalowania rozwiązań blockchain. Chodzi o to, aby ograniczyć użycie blockchaina i robić ciężkie podnoszenie poza nim, i przechowywać wyniki tylko na blockchainie. Należy pamiętać, że nie ma standardowej definicji tego, jak powinno się odbywać obliczenie poza łańcuchem. Jest to w dużej mierze zależne od sytuacji i ludzi, którzy próbują ją rozwiązać. Także różne smaki blockchain mogą wymagać różnych podejść do obliczeń poza łańcuchem. Na wysokim poziomie jest jak kolejna warstwa na blockchain, która wykonuje ciężką, intensywną obliczeniowo pracę i mądrze wykorzystuje blockchain. Oczywiście, możesz nie być w stanie zachować wszystkich cech blockchain, wykonując obliczenia offchain, ale prawdą jest również, że możesz nie potrzebować blockchain do wszystkich wymagań obliczeniowych i możesz go używać tylko do określonych punktów bólu. Obliczenia poza łańcuchem mogą być na łańcuchu bocznym, mogą być rozdzielone między losową grupę węzłów lub mogą być również scentralizowane. Łańcuchy boczne są niezależne od głównego łańcucha bloków. Nie tylko pomaga dobrze skalować łańcuch bloków, ale także izoluje uszkodzenia łańcucha bocznego i zapobiega uszkodzeniu łańcucha głównego przez łańcuch boczny. Jednym z takich przykładów jest „Lightning Network” dla Bitcoinów, który powinien pomóc w szybszej realizacji transakcji przy minimalnej opłacie; które będą wspierać również mikropłatności. Innym przykładem łańcucha bocznego dla Bitcoinów jest „Zerocash”, którego głównym celem nie jest tak naprawdę skalowalność, ale prywatność. Jeśli używasz Zerocash do transakcji Bitcoin, nie możesz być śledzony, a Twoja prywatność jest zachowana. Ograniczymy naszą dyskusję do ogólnych technik skalowalności i nie zajmiemy się szczegółową dyskusją na temat skalowalności Bitcoin w tym tekście. Jednym oczywistym pytaniem, które może się teraz pojawić, jest to, w jaki sposób ludzie sprawdzaliby autentyczność transakcji, gdyby zostały wysłane poza łańcuchem. Po pierwsze, aby utworzyć prawidłową transakcję, nie potrzebujesz łańcucha bloków. Dowiedzieliśmy się w sekcji „Kryptografia” w tym rozdziale o kryptografii klucza asymetrycznego używanej przez system blockchain. Aby dokonać transakcji, musisz być właścicielem klucza prywatnego, aby móc podpisać transakcję. Gdy transakcja zostanie utworzona, jej wejście w blockchain przynosi korzyści. Podwójne wydawanie nie jest możliwe w przypadku blockchaina Bitcoin, istnieją też inne zalety. Na razie jedynym celem jest zaangażowanie Cię w fakt, że możesz utworzyć transakcję, o ile posiadasz klucz prywatny do swojego konta. Łańcuchy bloków bitcoin są bezpaństwowym łańcuchem bloków w tym sensie, że nie utrzymują stanu konta. Wszystko w blockchain Bitcoin występuje w formie transakcji. Aby móc dokonać transakcji, musisz skonsumować poprzednią transakcję i nie ma pojęcia „saldo zamknięcia” dla konta jako takiego. Wręcz przeciwnie, blockchain Ethereum jest „stanowy”! Bloki w blockchain Ethereum zawierają informacje o stanie całego bloku, w którym saldo konta jest również częścią. Informacja o stanie zajmuje znaczną przestrzeń, gdy utrzymuje ją każdy węzeł w sieci. Ta sytuacja dotyczy również innych łańcuchów bloków, które są stanowe. Weźmy przykład, aby lepiej to zrozumieć. Alice i Bob to dwie strony, które zawierają wiele transakcji między sobą. Powiedzmy, że zwykle mają 50 transakcji pieniężnych w ciągu miesiąca. W stanowym blockchainie wszystkie te indywidualne transakcje miałyby informacje o stanie, które będą obsługiwane przez wszystkie węzły. Aby sprostać temu wyzwaniu, wprowadzono pojęcie „kanałów państwowych”. Chodzi o to, aby zaktualizować łańcuch bloków końcowym wynikiem, powiedzmy, pod koniec miesiąca lub po osiągnięciu określonego progu transakcji, a nie z każdą transakcją. Kanały stanu są zasadniczo dwukierunkowym kanałem komunikacji między użytkownikami, obiektami lub usługami. Odbywa się to z absolutnym bezpieczeństwem przy użyciu technik kryptograficznych. Aby dowiedzieć się, jak to działa, spójrz na rysunek

Zauważ, że kanały państwowe poza łańcuchem są w większości prywatne i ograniczone do grupy uczestników. Pamiętaj, że stan blockchain dla uczestników musi zostać zablokowany jako pierwszy krok. Może to być schemat MultiSig lub inteligentne blokowanie na podstawie umowy. Po zablokowaniu uczestnicy zawierają między sobą transakcje zabezpieczone kryptograficznie. Wszystkie transakcje są podpisane kryptograficznie, co czyni je weryfikowalnymi, a transakcje te nie są natychmiast przesyłane do łańcucha bloków. Jak omówiono, te kanały stanu mogą mieć z góry określony czas życia lub mogą być związane z ilością transakcji przeprowadzanych pod względem wielkości / ilości lub z innego mierzalnego pomiaru. Tak więc ostateczny wynik transakcji zostaje ustalony na blockchain, co odblokowuje stan jako ostatni krok. Kanały stanu mogą być bardzo różnie implementowane w różnych przypadkach użycia, a ich implementacje są w rzeczywistości pozostawione programistom. Jest to z pewnością krok naprzód i jest jednym z najbardziej krytycznych elementów do powszechnego przyjęcia aplikacji blockchain. W przypadku Bitcoin sieć Lightning Network została zaprojektowana do obliczeń poza łańcuchem i do przyspieszyć transakcję płatności. Podobnie „Raiden Network” został zaprojektowany dla blockchain Ethereum. Istnieje wiele innych takich rozwiązań, dzięki którym mikropłatności są szybsze i bardziej wykonalne w sieciach blockchain.

Skalowanie Blockchain

Popatrzyliśmy na blockchain z historycznej perspektywy i na to, jak okazuje się on być jedną z najbardziej przełomowych technologii na dzień dzisiejszy. Badając go technicznie w tym rozdziale, dowiedzieliśmy się o problemach ze skalowalnością charakterystycznych dla większości smaków Blockchin. Z założenia łańcuchy bloków są trudne do skalowania, a zatem stanowią obszar badań w środowisku akademickim i dla niektórych przedsiębiorstw nastawionych na innowacje. Jeśli spojrzysz na przyjęcie Bitcoinów, nie jest ono używane do zastępowania walut fiducjarnych ze względu na nieodłączne wyzwania skalowalności. Nie możesz kupić kawy za pomocą Bitcoin i poczekać godzinę na rozliczenie transakcji. Tak więc Bitcoiny są używane jako klasa aktywów dla inwestorów. W sieć blockchain Bitcoin nie jest w stanie obsłużyć tylu transakcji, jak Visa lub MasterCard, na dzień dzisiejszy. Przypomnij sobie protokoły konsensusowe, które badaliśmy do tej pory, takie jak PoW bitcoinów lub Ethereum, lub PoS i inny konsensus BFT niektórych innych smaków blockchain, takich jak Multichain, Hyperledger, Ripple lub Tendermint. Wszystkie te podstawowe algorytmy konsensusu to bizantyjska odporność na uszkodzenia. Z założenia każdy węzeł (przynajmniej pełne węzły) w sieci blockchain utrzymuje własną kopię całego łańcucha bloków, sprawdza wszystkie transakcje i bloki, obsługuje żądania z innych węzłów w sieci itp. W celu osiągnięcia decentralizacji, która staje się wąskim gardłem dla skalowalność. Spójrzmy na ironię – dodajemy więcej serwerów w scentralizowanym systemie w celu zwiększenia skalowalności, ale to samo nie dotyczy zdecentralizowanego systemu, ponieważ przy większej liczbie węzłów opóźnienie tylko wzrasta. Podczas gdy poziom decentralizacji może wzrosnąć wraz z większą liczbą węzłów w zdecentralizowanej sieci, liczba transakcji w sieci również wzrasta, co prowadzi do zwiększonych wymagań w zakresie zasobów obliczeniowych i pamięci. Należy pamiętać, że ta sytuacja dotyczy w większym stopniu publicznych łańcuchów bloków, a mniej dotyczy prywatnych łańcuchów bloków. Prywatne łańcuchy bloków można łatwo skalować w porównaniu z łańcuchami publicznymi, ponieważ podmioty sterujące mogą definiować i ustawiać specyfikacje węzłów o dużej mocy obliczeniowej i większej przepustowości. Ponadto mogą istnieć pewne zadania odciążone od blockchain i obliczone poza łańcuchem, które mogą pomóc w skalowaniu systemu. Należy pamiętać, że wszystkie techniki skalowania mogą nie mieć zastosowania do wszystkich rodzajów smaków blockchain lub przypadków użycia. Najlepszym sposobem jest zrozumienie technik

Aplikacje Blockchain

Chociaż przyglądaliśmy się nakrętkom i śrubom blockchain w tej części, ważne jest również, abyśmy spojrzeli na to, jak jest on wykorzystywany w budowaniu rozwiązań blockchain. Budowane są takie aplikacje traktuj blockchain jako bazę danych zaplecza za serwerem WWW, a istnieją aplikacje, które są całkowicie zdecentralizowane bez serwera scentralizowanego. Bitcoin blockchain, na przykład, jest aplikacją blockchain, w której nie ma serwera, do którego można wysłać zapytanie! Każda transakcja jest transmitowana do całej sieci. Możliwe jest jednak, że aplikacja internetowa jest zbudowana i hostowana na scentralizowanym serwerze internetowym, co powoduje, że aktualizacje blockchain Bitcoin są wymagane. Spójrz na rysunek, w którym węzeł Bitcoin transmituje transakcje do węzłów, które są osiągalne w danym momencie.

Z perspektywy aplikacji każdy węzeł jest samowystarczalny i utrzymuje własne kopie bazy danych blockchain. Biorąc pod uwagę blockchain Bitcoin jako punkt odniesienia, aplikacje blockchain bez centralnych serwerów wydają się być najczystszymi zdecentralizowanymi aplikacjami i większość z nich należy do kategorii „publicznego blockchain”. Zwykle w przypadku takich publicznych łańcuchów bloków wykorzystanie zasobów od dostawców usług w chmurze, takich jak Microsoft Azure, IBM Bluemix itp., Nie jest jeszcze dość popularne. Jednak w przypadku większości prywatnych blockchainów dostawcy usług w chmurze zaczęli zdobywać popularność. Aby dać ci analogię, może istnieć jedna lub więcej aplikacji internetowych dla różnych działów lub aktorów, wszystkie z własnymi backendami Blockchin i nadal są one zsynchronizowane ze sobą. W takiej sytuacji jest decentralizacja techniczna osiągnięta, politycznie mogłoby być nadal scentralizowane. Mimo kontroli lub zarządzania jest egzekwowane, system nadal jest w stanie zachować przejrzystość i zaufanie ze względu na dostęp do jednego źródła prawdy. Spójrz na rysunek, który może przypominać większość POC Blockchain lub aplikacji budowanych na blockchain, gdzie blockchainy są hostowane przez niektórych dostawców usług w chmurze, wykorzystując ich ofertę Blockchain-as-a-Service (BaaS).

Może nie być konieczne, aby wszystkie działy miały własne inna aplikacja internetowa. Jedna aplikacja internetowa może obsługiwać żądania od wielu różnych podmiotów w systemie z odpowiednimi mechanizmami kontroli dostępu. Dobrym pomysłem może być to, że wszyscy aktorzy w systemie mają własne kopie łańcuchów bloków. Posiadanie lokalnej kopii blockchain nie tylko pomaga zachować przejrzystość w systemie, ale także może pomóc w generowaniu wglądu opartego na danych z ciągłym dostępem do danych przez cały czas. Różne „łańcuchy bloków” utrzymywane przez różne podmioty w systemie są spójne projektowo, dzięki algorytmom konsensusowym, takim jak PoW, PoS itp. Większość prywatnych łańcuchów bloków preferuje dowolny algorytm konsensusowy inny niż PoW w celu ograniczenia dużego zużycia zasobów i oszczędzania energii elektrycznej i moc obliczeniowa w jak największym stopniu. Mechanizm konsensusu PoS jest dość powszechny, jeśli chodzi o łańcuchy bloków prywatnych lub konsorcjum. Ponieważ blockchain zakłóca wiele aspektów działalności przedsiębiorstw i nie było lepszego sposobu na zapewnienie przejrzystości między nimi, tworzenie rozwiązania blockchain w chmurze z modelem „pay as you use” nabiera tempa. Usługi w chmurze pomagają firmom przeskoczyć w cyfrowej transformacji opartej na blockchain przy minimalnych początkowych inwestycjach. Istnieją również aplikacje zdecentralizowane (DApps) budowane w sieciach blockchain Ethereum. Aplikacje te mogą być dozwolone w prywatnym Ethereum lub mogą być niedozwolone w publicznej sieci Ethereum. Ponadto aplikacje te mogą być przeznaczone do różnych zastosowań w tej samej publicznej sieci Ethereum. Chociaż omówimy szczegóły specyficzne dla Ethereum w dalszej części, wystarczy spojrzeć na rysunek, aby uzyskać ogólne zrozumienie tego, jak mogą wyglądać te aplikacje.

Jak już wspomniano w poprzednich sekcjach, rozwój blockchain aplikacje są ograniczone tylko twoją wyobraźnią. Można zbudować natywne aplikacje w technologii blockchain. Tworzone są również aplikacje, które traktują blockchain jak tylko backend, a także budowane są aplikacje hybrydowe, które używają starszych aplikacji i wykorzystują blockchain tylko do określonego celu. Jak dotąd skalowalność blockchain jest jednym z największych problemów. Chociaż sama skalowalność jest w fazie badań, poznajmy niektóre techniki skalowalności.