Jak rozpoznać niedopracowany blockchain PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Jak rozpoznać na wpół upieczony łańcuch bloków

Kiedy łańcuchy i bloki nie służą żadnemu użytecznemu celowi

Minęło około 18 miesięcy, odkąd sektor finansowy obudził się masowo na możliwości dozwolonych łańcuchów bloków lub używając bardziej ogólnego terminu „księgi rozproszone”. Od tego czasu nastąpiło tsunami aktywności, w tym raporty badawcze, inwestycje strategiczne, projekty pilotażowe i powstanie wielu konsorcjów. Nikt nie może zarzucić światu bankowemu, że nie traktuje poważnie potencjału tej technologii.

Oczywiście gwałtowny wzrost projektów blockchain spowodował rozwój platform blockchain, na których te projekty są budowane, na które zezwolono. Na przykład nasz produkt MultiChain wzrosło trzykrotnie w ciągu ostatniego roku, niezależnie od tego, czy mierzymy ruch w sieci, miesięczne pobrania, czy zapytania komercyjne. Oczywiście istnieje wiele innych platform, takich jak BigChinDB, Łańcuch, Corda, Kredyty, Elementy, Eris, Materiał, Ethereum (wdrożony w sieci zamkniętej), Łańcuch Hydra i Otwarty łańcuch. Nie wspominając o jeszcze większej liczbie startupów, które opracowały jakąś platformę blockchain, ale nie udostępniły jej publicznie.

Dla firm, które chcą odkrywać i rozumieć nową technologię, duży wybór jest na ogół dobrą rzeczą. Jednak w przypadku łańcuchów bloków, które nadal pozostają luźno zdefiniowane i słabo rozumiane, ten róg obfitości ma istotną wadę: wiele z dostępnych platform „blockchain” w rzeczywistości nie rozwiązuje podstawowego problemu, który mają rozwiązać. A co to za problem? Pozwólcie, że zacytuję zwięźle rozdzielczość wideo Richard Gendal Brown, CTO of R3, w pełni:

Rozproszony rejestr to system, który umożliwia stronom, które nie w pełni sobie ufają, osiągnięcie konsensusu co do istnienia, charakteru i ewolucji zbioru wspólnych faktów bez konieczności polegania na w pełni zaufanej scentralizowanej stronie trzeciej.

Aby wziąć skrajny przykład, rozważmy kilka klocków Lego związanych sznurkiem. Jeśli użyjemy terminu „łańcuch bloków” do opisania tego elementu mody, kto może powiedzieć, że nie opisujemy go dokładnie? A jednak ten konkretny łańcuch bloków nie pomoże wielu stronom w bezpiecznym i bezpośrednim współużytkowaniu bazy danych bez centralnego pośrednika. Podobnie wiele platform „blockchain” robi coś związanego z łańcuchami bloków, ale brakuje im również niezbędnych właściwości, które mogłyby służyć jako podstawa dla bazy danych peer-to-peer.

Jak rozpoznać niedopracowany blockchain PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.
Kolejny łańcuch bloków, który nie pomaga w udostępnianiu bazy danych - źródło.

Minimalny realny blockchain

Aby zrozumieć podstawowe wymagania rozproszonej księgi, pomaga wyjaśnić, czym różnią się te systemy od zwykłych baz danych, które są kontrolowane przez jedną jednostkę. Na przykład rozważmy prosty system śledzenia, kto jest właścicielem akcji określonej firmy. Księga zaimplementowana w bazie danych ma jeden wiersz dla każdego właściciela zawierający dwie kolumny: identyfikator właściciela, na przykład jego nazwę, oraz odpowiednią liczbę udziałów.

