Обяснение на Tendermint
Съдържание
Въведение
Какво трябва да знаете за Tendermint
Tendermint Core
Заключителни мисли
Обяснение на Tendermint
НачалоСтатии
Обяснение на Tendermint

Обяснение на Tendermint

Напреднал
Published Jan 8, 2021Updated Jan 6, 2022
6m

Резюме

Блокчейните, които познавате и обичате, имат доста неподвижна структура. Като разработчик това ви дава две възможности: да изградите приложения в ограничителна среда или да разклоните кода и да направите своя собствена верига. Създаването на своя собствена верига обаче не е толкова лесно – трябва да стартирате също и мрежа и да разберете какъв консенсусен механизъм да използвате.

Tendermint е софтуер с отворен код за стартиране на блокчейн, който ви позволява да пишете приложения на всякакъв език. Още по-добре, те могат да комуникират с други блокчейни.


Въведение

Създаването на мрежа от криптовалута или блокчейн отнема много повече усилия, отколкото просто инициализиране на база данни. Това изисква деликатен баланс от стимули и алтернативи между сигурност, децентрализация и мащабируемост.
Не е изненадващо, че редица различни подходи са изследвани от екипи, които искат да изградят най-силните блокчейн екосистеми. В тази статия ще разгледаме един такъв подход: Tendermint.


Какво трябва да знаете за Tendermint

Голяма част от Tendermint ще ви изглежда позната, ако знаете малко за блокчейн. Нека обобщим някои ключови концепции, преди да се задълбочим.


Разбиране на блокчейн архитектурата

Tendermint е вид блокчейн стек. От друга страна Биткойн и Ethereum също са. Не забравяйте, че не става въпрос само за самата блокчейн база данни, а за peer-to-peer мрежа от възли, как си взаимодействат и забавните неща, които можете да правите и с трансакции и интелигентни договори. Целта тук е всички да се съгласят за състояние (като моментна снимка на базата данни), дори и да не се доверяват на друг.
В по-голямата си част днешните големи блокчейни са измислили тайния сос, който прави това възможно. Те обаче често разчитат на монолитна архитектура: концепция за софтуерно инженерство, при която компонентите са взаимносвързани и взаимозависими. Не можеш просто да вземеш част от него и да го включиш в нещо друго.
Монолитната архитектура не е добра, ако искате гъвкавост. В противоположния тип модел (с модулна архитектура) можете да настройвате отделни компоненти, без да се притеснявате, че ще счупите нещо. С монолитната структура трябва да гарантирате, че всеки компонент остава съвместим, когато надграждате единичен компонент. 

Сега, когато разбираме това разграничение, можем да поговорим малко повече за протокола Tendermint.


Толерантност към византийска грешка (BFT)

Може би знаете, че голямата иновация с Биткойн е, че решава нещо, наречено Проблема на византийските генерали. Няма да навлизаме в подробности за проблема (при интерес вижте нашата статия за Толерантност към византийска грешка). Всичко, което трябва да знаете, е, че той описва сценарий, при който участниците трябва да общуват в разпределена среда. 
Тези участници не знаят дали другите лъжат или дали съобщенията, изпратени между тях, са били променени. Твърди се, че системата има Толерантност към византийска грешка (BFT), ако участниците могат да се споразумеят за набор от факти, дори и с тези проблеми.
Очевидно е, че в децентрализирана среда правилното постигане на това е от решаващо значение. Криптовалутите, които не са толерантни към византийска грешка, всъщност не работят – ще ви е необходима някаква централизирана координация на страните, която осуетява целта. Подобно на много дигитални валути, Биткойн заобикаля това, като използва алгоритъм за консенсус за Доказателство за работа (PoW).


Трите слоя на блокчейн

Така че ние знаем разликата между монолитна/модулна архитектура и знаем, че децентрализираните мрежи за криптовалута трябва да бъдат толерантни към византийски грешки. Нека споменем слоевете, които обикновено виждаме в блокчейн: приложният слой, консенсусният слой и мрежовият слой.
Консенсусните и мрежовите слоеве са мястото, където имате мрежови възли, които говорят един с друг и се опитват да се споразумеят по набор от факти. Приложният слой е мястото, където можете да правите неща сами – помислете за децентрализирани приложения и интелигентни договори в Ethereum или персонализирани трансакции в Биткойн.



Tendermint Core

