Łańcuchy bloków a scentralizowane bazy danych

Cztery kluczowe różnice między łańcuchami bloków a zwykłymi bazami danych

Jeśli czytałeś moje poprzednie posty, już wiesz, że łańcuchy bloków to po prostu nowy typ bazy danych. Oznacza to, że baza danych może być udostępniana bezpośrednio, w sensie zapisu, przez grupę nieuprawnionych stron, bez konieczności stosowania centralnego administratora. Kontrastuje to z tradycyjnymi bazami danych (SQL lub NoSQL), które są kontrolowane przez jedną jednostkę, nawet jeśli w jej ścianach jest używany jakiś rodzaj rozproszonej architektury.

Niedawno dałem rozmowa o blockchainach z perspektywy bezpieczeństwa informacji, w którym doszedłem do wniosku, że blockchainy są pod pewnymi względami bezpieczniejsze niż zwykłe bazy danych, a pod innymi są mniej bezpieczne. Biorąc pod uwagę Wiodącą rolę że scentralizowane bazy danych grają w dzisiejszym stosie technologii, skłoniło mnie to do szerszego rozważenia kompromisów między tymi dwiema technologiami. Rzeczywiście, kiedykolwiek ktoś mnie zapyta MultiChain może być używany do określonego celu, moja pierwsza odpowiedź zawsze brzmi: „Czy możesz to zrobić ze zwykłą bazą danych?” W większej liczbie przypadków, niż myślisz, odpowiedź brzmi tak, z następującego prostego powodu:

Jeśli zaufanie i solidność nie są problemem, łańcuch bloków nie może nic zrobić, czego nie może zrobić zwykła baza danych.

To jest kluczowy punkt, w którym jest tak wiele nieporozumień. Jeśli chodzi o typy danych, które można przechowywać, i transakcje, które można wykonać na tych danych, łańcuchy bloków nie robią nic nowego. Żeby było jasne, spostrzeżenie to rozciąga się również na „inteligentne kontrakty”, pomimo ich seksownej nazwy i wizerunku. Inteligentny kontrakt to nic innego jak fragment kodu komputerowego, który działa na każdym węźle w łańcuchu bloków - technologia znana od dziesięcioleci procedury składowane robi to samo dla scentralizowanych baz danych. (Nie możesz również użyć łańcucha bloków, jeśli ten kod wymaga zainicjować interakcji ze światem zewnętrznym.)

Prawda o blockchainach jest taka, że ​​chociaż mają one pewne zalety, mają też swoje wady. Innymi słowy, podobnie jak w przypadku większości decyzji technologicznych, wybór między łańcuchem bloków a zwykłą bazą danych sprowadza się do serii kompromisów. Jeśli jesteś oślepiony szumem i ogłuszony hałasem, jest mało prawdopodobne, aby dokonałeś tego wyboru obiektywnie. Mam więc nadzieję, że poniższy przewodnik może pomóc.

Dezintermediacja: łańcuchy bloków przewagi

Podstawową wartością łańcucha bloków jest umożliwienie bezpośredniego udostępniania bazy danych ponad granicami zaufania, bez konieczności posiadania centralnego administratora. Jest to możliwe, ponieważ transakcje typu blockchain zawierają własny dowód ważności i własny dowód autoryzacji, zamiast wymagać pewnej scentralizowanej logiki aplikacji do egzekwowania tych ograniczeń. Transakcje mogą być zatem weryfikowane i przetwarzane niezależnie przez wiele „węzłów”, przy czym łańcuch bloków działa jako mechanizm konsensusu zapewniający synchronizację tych węzłów.

Dlaczego ta rezygnacja ma wartość? Ponieważ chociaż baza danych to tylko bity i bajty, jest to również rzecz namacalna. Zawartość bazy danych jest przechowywana w pamięci i na dysku określonego systemu komputerowego, a każdy, kto ma wystarczający dostęp do tego systemu, może zniszczyć lub uszkodzić zawarte w nim dane. W efekcie w momencie powierzenia danych do zwykłej bazy danych stajesz się również zależny od człowiek organizacja, w której znajduje się ta baza danych.

Teraz świat jest pełen organizacji, które zdobyły to zaufanie - rządów i banków (głównie), uniwersytetów, stowarzyszeń handlowych, a nawet prywatnych firm, takich jak Google i Facebook. W większości przypadków, szczególnie w krajach rozwiniętych, działają one wyjątkowo dobrze. Uważam, że mój głos zawsze był liczony, żaden bank nigdy nie ukradł moich pieniędzy, a ja jeszcze nie znalazłem sposobu, by zapłacić za lepsze stopnie. Więc w czym problem? Jeśli organizacja kontroluje ważną bazę danych, potrzebuje również grupy ludzi i procesów, aby zapobiec manipulowaniu przy tej bazie danych. Ludzie potrzebują zatrudniania, trzeba zaprojektować procesy, a wszystko to zajmuje dużo czasu i pieniędzy.

