Blockchain dla Nie-TechnikówNew Economy

Korzystanie z magazynu danych



Łańcuchy bloków danych

Wcześniej wprowadzono strukturę danych blockchain. Okazuje się, że struktura danych blockchain składa się z dwóch głównych elementów: uporządkowanego łańcucha nagłówków bloków i drzew Merkle zawierających dane transakcyjne. Ta struktura danych została wynaleziona w celu bezpiecznego przechowywania danych transakcji. Ale co w tym kontekście oznacza bezpieczne przechowywanie danych? Odpowiedź na to pytanie jest celem tego kroku. Ten krok wskazuje na konsekwencje zmiany danych w łańcuchu bloków i ilustruje, w jaki sposób struktura bloków danych wykrywa zmiany. Co więcej, ten krok podkreśla moc referencji skrótu podczas przechowywania danych w sposób wrażliwy na zmiany. Wreszcie, w tym kroku wyjaśniono, jak poprawnie dodawać nowe bloki do struktury danych blockchain.

Metafora

Dzianie to rzemiosło przekształcania przędzy w tkaninę lub tkaninę poprzez tworzenie sekwencji wielu zazębiających się pętli przędzy, tak zwanych ściegów. Przy ręcznym wytwarzaniu rozmiary ściegów dziewiarskich znacznie się różnią. Dlatego podczas procesu dziania czasami konieczne jest korygowanie pojedynczych szwów. Aby skorygować ścieg dziewiarski umiejscowiony gdzieś w materiale, należy oderwać wszystkie kolejne ściegi w odwrotnej kolejności, zaczynając od końca rzędu, aż w końcu dojdzie do ściegu, który ma zostać skorygowany. Po poprawieniu rozpatrywanego ściegu należy odtworzyć wszystkie kolejne ściegi. Ponieważ ta procedura jest dość skomplikowana, ważne jest, aby upewnić się, że wszystkie ściegi spełniają wymagania jakościowe podczas ich pierwszego tworzenia. Ten krok wyjaśnia, że użycie struktury danych blockchain jest bardzo podobne do dziania: Dodawanie nowego bloku na końcu struktury danych blockchain jest łatwe, a zmiana danych znajdujących się gdzieś w łańcuchu jest dość skomplikowana. Mając na uwadze tę metaforę, z łatwością powinieneś być w stanie zrozumieć, w jaki sposób struktura danych blockchain wykrywa zmiany, z jednej strony, oraz w jaki sposób dane są dodawane i zmieniane poprawnie, z drugiej strony

Dodawanie nowych transakcji

Aby zrozumieć, jak uporządkować dodawanie nowych transakcji do istniejącej struktury danych blockchain, rozważmy prosty przykład. Rysunek ilustruje początkową sytuację struktury danych blockchain, która składa się tylko z jednego bloku.



Istniejąca struktura danych blockchain obsługuje tylko dwie transakcje. Transakcja 3 i Transakcja 4 na dole rysunku nie zostały jeszcze dodane do struktury danych blockchain. Kroki, które należy wykonać, aby dodać nowe dane transakcji, to:

1. Utwórz nowe drzewo Merkle zawierające wszystkie nowe dane transakcji do dodania, jak pokazano na rysunku.



2. Utwórz nowy nagłówek bloku (Block Header 2), który zawiera zarówno odwołanie do skrótu (B1), które wskazuje na nagłówek jego poprzedzającego bloku (Block Header 1), a także katalog główny drzewa Merkle, który zawiera nowe dane transakcji (R34 ), jak pokazano na rysunku



3. Utwórz nowe odwołanie do skrótu (B2) do nowego nagłówka bloku, jak pokazano na Rysunku i zadeklaruj, że jest nowym szefem zaktualizowanej struktury danych blockchain. Pamiętaj, że odniesienie, które wskazuje na najbardziej obecnie dodaną część danych w łańcuchu, jest również nazywane głową całego łańcucha



Wykrywanie zmian

Krok przedstawiony na rysunku powyżej służy jako początkowa sytuacja do badania wpływu zmiany danych, które już są częścią struktury danych blockchain. Omówię następujące przypadki:

•  Zmiana zawartości danych transakcji
•  Zmiana odniesienia w drzewie Merkle
•  Zastąpienie transakcji
•  Zmiana korzenia Merkle
•  Zmiana odniesienia do nagłówka bloku
Zmiana treści danych transakcji

Rysunek poniższy pokazuje, co się stanie, jeśli zmienimy Transakcję 2.



