Unikanie bezcelowego projektu blockchain

Jak ustalić, czy znalazłeś prawdziwy przypadek użycia łańcucha blokowego

Blockchainy są przesadzone. Tam, powiedziałem to. Z Sibos do Pieniądze 20/20 aby opisać historie The Economist i Euromoneywydaje się, że wszyscy wspinają się na wagon blockchain. I bez wątpienia, podobnie jak inne firmy w kosmosie, obserwujemy szybko rosnącą liczbę firm, które opracowują dowody swojej koncepcji nasza platforma i / lub prosząc o naszą pomoc.

Jako młody start-up można by pomyśleć, że byłby zachwycony. Z pewnością teraz jest czas, aby zebrać mnóstwo pieniędzy i zbudować tę wysokowydajną platformę blockchain nowej generacji, którą już zaprojektowaliśmy. Na co my czekamy?

Powiem ci, co. Czekamy, aby lepiej zrozumieć, gdzie są łańcuchy bloków prawdziwie dodać wartość w IT przedsiębiorstwa. Widzisz, duża część tych nadchodzących projektów ma nie ma w ogóle nic wspólnego z łańcuchami bloków. Oto jak to się rozgrywa. Duża firma słyszy, że blockchain to kolejna wielka rzecz. Duża firma odnajduje wewnętrznie osoby zainteresowane tematem. Duża firma daje im budżet i każe im zrobić coś blockchainowego. Wkrótce pukają do naszych drzwi, machają dolarowymi banknotami i pytają us aby pomóc im wymyśl przypadek użycia. Powiedz co teraz?

A jeśli chodzi o tych, którzy mają na myśli projekt, jaki jest problem? W wielu przypadkach projekt można zrealizować doskonale używając zwykłej relacyjnej bazy danych. Wiesz, takie wielkie żelazne behemoty wyrocznia i SQL Serverlub dla bardziej otwartych MySQL i Postgres. Zacznę więc od prostego wyjaśnienia:

Jeśli dzisiejsze relacyjne bazy danych spełniają Twoje wymagania, korzystanie z łańcucha bloków byłoby szalone.

Czemu? Ponieważ produkty takie jak Oracle i MySQL mają za sobą dziesięciolecia rozwoju. Zostały wdrożone na milionach serwerów obsługujących tryliony zapytań. Zawierają jedne z najlepiej przetestowanych, debugowanych i zoptymalizowanych kodów na świecie, przetwarzając tysiące transakcji na sekundę bez wysiłku.

A co z blockchainami? Dobrze, nasz produkt był jednym z pierwszych na rynku i był dostępny od dokładnie 5 miesięcy, z kilkoma tysiącami pobrań. Właściwie jest wyjątkowo stabilny, ponieważ go zbudowaliśmy Bitcoin Core, oprogramowanie, które obsługuje bitcoiny. Ale i tak, cała ta kategoria produktów jest nadal w pieluchach.

Więc mówię, że łańcuchy bloków są bezużyteczne? Absolutnie nie. Ale zanim rozpoczniesz ten błyszczący projekt blockchain, musisz mieć bardzo jasne pojęcie dlaczego używasz łańcucha bloków. Jest kilka warunków, które należy spełnić. A jeśli tak nie jest, powinieneś wrócić do deski kreślarskiej. Może mógłbyś lepiej zdefiniować projekt. A może możesz zaoszczędzić każdemu mnóstwo czasu i pieniędzy, ponieważ w ogóle nie potrzebujesz łańcucha blokowego.

1. Baza danych

Oto pierwsza zasada. Blockchain to technologia dla udostępnione bazy danych. Musisz więc zacząć od zrozumienia, dlaczego korzystasz z bazy danych, przez co mam na myśli uporządkowane repozytorium informacji. To może być tradycyjne relacyjna baza danych, który zawiera co najmniej jedną tabelę przypominającą arkusz kalkulacyjny. Lub może być bardziej modny NoSQL różnorodność, która działa bardziej jak system plików lub słownik. (Na poziomie teoretycznym bazy danych NoSQL to i tak tylko podzbiór relacyjnych baz danych).

