Kryptografia

Kryptografia jest najważniejszym komponentem blockchain. Jest to z pewnością dziedzina badawcza sama w sobie i opiera się na zaawansowanych technikach matematycznych, które są dość skomplikowane do zrozumienia. Spróbujemy rozwinąć solidne zrozumienie niektórych pojęć kryptograficznych w tej sekcji, ponieważ różne problemy mogą wymagać różnych rozwiązań kryptograficznych; jeden rozmiar nigdy nie pasuje do wszystkich. Możesz pominąć niektóre szczegóły lub odwołać się do nich w razie potrzeby, ale jest to najważniejszy element zapewniający bezpieczeństwo w systemie. W portfelach i wymianach odnotowano wiele hacków ze względu na słabszy projekt lub słabe implementacje kryptograficzne. Kryptografia istnieje już od ponad dwóch tysięcy lat. To nauka o zachowaniu poufności przy użyciu technik szyfrowania. Jednak poufność nie jest jedynym celem. Istnieje wiele innych zastosowań kryptografii wymienionych na poniższej liście, które zbadamy później:

  • Poufność: tylko zamierzony lub upoważniony odbiorca może zrozumieć wiadomość. Można to również nazwać prywatnością lub tajemnicą.
  • Integralność danych: Dane nie mogą być sfałszowane lub modyfikowane przez przeciwnika celowo lub przez niezamierzone / przypadkowe błędy. Chociaż integralność danych nie może zapobiec zmianie danych, może zapewnić sposób wykrywania, czy dane zostały zmodyfikowane.
  • Uwierzytelnianie: Odbiorca zapewnia i weryfikuje autentyczność nadawcy.
  • Niezaprzeczalność: nadawca po wysłaniu wiadomości nie może później odmówić wysłania wiadomości. Oznacza to, że jednostka (osoba lub system) nie może odmówić własności poprzedniego zobowiązania lub działania.

Wszelkie informacje w postaci wiadomości tekstowej, danych numerycznych lub programu komputerowego można nazwać tekstem jawnym. Chodzi o to, aby zaszyfrować zwykły tekst za pomocą algorytmu szyfrowania i klucza, który wytwarza kod tekstu zaszyfrowanego. Tekst zaszyfrowany może być następnie przesłany do zamierzonego odbiorcy, który odszyfrowuje go za pomocą algorytmu deszyfrowania i klucza, aby uzyskać tekst jawny. Weźmy przykład. Alice chce wysłać wiadomość (m) do Boba. Jeśli wysyła wiadomość tak jak jest, każdy przeciwnik, powiedzmy, Ewa może łatwo przechwycić wiadomość i poufność zostanie naruszona. Alice chce zaszyfrować wiadomość za pomocą algorytmu szyfrowania (E) i tajnego klucza (k), aby wygenerować zaszyfrowaną wiadomość o nazwie „tekst szyfrowany”. Przeciwnik musi być świadomy zarówno algorytmu (E), jak i klucza (k) aby przechwycić wiadomość. Im silniejszy algorytm i klucz, tym trudniej atakować przeciwnika. Należy zauważyć, że zawsze pożądane byłoby zaprojektowanie systemów blockchain, które są przynajmniej w bezpieczny sposób zabezpieczone. Oznacza to, że system musi opierać się pewnym typom ataków wykonywanych przez przeciwników. Wspólny zestaw kroków dla tego podejścia można przedstawić w sposób pokazany na rysunku

Ogólnie, istnieją dwa rodzaje kryptografii: kryptografia klucza symetrycznego i klucza asymetrycznego (a.k.a. klucz publiczny). Przyjrzyjmy się im osobno w kolejnych sekcjach.

Układanie Fundacji Blockchaina

