ТЛ;ДР

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

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


Введение

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

Неудивительно, что команды, стремящиеся создать сильнейшие экосистемы блокчейнов, исследовали ряд различных подходов. В этой статье мы рассмотрим один из таких подходов: Tendermint.


Что нужно знать о Тендерминте

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


Понимание архитектуры блокчейна

Tendermint — это своего рода стек блокчейнов. Опять же, такие вещи, как Биткойн и Эфириум, тоже. Помните, что речь идет не только о самой базе данных блокчейна, но и о одноранговой сети узлов, о том, как они взаимодействуют, а также о забавных вещах, которые вы также можете делать с транзакциями и смарт-контрактами. Цель здесь — добиться того, чтобы все согласились с состоянием (например, снимком базы данных), даже если они никому больше не доверяют.

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

Монолитная архитектура не подходит, если вам нужна гибкость. В противоположной модели (с модульной архитектурой) вы можете настраивать отдельные компоненты, не беспокоясь о том, что что-нибудь сломаете. При монолитной структуре вам необходимо гарантировать, что каждый компонент останется совместимым при обновлении одного из них. 

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


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

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

Эти участники не знают, лгут ли другие или изменяются ли сообщения, отправляемые между ними. Говорят, что система обладает византийской отказоустойчивостью (BFT), если участники могут прийти к согласию по набору фактов, даже при наличии этих проблем.

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


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

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

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


➟ Хотите начать работу с криптовалютой? Купите биткойны (BTC) на Binance!


Мятное ядро

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

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

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

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

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

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

Волшебство происходит с помощью так называемого интерфейса блокчейна приложений или просто 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 было создано множество популярных проектов, таких как BNB Smart Chain (BSC), KAVA, Band Protocol, Terra и IRISnet.


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

Будучи механизмом блокчейна, Tendermint привлек внимание множества заинтересованных сторон в сфере криптовалют, от разработчиков до конечных пользователей. 

Если программное обеспечение продолжит набирать обороты, оно вполне может послужить основой для Интернета блокчейнов. Как мы видели, с Cosmos SDK уже запущено несколько проектов для реализации этой концепции.