Blockchain (Bitcoin) jako baza danych?


16

Czytałem ten artykuł BBC News i następujący fragment, przykułem moją uwagę. Wygląda na to, że grupy Always On Availability Groups lub High Availability Mirroring, może z automatycznie włączonymi zabezpieczeniami.

Czy blockchain jest potencjalnie opłacalnym rozwiązaniem bazy danych dla nowoczesnych aplikacji o dużej liczbie transakcji?

Łatwo jest zauważyć, że ma ona wartość w przypadku transakcji o niewielkim wolumenie, takich jak osobista dokumentacja medyczna, ale co z bazami o dużej objętości?

Co to jest blockchain?

Łańcuchy bloków polegają na kryptografii, aby umożliwić zestawom komputerów wprowadzanie zmian w globalnym rekordzie bez potrzeby angażowania głównego aktora.

Usunięcie pośrednika obniża koszty w prawie każdym sektorze.

Blockchain jest księgą, która rejestruje wszystko, co dzieje się ze zbiorem danych zwanych „blokiem” w kolejności chronologicznej lub „łańcuchu”.

Jako waluta jest to ważna funkcja, ponieważ pozwala użytkownikom mieć pewność, że ich cyfrowe pieniądze są jedyne w swoim rodzaju, w taki sam sposób, w jaki każda nuta w portfelu jest wyjątkowa.

„Technologia Blockchain będzie sposobem, w jaki tworzymy zasoby, ponieważ umożliwia przesyłanie informacji cyfrowych bez kopiowania” - mówi Adam Ludwin, dyrektor generalny Chain.com, który buduje sieci blockchain.

Blockchain może być wykorzystywany do śledzenia historii wszelkiego rodzaju informacji i utrzymywania ich wartości, dzięki czemu lekarze mogą na przykład używać ich do aktualizacji dokumentacji medycznej.

Ponieważ każda zmiana łańcucha blokowego jest dokonywana jednocześnie w całej sieci, żadna informacja nie jest tracona, a ponieważ zmian nie można cofnąć, system zachowuje przejrzystość. Aby wprowadzić zmiany w każdym bloku, potrzebny jest specjalny klucz, aby osoby mogły bezpiecznie przechowywać swoje dane, chroniąc ten klucz.

Odpowiedzi:


15

Czy blockchain jest potencjalnie opłacalnym rozwiązaniem bazy danych dla nowoczesnych aplikacji o dużej liczbie transakcji ?

Ogólnie technologia blockchain ma pewne cechy, które utrudniają pracę z dużymi objętościami.

Spójrz na przykład na Bitcoin. Średnia liczba transakcji dziennie nigdy nie przekraczała 300 000: Transakcje dziennie (źródło blockchain.info)

wprowadź opis zdjęcia tutaj

Co ważniejsze, mediana czasu potwierdzenia transakcji wynosi około 8 minut !: Mediana czasu potwierdzenia transakcji (tylko za opłatą) i ładny obraz z Quandl :

wprowadź opis zdjęcia tutaj

Ile komputerów na całym świecie jest odpowiedzialnych za utrzymanie bazy danych bitcoin? Nie jestem ekspertem od bitcoinów, ale myślę, że cała historia transakcji jest przechowywana w łańcuchu bloków, więc wszystkie komputery uczestniczące w sieci bitcoinów zasadniczo przechowują kopię całej bazy danych (transakcje oczywiście, nie informacje o kontach i tajne klucze, są one przechowywane w osobistych portfelach).

Możemy tylko oszacować, ile ich jest, ale sądzę, że jest ich ponad milion. 300 000 transakcji dziennie z milionem komputerów nie brzmi jak wysoki poziom głośności. I 8 minut na potwierdzenie?

Nowoczesny RDBMS na przyzwoitym sprzęcie może z łatwością przejść do 1 000 transakcji na sekundę. To około 86 milionów transakcji dziennie. Czas potwierdzenia? To zależy od wielkości transakcji (ile tabel i wierszy wpływa), ale w przypadku małej transakcji typu bitcoin (usuń 42 monety z konta A i dodaj 42 monety do konta B), będzie to milisekunda.

Podsumowując, różnica w objętości i czasie wynosi obecnie od 1000 do 100 000 razy.

Jeśli technologia blockchain rozwiąże ten problem w przyszłości, być może będzie możliwe użycie jej w aplikacjach o średniej lub dużej objętości. Możemy czytać dyskusje i sugestie dotyczące sposobu rozwiązania problemu - wiele firm wymienionych w linkach faktycznie pracuje nad tymi problemami - ale nie widzieliśmy jeszcze rzeczywistego działającego rozwiązania lub produktu, który oferowałby duże ilości i szybkość.


Innym problemem, który mam z Blockchain, jest cholernie niespójna. Wszystko jest obciążone, a klient, który przetwarza transakcje, nie jest „dedykowany”, więc można było zaobserwować, że paczka odpadła lub została dodana. 8 minut brzmi dobrze, może ostatnie 10 minut było dodatkową minutą lub dwie, aby zatwierdzenie dotarło do wszystkich klientów? Nie jestem pewien, kto wie z większą liczbą węzłów, może to poszło! Tak czy inaczej świetne linki. Dzięki.
Ali Razeghi,

2
W tym artykule technologyreview.com/s/540921/... twierdzi się, że istnieje koncepcyjny limit siedmiu transakcji na sekundę.
a_horse_w_no_name

Łańcuchy boczne @a_horse_w_no_name można łatwo skalować bez sztywnych limitów i pozostać do synchronizacji z łańcuchem bloków bitcoin, które można obsługiwać w przejrzysty sposób.
jangorecki

