Hashowanie danych. Identyfikacja danych z ich cyfrowego odcisku palca

W tym kroku wyjaśniono jedną z najważniejszych podstawowych technologii łańcucha bloków: wartości mieszania. Omawia ważne właściwości kryptograficznych funkcji skrótu i wprowadza wzorce stosowania funkcji haszujących do danych.

Metafora

Odciski palców są odciskami ciernymi wszystkich lub dowolnychh części palców ludzkiej ręki. Uważa się, że są w stanie jednoznacznie identyfikować ludzi. Zostały one wykorzystane do zbadania przestępstw, identyfikacji przestępców i oczyszczenia niewinnych. W tym kroku wprowadzono koncepcję identyfikacji danych, którą można uznać za cyfrowy odpowiednik odcisków palców. Pojęcie to nazywane jest kryptograficzną wartością mieszającą, a blockchain wykorzystuje ją w szerokim zakresie. Stąd zrozumienie hashowania kryptograficznego jest obowiązkowe dla zrozumienia blockchain.

Cel

W rozproszonym systemie peer-to-peer zajmiesz się ogromną liczbą danych transakcyjnych. W rezultacie będziesz musiał zidentyfikować je w sposób unikalny i porównać je tak szybko i tak łatwo, jak to możliwe. Dlatego celem jest identyfikacja danych transakcyjnych i ewentualnie wszelkiego rodzaju danych w sposób unikalny za pomocą ich cyfrowych odcisków palców.

Jak to działa

Funkcje skrótu to małe programy komputerowe, które przekształcają dowolny rodzaj danych w pewną liczbę stałych długości, niezależnie od wielkości danych wejściowych. Funkcje skrótu akceptują tylko jedną część danych w danym momencie jako dane wejściowe i tworzą wartość mieszania opartą o bity i bajty, które tworzą dane. Wartości skrótu mogą mieć początkowe zera, aby zapewnić wymaganą długość. Istnieje wiele różnych funkcji skrótu, które różnią się między sobą pod względem długości wartości mieszania . Ważną grupą funkcji  haszujących są kryptograficzne funkcje mieszające, które tworzą cyfrowe odciski palców dla każdego rodzaju danych. Kryptograficzne funkcje mieszające mają następujące właściwości:

  • Szybko dostarcza wartości mieszania dla dowolnego rodzaju danych
  • Jest deterministyczna
  • jest pseudolosowa
  • Funkcja jednokierunkowa
  • Odporna na kolizje

Znaczenie zamawiania

Agregacja danych transakcji ma na celu odzyskanie obecnego stanu własności i wyjaśnienie własności. Ważne jest, aby pamiętać, że kolejność, w której doszło do transakcji, musi zostać zachowana, aby uzyskać identyczny wynik za każdym razem, gdy dane są agregowane. Zmiana kolejności danych transakcji zmieni wynik ich agregacji. Na pierwszy rzut oka nie wydaje się, aby wynik bardzo się zmienił, niezależnie od tego, czy otrzymam płatność w wysokości 50 USD najpierw od przyjaciela, a potem 50 dolarów, aby zapłacić rachunek lub czy te dwie transakcje miały miejsce w odwrotnej kolejności. Ale co się stanie, jeśli moje konto bankowe nie będzie zawierało żadnych pieniędzy i nie wolno mi go przekroczyć? W takim przypadku moja zdolność do zapłaty mojego rachunku zależy od tego, czy otrzymałem najpierw płatność od mojego przyjaciela. W przeciwnym razie bank odmówi przekazania pieniędzy na opłacenie rachunku z powodu braku funduszy. W związku z tym kolejność występowania transakcji ma znaczenie.

Integralność historii transakcji

Bez przesady można stwierdzić, że historia danych transakcyjnych jest sercem każdego łańcucha blokowego, który zarządza własnością, ponieważ jest podstawą do rekonstrukcji stanu własności. W związku z tym konieczne jest zachowanie tej historii danych w sposób bezpieczny, kompletny, poprawny i spójny, tak aby zachować integralność całego systemu, a co za tym idzie, móc składać prawdziwe oświadczenia dotyczące obecnego stanu własności. W związku z tym blockchain musi zapewniać środki bezpieczeństwa, aby zapewnić, że tylko prawidłowe dane transakcji są dodawane do struktury danych blockchain. Badanie ważności danych transakcji obejmuje trzy aspekty:

  • Formalna poprawność
  • Semantyczna poprawność
  • Upoważnienie

Formalna poprawność

Formalna poprawność oznacza, że ​​opis transakcji zawiera wszystkie wymagane dane oraz że dane są dostarczane we właściwym formacie.

Semantyczna poprawność

Poprawność semantyczna koncentruje się na znaczeniu danych transakcji i ich zamierzonym efekcie. Dlatego walidacja semantycznej poprawności wymaga znajomości dziedziny biznesu. Badanie semantycznej poprawności danych transakcji często odbywa się na podstawie reguł biznesowych, takich jak:

  • Upewnienie się, że konto nie przekazuje więcej niż jest obecnie w posiadaniu
  • Zapobieganie podwójnym wydatkom
  • Ograniczanie ilości produktów, które można przenieść w ramach pojedynczej transakcji
  • Ograniczenie liczby transakcji na użytkownika
  • Ograniczenie całkowitej ilości przedmiotów wydanych w danym okresie
  • Egzekwowanie, że konto utrzymuje produkt przez minimalny okres, zanim będzie można go dalej przenieść