Zatem łańcuchy bloków oferują sposób na zastąpienie tych organizacji rozproszoną bazą danych, zablokowaną przez sprytną kryptografię. Podobnie jak w przypadku wielu wcześniejszych wydarzeń, wykorzystują one stale rosnące możliwości systemów komputerowych, aby zapewnić nowy sposób zastępowania ludzi kodem. Po napisaniu i zdebugowaniu kod jest zwykle o wiele tańszy.

Poufność: przewaga scentralizowanych baz danych

Jak wspomniałem, każdy węzeł w łańcuchu bloków niezależnie weryfikuje i przetwarza każdą transakcję. Węzeł może to zrobić, ponieważ ma pełny wgląd w: (a) aktualny stan bazy danych, (b) modyfikację wymaganą przez transakcję oraz (c) podpis cyfrowy potwierdzający pochodzenie transakcji. Jest to niewątpliwie sprytny nowy sposób zaprojektowania bazy danych i naprawdę działa. Więc gdzie jest haczyk? W przypadku wielu aplikacji, zwłaszcza finansowych, pełna przejrzystość, jaką cieszy się każdy węzeł, jest absolutnym zabójcą transakcji.

Jak systemy oparte na zwykłych bazach danych unikają tego problemu? Podobnie jak łańcuchy bloków, ograniczają transakcje, które mogą wykonywać poszczególni użytkownicy, ale te ograniczenia są nałożone jedna centralna lokalizacja. W rezultacie cała zawartość bazy danych musi być widoczna tylko w tym miejscu, a nie w wielu węzłach. Wnioski o odczytanie danych również przechodzą przez ten organ centralny, który może je przyjąć lub odrzucić według własnego uznania. Innymi słowy, jeśli zwykła baza danych jest kontrolowana przez odczyt i sterowany zapisem, łańcuch bloków może być kontrolowany tylko przez zapis.

Aby być uczciwym, dostępnych jest wiele strategii łagodzenia tego problemu. Obejmują one od prostych pomysłów, takich jak transakcje pod wieloma adresami blockchain, po zaawansowane techniki kryptograficzne, takie jak poufne transakcje i dowody zerowej wiedzy (obecnie w trakcie opracowywania). Niemniej jednak im więcej informacji chcesz ukryć w łańcuchu bloków, tym większe obciążenie obliczeniowe płacisz za generowanie i weryfikację transakcji. I bez względu na to, jak te techniki się rozwiną, nigdy nie pokonają one całkowicie prostej i bezpośredniej metody ukrywania danych.

Solidność: zalety blockchainów

Drugą zaletą baz danych opartych na łańcuchu bloków jest ekstremalna odporność na błędy, która wynika z ich wbudowanej nadmiarowości. Każdy węzeł przetwarza każdą transakcję, więc żaden pojedynczy węzeł nie jest kluczowy dla bazy danych jako całości. Podobnie, węzły łączą się ze sobą w sposób zwarty peer-to-peer, więc wiele łączy komunikacyjnych może zawieść, zanim wszystko się zatrzyma. Blockchain zapewnia, że ​​węzły, które uległy awarii, zawsze mogą nadrobić zaległości w transakcjach, które przegapiły.

Chociaż prawdą jest, że zwykłe bazy danych oferują wiele technik replikacja, łańcuchy bloków przenoszą to na zupełnie nowy poziom. Na początek nie jest wymagana żadna konfiguracja - po prostu połącz ze sobą kilka węzłów łańcucha bloków, a one automatycznie zachowują synchronizację. Ponadto węzły można dowolnie dodawać lub usuwać z sieci, bez żadnych przygotowań ani konsekwencji. Wreszcie, użytkownicy zewnętrzni mogą wysyłać swoje transakcje do dowolnego węzła lub do wielu węzłów jednocześnie, a transakcje te rozprzestrzeniają się automatycznie i bezproblemowo na wszystkich innych.

Ta solidność zmienia ekonomikę dostępności bazy danych. W przypadku zwykłych baz danych wysoką dostępność uzyskuje się dzięki połączeniu drogiej infrastruktury i odzyskiwanie danych. Podstawowa baza danych działa na zaawansowanym sprzęcie, który jest ściśle monitorowany pod kątem problemów, a transakcje są replikowane do systemu zapasowego w innej fizycznej lokalizacji. Jeśli podstawowa baza danych ulegnie awarii (np. Z powodu przerwy w zasilaniu lub katastrofalnej awarii sprzętu), aktywność jest automatycznie przenoszona do kopii zapasowej, która staje się nową podstawową. Po naprawieniu uszkodzonego systemu jest on ustawiany w kolejce, aby w razie potrzeby działał jako nowa kopia zapasowa. Chociaż wszystko to jest wykonalne, jest drogie i niezwykle trudne do wykonania.