Blockchain to nie tylko technologia, ale przede wszystkim funkcje biznesowe i przypadki użycia. W swoich implementacjach kryptowalut jest również przeplatany zasadami ekonomicznymi. W tej części skupimy się głównie na aspektach technicznych. Technicznie, blockchain to genialne połączenie pojęć z kryptografii, teorii gier i inżynierii informatycznej. Przyjrzyjmy się, jaką rolę odgrywają te komponenty w systemie blockchain na wysokim poziomie i w końcu zagłębimy się w podstawy. Wcześniej szybko przyjrzyjmy się, jak działają tradycyjne systemy scentralizowane. Tradycyjne podejście polegało na tym, że istniałby scentralizowany podmiot, który utrzymywałby tylko jedną historię transakcji / modyfikacji. Miało to sprawować kontrolę współbieżności nad całą bazą danych i wprowadzać zaufanie do systemu za pośrednictwem pośredników. Jaki był problem z takim stabilnym systemem? Należy zaufać scentralizowanemu systemowi, bez względu na to, czy zaangażowani są uczciwi czy nie! Również koszty związane z pośrednikami i czasem transakcji mogą być większe z oczywistych powodów. Teraz pomyśl o centralizacji władzy; Pełna kontrola nad całym systemem pozwala scentralizowanym władzom wykonywać niemal wszystko, czego chcą. Przyjrzyjmy się teraz, w jaki sposób blockchain rozwiązuje te problemy dzięki scentralizowanym pośrednikom, wykorzystując kryptografię, teorię gier i koncepcje informatyki. Niezależnie od przypadku użycia, transakcje są zabezpieczane za pomocą kryptografii. Za pomocą kryptografii można zagwarantować, że ważny użytkownik inicjuje transakcję i nikt nie może sfałszować transakcji. Oznacza to, że kryptograficznie można zapewnić, że Alicja w żaden sposób nie może dokonać transakcji w imieniu Boba, podrobiąc jego podpis. Co się stanie, jeśli węzeł lub użytkownik spróbuje uruchomić atak z podwójną wydatką (np. Ma tylko dziesięć dolców i próbuje zapłacić to samo wielu osobom)? Zwróć szczególną uwagę na to, że mimo braku wystarczających środków, nadal możesz zainicjować podwójne wydatkowanie, które jest kryptograficznie poprawne. Jedynym sposobem zapobiegania podwójnym wydatkom jest uświadomienie każdemu węzłowi wszystkich transakcji. Teraz prowadzi to do kolejnego interesującego problemu. Ponieważ każdy węzeł powinien utrzymywać bazę danych transakcji, w jaki sposób wszyscy mogą się zgodzić na wspólny stan bazy danych? Ponownie, jak system może pozostać odporny na sytuacje, w których jeden lub więcej węzłów obliczeniowych celowo próbuje podważyć system i spróbować wstrzyknąć fałszywy stan bazy danych? Większość takich problemów należy do problemu bizantyjskich generałów (opisanego później). Cóż, zyskało jeszcze większą popularność dzięki blockchainowi, ale istnieje tam od wieków. Jeśli spojrzysz na rozwiązania centrów danych lub rozproszone rozwiązania bazodanowe, problem bizantyjskich generałów jest oczywistym i powszechnym problemem, z którym mają do czynienia, aby pozostać odpornymi na błędy. Takie sytuacje i ich rozwiązanie faktycznie pochodzą z teorii gier. Dziedzina teorii gier zapewnia radykalnie odmienne podejście do określania, jak system będzie się zachowywał. Techniki w teorii gier są prawdopodobnie najbardziej wyrafinowane i realistyczne. Zwykle nigdy nie zastanawiają się, czy węzeł jest uczciwy, złośliwy, etyczny lub ma inne takie cechy i wierzy, że uczestnicy działają zgodnie z korzyścią, jaką uzyskują, a nie z wartości moralnych. Jedynym celem teorii gier w blockchain jest zapewnienie stabilności systemu (tj. W Nash Equilibrium) z konsensusem wśród uczestników. Istnieją różne rodzaje problemów biznesowych i sytuacji o różnym stopniu złożoności. Tak więc podstawowe krypto i teoretyczne protokoły gier mogą być różne w różnych przypadkach użycia. Jednak ogólna zasada utrzymywania spójnego dziennika lub bazy zweryfikowanych transakcji jest taka sama. Chociaż koncepcje kryptografii i teorii gier istnieją już od dłuższego czasu, to jest to kawałek informatyki, który łączy te bity i elementy razem poprzez struktury danych i technikę komunikacji w sieciach peer-to-peer. inżynieria oprogramowania ”, która jest potrzebna do realizacji wszelkich logicznych lub matematycznych koncepcji w cyfrowym świecie. To właśnie techniki inżynierii komputerowej wykorzystują kryptografię i koncepcje teoretyczne gry w aplikacji, umożliwiając zdecentralizowane i rozproszone przetwarzanie danych wśród węzłów ze strukturą danych i elementami komunikacji sieciowej.

