Wyjaśnienie Tendermint
Strona GłównaArtykuły

Wyjaśnienie Tendermint

Średnio zaawansowany
2w ago
6m

TL;DR

Blockchainy, które znasz i kochasz, mają dość sztywną strukturę. Jako programista masz dwie opcje: tworzenie aplikacji w restrykcyjnym środowisku lub rozwidlenie kodu i utworzenie własnego chaina. Stworzenie własnego chaina nie jest jednak takie proste – musisz także założyć sieć i dowiedzieć się, jakiego mechanizmu konsensusu użyć.

Tendermint to oprogramowanie typu open-source do uruchamiania blockchainów, które umożliwiają pisanie aplikacji w dowolnym języku programowania. Co więcej, mogą komunikować się z innymi blockchainami.


Wprowadzenie

Tworzenie kryptowaluty lub sieci blockchain wymaga dużo więcej wysiłku niż tylko inicjalizacja bazy danych. Potrzebna jest delikatna równowaga zachęt i kompromisów między bezpieczeństwem, decentralizacją i skalowalnością.

Nic dziwnego, że zespoły, które chcą zbudować najsilniejsze ekosystemy blockchain, zbadały szereg różnych oprogramowań. W tym artykule przyjrzymy się jednemu z takich: Tendermint.


Co musisz wiedzieć o Tendermint

Wiele z Tendermint będzie wydawało się znajome, jeśli wiesz trochę o blockchainach. Podsumujmy kilka kluczowych pojęć, zanim zagłębimy się w to dalej.


Zrozumienie architektury blockchain

Tendermint to rodzaj stacku technologicznego blockchain. Z drugiej strony, kryptowaluty takie jak Bitcoin i Ethereum też są typem stacku technologicznego. Pamiętaj, że nie chodzi tylko o samą bazę danych blockchain, ale o sieć węzłów peer-to-peer, sposób ich interakcji, a także ciekawe rzeczy, które możesz zrobić z transakcjami i smart kontrakty. Celem jest, aby wszyscy zgodzili się co do stanu sieci (na przykład snapshot bazy danych), nawet jeśli nie ufają nikomu innemu.

W większości dzisiejsze główne blockchainy wymyśliły sekretny składnik, który to umożliwia. Jednak często opierają się na architekturze monolitycznej: koncepcji inżynierii oprogramowania, która oznacza, że komponenty są ze sobą połączone i współzależne. Nie można po prostu wziąć jego części i podłączyć do czegoś innego.

Architektura monolityczna nie jest świetna, jeśli pragniesz elastyczności. W modelu odwrotnym (architektura modułowa) możesz modyfikować poszczególne komponenty bez obawy o zepsucie czegokolwiek. Dzięki monolitycznej strukturze musisz upewnić się, że każdy komponent pozostaje kompatybilny podczas uaktualniania jednego. 

Teraz, gdy rozumiemy tę różnicę, możemy porozmawiać nieco więcej o protokole Tendermint.


Tolerancja na bizantyjskie wady (BFT)

Być może wiesz, że wielką innowacją związaną z Bitcoinem było rozwiązanie czegoś, co nazywane jest Problemem Generałów Bizantyjskich. Nie będziemy wchodzić w szczegóły problemu (jeśli jesteś zainteresowany, przeczytaj nasz artykuł o Tolerancji na Bizantyjskie Wady). Wszystko, co musisz wiedzieć, to wyszczególnienie scenariusza, w którym uczestnicy muszą komunikować się w środowisku rozproszonym. 

Ci uczestnicy nie wiedzą, czy inni kłamią, ani czy wiadomości przesyłane między nimi są modyfikowane. Mówi się, że system ma tolerancję na bizantyjskie wady (BFT), jeśli uczestnicy mogą zgodzić się z zestawem faktów, nawet jeśli występują powyższe problemy.

Oczywiście w zdecentralizowanym środowisku właściwe wykonanie tego zadania ma kluczowe znaczenie. Kryptowaluty, które nie mają tolerancji na bizantyjskie wady, tak naprawdę nie działają – potrzebujesz jakiejś scentralizowanej koordynacji, co jest sprzeczne z celem. Podobnie jak wiele walut cyfrowych, Bitcoin omija ten problem, stosując algorytm konsensusu Proof of Work (PoW).


Trzy warstwy blockchaina

Znamy więc różnicę między architekturą monolityczną/modułową i wiemy, że zdecentralizowane sieci kryptowalut muszą posiadać tolerancję na bizantyjskie błędy. Wspomnijmy o warstwach, które zwykle widzimy w blockchainie: warstwie aplikacji, warstwie konsensusu i warstwie sieciowej.

Warstwy konsensusu i sieci to miejsca, w których węzły sieci komunikują się ze sobą i próbują uzgodnić zestaw faktów. Warstwa aplikacji to miejsce, w którym możesz robić rzeczy samodzielnie – pomyśl o zdecentralizowanych aplikacjach i smart kontraktach w Ethereum lub niestandardowych transakcjach w Bitcoinie.


Chcesz rozpocząć swoją przygodę z kryptowalutami? Kup Bitcoiny (BTC) na Binance!


Rdzeń Tendermint

Najpierw krótkie wyjaśnienie terminologii. W tym miejscu będziemy używać zamiennie terminów „Tendermint” i „Rdzeń Tendermint”, ponieważ koncentrujemy się wyłącznie na technologii. 