Ta transakcja jest częścią drzewa Merkle, które składa się z referencji skrótu. Zmieniając niektóre właściwości Transakcji 2 (np. Ilość przenoszonych towarów lub konto, które otrzymuje własność), zmienia się również odpowiednio odcisk palca lub wartość skrótu kryptograficznego. W wyniku tego odwołanie skrótu R2, które wskazywało na oryginalne dane transakcji, jest zepsute. Wykrywa, że dane transakcji, do których pierwotnie się odniósł, zostały w międzyczasie zmienione, a zatem narusza zasady pozostawania bez zmian. W rezultacie cała struktura danych blockchain jest nieprawidłowa.

Zmiana odniesienia w drzewie Merkle

Rysunek ilustruje, co się stanie, jeśli nie tylko zmienisz szczegóły transakcji, ale również zmienisz odniesienie skrótu wskazujące na zaktualizowaną transakcję.



Zaktualizowana wartość skrótu (R2) jest poprawna, ponieważ poprawnie wskazuje nowe dane transakcji. Jednak zaktualizowane odwołanie do skrótu jest częścią drzewa Merkle, którego korzeń jest również odwołaniem do skrótu. Korzeń drzewa Merkle (R12) wskazuje na kawałek danych, który zawiera odniesienia skrótu R1 i R2. Ten ostatni został zmieniony, aby był spójny z zmanipulowaną wersją Transakcji 2. Stąd wartość kryptograficzna wartości skrótu elementu zawierającego zaktualizowaną wersję R2 również się zmienia, co z kolei unieważnia korzeń drzewa Merkle R12

Zastąpienie transakcji

Rysunek poniższy przedstawia przypadek zastąpienia całej transakcji zamiast manipulowania szczegółami istniejącej transakcji i zaktualizowania jej skrótu



Porównując ostatnie dwa rysunki , można znaleźć tylko niewielką różnicę dotyczącą nazwy transakcji i jej skrótu. Jeśli chodzi o konsekwencje, obie ilustracje są identyczne. W obu przypadkach korzeń drzewa Merkle R12 będzie nieprawidłowy z powodu zmian, które nastąpiły w obrębie drzewa Merkle. W rezultacie stwierdzamy, że zmiana transakcji lub wymiana transakcji będzie miała taki sam wpływ na strukturę danych blockchain. Manipulacja zostanie wykryta w obu przypadkach i spowoduje unieważnienie całej struktury danych.

Uwaga

Zmiana lub zastąpienie danych w strukturze danych blockchain będzie miało identyczne wyniki, ponieważ oba mają identyczny wpływ na odwołania hash

Zmiana korzenia Merkle

Rycina poniższy ilustruje, co się stanie, jeśli całe drzewo Merkle, w tym jego korzeń, zostanie zmienione.




Korzeń zmanipulowanego drzewa Merkle (R12) jest częścią nagłówka bloku (Block Header 1). Zmiana katalogu głównego Merkle zmienia wartość skrótu kryptograficznego bloku Header 1, co z kolei powoduje, że odwołanie do skrótu, które do niego wskazuje (B1), jest nieprawidłowe. Referencja skrótu B1, która utrzymuje połączenie lub służy jako łącze z nagłówka bloku 2 do nagłówka bloku 1, staje się nieważna, gdy wykrywa zmianę. W rezultacie cała struktura blockchain-data staje się nieprawidłowa.

Zmiana odniesienia do nagłówka bloku

Rycina poniższy ilustruje, co się stanie, jeśli zmieni się nie tylko całe drzewo Merkle, ale także odwołanie do skrótu manipulowanego nagłówka bloku.



Jeśli odwołanie skrótu (B1) do zmanipulowanego nagłówka bloku (Block Header 1) zostanie zmienione, dzieje się, co następuje: Począwszy od odwołania skrótu B1, wszystkie odniesienia skrótu wskazujące na zmanipulowane dane są spójne i ważne, ponieważ zostały dostosowane do wykonanego manipulacja. Jednak zmanipulowane odwołanie skrótu B1 jest częścią bloku nagłówka 2, a zatem zmienia się jego kryptograficzna wartość skrótu, co z kolei unieważnia odwołanie skrótu B2, które wskazywało na oryginalny nagłówek bloku danych zawierający oryginalną wersję odwołania skrótu B1. W rezultacie cała struktura danych blockchain również jest nieprawidłowa.

Uporządkowana zmiana danych

Po dyskusji na temat wielu podejść do manipulacji strukturą bloków danych, które wszystkie przyniosły nieprawidłową strukturę danych, nadszedł czas, aby zilustrować, co należy zrobić, aby zmienić lub zaktualizować uporządkowaną strukturę danych łańcucha bloków. Rysunek poniższy pokazuje, jak poprawnie zmienić strukturę danych blockchain.