Jak działa Blockchain?

Stoimy na krawędzi nowej rewolucji cyfrowej. Blockchain jest prawdopodobnie największym wynalazkiem od samego Internetu! Jest to najbardziej obiecująca technologia dla następnej generacji internetowych systemów interakcji i cieszy się dużym zainteresowaniem wielu sektorów przemysłu oraz środowisk akademickich. Dzisiaj wiele organizacji zdało sobie sprawę, że muszą być gotowe na blockchain, aby utrzymać swoje pozycje na rynku. Przyjrzeliśmy się już kilku przypadkom użycia w rozdziale 1, ale możliwości są nieograniczone. Chociaż blockchain nie jest srebrną kulą dla wszystkich problemów biznesowych, zaczął wpływać na większość funkcji biznesowych i ich implementacje technologiczne. Aby móc rozwiązać niektóre problemy biznesowe w świecie rzeczywistym za pomocą blockchain, potrzebujemy dokładnego zrozumienia, co to jest i jak działa. W tym celu należy to rozumieć z różnych perspektyw, takich jak perspektywy biznesowe, techniczne i prawne. Ta część jest próbą wejścia w sedno technologii blockchain i pełnego zrozumienia jej działania.

Zastosowania blockchains i przypadki użycia

Przyjrzymy się niektórym inicjatywom, które są już podejmowane w takich branżach, jak finanse, ubezpieczenia, bankowość, służba zdrowia, rząd, łańcuchy dostaw, Internet przedmiotów (Internet of Things) oraz media i rozrywka. Możliwości są jednak nieograniczone! Prawdziwa ekonomia współdzielenia, która była trudna do osiągnięcia w systemach scentralizowanych, jest możliwa przy użyciu technologii blockchain (np. Wersji Uber, AirBNB peer-to-peer). Możliwe jest również umożliwienie obywatelom posiadania własnej tożsamości (Self-Sovereign Digital Identity) i zarabianie na własnych danych za pomocą tej technologii. Na razie przyjrzyjmy się niektórym z istniejących przypadków użycia.

  • Każdy rodzaj nieruchomości lub aktywów, zarówno fizycznych, jak i cyfrowych, takich jak laptopy, telefony komórkowe, diamenty, samochody, nieruchomości, e-rejestracje, pliki cyfrowe itp. Można zarejestrować na blockchain. Może to umożliwić te transakcje zasobów od jednej osoby do drugiej, utrzymywać dziennik transakcji i sprawdzać ważność lub prawa własności. Można również opracować usługi notarialne, dowód istnienia, dostosowane systemy ubezpieczeń i wiele innych takich przypadków.
  • Istnieje wiele przypadków wykorzystania środków finansowych na blockchain, takich jak płatności transgraniczne, obrót akcjami, system lojalności i nagród, znajomość klienta (KYC) wśród banków itp. Wstępna oferta monet (ICO) jest jednym z najbardziej trendowych zastosowań sprawy z tego pisania. ICO to obecnie najlepszy sposób na crowdsourcing dzięki wykorzystaniu kryptowaluty jako zasobów cyfrowych. Moneta w ICO może być traktowana jako zapas cyfrowy w przedsiębiorstwie, który jest bardzo łatwy do kupienia i handlu.
  • Blockchain może być użyty do włączenia „Mądrości Tłumów” do objęcia przewodnictwa i kształtowania firm, gospodarek i różnych innych zjawisk narodowych za pomocą zbiorowej mądrości! Finansowe i ekonomiczne prognozy oparte na mądrości tłumów, zdecentralizowanych rynkach prognostycznych, głosowaniu zdecentralizowanym, a także handlu akcjami mogą być możliwe na blockchain.
  • Proces ustalania opłat muzycznych zawsze był zawiły. Usługi strumieniowego przesyłania muzyki z dostępem do Internetu ułatwiły większą penetrację rynku, ale spowodowały, że opłaty licencyjne stały się wyższe i złożone. Problem ten można w dużym stopniu rozwiązać za pomocą blockchain, utrzymując księgę publiczną informacji o prawach własności do muzyki, a także autoryzowaną dystrybucję treści medialnych.
  • Jest to era IoT, gdzie miliardy urządzeń IoT są wszędzie i wiele innych, aby dołączyć do puli. Cała masa różnych marek, modeli i protokołów komunikacyjnych utrudnia centralizację systemu do sterowania urządzeniami i zapewnia wspólną platformę wymiany danych. Jest to również obszar, w którym blok blockchain może zostać użyty do zbudowania zdecentralizowanego systemu peer-to-peer, aby urządzenia IoT mogły się ze sobą komunikować. ADEPT (autonomiczne zdecentralizowane

Peer-To-Peer Telemetry) to wspólna inicjatywa IBM i Samsunga, która opracowała platformę wykorzystującą elementy bazowego projektu Bitcoin do zbudowania rozproszonej sieci urządzeń – zdecentralizowanego IOT. ADEPT używa trzech protokołów: BitTorrent dla udostępniania pliku, Ethereum dla inteligentnych kontraktów i TeleHash dla wiadomości peer-to-peer na platformie. Fundacja IOTA to kolejna taka inicjatywa.

  • Również w sektorach rządowych blockchain nabrał tempa. Istnieją przypadki użycia, w których niezbędna jest decentralizacja techniczna, ale politycznie powinny rządzić rządy: rejestracja gruntów, rejestracja i zarządzanie pojazdami, e-głosowanie itp. To tylko niektóre przypadki aktywnego wykorzystania. Łańcuchy dostaw to kolejny obszar, w którym istnieją świetne przypadki użycia blockchaina. Łańcuchy dostaw zawsze były podatne na spory na całym świecie, ponieważ utrzymanie tych systemów zawsze było trudne.