Upoważnienie

Tylko właściciel konta, który nie ma prawa własności, powinien mieć na to zezwolenie aby doradzać blockchainowi, aby wykonać transakcję w jego imieniu. W wyniku tego blockchain wymaga, aby każda transakcja zawierała informacje potwierdzające, że właściciel konta, który oddaje własność, faktycznie zgadza się z tym przelewem.

Jak to działa?

Dokumentacja własności za pomocą blockchain obejmuje następujące aspekty:

  • Opisywanie przeniesienia własności
  • Utrzymywanie historii transferów

Opis przenoszenia własności

Transakcja jest przeniesieniem prawa własności z jednego właściciela na inny. Akt przeniesienia własności opiera się na danych, które określają zamierzony transfer. Dane te zawierają wszystkie informacje niezbędne do wykonania przeniesienia prawa własności. Przykładem danych, które opisują zamierzone przeniesienie własności, byłby formularz przelewu bankowego, który służy do żądania od banku dokonania przelewu pieniędzy w imieniu klienta. Formularz przelewu bankowego wymaga podania wszystkich informacji niezbędnych do umożliwienia bankowi dokonania przelewu w Twoim imieniu. W podobny sposób informacje używane przez blockchain do opisania transakcji to:

  • Identyfikator konta, które ma przekazać własność na inne konto
  • Identyfikator konta, które ma otrzymać prawo własności
  • Ilość towarów do przesłania
  • Czas realizacji transakcji
  • Opłata, którą należy uiścić w systemie za wykonanie transakcji
  • Dowód, że właściciel konta, który nie posiada własności, rzeczywiście się zgadza z tym przeniesieniem

Większość tych danych jest znana każdemu, kto dokonał przelewu pieniężnego w  banku. Jednak analogia do przelewu bankowego kończy się, gdy opłaty są uwzględniane. Z uwagi na fakt, że banki są scentralizowanymi instytucjami, utrzymują centralny program opłat, który jest stosowany do wszystkich klientów. W przeciwieństwie do tego, blockchain jest systemem rozproszonym bez centralnego punktu kontroli. Dlatego blockchain nie może mieć centralnego harmonogramu opłat. Podczas korzystania z blockchain każdy użytkownik musi wcześniej poinformować system, ile chce zapłacić za wykonanie transakcji. Konto, które oddaje własność, płaci również opłatę za transakcję.

Utrzymywanie historii transferów

Dane transakcji dostarczają obowiązkowych informacji niezbędnych do wykonania przeniesienia własności zgodnie z przeznaczeniem. Realizacja transakcji oznacza dokonanie przeniesienia prawa własności w sposób opisany w danych transakcji. Wykonywanie transakcji oznacza dodanie danych transakcji do księgi głównej. Po dodaniu danych transakcji do księgi transakcja staje się częścią historii transakcji, która służy do wyjaśnienia własności. Gdy księga zostanie użyta następnym razem w celu wyjaśnienia własności poprzez agregację zawartych w niej danych transakcji, nowo dodana transakcja zostanie uwzględniona w agregacji, a tym samym wpłynie na wynikowy stan własności. Blockchain przechowuje całą historię wszystkich transakcji, które kiedykolwiek miały miejsce, przechowując ich dane transakcji w strukturze danych blockchain w kolejności, w jakiej wystąpiły. Każda transakcja, która nie jest częścią tej historii, jest traktowana tak, jakby nigdy się nie wydarzyła. Dlatego dodanie danych transakcji do struktury danych blokowych oznacza wykonanie tej transakcji i umożliwienie jej wpłynięcia na wynik użycia historii w celu zidentyfikowania obecnego właściciela.

Dlaczego to działa?

Ponieważ dane transakcyjne zawierają wszystkie informacje o koncie, które oddala prawo własności, konto, które otrzymuje prawo własności, a także przedmiot i kwotę do przeniesienia, można odtworzyć informacje o własności dla każdego konta, o ile dostępna jest cała historia transakcji. W rezultacie cała historia wszystkich dane transakcji są wystarczające do udokumentowania własności.

Dokumentowanie własności

Używanie przebiegu historii jako dowodu na obecny stan własności

W tym kroku rozważa się zadanie opisania własności w sposób, który jest użyteczny w przypadku czysto rozproszonego systemu ksiąg rachunkowych typu peer-to-peer. W tym kroku wyjaśniono, w jaki sposób blockchain dokumentuje własność i obsługuje przeniesienie własności. Dodatkowo, ten krok wskazuje na znaczenie zamawiania podczas dokumentowania przeniesienia własności. Wreszcie, ten krok podkreśla znaczenie integralności danych transakcyjnych dla integralności całego systemu.

Metafora

Sztafeta to wyścig pomiędzy drużynami biegaczy, gdzie każdy członek zespołu obejmuje tylko część całkowitej odległości. Podczas wyścigu każdy biegacz musi przekazać określony przedmiot, tzw. pałeczkę, następnemu biegaczowi w określonej strefie oznaczonej na torze. W dowolnym momencie wyścigu tylko jeden członek konkurencyjnych zespołów niesie pałeczkę. W celu ustalenia, który członek danej drużyny aktualnie posiada pałeczkę, wystarczy wiedzieć, komu z zespołu została przekazana pałeczka najpóźniej od ręki. Aby śledzić, kto w danym momencie nosił pałeczkę, należy zarejestrować czas każdego przekazania i zawodników, którzy byli zaangażowani. Ten krok wyjaśnia, w jaki sposób blockchain traktuje własność