Zamiast tego, co by było, gdybyśmy mieli 10 węzłów blockchain działających w różnych częściach świata, wszystkie na sprzęcie towarowym? Węzły te byłyby ze sobą gęsto połączone, udostępniając transakcje na zasadzie peer-to-peer i wykorzystując łańcuch bloków, aby zapewnić konsensus. Użytkownicy końcowi generujący transakcje łączą się z (powiedzmy) 5 z tych węzłów, więc nie ma znaczenia, czy kilka łączy komunikacyjnych zostanie przerwanych. A jeśli jeden lub dwa węzły ulegną całkowitej awarii w danym dniu, nikt nic nie czuje, ponieważ wciąż jest wystarczająco dużo kopii do obejrzenia. Tak się składa, że ​​takie połączenie tanich systemów i dużej nadmiarowości jest dokładnie tym, czym Google zbudował swoją wyszukiwarkę tak tanio. Blockchain może zrobić to samo dla baz danych.

Wydajność: przewaga scentralizowanych baz danych

Blockchain zawsze będzie wolniejszy niż scentralizowane bazy danych. Nie chodzi tylko o to dzisiaj łańcuchy bloków są powolne, ponieważ technologia jest nowa i niezoptymalizowana, ale jest wynikiem Natura samych blockchainów. Widzisz, podczas przetwarzania transakcji blockchain musi robić te same rzeczy co zwykła baza danych, ale niesie ze sobą trzy dodatkowe obciążenia:

  1. Weryfikacja podpisu. Każda transakcja blockchain musi być podpisana cyfrowo przy użyciu publiczno-prywatnego schematu kryptografii, takiego jak ECDSA. Jest to konieczne, ponieważ transakcje propagują się między węzłami w sposób peer-to-peer, więc ich źródła nie można w inny sposób udowodnić. Generowanie i weryfikacja tych podpisów jest złożona obliczeniowo i stanowi główne wąskie gardło w produktach takich jak nasz. Z kolei w scentralizowanych bazach danych po ustanowieniu połączenia nie ma potrzeby indywidualnej weryfikacji każdego przychodzącego żądania.
  2. Mechanizmy konsensusu. W rozproszonej bazie danych, takiej jak łańcuch bloków, należy dołożyć starań, aby zapewnić, że węzły w sieci osiągną konsensus. W zależności od zastosowanego mechanizmu konsensusu może to obejmować znaczną komunikację w obie strony i / lub obsługę widełek i wynikające z nich wycofania. Chociaż prawdą jest, że scentralizowane bazy danych muszą również radzić sobie z konfliktami i przerwanymi transakcjami, jest to znacznie mniej prawdopodobne, gdy transakcje są kolejkowane i przetwarzane w jednym miejscu.
  3. Nadmierność. Nie chodzi o wydajność pojedynczego węzła, ale o całkowitą ilość obliczeń, których wymaga blockchain. Podczas gdy scentralizowane bazy danych przetwarzają transakcje raz (lub dwa razy), w łańcuchu bloków muszą one być przetwarzane niezależnie przez każdy węzeł w sieci. Tak więc, aby uzyskać ten sam efekt końcowy, wykonuje się dużo więcej pracy.

Bottom line

Oczywiście istnieją inne sposoby porównywania łańcuchów bloków i zwykłych baz danych. Moglibyśmy mówić o dojrzałości kodu źródłowego, atrakcyjności programistów, rozległości ekosystemu i nie tylko. Ale żaden z tych problemów nie jest nieodłączny do samej technologii. Więc jeśli chodzi o długoterminową decyzję o użyciu łańcucha bloków, pytanie, które należy zadać, brzmi: Co jest ważniejsze w moim przypadku użycia? Brak pośrednictwa i solidność? Albo poufność i wydajność?

W tym prostym świetle wiele z omawianych obecnie przypadków użycia nie ma sensu. Największym problemem jest poufność. Uczestnicy niezwykle konkurencyjnego rynku będą naturalnie woleli prywatność scentralizowanej bazy danych, zamiast ujawniać sobie nawzajem swoje działania. Jest to szczególnie ważne, jeśli zaufana strona centralna już istnieje i może zapewnić neutralne terytorium, na którym może znajdować się ta baza danych. Chociaż z tym centralnym dostawcą mogą wiązać się pewne koszty, jest to więcej niż uzasadnione wartością zachowanej prywatności. Jedyną motywacją do przejścia na blockchainy byłyby agresywne nowe regulacje.

Niemniej jednak łańcuchy bloków mają silne przypadki użycia, w których brak pośrednictwa i solidność są ważniejsze niż poufność i wydajność. Więcej na ten temat napiszę w kolejnym poście, ale najbardziej obiecującymi obszarami, które do tej pory widzieliśmy, są: (a) ścieżki audytu między przedsiębiorstwami, (b) śledzenie pochodzenia oraz (c) lekki systemy finansowe. We wszystkich trzech przypadkach znaleźliśmy ludzi korzystających z MultiChain z jasnym widokiem na wdrożenie, a nie tylko z ciekawością i eksperymentowaniem. Jeśli więc szukasz sposobów, w jakie łańcuchy bloków mogą wnieść prawdziwą wartość do Twojej firmy, mogą być dobrym miejscem do rozpoczęcia.

Prosimy o umieszczanie komentarzy na LinkedIn.

Znak czasu:

Więcej z Multichain