Czym jest Skierowany Acykliczny Graf (DAG) w Kryptowalach?
Strona Główna
Artykuły
Czym jest Skierowany Acykliczny Graf (DAG) w Kryptowalach?

Czym jest Skierowany Acykliczny Graf (DAG) w Kryptowalach?

Średnio zaawansowany
Opublikowane Jul 19, 2020Zaktualizowane Dec 27, 2022
8m

Spis Treści


Wprowadzenie

Kiedy myślisz o kryptowalutach, prawdopodobnie przychodzą Ci na myśl terminy „blockchain” lub „technologia rozproszonej księgi rachunkowej”. Od czasu uruchomienia Bitcoina powstały setki innych kryptowalut. Większość z nich opiera się na podobnej architekturze sieci. Ich struktury danych umożliwiają użytkownikom przenoszenie wartości lub interakcję ze zdecentralizowanymi aplikacjami.
W blockchainie nowy blok jest okresowo dodawany do rosnącego łańcucha bloków. Każdy blok jest połączony z poprzednim za pomocą pewnego rodzaju łącza kryptograficznego (konkretnie hasha). W każdym z tych bloków znajdują się ostatnie transakcje, które zostały nadane przez użytkowników.
Często występuje okres oczekiwania między transmisją transakcji a włączeniem jej do bloku. Pomyśl o tym jak o czekaniu na pociąg na stacji. W zależności od wielkości wagonów (wielkość bloku) i liczby innych osób oczekujących na pociąg (transakcje oczekujące), możesz nawet nie być w stanie dostać się na następny pociąg bądź jeszcze kolejnego. Na potwierdzenie transakcji jesteś w stanie czekać od kilku sekund do godzin.
Dla wielu jest to przyzwoity kompromis. W końcu zapewnia bardzo wysoki poziom bezpieczeństwa bez polegania na scentralizowanym koordynatorze. Dla innych technologia blockchain ma datę ważności. Krytycy uważają, że na dłuższą metę problemy ze skalowalnością, z którymi się boryka, zapobiegną masowej adopcji.

Niektórzy sądzą, że przyszłość sieci płatności kryptowalutowych leży w zupełnie innej architekturze - skierowanych acyklicznych grafach (lub DAGach).


Czym jest DAG?

DAG to inny rodzaj struktury danych - pomyśl o niej jak o bazie danych, która łączy ze sobą różne informacje. „Skierowany acykliczny graf” jest skomplikowanym terminem, więc zacznijmy od jego rozbicia.


Skierowany Acykliczny Graf.


Koncepcyjnie DAGi wyglądają podobnie jak powyżej. Składają się z wierzchołków (kul) i krawędzi (łączących je linii). Są skierowane, ponieważ zwrócone są w jednym kierunku (strzałki na ilustracji). Są acykliczne (tj. niecykliczne), ponieważ wierzchołki nie zapętlają się - jeśli zaczniesz w jednym punkcie i podążasz za grafem, nie będziesz mógł wrócić do tego samego punktu. Wkrótce stanie się to jaśniejsze.

Takie struktury danych są zwykle używane do modelowania informacji. Na DAG polega się w dziedzinach naukowych lub medycznych, aby obserwować relacje między zmiennymi i określić, jak wpływają na siebie. Dla przykładu weźmy takie zjawiska jak: odżywianie, cykle snu i fizyczne objawy chorobowe, aby móc narysować powiązania między nimi i ustalić jak wpływają na pacjenta.

Nas bardziej interesuje, w jaki sposób mogą pomóc w osiągnięciu konsensusu w rozproszonej sieci kryptowalut.


Jak działa DAG?

W kryptowalutach opartych na DAG każdy wierzchołek w strukturze reprezentuje transakcję. Nie ma tu pojęcia bloków, a wydobywanie nie jest wymagane do rozszerzania bazy danych. Dlatego zamiast gromadzić transakcje w bloki, każda transakcja jest budowana "na drugiej". Mimo to istnieje niewielka operacja Proof of Work, która jest wykonywana, gdy węzeł przesyła transakcję. Zapewnia to, że sieć nie jest zaspamowana, a także weryfikuje poprzednie transakcje.