Księgę aktywów finansowych można naturalnie wyrazić jako tabelę bazy danych, w której każdy wiersz reprezentuje jeden typ aktywów należący do jednej konkretnej jednostki. W każdym wierszu znajdują się trzy kolumny zawierające: (a) identyfikator właściciela, taki jak numer konta, (b) identyfikator typu aktywów, taki jak „USD” lub „AAPL”, oraz (c) ilość tego składnika aktywów w posiadaniu właściciel.

Bazy danych są modyfikowane za pomocą „transakcji”, które reprezentują zbiór zmian w bazie danych, które należy zaakceptować lub odrzucić jako całość. Na przykład w przypadku księgi aktywów płatność od jednego użytkownika do drugiego jest reprezentowana przez transakcję, która odejmuje odpowiednią ilość z jednego wiersza i dodaje ją do innego.

2. Wielu autorów

Ten jest łatwy. Blockchain to technologia dla bazy danych z wieloma autorami. Innymi słowy, musi istnieć więcej niż jedna jednostka, która generuje transakcje modyfikujące bazę danych. Czy wiesz, kim są ci pisarze?

W większości przypadków piszący będą również uruchamiać „węzły”, które przechowują kopię bazy danych i przekazują transakcje do innych węzłów w peer-to-peer moda. Jednak transakcje mogą być również tworzone przez użytkowników, którzy sami nie uruchamiają węzła. Rozważmy na przykład system płatności, który jest wspólnie obsługiwany przez niewielką grupę banków, ale ma miliony użytkowników końcowych na urządzeniach mobilnych, komunikujących się tylko z systemami własnego banku.

3. Brak zaufania

A teraz trzecia zasada. Jeśli do bazy danych zapisuje wiele jednostek, musi istnieć również pewien stopień nieufność między tymi podmiotami. Innymi słowy, łańcuchy bloków to technologia dla bazy danych z wieloma nieufnymi autorami.

Możesz pomyśleć, że nieufność pojawia się tylko między oddzielnymi organizacjami, takimi jak banki handlujące na rynku lub firmy zaangażowane w łańcuch dostaw. Ale może też istnieć w ramach jednej dużej organizacji, na przykład między wydziałami lub operacjami w różnych krajach.

Co konkretnie mam na myśli przez nieufność? Mam na myśli to, że jeden użytkownik nie chce pozwolić drugiemu modyfikować wpisów do bazy danych, które „jest jego właścicielem”. Podobnie, jeśli chodzi o odczytywanie zawartości bazy danych, jeden użytkownik nie zaakceptuje jako ewangelii „prawdy” przekazanej przez innego użytkownika, ponieważ każdy ma inne motywacje ekonomiczne lub polityczne.

4. Pośrednictwo

Tak więc problem, zgodnie z dotychczasową definicją, polega na włączeniu bazy danych z wieloma nieufnymi autorami. I jest już dobrze znane rozwiązanie tego problemu: zaufany pośrednik. To znaczy kogoś, komu ufają wszyscy autorzy, nawet jeśli nie ufają sobie w pełni. Rzeczywiście, świat jest pełen tego typu baz danych, takich jak księga kont w banku. Twój bank kontroluje bazę danych i zapewnia, że ​​każda transakcja jest ważna i autoryzowana przez klienta, którego środki są przenoszone. Bez względu na to, jak uprzejmie poprosisz, Twój bank nigdy nie pozwoli Ci bezpośrednio modyfikować swojej bazy danych.

Blockchain eliminuje potrzebę zaufanych pośredników, włączając bazy danych z wieloma nieufnymi autorami do bezpośredniej modyfikacji. Żaden centralny strażnik nie jest wymagany do weryfikacji transakcji i uwierzytelniania ich źródła. Zamiast tego definicja transakcji została rozszerzona o dowód autoryzacji i dowód ważności. Dlatego transakcje mogą być niezależnie weryfikowane i przetwarzane przez każdy węzeł który utrzymuje kopię bazy danych.