Wyzwanie

Wyzwanie polega na znalezieniu dokumentacji własności, która nie tylko twierdzi, że ktoś jest właścicielem czegoś, ale także dostarcza dowodów własności i stąd służy jako dowód własności w podobny sposób do sposobu, w jaki sztafety wykorzystują pałki.

Pomysł

Zamiast opisywania obecnego stanu własności według danych inwentaryzacyjnych (tj. poprzez zestawienie bieżących posiadłości wszystkich właścicieli), w sposób ciągły zachowuje się listę wszystkich przeniesień własności w księdze głównej. Każde przeniesienie własności jest opisywane przez dane transakcji, które wyraźnie wskazują, który właściciel oddaje własność do której pozycji i do kogo o której godzinie. Cała historia danych transakcji przechowywanych w księdze rachunkowej staje się ścieżką audytu, która dostarcza dowodów na to, jak każdy osiągnął swoją własność. Jest to równoważne śledzeniu każdego przekazania pałeczki w sztafecie, co pozwala każdemu odtworzyć cały wyścig później.

Krótki objazd do zapasów i danych transakcji

Istnieją dwa konkurencyjne sposoby opisywania własności – za pośrednictwem danych inwentaryzacyjnych lub danych transakcji. Dane o zapasach opisują obecny stan własności. Są one podobne do wyciągu z rachunku bankowego, który wyświetla aktualnie dostępną ilość pieniędzy. Dane transakcji opisują przeniesienia własności. Są one podobne do wyciągu z konta bankowego, który zawiera listę wypłat, depozytów i przelewów pieniężnych. Można wyodrębnić dane inwentaryzacyjne, agregując dane transakcji. Poza tym, że zarówno dane dotyczące inwentarza, jak i dane transakcji opisują własność, ich podstawowa filozofia różni się diametralnie. Dane dotyczące zapasów po prostu określają własność lub roszczenie, a dane dotyczące transakcji wyjaśniają, a tym samym uzasadniają własność. Jednak dane inwentaryzacyjne są często uważane za wygodniejsze, ponieważ od razu stwierdzają, że jest to interesujące dla większości ludzi, czyli obecnego stanu własności.

Jak działa Blockchain? c.d.

Zadanie 1: Opisując Własność

Zanim będzie można zacząć rozwijanie blockchain, trzeba zadać sobie pytanie, co chcesz z nim zrobić. Ponieważ będziemy chcieli zaprojektować system oprogramowania, który zarządza własność, trzeba najpierw zdecydować, w jaki sposób opisać własności. Okazuje się, że transakcje są dobrym sposobem na opisanie każdego przeniesienia prawa własności, a całą historię transakcji jest kluczem do identyfikacji obecnych właścicieli. Stąd Krok 9 Transakcje wyjaśni czym są, jak można je opisać i jak można z nich korzystać w celu wyjaśnienia własności.

Zadanie 2: Ochrona własności

Opisanie własności za pomocą transakcji jest tylko punktem wyjścia. Ponadto potrzebny jest sposób, aby odwieść ludzi od  dostępu do właściwości innych. W prawdziwym życiu, można łatwo odwieść ludzi od korzystania z samochodu lub z wejściem do nie swojego dom ,za pomocą drzwi z zamkami. Okazuje się, że kryptografia dostarcza sposób ochrony transakcji na poziomie indywidualnym, podobnie jak sposób poszczególne drzwi z zamkami chronić swój samochód lub dom. Ochrona własności ma trzy główne elementy: identyfikacja i uwierzytelnianie właściciela, a także ograniczanie dostępu do usługi, do ich właścicieli. Etapy 12 i 13 wyjaśnią te pojęcia w sposób bardziej szczegółowy. Jednak te kroki polegać na koncepcji wartości hash. Jeśli nigdy nie słyszałeś o wartości hash, nie trzeba się martwić., Etap 10 i 11 wyjaśni wartości hash w szczegółach. Te dwa etapy będą również ciekawymi spostrzeżeniami dla tych, którzy już mają wykształcenie techniczne lub wiedzą o wartości hash.

Zadanie 3: Zapisywanie danych transakcji

Opisując własności za pomocą transakcji i posiadając środki ochrony, chroni własność na poziomie poszczególnych transakcji są ważne kroki w kierunku bramki projektowania systemu oprogramowania, który zarządza własności. Jednak trzeba znaleźć sposób dla przechowywania całej historii transakcji, jak ta historia jest używana do wyjaśnienia własności. Ponieważ historia transakcji jest kluczowym elementem w wyjaśnianiu własności, musi być przechowywane w bezpieczny sposób. Okazuje się, że blockchain-data-structure jest cyfrowym odpowiednikiem do księgi głównej. Etapy 14 i 15 wyjaśnią, że ​​wymóg blockchain-structure-data musi być spełnione, aby służyć jako księgi cyfrowej i jak jest realizowany.

Zadanie 4: Przygotowanie ksiąg dla dystrybuowania w nierzetelnym  środowisku