Jednak Tendermint to nazwa firmy (założonej przez programistę, który napisał oryginalną białą księgę, Jae Kwon), podczas gdy Tendermint Core to faktyczne oprogramowanie, nad którym firma pracuje. Mówiąc dokładniej, oprogramowanie składa się z dwóch głównych komponentów: głównego silnika konsensusu (Tendermint Core) i interfejsu aplikacji (ABCI).

Rdzeń Tendermint to system, który osiąga odporność na uszkodzenia. W gruncie rzeczy jest to duży, rozproszony komputer, który pokazuje każdemu ten sam stan, w tym samym czasie. Dopóki co najmniej dwie trzecie uczestników jest uczciwych, wszystko działa sprawnie. Ale tak działa prawie każdy blockchain, prawda? Co sprawia, że ten jest tak wyjątkowy?

Po pierwsze, zastosowany mechanizm konsensusu to mechanizm Proof of Stake (PoS). Dla każdego okresu wybierany jest losowy węzeł ze zbioru walidatorów. Ten węzeł musi następnie zaproponować następny blok (w czymś, co nazywa się systemem okrężnym). Jeśli inni walidatorzy są z tego zadowoleni, dodawany jest nowy blok, a łańcuch jest aktualizowany. Zakończenie jest natychmiastowe – w przeciwieństwie do Bitcoina czy Ethereum, nie musisz czekać na potwierdzenie, aby upewnić się, że transakcja jest prawidłowa.

Ale czekaj, jest coś jeszcze! Architektura Rdzenia Tendermint jest modułowa, a warstwa aplikacji jest oddzielona od warstwy konsensusu i warstwy sieciowej. Mówiąc prostym językiem, znaczy to, że możesz podłączyć własną warstwę aplikacji do stacku technologicznego. Nie musisz się martwić o nieznośne bodźce lub algorytmy konsensusu. 

Być może nie jest to zbyt ekscytujące dla użytkownika końcowego. Jednak dla programistów możliwość wykorzystania istniejącej platformy oznacza, że mogą od razu zacząć budować aplikacje bez bootstrappingu całej sieci. Dane z blockchaina mogą być przesyłane do zintegrowanej warstwy, umożliwiając programistom pisanie oprogramowania w dowolnym języku.

Magia dzieje się z czymś, co nazywa się Application Blockchain Interface lub po prostu ABCI. Pomyśl o tym jak o pinach GPIO, które dostajesz na komputerze Raspberry Pi. Możesz podłączyć do nich wszelkiego rodzaju komponenty innych firm, od diod LED po skomplikowane systemy zraszaczy dla swoich roślin. W podobny sposób ABCI definiuje granicę między blockchainem a aplikacjami działającymi na nim.


Co jest takiego wspaniałego w Rdzeniu Tendermint?

Oddzielenie interfejsu aplikacji i mechanizmu konsensusu pozwala na większą elastyczność szeregu zdecentralizowanych aplikacji w zakresie włączania dowolnych języków programowania do logiki biznesowej.

Chcąc zobaczyć namacalny przykład tego, co można zrobić, wystarczy spojrzeć na Ethermint: projekt, który wziął bazę kodu Ethereum, usunął mechanizm Proof of Work i podpiął Wirtualną Maszynę Ethereum do Tendermint.

To umożliwiło kilka interesujących rzeczy. Po pierwsze, programiści Ethereum mogą z łatwością przenosić swoje smart kontrakty na nowy silnik lub pisać nowe kontrakty w języku Solidity. Oprócz zapewniania funkcjonalności Ethereum, Ethermint działa jak Proof of Stake Ethereum, dając nam wgląd w to, jak może wyglądać implementacja Casper w Ethereum 2.0.


Współdziałanie Blockchaina

Obietnica „Internetu opartego na blockchainach” jest tym, co przyciąga wielu do protokołów opartych na Tendermint. Interoperacyjność to długo oczekiwany dodatek do przestrzeni krypto, ponieważ oznacza to, że setki pojedynczych blockchainów staną się wzajemnie kompatybilne.

Obecnie wiele pracy zostało włożone w Cosmos SDK, framework open-source, który pozwala każdemu stworzyć publiczny lub prywatny blockchain specyficzny dla aplikacji. Te blockchainy można następnie podłączyć do szerszej sieci Cosmos za pośrednictwem czegoś, co nazywa się Cosmos Hub, gdzie mogą komunikować się z innymi.

Wiele popularnych projektów zostało zbudowanych za pomocą Cosmos SDK, takich jak Binance Smart Chain (BSC), KAVA, Band Protocol, Terra i IRISnet.


Przemyślenia końcowe

Jako silnik blockchain, Tendermint przyciągnął uwagę wielu interesariuszy w sferze kryptowalut, od programistów po użytkowników końcowych. 

Jeśli oprogramowanie będzie nadal zyskiwać na popularności, może z powodzeniem służyć jako podstawa internetu opartego na blockchainach. Jak widzieliśmy, kilka projektów zostało już uruchomionych za pomocą Cosmos SDK, aby zrealizować tę wizję.

Masz więcej pytań odnośnie Tendermint, algorytmów konsensusu lub ogólnie technologii blockchain? Przejdź do Zapytaj Akademię, gdzie społeczność z pewnością na nie odpowie.