Ale pytanie, które musisz zadać, brzmi: Czy chcesz lub potrzebujesz tego braku pośrednictwa? Biorąc pod uwagę Twój przypadek użycia, czy jest coś złego w posiadaniu jednostki centralnej, która utrzymuje autorytatywną bazę danych i działa jako strażnik transakcji? Dobre powody, aby preferować bazę danych opartą na łańcuchu bloków zamiast zaufanego pośrednika, mogą obejmować niższe koszty, szybsze transakcje, automatyczne pojednanie, nowe rozporządzenie lub zwykła niemożność znalezienia odpowiedniego pośrednika.

5. Interakcja transakcyjna

Dlatego łańcuchy bloków mają sens w przypadku baz danych współdzielonych przez wielu autorów, którzy nie do końca sobie ufają i którzy bezpośrednio modyfikują tę bazę danych. Ale to wciąż za mało. Blockchainy naprawdę świecą tam, gdzie są interakcja między transakcjami stworzone przez tych pisarzy.

Co rozumiem przez interakcję? W najpełniejszym sensie oznacza to, że transakcje tworzone przez różnych autorów często zależą od siebie. Na przykład, powiedzmy, że Alicja wysyła trochę funduszy do Boba, a następnie Bob wysyła część do Charliego. W tym przypadku transakcja Roberta jest zależna od transakcji Alicji i nie ma możliwości zweryfikowania transakcji Roberta bez uprzedniego sprawdzenia transakcji Alicji. Z powodu tej zależności transakcje naturalnie należą do siebie w pliku pojedyncza współdzielona baza danych.

Idąc dalej, jedną fajną cechą łańcuchów bloków jest to, że można tworzyć transakcje wspólnie przez wielu autorówbez narażania się którejkolwiek ze stron na ryzyko. To jest to, co pozwala dostawa a płatność rozliczenie odbywa się bezpiecznie na blockchainie, bez konieczności korzystania z zaufanego pośrednika.

Dobry argument można również przedstawić w sytuacjach, w których transakcje różnych autorów są ze sobą skorelowane, nawet jeśli pozostają one niezależne. Jednym z przykładów może być wspólna baza danych tożsamości, w której wiele jednostek weryfikuje różne aspekty tożsamości konsumentów. Chociaż każda taka certyfikacja jest niezależna, łańcuch bloków zapewnia przydatny sposób na połączenie wszystkiego w ujednolicony sposób.

6. Ustal zasady

To nie jest tak naprawdę stan, ale raczej nieunikniona konsekwencja poprzednich punktów. Jeśli mamy bazę danych zmodyfikowaną bezpośrednio przez wielu autorów, a ci pisarze nie ufają sobie w pełni, to baza danych musi zawierać osadzone reguły ograniczenie wykonywanych transakcji.

Te zasady różnią się zasadniczo od Ograniczenia które pojawiają się w tradycyjnych bazach danych, ponieważ odnoszą się do zasadność przemian zamiast stanu bazy danych w określonym momencie. Każda transakcja jest sprawdzana pod kątem tych reguł przez każdy węzeł w sieci, a te, które się nie powiodły, są odrzucane i nie są przekazywane dalej.

Księgi aktywów zawierają prosty przykład tego typu reguły, aby zapobiec tworzeniu aktywów z powietrza przez transakcje. Reguła stanowi, że całkowita ilość każdego składnika aktywów w księdze musi być taka sama przed i po każdej transakcji.

7. Wybierz swoje walidatory

Do tej pory opisaliśmy rozproszoną bazę danych, w której transakcje mogą powstawać w wielu miejscach, rozprzestrzeniać się między węzłami w sposób peer-to-peer i są weryfikowane przez każdy węzeł niezależnie. Skąd więc bierze się „blockchain”? Cóż, zadaniem blockchaina jest być autorytatywny ostateczny dziennik transakcji, z którego treścią wszystkie węzły się zgadzają.