Oto sześć kluczowych sposobów, w jakie ten system może zawieść swoich użytkowników:

  • Fałszerstwo: Przesyłanie akcji od jednej osoby do drugiej bez zgody nadawcy.
  • Cenzura: Odmowa spełnienia czyjejś prośby o przeniesienie niektórych udziałów w inne miejsce.
  • Odwrócenie: Cofnięcie transferu, który miał miejsce w przeszłości.
  • Nieślubne pochodzenie: Zmiana łącznej ilości akcji w systemie bez podjęcia przez emitenta odpowiedniej czynności.
  • Niezgodność: Udzielanie różnych odpowiedzi na zapytania różnych użytkowników.
  • Przestoje: Brak odpowiedzi na przychodzące prośby o informacje.

Ze względu na wszystkie te możliwości akcjonariusze muszą utrzymywać wysoki poziom zaufania do każdego, kto zarządza tą księgą w ich imieniu. Budowanie i prowadzenie organizacji godnej tego zaufania wiąże się ze znacznymi kłopotami i kosztami.

Łańcuchy bloków lub rozproszone księgi eliminują potrzebę tego rodzaju centralnego operatora bazy danych, umożliwiając użytkownikom bazy danych bezpośrednią interakcję ze sobą na zasadzie peer-to-peer. W naszym przykładzie akcjonariusze mogliby bezpiecznie trzymać swoje udziały w łańcuchu blokowym, którym wspólnie zarządzają, i dokonywać natychmiastowych transferów między sobą w tym łańcuchu. (Wadą jest znaczna utrata poufności między użytkownikami sieci, której nie będziemy tutaj omawiać, ale już wcześniej szczegółowo omówione.)

Wszystko to sprowadza nas z powrotem do kwestii platform blockchain. Aby służyć jako realna podstawa do udostępniania baz danych peer-to-peer, blockchain musi chronić swoich uczestników przed wszystkimi sześcioma typami awarii bazy danych - fałszerstwem, cenzurą, odwróceniem, nielegalnymi transakcjami, niespójnością i przestojami. Chociaż wiele produktów na rynku spełnia te wymagania, wiele z nich nie spełnia tych wymagań. Nazywam te łańcuchy bloków „niedopieczonymi”, ponieważ mogą się odnosić kilka tych zagrożeń, ale nie wszystkich. Przynajmniej pod pewnymi względami użytkownicy bazy danych pozostają zależni od dobrego zachowania pojedynczego uczestnika, co jest właśnie scenariuszem, którego chcemy uniknąć.

Te na wpół upieczone łańcuchy bloków występują w wielu odmianach, ale trzy archetypy wyróżniają się jako najbardziej powszechne lub oczywiste. Nie będę wymieniać poszczególnych produktów, bo cóż, nie chcę urazić. Społeczność startupów blockchain jest na tyle mała, że ​​większość z nas zna się na konferencjach i innych spotkaniach, a interakcje są zazwyczaj pozytywne. Niemniej jednak, jeśli blockchainy (w sensie przydatnych baz danych peer-to-peer) mają kiedykolwiek wyłonić się jako spójna kategoria produktów, ważne jest, aby odróżnić rozwiązania niedopracowane od rzeczywistych.

Jedyny blockchain walidatora

Jednym ze schematów, które widzieliśmy kilka razy, jest łańcuch bloków, w którym tylko jeden uczestnik może generować bloki, w których transakcje są potwierdzane. Transakcje są wysyłane do tego jednego węzła, a nie transmitowane do całej sieci, więc ich akceptacja zależy od kaprysów tej strony, a nie od konsensusu większości. Mimo to, po zbudowaniu bloku przez tę centralną stronę, jest on transmitowany do innych węzłów w sieci, które mogą niezależnie potwierdzić ważność transakcji w ramach, oraz lokalnie i trwale zarejestrować nowy blok.

Wracając do naszych sześciu form awarii bazy danych, ten typ łańcucha bloków nie jest bezużyteczny. Transakcje muszą być podpisane cyfrowo przez podmiot, którego środki są przenoszone, aby nie mogły zostać sfałszowane przez stronę centralną. Nie można ich cofnąć, ponieważ każdy węzeł utrzymuje własną kopię łańcucha. A transakcje nie mogą wykonywać nielegalnych operacji, takich jak tworzenie aktywów z powietrza, ponieważ każdy węzeł niezależnie sprawdza poprawność każdej transakcji. Wreszcie, każdy węzeł utrzymuje własną kopię bazy danych, więc jej zawartość jest zawsze dostępna do odczytu.

