Blockchain dla Nie-TechnikówNew Economy

Ochrona magazynu danych



Odkrywanie siły niezmienności

Krok poprzedni zakończył się ustaleniem, że struktura danych blockchain przechowuje dane w sposób wrażliwy na zmiany. Wszelkie zmiany danych przechowywanych w strukturze danych blockchain będą się wyróżniać i będą wymagały skomplikowanego procesu włączenia ich do istniejącej struktury. W tym kroku wyjaśniono, w jaki sposób można użyć tej właściwości do przygotowania historii danych transakcji, które mają być udostępniane i dystrybuowane w niewiarygodnym środowisku, bez obawy, że nieuczciwi członkowie systemu peer-to-peer mogą manipulować jego zawartością na swoją korzyść.

Metafora

Załóżmy, że chcę udawać członka prestiżowej rodziny arystokratycznej. Jak mogęm to osiągnąć? Sfałszowanie mojego drzewa genealogicznego mogłoby to zrobić. Na przykład mógłbym stworzyć arystokratycznego dziadka i połączyć się z nim z wykutym drzewem genealogicznym. Czy to wystarczy, aby przekonać innych do moich fałszywych arystokratycznych korzeni? Cóż, ta podróbka zostanie szybko odkryta, ponieważ drzewa genealogiczne rzadko istnieją w izolacji; zamiast tego są one połączone i splecione z innymi drzewami rodzinnymi poprzez relacje rodzinne. Dlatego jeśli żadne z drzew genealogicznych ustalonych rodzin arystokratycznych nie ma odniesienia ani związku z moim fikcyjnym dziadkiem, moja fikcyjna historia rodziny zostanie szybko odkryta jako fałszywa. Aby moja fikcyjna rodzina została zaakceptowana, musiałbym sfałszować dokumenty rodzinne niektórych z ustalonych rodzin arystokratycznych, umieszczając odniesienia do mojego fikcyjnego drzewa genealogicznego w ich historii rodzinnej. Ale nawet to może nie wystarczyć. Prawdziwi ludzie mają prawdziwe życie i pozostawiają swoje ślady w naszym świecie. Ale mój fikcyjny dziadek tak naprawdę nigdy nie żył. Dlatego muszę nadrobić jego życie, aby podróbka wyglądała na prawdziwą. Oznacza to, że muszę wymyślić całe życie mojego fikcyjnego dziadka, w tym jego dzieciństwo, a także jego edukację i historię kariery. Ponadto należałoby również sfałszować dokumenty potwierdzające, takie jak akt urodzenia, dokumenty rejestracyjne szkoły, świadectwa szkolne, stopnie uniwersyteckie, zaświadczenia zawodowe, członkostwo i tak dalej. Szkoły, uniwersytety i pracodawcy prowadzą dokumentację swoich studentów i pracowników oraz publikują almanachy i zdjęcia wydarzeń towarzyskich. Dlatego konieczne byłoby również zmanipulowanie ich dokumentami, aby uczynić mojego fikcyjnego dziadka byłym członkiem tych instytucji. Ponieważ manipulowanie wszystkimi tymi dokumentami byłoby skomplikowane i kosztowne, prawdopodobnie postanowiłbym pozostać przy mojej prawdziwej, ale niearystokratycznej historii rodzinnej. Ta intelektualna gra pokazuje, że fałszowanie przeszłości jest możliwe, ale niezwykle kosztowne, ponieważ wymaga przepisania i sfałszowania dużych części historii w celu osadzenia fałszywych informacji w wielu dokumentach i odniesieniach do prawdziwej historii. Koszty tego są wyjątkowo wysokie; dlatego trzymanie się prawdy jest o wiele łatwiejsze i tańsze. W tym kroku wyjaśniono, w jaki sposób blockchain wykorzystuje to odkrycie w celu ochrony historii danych transakcji przed fałszowaniem.

Cel

Ważne jest, aby cała historia danych transakcyjnych przechowywanych przez blockchain zawsze reprezentowała prawdę, a zatem czyni ją wiarygodnym źródłem do wyjaśnienia kwestii związanych z własnością.

Wyzwanie
Blockchain to czysto rozproszony system peer-to-peer, który jest otwarty dla wszystkich. W związku z tym istnieje ryzyko, że nieuczciwi partnerzy mogliby manipulować lub fałszować historię danych transakcji dla własnej korzyści. Wyzwanie polega na tym, aby system był otwarty dla wszystkich, a jednocześnie chronić historię danych transakcji przed fałszowaniem lub manipulowaniem.

Pomysł