Dlaczego potrzebujemy tego dziennika? Po pierwsze, umożliwia nowo dodanym węzłom obliczanie zawartości bazy danych od zera, bez konieczności ufania innemu węzłowi. Po drugie, odnosi się do możliwości, że niektóre węzły mogą przegapić pewne transakcje z powodu przestoju systemu lub usterki komunikacji. Bez dziennika transakcji mogłoby to spowodować, że baza danych jednego węzła odbiegałaby od bazy danych innych, co podważałoby cel wspólnej bazy danych.

Po trzecie, możliwe jest, że dwie transakcje są ze sobą w konflikcie, więc tylko jedna może zostać zaakceptowana. Klasycznym przykładem jest plik podwójne wydatki w którym ten sam zasób jest wysyłany do dwóch różnych odbiorców. W bazie danych peer-to-peer bez centralnego organu węzły mogą mieć różne opinie na temat tego, którą transakcję zaakceptować, ponieważ istnieje brak obiektywnej właściwej odpowiedzi. Wymagając „potwierdzenia” transakcji w łańcuchu bloków, zapewniamy, że wszystkie węzły są zbieżne w ramach tej samej decyzji.

Wreszcie w Ethereumw stylu blockchain, precyzyjne zamawiania transakcji odgrywa kluczową rolę, ponieważ każda transakcja może wpływać na to, co się dzieje w każdym kolejnym. W tym przypadku blockchain działa w celu określenia autorytatywnej chronologii, bez której transakcje nie mogą być w ogóle przetwarzane.

Blockchain to dosłownie łańcuch bloków, w którym każdy blok zawiera zestaw transakcji, które są potwierdzane jako grupa. Ale kto jest odpowiedzialny za wybór transakcji, które trafiają do każdego bloku? W rodzaju „prywatnego łańcucha bloków”, który jest odpowiedni dla aplikacji korporacyjnych, odpowiedzią jest zamknięta grupa walidatorów („górników”), którzy cyfrowo podpisują utworzone przez siebie bloki. Ta biała lista jest połączona z jakąś formą rozproszonego schematu konsensusu, aby zapobiec przejęciu kontroli nad łańcuchem przez mniejszość walidatorów. Na przykład MultiChain używa schematu o nazwie różnorodność górnicza, w którym uprawnieni górnicy pracują w a okrężne moda, z pewnym stopniem pobłażliwości, aby umożliwić niedziałające węzły.

Niezależnie od używanego schematu konsensusu, węzły walidacyjne mają znacznie mniej mocy niż właściciel tradycyjnej scentralizowanej bazy danych. Walidatory nie mogą fałszować transakcji ani modyfikować bazy danych z naruszeniem jej reguł. W księdze aktywów oznacza to, że nie mogą wydawać pieniędzy innych ludzi ani zmieniać całkowitej ilości reprezentowanych aktywów. Niemniej jednak wciąż istnieją dwa sposoby, w jakie walidatory mogą nadmiernie wpływać na zawartość bazy danych:

  • Cenzura transakcji. Jeśli wystarczająca liczba walidatorów podejmie złośliwą zmowę, mogą zapobiec potwierdzeniu określonej transakcji w łańcuchu bloków, pozostawiając ją trwale w zawieszeniu.
  • Rozwiązywanie konfliktów stronniczych. Jeśli dwie transakcje są ze sobą sprzeczne, walidator, który tworzy następny blok, decyduje, która transakcja jest potwierdzona w łańcuchu bloków, powodując odrzucenie drugiej. Sprawiedliwym wyborem byłaby transakcja, która była widziana jako pierwsza, ale weryfikatorzy mogą dokonać wyboru na podstawie innych czynników, nie ujawniając tego.

Z powodu tych problemów, wdrażając bazę danych opartą na łańcuchu bloków, musisz mieć jasny obraz kim są twoi walidatorzy i dlaczego im ufasz, zbiorowo, jeśli nie samodzielnie. W zależności od przypadku użycia walidatory mogą zostać wybrane jako: (a) jeden lub więcej węzłów kontrolowanych przez jedną organizację, (b) podstawowa grupa organizacji, które utrzymują łańcuch, lub (c) każdy węzeł w sieci.