Niestety cztery na sześć to za mało. Węzeł weryfikujący może łatwo cenzurować poszczególne transakcje, odmawiając umieszczania ich w tworzonych blokach. Nawet jeśli operatorzy tego węzła są uczciwi, awaria systemu lub komunikacji może spowodować, że będzie on niedostępny, powodując zatrzymanie przetwarzania transakcji. Ponadto, w zależności od konfiguracji, węzeł walidacyjny może być w stanie przesyłać różne wersje łańcucha bloków do różnych uczestników. Jeśli chodzi o cenzurę i spójność, baza danych nadal zawiera pojedynczy punkt awarii, na którym opierają się wszystkie inne węzły.

Jedna platforma oferuje zwrot w tym schemacie, w którym bloki są centralnie generowane przez pojedynczy węzeł, ale kworum innych wyznaczonych węzłów podpisuje je, aby wskazać konsensus. Pod względem ryzyka niespójności to z pewnością pomaga. Węzły w kworum pożyczą swoje podpisy tylko jednej wersji łańcucha bloków, którą można zatem uznać za autorytatywne. Niemniej jednak węzły kworum nie mogą pomóc, jeśli generator bloków cenzuruje transakcje lub traci połączenie z Internetem. Ostatecznie ten typ łańcucha bloków nadal wykorzystuje architekturę typu hub-and-spoke, a nie sieć peer-to-peer.

Blockchain stanu wspólnego

Z technicznego punktu widzenia istnieje wiele podobieństw między łańcuchami bloków a bardziej tradycyjnymi rozproszonymi bazami danych, takimi jak Cassandra i MongoDB. W obu przypadkach transakcje mogą być inicjowane przez dowolny węzeł w sieci i muszą dotrzeć do wszystkich pozostałych węzłów w ramach konsensusu co do stanu rozwoju bazy danych. Zarówno łańcuchy bloków, jak i rozproszone bazy danych muszą radzić sobie z opóźnieniami (opóźnieniami komunikacji, które wynikają z odległości między węzłami) oraz możliwością sporadycznej awarii niektórych węzłów i / lub łączy komunikacyjnych.

Rozproszone bazy danych istnieją już od jakiegoś czasu, więc każdy twórca platformy blockchain powinien dobrze zrozumieć swoje algorytmy konsensusu i strategie, których używają do globalnego zamawiania transakcji i rozwiązywania konfliktów. Niemniej jednak ważne jest, aby nie posuwać się zbyt daleko, ponieważ blockchain musi borykać się z kluczowym dodatkowym wyzwaniem - brakiem zaufać między węzłami bazy danych. Podczas gdy rozproszone bazy danych koncentrują się na zapewnieniu skalowalności, niezawodności i wysokiej wydajności w granicach pojedynczej organizacji, łańcuchy bloków muszą zostać przeprojektowane, aby bezpiecznie poligon te granice.

Aby powrócić do naszych sześciu rodzajów ryzyka związanego z bazą danych, węzeł w rozproszonej bazie danych musi martwić się tylko przestojem, czyli możliwością, że inne węzły staną się niedostępne. Węzły mogą bezpiecznie założyć, że każda transakcja i wiadomość w sieci jest ważna i nie są zaniepokojone fałszerstwem, cenzurą, cofnięciem, nielegalnością lub niespójnością. Ich najgorszym problemem jest radzenie sobie z dwiema równoczesnymi, ale ważnymi transakcjami, zainicjowanymi na różnych węzłach, które mają wpływ na ten sam fragment danych. Rozwiązanie tych konfliktów nie jest wcale trywialne, ale nadal jest o wiele łatwiejsze niż martwienie się o „Błędy bizantyjskie„, W którym niektóre węzły celowo zakłócają funkcjonowanie innych.