Omówiliśmy ewolucję blockchain, historię to, co to jest, korzyści projektowe i dlaczego jest tak ważne w przypadku niektórych istotnych przypadków użycia. W tej części podsumujemy zmieniającą ofertę, zgodną z rewolucją technologiczną. W latach 90-tych masowa adopcja Internetu zmieniła sposób prowadzenia interesów. Usunęło tarcie w tworzeniu i dystrybucji informacji. To utorowało drogę dla nowych rynków, nowych możliwości i możliwości. Podobnie, blockchain jest dzisiaj, aby przenieść Internet na zupełnie nowy poziom, usuwając tarcia w trzech kluczowych obszarach: kontrola, zaufanie i wartość.

Kontrola: Blockchain umożliwiał dystrybucję sterowania poprzez zdecentralizowanie systemu.

Zaufanie : Blockchain to niezmienna, odporna na manipulacje księga główna. Daje pojedyncze, wspólne źródło prawdy dla wszystkich węzłów, czyniąc system bez zaufania. Oznacza to, że zaufanie nie jest już potrzebne do zawierania transakcji z jakąkolwiek nieznaną osobą lub podmiotem i jest nierozerwalnie związane z projektem.

Wartość: Blockchain umożliwia wymianę wartości w dowolnej formie. Można emitować i przenosić aktywa bez jednostek centralnych lub pośredników.

Dotychczasowa adaptacja Blockchain