Chcąc dodać nową transakcję, musi ona bazować na starszych. Załóżmy, że Alicja tworzy nową transakcję. Jeśli ma zostać potwierdzona, transakcja musi "odnosić się" do poprzednich. Mechanizm jest podobny do bloków w sieci Bitcoin - odnosi się do tego, który pojawił się przed nim. Różnica polega na tym, że zamiast jednego odniesienia, każda transakcja w systemie DAG posiada ich wiele. 

W niektórych systemach algorytm wybiera transakcje (lub „tipy”), na których nowa transakcja musi się opierać. Bardziej prawdopodobne jest wybranie tipa o większej skumulowanej masie - miara tego, ile potwierdzeń ma ścieżka do tipa.

Transakcje, na których Alicja zbuduje swoją, są niepotwierdzone. W momencie kiedy Alice odwołuje się do nich, zostają potwierdzone. Transakcja Alice jest teraz niepotwierdzona, więc ktoś inny musi na niej zbudować kolejną, zanim zostanie zaakceptowana.

Użytkownicy są bardziej skłonni do potwierdzania transakcji z „większą” wagą, dzięki czemu system będzie się rozwijał. W przeciwnym razie nic nie powstrzymałoby użytkowników przed ciągłym budowaniem na starszych transakcjach.

Z blockchainami, uniknięcie double-spendingu (podwójnego wydatkowania) jest dość proste. Tych samych środków nie można wydać dwukrotnie w ramach bloku - węzły mogą z łatwością wykryć każdą próbę i odrzucić blok zawierający sprzeczne transakcje. Ponieważ wytwarzanie bloków jest dla górników tak drogie, stanowi to dla nich zachętę do uczciwego działania w obrębie sieci.

DAGi posiadają również mechanizm zapobiegający podwójnemu wydatkowaniu. Jest one trochę podobny do blockchaina, jednak nie zawiera górników. Kiedy węzeł potwierdza starsze transakcje, ocenia całą ścieżkę z powrotem do pierwszej transakcji DAG, aby upewnić się, że nadawca ma wystarczające saldo. Może istnieć wiele ścieżek, ale tylko jedna wymaga weryfikacji.



Jeśli użytkownicy budują na nieprawidłowej ścieżce, ryzykują, że ich własna transakcja zostanie zignorowana. Ta należąca do nich może być prawidłowa, ale ponieważ poprzednia nie była, nikt nie będzie chciał przedłużać tej konkretnej ścieżki.

Na początku wydaje się to nieintuicyjne - czy nie mógłbyś skończyć w sytuacji, w której istnieje wiele rozgałęzień nieświadomych świadome istnienia innych? Czy zatem ludzie nie mogliby wydawać tych samych funduszy na te poszczególne gałęzie?



Jest to rzeczywiście możliwe, ale rozwiązuje to algorytm selekcji, który faworyzuje tipy o większej łącznej wadze. Oznacza to, że z czasem otrzymasz gałąź, która jest znacznie silniejsza od pozostałych. Słabsze zostaną porzucone, a sieć będzie dalej budować na "najcięższej".

Podobnie jak w przypadku blockchainów, nie ma absolutnej pewności - nigdy nie możesz być w 100% pewien, że transakcja nie zostanie cofnięta. Jest to niezwykle mało prawdopodobne, ale teoretycznie można by „cofnąć” blok Bitcoina lub Ethereum, odwracając wszystkie zawarte w nim transakcje. Im więcej bloków zostanie dodanych po Twojej transakcji, tym większe możesz mieć do niej zaufanie. Dlatego zaleca się odczekanie sześciu potwierdzeń przed wydaniem środków.
W DAGu, takim jak Tangle od IOTA, istnieje idea pewności potwierdzenia. Algorytm selekcji jest uruchamiany 100 razy, a Ty zliczasz, ile razy Twoja transakcja została bezpośrednio lub pośrednio zatwierdzona w wybranych tipach. Im wyższy procent, tym większa pewność, że transakcja pozostanie „rozliczona”.