Baza danych może być udostępniana tylko bezpiecznie w poprzek granice zaufania, jeśli węzły traktują całą aktywność w sieci z pewnym stopniem podejrzliwości. Na przykład każda transakcja modyfikująca bazę danych musi być indywidualnie podpisana cyfrowo, ponieważ w architekturze peer-to-peer nie ma innego sposobu na poznanie jej prawdziwego punktu pochodzenia. Podobnie każda przychodząca wiadomość, np. Zapowiedź nowego bloku, musi zostać krytycznie oceniona pod kątem treści i kontekstu. W przeciwieństwie do rozproszonych baz danych, węzły nie mogą mieć możliwości natychmiastowej i bezpośredniej zmiany stanu innego węzła.

Niektóre platformy „blockchain” zostały opracowane, zaczynając od rozproszonej bazy danych i dodając niektóre funkcje do góry, aby uczynić je bardziej blockchainowymi. Na przykład, grupując transakcje w bloki i przechowując skróty (cyfrowe odciski palców) tych bloków w bazie danych, mają na celu dodanie formy niezmienności. Ale jeśli każdy węzeł nie może być pewien, że jego lista skrótów nie może zostać zmodyfikowana przez inny węzeł, ten typ niezmienności jest łatwy do gry. Standardową odpowiedzią na tę krytykę jest to, że każdy problem bezpieczeństwa można rozwiązać w odpowiednim czasie i przy użyciu odpowiedniego kodu. Ale to jest raczej jak trzymanie niektórych więźniów na otwartym polu i próba powstrzymania ich przed ucieczką potykaczami i rowami. O wiele bezpieczniej jest użyć specjalnie zaprojektowanej konstrukcji betonowej, której drzwi są zamknięte, a okna zakratowane.

Blockchain w jednej chmurze

Zdecydowanie najdziwniejszym zjawiskiem, jakie widziałem, są platformy blockchain, do których można uzyskać dostęp tylko za pośrednictwem opartej na chmurze platformy jako usługi ich twórcy. Żeby było jasne, nie mówimy o niektórych uczestnikach blockchain Wybierając aby hostować swoje węzły u wybranego dostawcy chmury, takiego jak Azure firmy Microsoft or Amazon Web Services. Jest to raczej blockchain, który może tylko być dostępne za pośrednictwem interfejsów API udostępnianych przez serwery firmy, która je udostępnia.

Przyjmijmy, dla dobra argumentacji, że scentralizowany dostawca łańcucha bloków naprawdę ma grupę węzłów działających pod swoją kontrolą. Jakie ma to znaczenie dla użytkowników systemu, którzy wysyłają żądania API i otrzymują odpowiedzi? Uczestnicy nie mają możliwości oceny, czy wszystkie transakcje zostały przetworzone bez pominięcia lub błędu. Być może usługa centralna działa nieprawidłowo, a może celowo cenzuruje lub cofa niektóre transakcje. A jeśli uważasz, że dostawca blockchain nie ma powodu, aby to robić, dlaczego nie wykorzystać go do hostowania zwykłej scentralizowanej bazy danych? Otrzymasz bardziej dojrzały produkt o lepszej wydajności i nie ponosisz żadnego ryzyka związanego z pracą z nowymi technologiami. Krótko mówiąc, scentralizowane łańcuchy bloków są tak samo przydatne jak Lego na sznurku.

Rozwiązywanie tajemnicy

Widzieliśmy teraz trzy typy platform, które reklamują się jako „łańcuchy bloków” i rzeczywiście wykorzystują w pewnym stopniu łańcuch bloków, ale które nie rozwiązują podstawowego problemu, dla którego te systemy są zaprojektowane. Podsumowując, ma to umożliwić bezpieczne i bezpośrednie udostępnianie pojedynczej bazy danych w granicach zaufania, bez centralnego pośrednika.