Posiadanie jednej wyizolowanej księgi lub blockchain-structure-data, która zawiera dane transakcji jest dobre,, ale celem jest zaprojektowanie systemu rozproszonego peer-to-peer z księgami, która działają w środowisku nierzetelnym. Stąd, będziesz miał kopie księgi uruchomiony na nierzetelnym węźle  w sieci nierzetelnej. Ponadto, można oddać kontrolę nad księgami dla całej sieci, bez żadnego centralnego punktu sterowania lub koordynacji. Jak można zapobiec manipulacjom w księgach (na przykład poprzez usunięcie transakcji z historii transakcji nielegalnych lub dodanie do niego)? Okazuje się, że najlepszym sposobem, aby zapobiec zmianie w  historii transakcji jest stworzenie jej niezmiennej. Oznacza to, że księgi, a zatem historia transakcji nie może być zmieniana  kiedy jest raz zapisana . W rezultacie, nie trzeba się obawiać, że księgi zostaną naruszone lub nadpisane, ponieważ nie mogą być zmienione w pierwszej kolejności. Jednakże mając rozproszony system peer-to-peer z księgami, które nigdy nie mogą być zmienione , brzmią jak bardzo bezpieczne, ale całkiem bezużyteczne rzeczy, ponieważ nie będzie można dodawać nowych transakcji. Stąd wyzwaniem blockchain-structure-data ma być niezmienność, z jednej strony, akceptując nowe transakcje które są dodawane do niej, z drugiej strony. To brzmi jak sprzeczność w słowach, ale okazuje się, że jest to osiągalne z technicznego punktu widzenia, który jest wyjaśnione w punkcie 16. W rezultacie powstaje struktura, która jest blockchain-data-append-only: możliwe jest dodawanie nowych transakcji; ale jest prawie niemożliwe, aby zmienić dane, które zostały dodane w przeszłości.

Zadanie 5: Dystrybucja w księgach

Kiedy księga główna jest append-only, można utworzyć rozproszony system peer-to-peer z ksiąg poprzez jej dostępne kopie dla każdego, kto o to poprosi. Jednak poświadczone kopie ksiąg append-only nie spełnia swoich celów. Rozproszony system, który zarządza własności polega na interakcji między peerami lub węzłów, odpowiednio. Stąd Krok 17 wyjaśnia, jak węzły w systemie współdziałają ze sobą i jakie informacje są wymieniane między nimi.

Zadanie 6: Dodawanie nowych transakcji do ksiąg

Rozproszony system peer-to-peer będzie składać się z członków, których komputery utrzymują poszczególne kopie append-only blockchain-data-struktury. Ponieważ struktura danych pozwala na dodawanie nowych danych transakcyjnych, będziesz musiał upewnić się, że tylko poprawne i autoryzowane transakcje są dodawane. Okazuje się, że jest to możliwe poprzez umożliwienie wszystkim członkom systemu peer-to-peer, aby dodać nowe dane i obracając Dodatkowo każdy członek systemu peer-to-peer do przełożonych z peerami. W rezultacie, wszyscy członkowie będą nadzorować nawzajem i zwrócić uwagę na wszelkie błędy popełnione przez swoich rówieśników. Krok podejście 18 wyjaśnia to bardziej szczegółowo, jak również zachęt udzielonych rówieśników do spełnienia swoją rolę.

Zadanie 7: podejmowaniu decyzji, które Ledgers Reprezentujesz Prawdę

Nowe transakcje mogą być dodawane do poszczególnych ksiąg w systemie peer-to-peer, jedna prowadzi do problemu, który jest typowy dla każdej rozproszonym systemie peer-to-peer, różni peers mogą otrzymali różne transakcje i wkrótce historii transakcji utrzymywane przez nich różni się. Stąd różne wersje historii transakcji mogą istnieć w systemie peer-to-peer. Ponieważ historia transakcji jest podstawą do identyfikacji legalnych właścicieli, posiadanie różnych sprzecznych historii transakcji jest poważnym zagrożeniem dla integralności systemu. Stąd ważne jest, aby znaleźć sposób, albo aby zapobiec pojawianiu się różnych historii transakcji w pierwszej kolejności lub znaleźć sposób, aby zdecydować, które transakcja historia przedstawia prawdę. Ze względu na charakter w czysto rozproszonym systemie peer-to-peer, ostatnie podejście nie jest możliwe. W rezultacie trzeba kryterium, jak znaleźć i wybrać jedną historię transakcji, która reprezentuje prawdę. Ale jest inny problem: nie istnieje centralny organ w czysto rozproszonym systemie peer-to-peer, który może zadeklarować, która historia transakcji musi zostać wybrana. Okazuje się, że można rozwiązać ten problem poprzez każdy węzeł w systemie peer-to-peer decydujący o własnej historii transakcji, która reprezentuje prawdę w taki sposób, że większość peerów zgadza się na tę decyzję samodzielnie. Okazuje się też, że sposób, w jaki blockchain pozwala dodawać nowe transakcje append-only blockchain-structure-data zawiera już rozwiązanie tego problemu. 19 krok wyjaśnia te kryteria w szczegółach i jak są one wykorzystywane.

W tym kroku zidentyfikowano siedem zadań, które stanowią wymagającą intelektualną podróż po koncepcjach stanowiących blockchain. Po wykonaniu tych zadań dotrzesz na szczyt: zrozumiesz blockchain. Krok 21 to punkt, w którym połączysz wszystkie te koncepcje i rozkoszujesz się rezultatami tego wysiłku uczenia się. Krok 21 będzie przeglądową częścią podobnym do tego, ale będzie czerpał z wiedzy technicznej, którą zdobędziesz w międzyczasie.