Blockchain pojawił się wraz z Bitcoin, cyfrową kryptowalutą, w 2009 roku za pomocą prostej listy mailingowej. Wkrótce po uruchomieniu ludzie mogli wykorzystać swój prawdziwy potencjał poza kryptowalutą. Niektóre firmy opracowały różne wersje ofert blockchain, takie jak Ethereum, Hyperledger itp. Microsoft i IBM opracowały oferty SaaS (Software as a Service) odpowiednio na swoich platformach chmurowych Azure i Bluemix. Powstały różne nowe firmy, a wiele uznanych firm podjęło inicjatywy blockchain, które skupiały się na rozwiązywaniu niektórych problemów biznesowych, które wcześniej nie były łatwe do rozwiązania. Jest już za późno, by powiedzieć, że blockchain ma ogromny potencjał by zakłócać niemal każdą branżę w taki czy inny sposób; rewolucja już się rozpoczęła. Miało to ogromny wpływ na rynek usług finansowych. Trudno jest znaleźć globalny bank lub podmiot finansowy nie badający blockchaina. Poza rynkiem finansowym już podjęto / są już podejmowane inicjatywy w takich dziedzinach, jak media i rozrywka, handel energią, rynki prognostyczne, sieci handlowe, systemy nagród lojalnościowych, ubezpieczenia, łańcuchy logistyczne i dostawy, dokumentacja medyczna, a także rząd i zastosowania wojskowe. W chwili pisania tego, obecna sytuacja jest taka, że ​​wiele nowych firm i firm jest w stanie zobaczyć, w jaki sposób system oparty na blockchainach może naprawdę zająć się niektórymi obszarami bólu i stać się korzystny na wiele sposobów. Jednak zaprojektowanie odpowiedniego rodzaju rozwiązania blockchain jest dość trudne. Istnieje kilka naprawdę świetnych pomysłów na produkt lub rozwiązanie oparte na blockchain, ale równie trudno jest je zbudować lub wdrożyć. Istnieją przypadki użycia, które można zbudować tylko na publicznym bloku bloków. Projektowanie samopodtrzymującego się bloku blokowego z odpowiednim ekosystemem górniczym jest trudne, a jeśli chodzi o istniejące publiczne blokady bloków do tworzenia aplikacji nie kryptowalutowych, nie ma nikogo innego jak Ethereum. Niezależnie od tego, czy aplikacja blockchain ma zostać zbudowana tylko w warstwie aplikacji i czy korzysta z podstawowych warstw w takiej postaci, w jakiej się znajdują lub czy aplikacja musi zostać zbudowana od podstaw, jest to trudne do podjęcia. Istnieją również pewne wyzwania techniczne. Blockchain wciąż dojrzewa i może upłynąć kilka lat, zanim zostanie przyjęty do głównego nurtu. Na dzień dzisiejszy istnieje wiele propozycji rozwiązania problemów skalowalności blockchain. Spróbujemy zbudować solidne zrozumienie wszystkich tych perspektyw.

Ograniczenia systemów scentralizowanych

Jeśli spojrzysz na krajobraz ewolucji oprogramowania, zobaczysz, że wiele rozwiązań programowych ma scentralizowany projekt. Powodem jest nie tylko to, że są łatwe do opracowania i utrzymania, ale także dlatego, że przyzwyczailiśmy się do takiego projektu, aby móc zaufać systemowi. Zawsze potrzebujemy zaufanej osoby trzeciej, która może zapewnić, że nie zostaniemy oszukani lub nie będziemy ofiarami oszustwa. Bez wcześniejszych relacji biznesowych trudno jest handlować z kimś, a nawet zwiększyć skalę. Prawdopodobnie nie będzie robić interesów z kimś, kogo nigdy nie zna. Weźmy przykład, aby lepiej to zrozumieć. Dzisiaj, kiedy zamawiamy coś z Amazon, czujemy się pewni i pewni, że przedmiot zostanie dostarczony. Producentem przedmiotu jest ktoś, a kupującym jest ktoś inny. Jaką rolę odgrywa tu Amazon? Jest tam jako aktywator działający jako zaufany pośrednik, a także do wycięcia części transakcji. Kupujący ufa sprzedającemu, gdy relacja zaufania jest faktycznie narzucana przez takie zaufane strony trzecie. Blockchain proponuje, aby we współczesnej erze cyfrowej tak naprawdę nie potrzebowaliśmy trzeciej strony, aby narzucić zaufanie, a technologia dojrzała na tyle, by sobie z tym poradzić. W blockchain zaufanie jest nieodłączną częścią sieci domyślnie, którą omówimy bardziej w nadchodzących rozdziałach. Szybko poznajmy kilka wad konwencjonalnego scentralizowanego systemu:

  • Problemy z zaufaniem
  • Problem bezpieczeństwa
  • Kwestia prywatności – prywatność sprzedaży danych jest zagrożona
  • Koszt i współczynnik czasu dla transakcji