Wcześniejsze odróżnianie uczciwych od nieuczciwych węzłów w otwartym systemie jest trudne, a nawet niemożliwe. Dlatego, aby chronić historię transakcji przed manipulacją przez nieuczciwe węzły, chcemy przede wszystkim uniemożliwić komukolwiek manipulowanie historią. Jeśli nikt nie może zmienić historii danych transakcji, niezależnie od tego, czy są one uczciwe czy nieuczciwe, nie musimy obawiać się, że można nimi w ogóle manipulować. Stąd tworzenie historii danych transakcji niezmiennie przede wszystkim rozwiązuje problem. W rezultacie system może pozostać otwarty dla wszystkich i nikt nie musi się martwić o nieuczciwe węzły manipulujące historią transakcji.

Krótki objazd do niezmienności

Niezmienność oznacza, że czegoś nie można zmienić. Danych, które są niezmienne, nie można zmienić po ich utworzeniu lub zapisaniu. Z tego powodu dane te są również nazywane danymi tylko do odczytu. Cała ich korzyść polega wyłącznie na prezentacji informacji do czytania lub prezentacji. Ten fakt jest szczególnie pożądany, gdy trzeba przekazać dane innym, a zatem traci kontrolę nad sposobem ich wykorzystania. Przekazywanie niezmiennych danych jest skutecznym sposobem zapobiegania zmiany lub manipulacje danymi. Prawa jazdy, paszporty i certyfikaty edukacyjne są przykładami niezmiennych przedmiotów w prawdziwym życiu. Władze produkują je w celu udokumentowania czegoś, a ich jedynym czytelnym zastosowaniem jest pokazanie i przeczytanie.

Jak to działa: Wielki Obraz

Główną ideą zastosowaną przez blockchain, aby historia transakcji była niezmienna, jest uczynienie jej nieuzasadnioną i kosztowną, a koszty te zniechęcają wszystkich do zmiany. Uczynienie historii danych transakcji niezmiennymi składa się z trzech elementów:

1. Przechowywanie historii danych transakcji w taki sposób, że nawet najmniejsza manipulacja ich zawartością wyróżnia się i staje się zauważalna.
2. Wymuszenie osadzenia manipulacji w historii transakcji wymaga przepisania dużej jej części. 3. Sprawianie, aby dodawanie, zapisywanie lub przepisywanie danych do historii było kosztowne obliczeniowo.

Wyróżnianie manipulacji

Struktura danych blockchain, która przechowuje dane w sposób wrażliwy na zmiany, spełnia pierwszy element. W rezultacie nie można dyskretnie manipulować danymi, które są częścią struktury danych blockchain i mieć nadzieję, że nikt ich nie zauważy. Każda zmiana będzie się wyróżniać ogromnym "szumem" spowodowanym zerwaniem skrótów, które stają się nieważne w wyniku zmiany danych, do których się odnoszą.

Wymuszanie przepisywania historii w celu osadzania zmian

Struktura blockchain-data spełnia również drugi element, ponieważ stosuje radykalne podejście "wszystko albo nic", jeśli chodzi o zmianę swoich danych: albo zmienia się strukturę danych, zaczynając od punktu, który powoduje zmianę, aż do głowy całości łańcuch lub lepiej zostaw to bez zmian.

Czynienie dodawania danych kosztownym obliczeniowo

Trzeci element jest przeznaczony dla tych, którzy nie boją się przepisywać dużych części struktury danych blockchain w trakcie manipulacji osadzonych w historii transakcji. Ale gdy tylko napisanie lub przepisanie struktury bloków danych spowoduje ogromne koszty obliczeniowe, ludzie dwa razy zastanowią się, czy jej zmiana nie była dobrym pomysłem. Pakiet technologii blockchain sprawia, że treść struktury danych blockchain jest niezmienna, ponosząc znaczne koszty obliczeniowe za każdy zapisany, przepisany lub dodany blok struktury danych blockchain. Koszty obliczeniowe ponoszone są przez łamigłówki, które są unikalne dla każdego nagłówka bloku. W rezultacie albo akceptujesz cały koszt zmiany struktury danych od punktu, który powoduje zmianę aż do czoła łańcucha, rozwiązując hash puzzle dla każdego zaangażowanego nagłówka bloku, lub lepiej pozostawić go bez zmian.

Jak to działa: szczegóły