Първо, бързо изясняване на терминологията. Тук ще използваме термините „Tendermint“ и „Tendermint Core“ взаимозаменяемо, тъй като сме фокусирани само върху технологията. 

Въпреки това, Tendermint е името на компанията (основана от разработчика, който е написал оригиналната бяла книга, Jae Kwon), докато Tendermint Core е действителният софтуер, върху който работи компанията. По-конкретно, софтуерът има два основни компонента: основния му консенсусен двигател (Tendermint Core) и интерфейса на приложението (ABCI).

Tendermint Core е система, която постига толерантност към грешка. По същество това е голям, разпределен компютър, който показва на всички едно и също състояние по едно и също време. Докато поне две трети от участниците са честни, всичко работи гладко. Но това е при почти всеки блокчейн, нали? Какво го прави толкова специален?

Първо, използваният консенсусен механизъм е Доказателство за залог (PoS). За всеки период се избира произволен възел от набор от валидатори. След това този възел трябва да предложи следващия блок (в нещо, наречено кръгова система). Ако другите валидатори са доволни от новия блок, той се добавя и веригата се актуализира. Крайността е мигновена – за разлика от Биткойн или Ethereum, няма нужда да чакате потвърждения, за да сте сигурни, че вашата трансакция е валидна.

Но чакайте, има още! Архитектурата на Tendermint Core е модулна, като приложният слой е отделен от консенсусния и мрежовия слой. Това означава, че можете да включите свой собствен слой на приложението в стека. Няма нужда да се притеснявате за досадни стимули или консенсусни алгоритми. 

Може би това не е твърде вълнуващо за крайния потребител. Но за разработчиците, способността да използват съществуваща рамка означава, че могат да се потопят направо в изграждането на приложения, без да зареждат цяла мрежа. Данните от блокчейна могат да се прехвърлят към интегрирания слой, което позволява на разработчиците да пишат софтуер на всеки език.

Магията се случва с нещо, наречено Application Blockchain Interface, или просто ABCI. Мислете за това като за GPIO пинове, които получавате на компютър Raspberry Pi. Можете да свържете всякакви компоненти на трети страни към тях, от светодиоди до сложни спринклерни системи за вашите растения. По подобен начин ABCI е това, което дефинира границата между блокчейна и приложенията, работещи върху него.


Кое му е хубавото на Tendermint Core?

Разделянето на интерфейса на приложението и механизма за консенсус позволява по-голяма гъвкавост за редица децентрализирани приложения за включване на всякакви езици за програмиране в тяхната бизнес логика.

За осезаем пример за това какво може да се направи, трябва само да погледнете Ethermint: проект, който взе кодовата база на Ethereum, премахна механизма за доказателство за работа и закрепи виртуалната машина Ethereum върху Tendermint.
Това направи възможни няколко интересни неща. Първото е, че разработчиците на Ethereum могат с лекота да прехвърлят своите интелигентни договори към новия двигател или да напишат нови договори на езика Solidity. Освен предоставянето на функционалност на Ethereum, Ethermint действа като Ethereum за доказателство за работа, като ни дава представа как може да изглежда реализацията на Casper в Ethereum 2.0.


Оперативна съвместимост на блокчейн

Обещанието за „интернет от блокчейни“ е това, което привлича мнозина от базираните на Tendermint протоколи. Оперативната съвместимост е дългоочаквано допълнение към пространството за криптовалути, тъй като това означава, че стотици отделни блокчейн ще имат кръстосана съвместимост.
Понастоящем много работа е вложена в Cosmos SDK, рамка с отворен код, която позволява на всеки да създаде публичен или частен блокчейн за специфично приложение. След това тези блокчейни могат да бъдат включени в по-широката мрежа на Cosmos чрез нещо, наречено Cosmos Hub, където могат да комуникират с други.
С Cosmos SDK са създадени множество популярни проекти, като Binance Smart Chain (BSC), KAVA, Band Protocol, Terra и IRISnet.


Заключителни мисли

Като блокчейн двигател, Tendermint привлече вниманието на множество заинтересовани страни в сферата на криптовалутите, от разработчици до крайни потребители. 

Ако софтуерът продължи да набира популярност, той може да послужи като гръбнак за интернет от блокчейни. Както видяхме, шепа проекти вече са стартирани с Cosmos SDK за реализиране на тази визия.