Niektóre z zalet systemów zdecentralizowanych w stosunku do systemów scentralizowanych mogą być:

  • Eliminacja pośredników
  • Łatwiejsza i autentyczna weryfikacja transakcji
  • Zwiększone bezpieczeństwo przy niższych kosztach
  • Większa przejrzystość
  • Zdecentralizowany i niezmienny

Dlaczego Blockchain jest ważny?

Przyjrzeliśmy się aspektom projektowym systemów scentralizowanych i zdecentralizowanych i uzyskaliśmy pewne wyobrażenie o korzyściach technicznych systemów zdecentralizowanych w stosunku do systemów scentralizowanych. Dowiedzieliśmy się także o różnych warstwach blockchain. Blockchain, będący zdecentralizowanym systemem peer-to-peer, ma pewne nieodłączne zalety i złożoność. Należy pamiętać, że nie jest to srebrna kula, która może rozwiązać wszystkie problemy na świecie, ale są przypadki, w których potrzeba godziny. Istnieją również scenariusze, w których blokowanie istniejącego rozwiązania sprawia, że jest ono bardziej niezawodne, przejrzyste i zabezpieczone. Jednak może to również prowadzić do katastrofy, jeśli nie zostanie wykonane we właściwy sposób! Zachowajmy teraz perspektywę biznesową i funkcjonalną i przeanalizujmy blockchain.

Warstwa konsensusowa

Warstwa konsensusowa jest zwykle warstwą podstawową dla większości systemów blockchain. Głównym celem tej warstwy jest uzyskanie zgody wszystkich węzłów na jeden spójny stan księgi. Mogą istnieć różne sposoby osiągnięcia konsensusu między węzłami, w zależności od przypadku użycia. Bezpieczeństwo i ochrona łańcucha blokowego są uwzględniane w tej warstwie. W Bitcoin lub Ethereum konsensus osiąga się poprzez odpowiednie techniki motywacyjne zwane „górnictwem”. Aby publiczny blok blokowy mógł być samowystarczalny, musi istnieć jakiś mechanizm motywacyjny, który nie tylko pomaga utrzymać sieć przy życiu, ale także wymusza zgoda. Bitcoin i Ethereum używają mechanizmu konsensusu Proof of Work (PoW), aby losowo wybrać węzeł, który może zaproponować blok. Gdy ten blok zostanie zaproponowany i rozpropagowany do wszystkich węzłów, sprawdzają, czy jest to prawidłowy blok ze wszystkimi legalnymi transakcjami i czy układanka PoW została poprawnie rozwiązana; dodają ten blok do własnej kopii blockchain i dalej go budują. Istnieje wiele różnych wariantów protokołów konsensusowych, takich jak Proof of Stake (PoS), deligated PoS (dPoS), Practical Byzantine Fault Tolerance (PBFT) itp.

Warstwa semantyczna