Procedura dodawania nowego bloku do struktury danych blockchain, jak omówiono w kroku poprzednim , nie jest trudna pod względem obliczeniowym, ponieważ wymaga jedynie dodania odwołania skrótu wskazującego bieżącą pozycję łańcucha do nowego nagłówka bloku i zadeklarowania go jako nowego szefa łańcucha. Wyzwanie polegające na uczynieniu struktury blockchain-data niezmienną polega na tym, aby dodanie nowego bloku było kosztownie obliczeniowym zadaniem. Należy wziąć pod uwagę następujące aspekty sposobów osiągnięcia tego:

•  Dane obowiązkowe nagłówków bloków
•  Proces tworzenia nowego nagłówka bloku
•  Reguły sprawdzania poprawności nagłówków bloków

Dane obowiązkowe

Każdy nagłówek bloku struktury danych blockchain musi zawierać co najmniej następujące dane:

•  Katalog główny drzewa Merkle zawierającego dane transakcji
•  Skrótowe odniesienie do nagłówka poprzedniego bloku
•  Poziom trudności zagadki mieszających
•  Czas rozpoczęcia rozwiązywania zagadki mieszającej
•  The nonce rozwiązujący łamigłówkę

Proces tworzenia nowego bloku

Utworzenie nowego bloku obejmuje następujące kroki:

1. Pobierz katalog główny drzewa Merkle, który zawiera dane transakcji do dodania.
2. Utwórz odwołanie do skrótu do nagłówka tego bloku, który będzie poprzednikiem z punktu widzenia nowego nagłówka bloku.
3. Uzyskaj wymagany poziom trudności.
4. Uzyskaj aktualny czas.
5. Utwórz wstępny nagłówek bloku, który zawiera dane wymienione w punktach 1-4.
6. Rozwiąż hash puzzle dla wstępnego nagłówka bloku.
7. Zakończ nowy blok, dodając nonce, która rozwiązuje łamigłówkę do wstępnego nagłówka.

Rysunek poniższy ilustruje hash puzzle, którą należy rozwiązać, dodając nowy blok do struktury danych blockchain. Pokazuje dane nagłówka bloku, którego wartość skrótu musi spełniać dane ograniczenie lub poziom trudności. Pamiętaj, że poziom trudności jest częścią nagłówka bloku, a zatem jest również częścią wartości skrótu bloku. Zapewnia to, że nikt nie może ominąć kosztów obliczeniowych układanki mieszającej poprzez arbitralne zmniejszenie poziomu trudności.



Zasady walidacji

Każdy nagłówek bloku musi spełniać następujące zasady:

1. Musi zawierać prawidłowe odwołanie do skrótu do poprzedniego bloku.
2. Musi zawierać prawidłowy katalog główny drzewa Merkle zawierającego dane transakcji.
3. Musi zawierać prawidłowy poziom trudności.
4. Jego znacznik czasu znajduje się po znaczniku czasu poprzedniego nagłówka bloku.
5. Musi zawierać nonce.
6. Wartość skrótu wszystkich pięciu elementów danych łącznie spełnia poziom trudności.

Reguły sprawdzania poprawności zapewniają, że tylko te bloki są dodawane do struktury danych blockchain, dla której rozwiązano hash puzzle, a koszty obliczeniowe zostały zapłacone. Reguła 4 zapewnia, że bloki i dane transakcji są rzeczywiście uporządkowane zgodnie z dodanym czasem.

Uwaga

Aktywność dodawania nowego bloku do struktury danych blockchain przez rozwiązanie zagadki hashowej nazywana jest również wydobywaniem lub wydobywaniem bloków.

Dlaczego to działa

Struktura danych blockchain wyróżnia każdą zmianę danych ze względu na kruchość odwołań do skrótów w odniesieniu do zmian danych, do których się odnoszą. Powoduje to konieczność przepisania wszystkich bloków, na które wpływa manipulacja. Układanka haszująca powoduje koszty za każdy blok, który musi zostać przepisany w trakcie osadzania manipulacji. Skumulowane koszty przepisania struktury danych blockchain w trakcie osadzania manipulacji sprawiają, że manipulowanie historią transakcji jest nieatrakcyjne. W rezultacie struktura danych blockchain staje się niezmiennym magazynem danych tylko do dołączania.

Koszty manipulacji strukturą danych Blockchain

Załóżmy, że zamierzamy spróbować manipulować konkretnym fragmentem danych transakcji, który jest częścią drzewa Merkle, którego korzeń należy do nagłówka bloku znajdującego się 20 bloków poniżej bieżącego nagłówka struktury danych blockchain. Osadzanie zmanipulowanych danych transakcji wymaga następującej pracy:

1. Przepisz drzewo Merkle, do którego należy zmanipulowana transakcja.
2. Przepisz nagłówek bloku, do którego należy katalog główny przepisanego drzewa Merkle.
3. Przepisz wszystkie kolejne nagłówki bloków do nagłówka blockchain-data structure

Punkt 2 wymaga rozwiązania łamigłówki, ponieważ zmiana korzenia Merkle zmienia wartość skrótu nagłówka bloku, a tym samym rozwiązanie jego łamigłówki. Punkt 3 wymaga rozwiązania 20 hash puzzle z powodu kolejnych zmian odniesień skrótu do poprzedniego nagłówka bloku. Zakładając, że rozwiązanie łamigłówki zajmuje średnio 10 minut, potrzebowalibyśmy w sumie 210 minut, aby osadzić manipulację w transakcji należącej do nagłówka bloku znajdującego się 20 bloków poniżej bieżącej głowy. Te ogromne koszty zniechęcają węzły do zmiany struktury danych blockchain.

Niezmienny magazyn danych w realnym świecie

Niezmienność struktury blockchain-data zależy od kosztów obliczeniowych wywołanych przez układankę mieszającą. Trudność zagadek mieszających określa, ile wysiłku obliczeniowego, a tym samym ile czasu potrzeba na ich rozwiązanie, co z kolei determinuje niezmienność struktury danych blockchain. Jeśli trudność jest zbyt niska, koszty obliczeniowe zmiany struktury danych blockchain spadną i mogą nie być już uważane za zbyt wysokie, co z kolei może zachęcać węzły do manipulowania historią danych transakcji. Z drugiej strony, jeśli trudność jest zbyt duża, nawet koszty obliczeniowe dodania nowego bloku można uznać za zbyt wysokie, co z kolei zniechęca węzły do dodawania nowych danych transakcyjnych. Dlatego wyzwaniem przy projektowaniu łańcucha bloków jest określenie odpowiedniego poziomu trudności dla zagadek mieszających. To wyzwanie jest jeszcze bardziej wymagające, ponieważ moc obliczeniowa komputerów zmienia się z powodu postępu technicznego. W rezultacie może być konieczne określenie poziomu trudności dynamicznie. Aplikacje Blockchain w prawdziwym świecie rzadko wykorzystują stały poziom trudności dla wszystkich bloków. Zamiast tego zazwyczaj wykorzystują dynamiczny poziom trudności oparty na szybkości dodawania nowych bloków3. Zapewnia to, że czas potrzebny na rozwiązanie łamigłówki mieszającej pozostaje na poziomie, który uniemożliwia węzłom manipulowanie historią danych transakcji podczas faktycznego wysiłku obliczeniowego Może wzrosnąć.

Perspektywy

W tym kroku wyjaśniono, że blockchain zapobiega manipulowaniu lub fałszowaniu historii danych transakcji poprzez przekształcenie struktury danych blockchain w niezmienny magazyn danych tylko z dołączaniem. Kolejny krok koncentruje się na udostępnieniu tego magazynu danych wszystkim w rozproszonym systemie peer-to-peer.

PODSUMOWANIE

•  Blockchain chroni historię danych transakcji przed manipulacjami i fałszowaniem, przechowując dane transakcji w niezmiennym magazynie danych.
•  Historia transakcji jest niezmienna dzięki wykorzystaniu dwóch pomysłów:

-Przechowywanie danych transakcji w strukturze danych blockchain wrażliwej na zmiany, która po zmianie wymaga przepisania danych struktury zaczynająca się w punkcie, który powoduje zmianę, aż do czoła całego łańcucha.
-Wymaganie rozwiązania hash puzzle do pisania, przepisywania lub dodawania każdego nagłówka bloku w strukturze danych łańcucha bloków. •  Hash puzzle jest unikalny dla każdego nagłówka bloku, ponieważ zależy od jego unikalnej zawartości.
•  Konieczność przepisania struktury danych blockchain po jej zmianie, a koszty związane z tym sprawiają, że nieefektywne jest manipulowanie historią danych transakcji w pierwszej kolejności.
•  Wymaganie rozwiązania łamigłówki przy każdym zapisywaniu, przepisywaniu lub dodawaniu nagłówków bloków w zwrotach struktury łańcucha bloków jest przekszta
łcane w magazyn danych tylko z dołączaniem. •  Nagłówek bloku zawiera co najmniej następujące dane:

-Hash odniesienia do nagłówka poprzedniego bloku
- Katalog główny drzewa Merkle, który zawiera dane transakcji
-Trudność jego hash puzzle
- Czas, w którym rozpoczęto rozwiązywanie łamigłówki
- nonce, która rozwiązuje łamigłówkę