Jak działa Blockchain?

Planowanie Blockchain. Podstawowe pojęcia zarządzania własnością z blockchain

W poprzednich krokach odkryto związek między zaufaniem, integralnością, czysto rozproszonymi systemami peer-to-peer i blockchain. W rezultacie dobrze rozumiesz, czym jest blockchain, dlaczego jest on potrzebny i jaki problem rozwiązuje. Jednak nadal nie wiesz, jak działa blockchain wewnętrznie. Ten krok daje pierwsze wrażenie, jak działa blockchain, wyjaśniając ogólny scenariusz zastosowania, który poprowadzi Cię przez kolejne kroki. Podkreśla również główne zadania w projektowaniu blockchain do zarządzania własnością i zapewnia przegląd jego głównych koncepcji. Ten krok służy jako punkt wyjścia do kolejnych kroków, które szczegółowo omawiają koncepcje i technologie, które składają się na blockchain.

Cel

Celem jest zrozumienie pojęć składających się na blockchain. Ze względów dydaktycznych przedstawię wyzwanie związane z zaprojektowaniem własnego systemu zarządzania własnością. Stąd też stoją przed tymi samymi wyzwaniami, które wynalazca blockchainu kiedyś stawiał i rozwiązał pomyślnie: zaprojektowanie oprogramowania zarządzającego własnością w czysto rozproszonym systemie peer-to-peer, który działa w całkowicie otwartym i niewiarygodnym środowisku.

Punkt początkowy

Punktem wyjścia mogą być główne fakty dotyczące rozważanego systemu podsumowane w następujący sposób:

System będzie czysto rozproszonym systemem peer-to-peer, który składa się z zasobów obliczeniowych udostępnianych przez jego użytkowników. System peer-to-peer wykorzystuje Internet jako sieć do łączenia poszczególnych węzłów. Ani liczba węzłów, ani ich wiarygodność i niezawodność nie są znane. Celem systemu peer-to-peer jest zarządzanie własnością towaru cyfrowego (np. punktami sprzedaży lub cyfrowymi pieniędzmi).

Ścieżka do naśladowania

Istnieje siedem głównych zadań, którymi należy się zająć przy projektowaniu i rozwijaniu systemu oprogramowania zarządzającego własnością za pomocą czysto rozproszonego systemu peer-to-peer w środowisku otwartych i nierzetelnych księgach rachunkowych:

  • Opisywanie własności
  • Ochrona własności
  • Przechowywanie danych transakcji
  • Przygotowywanie ksiąg do rozpowszechniania w niewiarygodnym środowisku
  • Dystrybucja ksiąg
  • Dodanie nowej transakcji do ksiąg
  • Podejmowanie decyzji, które księgi reprezentuje prawdę

Podwójne wydatki jako problem kopiowania towarów cyfrowych

W kontekście kopiowania produktów cyfrowych problem podwójnego wydawania wiąże się z faktem, że dane na komputerze mogą być kopiowane bez zauważalnych ograniczeń. Fakt ten powoduje problemy z pieniędzmi cyfrowymi lub innymi danymi, które w danym momencie mają tylko jednego właściciela. Kopiowanie umożliwia replikowanie danych reprezentujących fragmenty cyfrowych pieniędzy i wykorzystywanie ich więcej niż jeden raz do dokonywania płatności. Jest to cyfrowy odpowiednik replikacji banknotów za pomocą maszyny kopiującej. Poza tym, że jest to technicznie możliwe, kopiowanie pieniędzy cyfrowych narusza podstawową zasadę pieniądza: identycznej części pieniędzy nie można przekazywać różnym osobom w tym samym czasie. Możliwość wielokrotnego kopiowania i wydawania pieniędzy cyfrowych sprawia, że ​​pieniądze stają się bezużyteczne, a tym samym problem podwójnego wydawania pieniędzy.

Podwójne wydatki jako problem rozproszonych systemów peer-to-peer w księgach

W przypadku opisywania problemu rozproszonego systemu peer-to-peer w księgach, problem podwójnego wydawania wiąże się z faktem, że przekazywanie informacji do wszystkich elementów takiego systemu wymaga czasu, w związku z czym nie wszyscy użytkownicy mają te same informacje o własności w tym samym czasie. czas. Ponieważ nie wszyscy mają aktualne informacje, mogą być wykorzystywani przez każdego, kto ma już najnowsze informacje. W rezultacie jedna osoba może przenieść własność więcej niż raz, co powoduje podwójne wydatki.

Podwójne wydatki jako przykład naruszenia integralności w rozproszonych systemach peer-to-peer

Korzystanie z rozproszonych systemów peer-to-peer nie ogranicza się do zarządzania własnością. Jednak problem przekazywania informacji między  urządzeniami równorzędnymi i aktualizacji danych utrzymywanych przez członków systemu pozostaje taki sam, niezależnie od konkretnej domeny aplikacji. W związku z tym na bardziej abstrakcyjnym poziomie problem podwójnego wydatkowania może być postrzegany jako problem utrzymania spójności danych w rozproszonych systemach peer-to-peer. Ponieważ spójność danych jest jednym z aspektów integralności systemu, można powiedzieć, że problem podwójnych wydatków jest szczególnym przykładem naruszenia integralności systemu