Jeśli rozważamy zmianę lub aktualizację niektórych szczegółów Transakcji 2, musimy następnie zaktualizować całą sekwencję odniesień skrótu: R2, R12, B1 i B2. Oznacza to, że wszystkie odwołania do skrótów, zaczynając od tego, który bezpośrednio wskazuje na zmanipulowane dane, a kończąc na odwołaniu do skrótu, który wskazuje na najnowszy nagłówek bloku, a także wszystkie odniesienia między nimi, należy zmienić i zaktualizować, aby odzwierciedlają zmiany swoich celów. To dość skomplikowane zadanie. I jest to celowo skomplikowany proces. Cała ta praca jest konieczna, aby zachować spójność całej struktury danych blockchain i zachować jej integralność. Wszystkie inne próby zmiany lub manipulowania danymi, które są częścią struktury danych blockchain, spowodują nieprawidłowe odwołania do skrótów, co z kolei unieważni całą strukturę danych.

Zamierzone i niezamierzone zmiany

Poprzednia dyskusja pokazała, że struktura danych blockchain stosuje radykalne podejście "wszystko albo nic", jeśli chodzi o zmianę swoich danych: albo zmienia się cała struktura danych całkowicie od punktu, który powoduje zmianę, aż do czoła całego łańcucha albo lepiej zostawić to bez zmian. Wszystkie inne zmiany na wpół serca, w połowie lub częściowe spowodują, że cała struktura danych blockchain będzie w niespójnym stanie, który zostanie łatwo i szybko wykryty. Wynika to z właściwości odniesień skrótu, w których struktura danych blockchain nie rozróżnia zamierzonych lub niezamierzonych zmian. W rzeczywistości nie ma takich rzeczy, jak zamierzone lub niezamierzone zmiany w blockchainie. Te słowa odnoszą się do wyceny motywów lub osoby, która spowodowała zmianę. Ale struktura danych blockchain nie ceni ani motywów, ani osoby, która powoduje niespójność. Blockchain dba tylko o poprawność i spójność wszystkich odniesień do skrótów. Jeśli jeden z nich jest nieprawidłowy, cała struktura danych jest nieprawidłowa, niezależnie od tego, kto lub co spowodowało tę zmianę i dlaczego została wprowadzona. Ta właściwość sprawia, że struktura danych blockchain jest bardzo cenna.

Perspektywy

Ten krok bardzo szczegółowo zilustrował sposób, w jaki struktura danych blockchain radzi sobie ze zmianami swoich danych. Okazało się, że struktura danych blockchain jest bardzo wrażliwa na zmiany. Stosuje radykalne podejście "wszystko albo nic", jeśli chodzi o zmianę swoich danych. Kolejny krok wyjaśnia, w jaki sposób można użyć tej właściwości, aby uczynić dane niezmiennymi, co czyni strukturę danych blockchain idealnym kandydatem do przechowywanie danych w niepewnym i niewiarygodnym środowisku.

PODSUMOWANIE

* Kroki, które należy wykonać, aby dodać nowe dane transakcji do struktury danych blockchain:
-Utwórz nowe drzewo Merkle, które będzie zawierało wszystkie nowe dodane dane transakcji
-Utwórz nowy nagłówek bloku, który zawiera zarówno odwołanie do skrótu poprzedzający nagłówek i katalog główny drzewa Merkle, który zawiera nowe dane transakcji.
-Utwórz odwołanie skrótu do nowego nagłówka bloku, który jest teraz obecnym szefem struktury danych blockchain.
* Zmiana danych w strukturze danych blockchain wymaga odnowienia wszystkich odniesień do skrótów, zaczynając od tego, który bezpośrednio wskazuje na zmanipulowane dane, a kończąc na szczycie całej struktury blockchain-danych, a także wszystkich odniesień skrótu między nimi.
* Struktura danych blockchain stosuje radykalne podejście "wszystko albo nic", jeśli chodzi o zmianę swoich danych: albo zmienia się cała struktura danych całkowicie, zaczynając od punktu, który powoduje zmianę, aż do czoła całego łańcucha lub jeden lepszy przede wszystkim pozostaw to bez zmian.
* Wszystkie zmiany na wpół serca, w połowie lub częściowe spowodują, że cała struktura danych blockchain będzie w niespójnym stanie, który zostanie łatwo i szybko wykryty.
* Całkowita zmiana struktury danych blockchain jest celowo bardzo skomplikowanym procesem.
* Wysoka czułość struktury danych blockchain w odniesieniu do zmian wynika z właściwości referencji skrótu.