Что такое Tendermint
Содержание
Введение
Что нужно знать о Tendermint
Tendermint Core
Резюме
Что такое Tendermint
ГлавнаяСтатьи
Что такое Tendermint

Что такое Tendermint

Продвинутый
Опубликовано Jan 8, 2021Обновлено Sep 1, 2022
7m

Осторожно! Много текста.

У известных блокчейнов довольно негибкая структура, из-за чего разработчики встают перед выбором: создавать приложения внутри ограниченной среды или создать форк кода и свой собственный блокчейн. Однако сделать это не так просто – для создания блокчейна также необходимо запустить сеть и выбрать механизм консенсуса.

Tendermint – программное обеспечение с открытым исходным кодом для запуска блокчейнов, позволяющее создавать приложения на любом языке. Однако главное преимущество этой системы – возможность взаимодействовать с другими блокчейнами.


Введение

Создание сети криптовалюты или блокчейна требует гораздо больше усилий, чем просто инициализация базы данных. Для этого необходим баланс стимулов и компромиссов между безопасностью, децентрализацией и масштабируемостью.
Поэтому команды, стремящиеся создать сильнейшие экосистемы блокчейнов, рассматривают различные подходы. Один из таких подходов мы и обсудим в данной статье, а именно – Tendermint.


Что нужно знать о Tendermint

Если вы немного разбираетесь в блокчейнах, то вам будет легко разобраться и в Tendermint. Но прежде чем углубляться в детали, давайте вспомним некоторые основные понятия.


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

Tendermint – это разновидность стека блокчейнов, как и Биткоин с Ethereum. Речь идет не только о самой базе данных блокчейна, но и об одноранговой сети нод, их взаимодействии и возможностях использования транзакций и смарт-контрактов. Цель этой системы состоит в достижении консенсуса по состоянию (например, снимок базы данных), даже при отсутствии доверия.
Именно современные блокчейны сделали это возможным. Однако они зачастую полагаются на монолитную архитектуру: концепцию разработки программного обеспечения, где компоненты взаимосвязаны и взаимозависимы. То есть невозможно просто взять ее часть и подключить к другому компоненту.
Монолитная архитектура не способна обеспечивать гибкость. В модели противоположного типа (с модульной архитектурой) можно свободно настраивать отдельные компоненты, не беспокоясь о возможных поломках. При монолитной структуре необходимо убедиться, что каждый компонент остается совместимым при обновлении одного из них. 

Рассмотрев это различие, мы можем подробнее поговорить о протоколе Tendermint.


Византийская отказоустойчивость (BFT)

Одним из важнейших нововведений Биткоина стало решение проблемы под названием задача византийских генералов. Сейчас мы не будем рассматривать ее подробно (ознакомьтесь с нашей статьей о византийской отказоустойчивости, чтобы узнать больше). Лишь отметим, что в ней подробно описан сценарий взаимодействия участников в распределенной среде. 
Эти участники не могут быть уверены в том, что их не обманут или не изменят отправленные сообщения. Считается, что система обладает византийской отказоустойчивостью (BFT), если участники могут прийти к согласию по некоторым вопросам, даже с учетом этих проблем.
Очевидно, что в децентрализованной среде это имеет решающее значение. Для работы с криптовалютой, не обладающей византийской отказоустойчивостью, понадобится централизованная координация сторон, что противоречит характеру криптовалют. Как и многие другие цифровые валюты, Биткоин решает эту проблему с помощью алгоритма консенсуса Proof of Work (PoW).


Три уровня блокчейна

Итак, мы узнали разницу между монолитной и модульной архитектурой и поняли, что децентрализованные криптовалютные сети должны обладать византийской отказоустойчивостью. Теперь рассмотрим слои, из которых обычно состоит блокчейн: уровень приложения, уровень консенсуса и сетевой уровень.
На консенсусном и сетевом уровнях работают сетевые ноды, которые взаимодействуют друг с другом и пытаются согласовать набор фактов. На уровне приложения вы можете работать самостоятельно, прямо как в децентрализованных приложениях и смарт-контрактах в Ethereum или с пользовательскими транзакциями в Биткоине.



Tendermint Core

Скажем пару слов о терминологии. Мы будем использовать термины «Tendermint» и «Tendermint Core» как синонимы, поскольку нас интересует только техническая сторона. 

Строго говоря, Tendermint – это название компании (основана Джэ Квоном, разработчиком и автором исходного технического документа), а Tendermint Core – это программное обеспечение, над которым работает компания. Программное обеспечение, в свою очередь, состоит из двух основных компонентов: ядра консенсуса (Tendermint Core) и интерфейса приложения (ABCI).

Tendermint Core – это система, обеспечивающая отказоустойчивость. По сути, это большой распределенный компьютер, который показывает всем одно и то же состояние одновременно. Система будет работать без сбоев при условии честности как минимум двух третей участников, то есть почти каждого блокчейна. Что же делает эту систему такой особенной?

Во-первых, здесь используется механизм консенсуса Proof of Stake (PoS). В каждый период времени выбирается случайная нода из набора валидаторов. Затем эта нода должна предложить следующий блок (в так называемой циклической системе). Если другие валидаторы одобряют его, то новый блок добавляется и происходит обновление блокчейна. Весь процесс занимает всего мгновение. В отличие от Биткоина или Ethereum здесь нет необходимости ждать подтверждений, чтобы убедиться в действительности транзакции.

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

Вероятно, это не волнует конечного пользователя, но для разработчиков возможность использовать существующую среду означает, что они могут работать над созданием приложений, не беспокоясь об ограничениях сети. Данные из блокчейна можно передавать на интегрированный уровень, что позволяет разработчикам писать программное обеспечение на любом языке.

Отдельного упоминания заслуживает Application Block Interface, или ABCI. Его можно представить как контакт GPIO в компьютере Raspberry Pi. К нему подключаются компоненты сторонних производителей – от светодиодов до спринклерных оросительных систем. Точно так же ABCI помогает определить границу между блокчейном и приложениями, работающими на нем.


Преимущества Tendermint Core

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

В качестве наглядного примера рассмотрим Ethermint. Этот проект начал использовать код Ethereum, удалил механизм Proof of Work и закрепил виртуальную машину Ethereum поверх Tendermint.
Благодаря этому у нас появилось больше возможностей. Теперь разработчики Ethereum могут легко переносить смарт-контракты на новый движок или создавать контракты на языке Solidity. Обеспечивая функциональность Ethereum, Ethermint также действует как Proof of Stake 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 уже запущено несколько проектов, реализующих эту идею.