Jak rozwiązać problem podwójnych wydatków?

Ponieważ podwójne wydatki mogą mieć różne znaczenia, nie ma jednego sposobu, aby temu zapobiec. Zamiast tego może istnieć wiele różnych rozwiązań. W poniższych sekcjach opisano niektóre z nich.

Rozwiązywanie podwójnych wydatków jako problem kopiowania towarów cyfrowych

Problem polegający na tym, że wydawanie pieniędzy cyfrowych lub jakichkolwiek innych zasobów cyfrowych niejednokrotnie przez kopiowanie danych jest w rzeczywistości problemem związanym z charakterem własności. Wszelkie zaakceptowane sposoby mapowania danych, które reprezentują towary cyfrowe dla ich właścicieli, rozwiążą ten problem, niezależnie od jego konkretnej implementacji. Nawet fizyczna centralna książka lub (bardziej realistycznie) księga elektroniczna, niezależnie od jej architektury (scentralizowana lub peer-to-peer), może zapewnić, że dobro cyfrowe zostanie wydane tylko raz, pod warunkiem, że księga działa poprawnie przez cały czas.

Rozwiązywanie podwójnych wydatków jako problem rozproszonego systemu ksiąg rachunkowych typu peer-to-peer 

W tym kontekście podano architekturę oraz dziedzinę zastosowania systemu. Rozproszone systemy peer-to-peer w księgach są często uważane za klasyczny przykład wyprowadzania blockchain. W wyjaśnieniach przedstawionych w kroku 6 podkreślono zależność między łańcuchem blockchain a rozproszonymi systemami peer-to-peer w księgach. Dlatego blockchain, jako że termin ten jest używany tu, może być postrzegany jako rozwiązanie problemu podwójnego wydawania pieniędzy w rozproszonym systemie peer-to-peer.

Rozwiązywanie podwójnych wydatków jako przykład naruszenia integralności w rozproszonych systemach peer-to-peer

W tym kontekście została określona architektura systemu, ale domena aplikacji pozostaje nieokreślona. Dlatego rozwiązania na tym poziomie koncentrują się na osiągnięciu i utrzymaniu integralności w rozproszonych systemach peer-to-peer, niezależnie od ich konkretnego zastosowania. Jednak konkretne użycie rozproszonego systemu peer-to-peer określa znaczenie integralności. Na przykład prosta aplikacja do wymiany plików może uwzględniać różne aspekty definiowania integralności w porównaniu z systemem zarządzającym własnością w cyfrowej walucie. Stąd pytanie, czy blockchain-technology-suite jest właściwym narzędziem do osiągnięcia i utrzymania systemu

Wydawanie pieniędzy dwa razy. Wykorzystywanie luki w rozproszonych systemach peer-to-peer

W poprzednim wpisie dowiedziałeś się o związku pomiędzy czysto rozproszonymi systemami peer-to-peer i najbardziej znaczącym przypadkiem użycia blockchain jako sposobu zarządzania własnością. Dowiedziałeś się również, że integralność rozproszonego systemu peer-to-peer w księgach znajduje się w jego zdolności do wyrażania prawdziwych oświadczeń o własności i do zapewnienia, że ​​tylko prawowity właściciel może przenieść swoje prawa własności na inne osoby. Ale co to oznacza w prawdziwym życiu? Co się stanie, jeśli naruszona zostanie integralność? W tym kroku rozważamy te pytania bardziej szczegółowo. W szczególności krok ten wprowadza jeden z najważniejszych przykładów naruszonej integralności w rozproszonych systemach peer-to-peer: problem z podwójnymi wydatkami.

Metafora

Podrabianie banknotów jest poważnym przestępstwem w każdym kraju, ponieważ podważa fundamenty i funkcjonowanie gospodarki poprzez tworzenie siły nabywczej, która nie jest poparta cennymi zasobami. W rezultacie większość banknotów jest wyposażona w funkcje bezpieczeństwa, które uniemożliwiają fałszerstwo lub co najmniej kosztowne. Te funkcje zabezpieczeń, takie jak unikalne numery, znaki wodne lub włókna fluorescencyjne, działają dobrze z fizycznymi banknotami i innymi dobrami materialnymi. Ale co się dzieje, gdy pieniądze lub towary stają się cyfrowe i są zarządzane w rozproszonych systemach peer-to-peer w księgach? W tym kroku wyjaśniono specyfikę podatności rozproszonych systemów peer-to-peer używanych do zarządzania własnością, które są równoważne z podrabianiem banknotów. Jak się okazuje, ta luka jest widocznym przykładem naruszenia integralności systemu.

Problem podwójnych wydatków