8. Zabezpiecz swoje aktywa

Jeśli dotarłeś tak daleko, być może zauważyłeś, że mam tendencję do określania łańcuchów bloków jako współdzielonych baz danych, a nie bardziej powszechnych „wspólnych ksiąg”. Czemu? Ponieważ jako technologia, łańcuchy bloków można zastosować do problemów daleko wykraczających poza śledzenie własności zasobów. Dowolna baza danych, która ma wielu niezaufanych autorów, może zostać zaimplementowana w łańcuchu bloków, bez konieczności korzystania z centralnego pośrednika. Przykłady obejmują udostępnione kalendarze, współpracę w stylu wiki i fora dyskusyjne.

Mimo to wydaje się, że na razie blockchainy interesują głównie tych, którzy śledzą ruch i wymianę aktywów finansowych. Przychodzą mi do głowy dwa powody takiego stanu rzeczy: (a) sektor finansowy reaguje na (z perspektywy czasu, maleńkie) zagrożenie kryptowalutami, takimi jak bitcoin, oraz (b) księga aktywów jest najprostszym i najbardziej naturalnym przykładem wspólnej bazy danych z transakcje współzależne tworzone przez wiele podmiotów nie ufających.

Jeśli chcesz używać łańcucha bloków jako księgi aktywów, musisz odpowiedzieć na jedno dodatkowe kluczowe pytanie: Jaki jest charakter przenoszonych aktywów? Nie mam tu na myśli tylko gotówki, obligacji czy listów przewozowych, choć oczywiście jest to również ważne. Pytanie brzmi raczej: Kto stoi za aktywami reprezentowanymi na blockchainie? Jeśli w bazie danych jest napisane, że posiadam 10 sztuk czegoś, kto pozwoli mi odebrać te 10 sztuk w prawdziwym świecie? Kogo mam pozwać, jeśli nie mogę zamienić tego, co jest zapisane w łańcuchu bloków na tradycyjne aktywa fizyczne? (Zobacz umowa majątkowa dla przykładu.)

Odpowiedź oczywiście będzie się różnić w zależności od przypadku użycia. W przypadku aktywów pieniężnych można sobie wyobrazić banki powiernicze akceptujące gotówkę w tradycyjnej formie, a następnie uznające rachunki deponentów w rozproszonej księdze opartej na blockchain. W finansowaniu handlu akredytywy i konosamenty byłyby zabezpieczane odpowiednio przez bank importera i firmę przewozową. W dalszej przyszłości możemy sobie wyobrazić czas, w którym pierwotna emisja obligacji korporacyjnych odbywa się bezpośrednio na blockchain przez firmę starającą się o pozyskanie środków.

Wnioski

Jak wspomniałem na wstępie, jeśli Twój projekt się nie spełni każdy z tych warunków, nie powinieneś używać łańcucha bloków. W przypadku braku któregokolwiek z pierwszych pięciu, należy rozważyć jedno z następujących: (a) regularne przechowywanie plików, (b) scentralizowana baza danych, (c) master-slave replikacja bazy danychlub (d) wiele baz danych, do których użytkownicy mogą subskrybuj.

A jeśli spełnisz pierwsze pięć, nadal jest do zrobienia. Musisz być w stanie wyrazić zasady swojej aplikacji pod kątem transakcji, na które pozwala baza danych. Musisz mieć pewność, komu możesz zaufać jako walidatorom i jak zdefiniujesz rozproszony konsensus. I wreszcie, jeśli chcesz utworzyć wspólną księgę, musisz wiedzieć, kto będzie zabezpieczał aktywa, które reprezentuje ta księga.

Masz wszystkie odpowiedzi? Gratulacje, masz prawdziwy przypadek użycia łańcucha blokowego. I chcielibyśmy usłyszeć od Ciebie.

Prosimy o umieszczanie komentarzy na LinkedIn. Zobacz także następującą informację: Cztery oryginalne przypadki użycia blockchain.

Znak czasu:

Więcej z Multichain