Oprócz wskazywania na to osobliwe zjawisko, uważam, że pouczające jest rozważenie, co może się za nim kryć. Dlaczego tak wiele startupów opartych na technologii blockchain tworzy produkty, które nie spełniają obietnic tej technologii, często osiągając nie więcej niż tradycyjne scentralizowane lub rozproszone bazy danych? Dlaczego tak wielu utalentowanych ludzi marnuje tyle czasu?

Widzę dwie główne klasy wyjaśniania - techniczną i handlową. Po pierwsze od strony technicznej, trudno jest stworzyć rozproszone systemy konsensusu, które tolerują jeden lub więcej węzłów zachowujących się złośliwie w nieprzewidywalny sposób. W przypadku MultiChain nieco oszukaliśmy, wykorzystując za punkt wyjścia zahartowaną bitcoin implementację referencyjną, a następnie zastępując dowód pracy strukturalnie podobnym algorytmem konsensusu zwanym „wydobywaniem różnorodności”. Zespoły opracowujące węzeł blockchain od podstaw muszą głęboko przemyśleć procesy asynchroniczne i kontradyktoryjne - połączenie, z którym niewielu programistów ma doświadczenie. Z pewnością rozumiem pokusę pójścia na skróty, na przykład za pomocą pojedynczego węzła do generowania bloków, łączenia się z istniejącą rozproszoną bazą danych lub uruchamiania węzłów tylko w zaufanym środowisku. Wybór któregokolwiek z nich niewątpliwie ułatwia życie programistom, nawet jeśli podważa to cały punkt.

Z powodów komercyjnych wydaje się, że każdy startup podchodzi do możliwości blockchain z innej perspektywy. W Coin Sciences skupiamy się na zostaniu dostawcą oprogramowania (baz danych), więc rozpowszechniamy MultiChain za darmo, jednocześnie rozwijając węzeł premium z dodatkowymi funkcjami. Inne startupy chcą sprzedawać usługi abonamentowe, więc w naturalny sposób zbudują platformę, której klienci nie mogą sami hostować. Niektórzy mają nadzieję na centralne kontrolowanie łańcucha bloków lub pomoc w tym swoim partnerom (dziwna ambicja dla technologii pozbawienia pośrednictwa!) I naturalnie pociągają ich algorytmy konsensusu, które opierają się na pojedynczym węźle. I wreszcie są firmy, których głównym celem jest sprzedaż usług doradczych, w takim przypadku ich platforma nie musi w ogóle funkcjonować, o ile jej strona internetowa przyciąga dużych klientów.

Być może inną kwestią jest to, że niektóre firmy blockchain są prowadzone przez ludzi, którzy niewątpliwie mają mnóstwo talentów, ale brakuje im głębokiego zrozumienia samej technologii. W startupach tworzących nową dziedzinę, prawdopodobnie kluczowe znaczenie ma podejmowanie strategicznych decyzji przez ludzi, którzy rozumieją naturę tej dziedziny i jej różnice w stosunku do wcześniejszych. Wydaje się, że nieliczne start-upy blockchain zamknęły się w kącie, realizując wizję produktu, która jest atrakcyjna dla ich klientów, ale w rzeczywistości nie można jej zbudować.

Jako użytkownik blockchainów, jak możesz uniknąć tych błędów? Oceniając konkretną platformę blockchain, należy zapytać, czy spełnia ona sześć wymagań bezpiecznego udostępniania baz danych peer-to-peer: zapobieganie przestojom i niespójności, a także fałszowaniu transakcji, cenzurze, cofaniu i nielegalności. I wystrzegaj się wyjaśnień, które składają się na zbyt częste mamrotanie lub machanie rękami - prawdopodobnie oznaczają, że odpowiedź brzmi nie.

Prosimy o umieszczanie komentarzy na LinkedIn.

Źródło: https://www.multichain.com/blog/2016/12/spot-half-baked-blockchain/

Znak czasu:

Więcej z Multichain