Może się wydawać, że prowadzi to do kiepskiego doświadczenia użytkownika, ale tak nie jest. Jeśli Alicja wyśle Bobowi 10 MagicDAGTokenów, nie musi się martwić o wybranie odpowiednich tipów na grafie. Pod maską jej portfel może wykonywać następujące czynności:

  • Wybierze ciężkie tipy (pamiętaj, są to te z największą liczbą potwierdzeń).
  • Podąży ścieżką wstecz przez poprzednie transakcje, aby upewnić się, że tipy mają wystarczające saldo do wydania.
  • Gdy wszystko będzie się zgadzać, doda twoją transakcję do DAG, potwierdzając transakcje, na których jest zbudowana.
Dla Alice będzie to wyglądać jak zwykła transakcja krypto. Wpisuje adres Boba i kwotę, którą chce wydać, a następnie naciska przycisk wyślij. Powyższa lista to Proof of Work, który każdy uczestnik uruchamia podczas tworzenia transakcji.



Zalety i wady skierowanych acyklicznych grafów

Zalety DAGów

Prędkość

Nieograniczone czasem blokowym, każdy może transmitować i przetwarzać swoje transakcje w dowolnym momencie. Nie istnieją blokady co do liczby transakcji, które użytkownicy przesyłają, pod warunkiem, że potwierdzą te starsze.


Brak górnictwa

DAG nie używają algorytmów konsensusu PoW w sposób, do którego jesteśmy przyzwyczajeni. Emitowany prze nie ślad węglowy stanowi zaledwie ułamek tego, który posiadają kryptowaluty, polegające na górnictwie w celu zabezpieczenia swojej sieci blockchain.


Brak opłat transakcyjnych

Ponieważ nie ma żadnych górników, użytkownicy nie muszą płacić opłat, aby przesyłać transakcje. To powiedziawszy, niektóre wymagają niewielkiej opłaty za przetworzenie przez specjalne rodzaje węzłów. Niskie opłaty (lub lepiej, zerowe) zachęcają do mikropłatności.


Brak problemów skalowalności

Nieograniczone czasami blokowymi, DAGi mogą przetwarzać znacznie więcej transakcji na sekundę niż tradycyjne sieci blockchain. Wielu zwolenników uważa, że sprawdzą się zatem w Internecie Rzeczy (IoT), w którym wszystkie rodzaje maszyn mogą ze sobą współdziałać.


Wady DAGów

Nie są całkowicie zdecentralizowane

Protokoły, które opierają się na DAG, mają różne elementy centralizacji. Dla niektórych jest to podobno krótkoterminowe rozwiązanie polegające na załadowaniu sieci, ale dopiero okaże się, czy DAG może się rozwijać bez interwencji stron trzecich. Jeśli nie, otwiera się na ataki, które mogą ostatecznie sparaliżować sieci.


Nie został przetestowany w skali

Chociaż kryptowaluty oparte na DAG istnieją od kilku lat, to mają przed sobą jeszcze długą drogę, zanim staną się powszechne. W związku z tym trudno przewidzieć, co może stanowić zachęty ekonomiczne do korzystania z sieci w przyszłości.


Przemyślenia końcowe

Skierowane Acykliczne Grafy są z pewnością interesującą technologią budowania sieci kryptowalut. Jak dotąd istnieje stosunkowo niewiele projektów wykorzystujących tę strukturę danych i nie zostały one jeszcze w pełni rozwinięte. 
Jeśli zdołają wykorzystać swój potencjał, mogą zasilać masowo skalowalne ekosystemy. Technologia DAG ma niezliczone przypadki użycia w obszarach, które wymagają dużej przepustowości i braku opłat, takich jak Internet Rzeczy (IoT) i mikropłatności.