Rozważmy system peer-to-peer do zarządzania własnością nieruchomości. W takim systemie księgi, które śledzą informacje o własności, są utrzymywane przez poszczególne komputery jego członków zamiast utrzymywania ich w centralnej bazie danych. Dlatego każdy z peerów zachowuje swoją własną kopię księgi głównej. Jak tylko własność domu zostanie przeniesiona z jednej osoby na drugą, wszystkie księgi systemu muszą zostać zaktualizowane, aby zawierały najnowszą wersję rzeczywistości. Jednak przekazywanie informacji pomiędzy równorzędnymi osobami i aktualizowanie poszczególnych ksiąg rachunkowych wymaga czasu. Dopóki ostatni członek systemu nie otrzyma nowych informacji i nie zaktualizuje swojej księgi głównej, system nie będzie spójny. Niektórzy znajomi już wiedzą o ostatnim przeniesieniu własności, podczas gdy inni rówieśnicy nie otrzymali jeszcze tych informacji. Fakt, że nie wszystkie księgi mają aktualne informacje, sprawia, że ​​są one podatne na wykorzystanie przez każdego, kto ma już najnowsze informacje. Wyobraźmy sobie również następującą sytuację. Osoba A sprzedaje swój dom osobie B. Przeniesienie własności z A na B jest udokumentowane w jednej z ksiąg w systemie peer-to-peer. Ta konkretna księga musi poinformować innych użytkowników  o tym transferze, którzy z kolei informują innych rówieśników, aż w końcu wszyscy dowiedzą się o przeniesieniu własności z A na B. Jednak załóżmy, że osoba A szybko zbliży się do innej księgi systemu i domaga się udokumentowania innego przeniesienia własności identycznego domu: sprzedaży od osoby A do osoby C. Jeśli ten użytkownik nie dowiedział się jeszcze o przeniesieniu prawa własności z A na B, które miało miejsce w przeszłości, ten współpracownik zaaprobuje i udokumentuje przeniesienie prawa własności z A na C dla identycznego domu. W związku z tym A był w stanie sprzedać dom dwukrotnie, wykorzystując fakt, że dystrybucja informacji o jego pierwszej sprzedaży wymaga czasu. Ale B i C nie mogą posiadać domu w tym samym czasie. Tylko jeden z nich ma być nowym i legalnym właścicielem. Stąd sytuacja nazywa się problemem podwójnego wydawania pieniędzy.

Termin

Podobnie do terminu blockchain, termin podwójne wydatki jest  niejednoznaczny, ponieważ używa się go w odniesieniu do następujących pojęć:

  • Problem spowodowany kopiowaniem towarów cyfrowych
  • Problem, który może pojawić się w rozproszonych systemach peer-to-peer w księgach
  • Przykład naruszonej integralności w czysto rozproszonych systemach peer-to-peer

Cele i właściwości księgi głównej

Poniższy rysunek ilustruje, w jaki sposób dowód własności i przeniesienie własności odnoszą się do celu i właściwości księgi głównej

Główną lekcją, którą można wyciągnąć z rysunku, jest fakt, że księga musi spełniać dwie przeciwstawne role. Z jednej strony księga służy do udowodnienia własności, która polega na czytaniu historycznych danych zachowanych w księdze rachunkowej. Z drugiej strony, księga rachunkowa musi udokumentować przeniesienie własności, co z kolei oznacza, że ​​nowe dane są tworzone i zapisywane w księdze rachunkowej. Jedną z najważniejszych różnic w tych dwóch celach można streścić w przeciwstawnym charakterze przejrzystości i prywatności. Udowodnienie własności jest łatwiejsze, gdy księga jest otwarta dla każdego. Dlatego przejrzystość jest podstawą do udowodnienia prawa własności w podobny sposób, jak świadków składających publiczne zeznania przed sądem. Przeniesienie własności należy jednak ograniczyć wyłącznie do prawowitego właściciela. Zatem prywatność stanowi podstawę przeniesienia własności. Ponieważ pisanie w księdze rachunkowej oznacza zmianę właściciela, tylko bardzo zaufane podmioty powinny mieć prawo do zapisu w księgach rachunkowych. Konfliktowe siły przejrzystości i prywatności, potwierdzające własność i przenoszenie własności oraz czytanie księgi głównej i zapisywanie księgi można również znaleźć w blockchain. Okazuje się, że blockchain to gigantyczny, rozproszony system peer-to-peer struktur danych przypominających księgi, które każdy może odczytać.

Własność i Blockchain

Świadek w postaci księgi regulowanej przez rząd jest kluczem do wyjaśnienia własności cennych dóbr. Ale co się stanie, jeśli taka księga zostanie zniszczona lub zniszczona? Lub co się dzieje, gdy ktoś odpowiada za aktualizację księgi błąd lub wykuwa go celowo? W tym przypadku księga nie odzwierciedla rzeczywistości. Jest to katastrofalne, ponieważ wszyscy uważają, że księga stanowi prawdę, podobnie jak świadek w sądzie. Problem polegający na tym, że tylko jedna księga może być źródłem wyjaśnienia własności, można rozwiązać w ten sam sposób, w jaki rozwiązano go przed sądem. Oparcie się na wyroku tylko na zeznaniach jednego świadka jest ryzykowne, ponieważ ten świadek może być nieuczciwy. Posiadanie większej liczby świadków jest lepsze. Im bardziej niezależni świadkowie, którzy są przesłuchiwani, tym większa szansa, że ​​te fakty, które są konsekwentnie wymieniane wśród większości zeznań, odzwierciedlają prawdę. Fakt ten można udowodnić za pomocą statystyk i prawa dużych liczb. Posiadanie wielu świadków, którzy niezależnie dokonują własnych obserwacji bez wzajemnych wpływów, jest kluczem do tego podejścia do znalezienia prawdy. Zastosowanie tego odkrycia do wykorzystania księgi rachunkowej do wyjaśnienia własności jest proste: zamiast utrzymywać tylko jedną księgę, którą można sfałszować, należy stosować wyłącznie rozproszony system ksiąg rachunkowych typu peer-to-peer i wyjaśniać wnioski dotyczące własności tej wersji rzeczywistość, z którą zgadza się większość rówieśników. W tym momencie możesz się zastanawiać, co to wszystko ma wspólnego z blockchainem. Relację między zarządzaniem własnością a księgowością i blokiem blockchain podsumowuje się jako:

  • Pojedyncza księga służy do przechowywania informacji o własności, która jest równoważna z przechowywaniem danych związanych z własnością typu blockchain-data.
  • Poszczególne księgi są przechowywane na komputerach (węzłach) systemu peer-to-peer.
  • Algorytm blockchain jest odpowiedzialny za umożliwienie poszczególnym węzłom zbiorowego dotarcia do jednej spójnej wersji stanu własności, na którym opiera się ostateczny werdykt.
  • Uczciwość w tym systemie polega na tym, że może on składać prawdziwe oświadczenia o własności.
  • Kryptografia jest niezbędna do stworzenia godnego zaufania sposobu identyfikacji, autoryzacji i autoryzacji oraz zapewnienia bezpieczeństwa danych.