Warstwa semantyczna jest warstwą logiczną, ponieważ transakcje i bloki są uporządkowane. Transakcja, ważna lub niepoprawna, ma zestaw instrukcji, które przechodzą przez warstwę wykonawczą, ale są sprawdzane w warstwie semantycznej. Jeśli jest to Bitcoin, to czy ktoś wydaje legalną transakcję, czy jest to atak z podwójną wydatką, czy ktoś jest uprawniony do dokonania tej transakcji itp., Jest sprawdzany w tej warstwie. W następnych rozdziałach dowiesz się, że bitcoiny są rzeczywiście obecne jako transakcje reprezentujące stan systemu. Aby móc wydać Bitcoin, musisz konsumować jedną lub więcej poprzednich transakcji i nie ma pojęcia Konta. Oznacza to, że gdy ktoś dokonuje transakcji, korzysta z jednej z poprzednich transakcji, w których otrzymał przynajmniej kwotę, którą wydaje teraz. Ta transakcja musi zostać sprawdzona przez wszystkie węzły, przechodząc przez poprzednie transakcje, aby sprawdzić, czy jest to uzasadniona transakcja. Z drugiej strony Ethereum ma system kont. Oznacza to, że konto tego, które dokonało transakcji, i konto tego, które ją otrzymało, zostanie zaktualizowane. W tej warstwie można zdefiniować reguły systemu, takie jak modele danych i struktury. Mogą wystąpić sytuacje nieco bardziej złożone w porównaniu z prostymi transakcjami. Złożone zestawy instrukcji są często kodowane w inteligentne umowy. Stan systemu jest aktualizowany, gdy inteligentna umowa jest wywoływana po otrzymaniu transakcji. Inteligentna umowa jest specjalnym typem konta, które ma kod wykonywalny i stany prywatne. Blok zazwyczaj zawiera kilka transakcji i kilka inteligentnych umów. Struktury danych, takie jak drzewo Merkle, są zdefiniowane w tej warstwie z korzeniem Merkle w nagłówku bloku, aby utrzymać relację między nagłówkami bloków a zestawem transakcji w bloku (zazwyczaj przechowywanie klucza-wartości na dysku). Ponadto w tej warstwie logicznej można zdefiniować modele danych, tryby przechowywania, przetwarzanie pamięci / dysku itp. Oprócz wyżej wymienionych, to warstwa semantyczna określa, w jaki sposób bloki są ze sobą powiązane. Każdy blok w łańcuchu bloków zawiera skrót poprzedniego bloku, aż do bloku genezy. Mimo że końcowy stan łańcucha bloków jest osiągany dzięki wkładom ze wszystkich warstw, w tej warstwie należy zdefiniować połączenie bloków ze sobą. W zależności od przypadku użycia możesz chcieć zakodować dodatkową funkcjonalność w tej warstwie.

Warstwa wykonawcza

Warstwa wykonawcza to miejsce, w którym wykonywane są instrukcje zlecane przez warstwę aplikacji na wszystkich węzłach w sieci blockchain. Instrukcje mogą być prostymi instrukcjami lub zestawem wielu instrukcji w formie inteligentnej umowy. W obu przypadkach należy wykonać program lub skrypt, aby zapewnić poprawne wykonanie transakcji. Wszystkie węzły w sieci blockchain muszą niezależnie wykonywać programy / skrypty. Deterministyczne wykonywanie programów / skryptów na tym samym zestawie danych wejściowych i warunków zawsze daje ten sam wynik na wszystkich węzłach, co pomaga uniknąć niespójności. W przypadku bitcoinów są to proste skrypty, które nie są Turingcomplete i dopuszczają tylko kilka zestawów instrukcji. Z drugiej strony Ethereum i Hyperledger pozwalają na skomplikowane egzekucje. Kod Ethereum lub jego inteligentne umowy napisane solidnie są kompilowane do kodu bajtowego lub maszynowego, który jest wykonywany na jego własnej maszynie wirtualnej Ethereum. Hyperledger ma znacznie prostsze podejście do inteligentnych umów chaincode. Obsługuje uruchamianie skompilowanych kodów maszynowych wewnątrz obrazów dokerów i obsługuje wiele języków wysokiego poziomu, takich jak Java i Go