16

Bardzo dobrze znam kryptowalutę i bazy danych i mogę powiedzieć, że to wcale nie jest świetny silnik DB.

Używanie blockchain jako bazy danych na żywo:

Pomyśl o tym jako o pierwszej znormalizowanej formie bez jakiejkolwiek naprawdę dobrej wbudowanej funkcji wyszukiwania lub indeksowania, jeśli chodzi o łańcuch bloków. Zasadniczo arkusz programu Excel bez żadnych możliwości obliczeniowych, który po prostu daje możliwości „odczytu / zapisu” z dużą ilością weryfikacji i weryfikacji. Blockchain to świetny sposób na sprawdzenie, czy twoje dane są zdezynfekowane i poprawione, zanim umieścisz je w bazie danych, co pozwoli ci na inne zapytania, indeksowanie itp.

Korzyści z blockchain:

Blockchain w tym przypadku jest wyłącznie księgą i interfejsem API dla żądań PUT i GET. O to chodzi. Blockchain jest interesujący, ponieważ potrzebujesz większości węzłów, aby przekazać transakcję jako prawidłową i nie ma żadnych wycofań, po zatwierdzeniu zostaje zatwierdzona. Tak więc, jeśli ktoś spróbuje dokonać fałszywej transakcji, zostanie on złapany, chyba że osoba, która to zrobi, ma pulę, która ma zdecydowany udział większościowy. Następnie mogą zweryfikować go w swojej puli, zanim ktoś może go odrzucić. To jest mocna strona blockchaina. Weryfikacja poprawności danych. Zazwyczaj jest również dość wolny. Patrzysz na około 10 minut pod normalnym obciążeniem, aby można było to sprawdzić. Pod dużym obciążeniem czas znacznie się wydłuża.

Po sprawdzeniu, czy transakcje są prawidłowe i nieuczciwe za pomocą blockchain, możesz następnie zaimportować te dane do bazy danych i pracować z nią, jak chcesz. Mam z tym pewne doświadczenie, ale zauważam, że każda pojedyncza transakcja na obecnej architekturze bitcoin zostanie zarejestrowana, więc ma kilka interesujących informacji do analizy.

Zapytanie o dane ze schematu blockchain w DBMS:

Oto schemat bitcoinów, których możesz użyć do stworzenia schematu w PostgreSQL. Za pomocą tego możesz następnie umieścić go w relacyjnym DBMS: https://bitcointalk.org/index.php?topic=38246 wprowadź opis zdjęcia tutaj

Ta repozytorium kodu jest również pomocne, jeśli chcesz zaimportować dane do prawdziwego RDBMS: https://github.com/bitcoin-abe/bitcoin-abe

Jeśli chodzi o to, w co DBMS powinieneś go umieścić, to zależy od twojego przypadku użycia. Jeśli chcesz przeanalizować transakcje / identyfikatory portfela, aby zobaczyć pewne wzorce lub wykonać BI, polecam relacyjną bazę danych. Jeśli chcesz skonfigurować transmisję na żywo z wieloma kryptowalutami, poleciłbym coś, co nie wymaga dziennika transakcji, więc rozwiązanie MongoDB byłoby dobre. Nie sądzę, że musisz się martwić o Elastic Search, chyba że chcesz zacząć nagrywać na żywo wszystkie kryptowaluty w tym samym czasie i używać go do automatycznego handlu lub czegoś równie szalonego. :)


8

W 2014 roku stworzyliśmy ascribe.io z założeniem używania Bitcoin jako bazy danych roszczeń dotyczących własności intelektualnej. Po wydaniu podłączyliśmy sieć, ponieważ nie była w stanie obsłużyć przepustowości, opóźnienie wynosiło co najmniej 10 minut i byliśmy ograniczeni przez to, co mogliśmy umieścić w OP_RETURN, zmuszając nas do przechowywania rzeczywistego pliku cyfrowego dotyczącego roszczenia w Amazon S3 . Zdaliśmy sobie sprawę, że Bitcoin w obecnej formie nigdy nie może być bazą danych o wysokich transakcjach.

Ale pomysł, czy moglibyśmy mieć bazę danych w stylu blockchain - zdecentralizowana kontrola, niezmienność (odporność na próby manipulacji) i żywe zasoby w sieci utknęły z nami. W połowie 2014 roku rozpoczęliśmy pracę nad BigchainDB

Krótko mówiąc - możemy przetworzyć 100 000 tps z opóźnieniem 100 ms i mieć petabajty pojemności. Kod to nasz BigchainDB Github, dokumentacja techniczna tutaj i podstawowe myślenie w naszej białej księdze .

Jeśli masz przypadek użycia zdecentralizowanej bazy danych z dużymi transakcjami - właśnie do tego zbudowaliśmy BigchainDB.


2

Blockchain pochodzący z Bitcoin jest powolny i drogi; ilość danych, które mogą być przechowywane w bloku, jest bardzo niewielka. Mechanizmy stojące za łańcuchami bloków (księgi dystrybucyjne) mają zapewnić nieprzekupny, wysoce replikowany magazyn danych; peer to peer jest mniej istotną cechą niż „wymóg polityczny”, aby uniknąć pojawienia się centralnej kontroli. Pracuję od około 18 miesięcy, aby stworzyć wysokowydajną rozproszoną księgę (patrz jedna instancja metrognomo.com), która pobiera jak najmniej z Bitcoin. Na koniec jednak rozproszona księga wygląda jak sekwencyjny plik, który można dodać, ale nie edytować po dodaniu. Jest to cenna rzecz w przypadku niektórych aplikacji, ale nie to, co większość ludzi uważa za bazę danych.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.