Krótka objazd do bezpieczeństwa

Na  rysunku z poprzedniego wpisu,wykorzystano trzy główne koncepcje związane z bezpieczeństwem, które należy wyjaśnić bardziej szczegółowo, ponieważ ich znaczenie w kontekście systemów oprogramowania może się nieco różnić od ich wspólnego użycia:

Identyfikacja

Uwierzytelnienie

Autoryzacja

Znaczenie i wzajemne powiązanie tych trzech pojęć można zilustrować przykładem z rzeczywistego świata. Być może spróbujesz kupić butelkę wina w sklepie monopolowym. Sklepy monopolowe nie mogą sprzedawać napojów alkoholowych osobom nieletnim. W jaki sposób sklep monopolowy zapewnia, że ​​sprzedaje wino tylko właściwym ludziom? Sklep monopolowy realizuje to poprzez identyfikację, uwierzytelnianie i autoryzację. A oto wyjaśnienie, jak to działa.

Identyfikacja

Identyfikacja oznacza jedynie twierdzenie, że jest kimś, poprzez podanie nazwy lub czegokolwiek innego, co mogłoby zostać użyte jako identyfikator. W przykładowym sklepie monopolowym można stwierdzić, że jest się określoną osobą, podając imię/nazwisko . Identyfikacja nie dowodzi, że naprawdę jesteś tym, za kogo się podajesz. Identyfikacja nie obejmuje dowodu, że nie jesteś niepełnoletni. Identyfikacja oznacza po prostu pretendowanie do bycia określoną osobą.

Uwierzytelnienie

Celem uwierzytelniania jest uniemożliwienie komuś powiedzenia, że ​​jest kimś innym. Uwierzytelnienie oznacza weryfikację lub udowodnienie, że naprawdę jesteś tym, za kogo się podajesz .Dowód ten może dostarczyć ci coś, co masz lub coś, co wiesz, że może służyć jako dowód, że naprawdę jesteś tym, za kogo się podajesz (np. dowodem osobistym, prawem jazdy lub niektórymi informacjami na temat życia osoby, o której twierdzisz być). Ważne jest, aby dowód potwierdzonej tożsamości był w wyjątkowy sposób powiązany z tobą (np. Zdjęcie Twojej twarzy, odcisk palca lub coś innego, co jednoznacznie Cię identyfikuje). Na przykład w sklepie monopolowym oznacza to, że możesz udowodnić, że naprawdę jesteś tym, za kogo się podajesz, pokazując prawo jazdy, które zawiera twoje zdjęcie. Porównywanie twarzy z twarzą pokazaną na zdjęciu na licencji kierowcy kończy weryfikację. Jeśli wyglądasz jak osoba na zdjęciu z prawem jazdy, uwierzytelnianie się powiedzie. W przeciwnym razie uwierzytelnianie nie powiedzie się. Podwójne sprawdzenie twarzy ze zdjęciem na podstawie prawa jazdy ma na celu uniemożliwienie komuś użycia cudzego prawa jazdy.

Autoryzacja

Autoryzacja oznacza przyznanie dostępu do określonych zasobów lub usług ze względu na cechy lub właściwości swojej tożsamości . Autoryzacja jest konsekwencją udanego uwierzytelnienia i oceny cech lub uprawnień. Na przykład w sklepie monopolowym autoryzacja oznacza, że ​​możesz zdecydować, czy możesz kupić butelkę wina na podstawie daty urodzenia pokazanej na prawie jazdy. Asystent sklepu odmówi sprzedaży butelki wina, jeśli jesteś zbyt młody w oparciu o datę urodzenia pokazaną na prawie jazdy. Pamiętaj, że w tym przypadku odmowa nie wynika z nieudanego uwierzytelnienia. Identyfikacja i uwierzytelnianie działały dobrze, a dzięki poprawnej identyfikacji sprzedawca może zidentyfikować Cię jako osobę nieletnią. Dlatego autoryzacja zawsze jest wynikiem oceny właściwości lub właściwości wcześniej uwierzytelnionej tożsamości w odniesieniu do niektórych reguł.

Uwaga

Identyfikacja oznacza podanie się za kogoś. Uwierzytelnienie oznacza udowodnienie, że naprawdę jesteś tym, za kogo się podajesz. Autoryzacja oznacza uzyskanie dostępu do czegoś ze względu na wcześniej uwierzytelnioną tożsamość.