Азбука блокчейна: протоколы и алгоритмы консенсуса
Всем привет! Для тех, кто уже читал мои посты о блокчейне хочу сказать, что рад вас видеть снова на своей странице. Для тех, с кем мы еще не знакомы, меня зовут Валерий, я junior developer в западном стартапе, приятно познакомиться.
Я как-то уже писал о том, что мы собираем свою “Википедию” о технологиях на крипторынке. Сейчас мой фокус внимания смещен на все составляющие блокчейна, я продвигаюсь снизу вверх, чтобы лучше понять, как это все работает. И вот мне в связи с работой постоянно попадались некоторые обозначения, которые мне поначалу казались синонимами.
Речь идет о протоколах или алгоритмах консенсуса, на которых, собственно, и работает блокчейн. Но этим все не ограничивается, с этими протоколами связано немало терминов, объясняющих их работу. Честно говоря, чтобы изучить протоколы и их составляющие, я потратил довольно много времени и прошерстил немало ресурсов. И я подумал, что добру зря пропадать и решил сделать новую публикацию с моим исследованием.
Столпы, на которые опираются блокчейны
Каждый блокчейн основан на протоколе, а учитывая то, что каждый из блокчейнов служит своей цели, то и количество протоколов явно больше одного. Кстати, блокчейн – это не только про криптовалюты, эти «базы данных» используются и в других сферах и только набирают обороты.
У каждого блокчейна есть свой протокол как некий свод правил и действий, направленных на передачу данных. Блокчейн-протокол – это тот же набор правил, благодаря которому обеспечивается безопасность транзакций в сети того или иного блокчейна. Сети блокчейнов функционируют, потому что они децентрализованы. Это означает, что каждый узел в сети должен проверять транзакции. Узел обычно представляет собой компьютер или подобную систему.
В свою очередь существует алгоритм консенсуса – это механизм, который проверяет верность тех или иных правил, то есть он проверяет, что транзакция верна и протокол соблюден. Какими они бывают и чем отличаются между собой? Их на самом деле много, поэтому мы рассмотрим основные и часто распространенные сценарии.
PoW (Proof-of-Work — Доказательство работы)
Proof-of-Work – алгоритм консенсуса биткоина, породивший, можно сказать, новую профессию на рынке, а именно майнер. Смысл как всегда кроется в названии, для участия в транзакции членам сети требуется решить произвольную математическую головоломку по нахождению хэша (hash) и публично доказать проделанную работу, чтобы избежать обмана системы. Первый, кому посчастливилось найти правильное решение, получает возможность добавить блок в цепочку. Бонусом идет не только добавление нового блока, но и возможность получить награду за проделанную работу, это и является основным мотиватором для участия в данном протоколе.
Хеш-функция — функция, осуществляющая преобразование массива входных данных произвольной длины в выходную битовую строку установленной длины, выполняемое определённым алгоритмом. Преобразование, производимое хеш-функцией, называется хешированием. Результат преобразования называется «хешем».
Благодаря доказательству работы операции с биткоинами и другими криптовалютами могут обрабатываться в одноранговой сети безопасным образом без необходимости в третьей стороне. В данном протоколе можно выделить 2 недостатка:
- Процесс вычисления хэша требует большого количества энергии, которое только увеличивается по мере того, как к сети подключается все больше майнеров, а значит в нынешнее время уже не отвечает стандартам экологичности.
- Участники данного протокола заинтересованы больше в получении выгоды, чем в развитии сети и поддержании справедливости сети, что в будущем может сказаться на безопасности.
PoS (Proof-of-Stake — Доказательство доли)
Proof-of-Stake создан как альтернатива Proof-of-Work и стремится перекрыть его недостатки, например, огромное энергопотребление. Данный механизм уменьшает объем вычислительной работы, необходимой для проверки блоков и транзакций, которые обеспечивают безопасность блокчейна. Вычислительная мощность (проверка блоков) заменяется стейкингом, в результате чего способность майнинга человека рандомизируется сетью. Владельцы предлагают свои монеты в качестве залога за возможность проверки блоков и становятся «валидаторами». Валидатор проверяет правильность транзакций в блоке. Если все сделано правильно, они добавляет блок к цепочке блоков и получают награду за свой вклад. Однако, если валидатор предлагает добавить заведомо неверный блок, он теряет часть своих стейкинговых активов в качестве штрафа. Примеры использования – NXT, Tezos, Peercoin, Blackcoin.
Стейкинг — это процесс блокировки криптовалютных активов для получения вознаграждения или процентов.
Эти два протокола несомненно очень похожи, ведь их главная цель это добавление новых блоков в блокчейн, но можно выделить ключевое различие:
- Proof of Work (POW) использует метод конкурентной проверки для подтверждения транзакций и добавления новых блоков в блокчейн.
- Proof of Stake (POS) использует случайно выбранных участников сети для проверки транзакций.
DPoS (Delegated Proof-of-Stake — Делегированное доказательство доли)
Delegated Proof-of-Stake схож по работе с PoS, за исключением того, что он включает в себя механизм голосования и делегирования, чтобы стимулировать пользователей защищать сеть и проверять блоки с помощью монет, оставленных в качестве залога. Благодаря данному залогу пользователи могут участвовать в голосовании, где выбирают делегатов, которые будут ответственны за все аспекты проведения транзакций. Когда делегаты наконец избраны, важно, чтобы они смогли договориться о том, какие транзакции следует отклонить, а какие — одобрить. Применяется в Cosmos, Tron, EOS.
Делегаты — это пользователи в системе DPoS, которые контролируют управление в блокчейне. За делегатов голосуют другие пользователи. Делегат может предложить изменить размер отдельного блока или изменить количество свидетелей, которым платят за проверку блоков. Когда изменения предлагаются делегатом, пользователи блокчейна голосуют за принятие этих изменений.
Валидаторы — это узлы, которые могут проверять, что блоки, созданные разными свидетелями, соответствуют правилам консенсуса. Если пользователь становится валидатором блоков, все, что от него требуется, — это запустить валидатор и проверить сеть.
Свидетели — пользователи, которые несут ответственность за безопасность и проверку блокчейна. Чтобы стать свидетелем, пользователь должен получить достаточное количество голосов. Общее количество свидетелей на одном сервере может варьироваться от 21 до 101. Несмотря на то, что свидетель может удерживать определенные транзакции вне блока, он не может изменить информацию о транзакции. Среди свидетелей очень большая конкуренция, если свидетель теряет доверие пользователей, его место занимает другой.
Данный протокол отличается особой надежностью. Алгоритмы консенсуса лежат в основе каждой сети блокчейнов. Использование правильного алгоритма обеспечивает быструю и безопасную проверку транзакций, наряду с меньшим потреблением энергии, чем системы PoW, DPoS также требует меньше времени, чем системы PoS. Плюс участники данной сети очень мотивированы тем, что сеть хорошо платит за исполнение своих обязанностей.
Заключение
Благодаря конкуренции риск мошенничества минимален, так как все пользователи заинтересованы в работе своей сети, а также, естественно, хотят занять лучшее в системе, поэтому “прогнивший винтик” сразу убирается. Все в нем выглядит очень естественно, прям так как и должно быть в жизни. В данном посте я рассмотрел не все существующие протоколы, но решил начать с этого, чтобы не перегружать ни себя, ни читателей. Поэтому в качестве заключения я хотел бы просуммировать полученную информацию в табличке ниже.
Сравнение PoS, PoW, DPoS
Умные правила. Что нужно знать про DeFi-протоколы и смарт-контракты
Понимание принципов сферы децентрализованных финансов позволяет криптоинвесторам находить новые прибыльные ниши. Доступно рассказываем о главных терминах и компонентах работы финансовых сервисов, работающих на блокчейне

Сфера децентрализованных финансов (DeFi) стала новаторской концепцией в финансовой индустрии, предложив рынку систему торговли, обмена или кредитования под залог криптоактивов напрямую между пользователями без участия посредников. Индустрия построенных на блокчейне сервисов постоянно эволюционирует, и понимание базовых принципов работы важно для инвесторов, чтобы находить прибыльные рыночные ниши.
Основные компоненты
В контексте децентрализованных финансов под протоколом подразумевают программный код, который регулирует то, как используются цифровые активы в блокчейн-сети. Используя смарт-контракты и виртуальные машины (VM), DeFi-протоколы управляют биржами (DEX), позволяют пользователям проводить операции с кредитами в криптоактивах или, например, запускать децентрализованные автономные организации (DAO).
Компьютерные программы запускают смарт-контракты в автоматическом режиме. При наступлении заранее определенных событий смарт-контракты выполняют действия, не требующие участия стороннего арбитра. В конечном итоге это формируется в децентрализованные приложения (dApps). Их код находится в блокчейне, который, по сути, является распределенной базой данных. Ethereum выступает безоговорочным лидером среди программируемых блокчейн-сетей в сфере DeFi, поэтому его программная среда или виртуальная машина (Ethereum Virtual Machine, EVM) чаще всего применяется для развертывания сервисов. Тем не менее, DeFi-протоколы или децентрализованные приложения (dApps) существуют во всех программируемых блокчейн-сетях за пределами биткоина (Cardano, Aptos, Solana и других). Биткоин был намеренно ограничен в возможности использования скриптов, и надстройки вроде сервисов Omni или Stacks реализуются для первой криптовалюты гораздо сложнее. В отличие от этого, другие блокчейны были изначально спроектированы как программируемые сети для развертывания DeFi-протоколов.
Правила и алгоритмы
В компьютерных сетях протоколы управляют обработкой и форматированием данных между узлами этих сетей. Блокчейн-сети добавляют дополнительный элемент в виде смарт-контрактов, которые определяют условия обработки и исполнения данных. Протоколы устанавливают правила взаимодействия, а исполняют их алгоритмы. Алгоритмы, в свою очередь, выполняют инструкции, которые обеспечивают соблюдение правил протокола.
- Пользователь вносит средства в смарт-контракт, в котором хранится ликвидность пары токенов USDT/ETH.
- Другой пользователь берет займ в USDT из пула ликвидности этой пары токенов.
- Согласно установленному правилу смарт-контракта, для получения USDT заемщик должен внести залог.
- Алгоритм отмечает, внесен ли соответствующий залог. Аналогичным образом алгоритм отмечает, превышает ли стоимость займа размер залога.
- Если, например, соотношение стоимости кредита к его стоимости (loan-to-value, LTV) составляет 95%, то для получения кредита в размере 10 000 USDT необходимо внести 10 500 USDT. Если произойдет так, что стоимость USDT упадет, алгоритм ликвидирует залог, и поставщик ликвидности не пострадает.
Таким образом DeFi-протоколы используют преимущества как смарт-контрактов (правила), так и алгоритмов (активное исполнение) для поддержания работы системы децентрализованных финансов. Но еще одним важным компонентом для работы системы DeFi являются виртуальные машины.
Что такое виртуальные машины (VM)
Виртуальная машина (ВМ), которую также называют средой исполнения или программной средой, является движком DeFi. В видеоиграх подобные движки используются для объединения всех игровых компонентов (аудио, видео, текста, текстур, анимации, физики) для создания интерактивного игрового процесса. Точно так же на виртуальных машинах работают смарт-контракты, точнее, алгоритмы, которые выполняют смарт-контракты.
В Ethereum существует виртуальная машина Ethereum Virtual Machine (EVM) — программный слой поверх блокчейна Ethereum, выполняющий код смарт-контрактов. При взаимодействии с децентрализованной биржей, такой как Uniswap, или кредитным протоколом кредитования, таким как Aave, EVM выполняет скрипты (смарт-контракты) на основе данных, полученных от пользователя.
Для создания всех смарт-контрактов в Ethereum используется язык программирования Solidity. Этот код компилируется в EVM для исполнения. Аналогично, когда программисты разрабатывают видеоигры, они используют язык C++ для компиляции скриптов, которые исполняются движком Unreal Engine.
Программируемость и взаимодействие
В отличие от биткоина, лишенного поддержки скриптов, Solidity, наряду с другими языками программирования, обеспечивает высокую степень программируемости смарт-контрактов. Это крайне важно, поскольку сложность внедрения смарт-контрактов часто становится причиной того, что та или иная блокчейн-сеть остается невостребованной.
Блокчейн Solana часто отмечается как более дружественный к разработчикам, благодаря исчерпывающей документации по созданию смарт-контрактов в своей экосистеме. Это касается как самих концепций DeFi, так и их реализации с помощью языка программирования Rust.
Помимо относительной простоты программирования, DeFi-протоколы ценятся за их способность к взаимной интеграции. Это означает, что смарт-контракты могут взаимодействовать между различными протоколами, создавая тем самым новый сервис.
Например, протокол кредитования Alchemix использует другой DeFi-протокол — Yearn Finance — для создания стратегий генерации доходности при автопогашении кредитов.
Безопасность и аудит
Когда речь заходит о безопасности DeFi протоколов, ситуация принимает более угрожающий характер. В 2022 году хакеры украли криптоактивы на сумму более $3 млрд через уязвимости тех или иных смарт-контрактов.
Блокчейн выступает в качестве неизменяемого реестра, поскольку каждый блок данных записывается в хронологическую последовательность. Затем эти данные синхронизируются с сотнями тысяч других узлов сети и проверяются на достоверность, образуя одну гигантскую распределенную базу данных. Подмена одного блока означает создание ложного блока, который будет отвергнут всей сетью. Поскольку блоки содержат смарт-контракты, хранящие информацию, такая децентрализованная структура делает DeFi-протоколы защищенными от взлома.
Но этот уровень защиты распространяется на уже записанные данные (транзакции), а не на активные смарт-контракты. Если код смарт-контракта написан непрофессионально и не проходит аудит третьими лицами, он не защищен от возможных уязвимостей. Зачастую именно ошибки программистов приводят к уязвимостям или некорректной логике работы смарт-контрактов, чем и пользуются злоумышленники.
Приложения и протоколы
Термины «DeFi-протокол» и «dApp» (децентрализованное приложение) часто используются как взаимозаменяемые. Однако следует учитывать некоторые важные различия.
dApp — это пользовательский веб-интерфейс, который позволяют соединить браузер пользователя с DeFi-протоколом, его смарт-контрактами и алгоритмами, размещенными в блокчейн-сети. Другими словами, DeFi-протокол может существовать и без веб-интерфейса. Такие протоколы действительно можно полноценно использовать, но для этого потребуются глубокие технические навыки.
Если, например, у такого кредитного протокола, как Aave, пропадет веб-интерфейс, его ликвидность сойдет на нет, потому что подавляющее большинство пользователей не станет специально изучать язык программирования, чтобы получить к нему доступ. Суть сферы DeFi заключается в том, чтобы стать удобной для конечного пользователя, а для этого нужны понятные интерфейсы, сайты, и приложения.
Когда в 2022 году власти США наложили санкции на криптовалютный микшер Tornado Cash, они перекрыли доступ к сайту проекто и ограничили популярные криптосервисы от взаимодействия с ним. Но смарт-контракты, на которых этот протокол работал, так и остались нетронутыми и по сей день работают в блокчейне Ethereum. Когда власти говорят, что ограничивают доступ к тому или иному DeFi-протоколу, они говорят именно про пользовательские интерфейсы.
«РБК-Крипто» запустил мониторинг криптовалютных обменников. Выбирайте надежный обменный сервис с выгодным курсом на yourcryptoex.ru или в удобном телеграм-боте.
Что такое протокол Биткоин?

Биткоин – одна из форм цифровой наличности, позволяющая осуществлять онлайн-платежи между двумя людьми – продавцом и покупателем. Работает по принципу «распределённой бухгалтерской книги», в которую вписываются транзакции и сальдо счетов. Протокол Bitcoin работает на основе принципов криптографии и определяет процедуру формирования, подтверждения и записи каждого отдельно взятого денежного перевода. Нет нужды приводить конкретный программный код – он находится в свободном доступе в виде «белой книги» — «Bitcoin: A Peer-to-Peer Electronic Cash System»». Однако понять его особенности можно, разобравшись в порядке формирования транзакций и дальнейших действий участников блокчейна с ними.
Биткоин-транзакции
- Уникальный идентификатор, образующийся при двойном пропускании информации через хэш-функцию SHA256.
- Ввод. Или Биткоин-адрес, который определяет источник биткоинов, подлежащих переводу. Чаще всего является выводом из предыдущих транзакций и используются для проверки реальности отправителя и наличия на его счету необходимых средств.
- Количество биткоинов, которое должно быть переведено на другой адрес
- Вывод. Или Биткоин-адрес получателя.
Вывод одной транзакции может использоваться в качестве ввода для другой – это создаёт непрерывность цепочки и позволяет отслеживать путь перемещения биткоина по блокчейну.
Проверка переводов
Все транзакции сети блокчейн обязаны быть преверными на подлинность, направленность и наличие реальных криптовалютных активов. Данный процесс не является централизованным – в нём участвуют все узлы сети.
Учётная запись, которая инициирует процесс, идентифицируется по биткоин-адресу и паре ключей – закрытому и открытому. Для прохождения проверки подлинности, отправитель помечает криптовалютный перевод цифровой подписью, созданной на основе закрытого ключа. А любой узел сети может с помощью открытого ключа, который известен всем, может подтвердить или опровергнуть подлинность.
Криптовалютные переводы не вписываются в блокчейн поодиночке – они формируются в списки, называемые блоками. Они связаны между собой цепочкой – блокчейном. Все те транзакции, что уже были отправлены в сеть, но не добавились в список и не были подтверждены, являются обратимыми.
Майнеры проверяют подлинность каждого денежного перевода и добавляют его в блок. Каждый из них должен получить определённое количество независимых подтверждений.
На каждом компьютере, подключённом к сети, хранится актуальная копия всего блокчейна, которая обновляется по мере поступления новой информации. В процессе формирования нового блока, нужно дополнительно решить особую математико-криптографическую задачу, называемую «доказательство работы». Тот майнер, который справится с ней первым, получает вознаграждение после подтверждения другими узлами правдивости его расчётов.
В чём заключается протокол?
С точки зрения процесса создания и валидации транзакций, протокол Биткоин можно сформулировать так:
- Каждая новая транзакция передаётся на все узлы сети.
- Каждый узел собирает все новые переводы в блок.
- Каждый узел пытается первым найти решение хэша, чтобы осуществить получить доказательство работы.
- Первый узел, который находит решение, передаёт готовый блок в сеть.
- Все узлы проверяют правильность вычислений и принимают, либо не принимают, новый блок.
- Начинается работа над новым блоком. Хэш только что вычисленного добавляется в новый, тем самым гарантируя непрерывную последовательность.
Итого
Протокол Биткоин основан на совместном ведении и создании «распределённой учётной книги биткоинов». Каждая транзакция намертво фиксируется в новом блоке, который подтверждается только при подтверждении достоверности всех криптовалютных переводов и вычислении правильной хэш-суммы. Все процессы проверяются всеми участниками сети – в этом и заключается алгоритм консенсуса.
- Криптовалюта (27)
- Блокчейн (32)
- Криптоэкономика (40)
- Безопасность (30)
- Финансы и инвестиции (22)
Что такое протоколы 2-го уровня в блокчейне?

В процессе развития блокчейна возникла потребность в дополнительных надстройках к базовой сети. Мы рассмотрим существующие дилеммы и сложности, способствующие возникновению таких протоколов, а также приведем примеры наиболее успешных из них.
Что представляет собой «трилемма масштабируемости»?
Существуют три основные характеристики, напрямую влияющие на полезность блокчейна для пользователей: производительность, децентрализация и безопасность. Главная проблема заключается в том, что они частично противоречат друг другу, поэтому максимизировать все три характеристики невозможно. В большинстве случаев разработчики концентрируются на двух основных (выбор зависит от каждого конкретного блокчейна) характеристиках, а третью оптимизируют до той степени, которая возможна без отрицательного влияния на установленные приоритеты. Спор в отношении баланса между масштабируемостью с одной стороны и децентрализацией и безопасностью с другой привели к возникновению первого хардфорка биткоина — Bitcoin Cash. Сторонники Bitcoin Cash считали, что увеличение размера блока (а значит, и повышение количества транзакций в секунду) позволит оптимизировать блокчейн. При этом другие участники блокчейн-сообщества выступили против такой инициативы, т. к. она отрицательно влияла на децентрализацию и стабильность сети. Дальнейшая динамика BTC и BCH подтвердила правильность приоритизации безопасности над производительностью для главной криптовалюты (в то время как многие альткоины могут отдавать предпочтение большей масштабируемости как их конкурентному преимуществу).
Другой подход к повышению масштабируемости, используемый такими криптовалютами, как Ziliqa, Ontology и QuarkChain, — шардинг, предполагающий разделение данных сети на несколько независимых сегментов. Тем не менее шардинг приводит к возникновению «угрозы 1%», когда злоумышленники, завладевшие даже незначительной частью распределённой, но разделенной сети имеют возможность нарушить ее стабильную работу. По этим причинам блокчейны, ставящие в приоритет безопасность и децентрализацию (например, биткоин), вынуждены искать альтернативные решения проблемы. И наиболее эффективным альтернативным вариантом на сегодняшний день выступают протоколы второго уровня.
Протоколы второго уровня и их виды
Данные протоколы представляют собой надстройки над существующими сетями в блокчейне. Они могут выполнять максимальное количество транзакций в секунду с минимальной нагрузкой на основную сеть. Более того, любые потенциальные уязвимости таких протоколов не будут создавать дополнительных угроз или рисков для основной сети. Один и тот же блокчейн может иметь несколько протоколов второго уровня. Таким образом, пользователи будут иметь максимальный выбор без каких-либо проблем для децентрализации и безопасности.
Протоколы второго уровня могут быть реализованы с помощью двух основных подходов: каналов состояния и сайдчейнов, которые имеют свои особенности, а также сильные и слабые стороны. Канал состояния обеспечивает возможность совершения неограниченного количества транзакций до включения в основной блокчейн. Такие операции являются полностью приватными, и другие лица не имеют к ним доступа. Основное преимущество для пользователей — возможность отправлять платежи друг другу практически мгновенно и с минимальными затратами. Помимо поддержки транзакций, они также обеспечивают «обновление состояния» в сети. Т. к. соглашение между участниками протокола второго уровня заключается вне основного блокчейна, они нуждаются в системе проверки и подтверждения операций. Она обеспечивается с помощью смарт-контрактов. После окончания всех обменов между данными двумя участниками, чистый баланс отражается в базовом блокчейне. Протоколы второго уровня часто включают таймер, отсчитывающий время от последней транзакции. После того, как предельное время истекло, канал состояния закрывается. Наиболее популярные примеры каналов состояния: Lightning Network, Celer Network, Plasma и другие.
Сайдчейны предлагают возможность использования и хранения токенов и цифровых активов одного блокчейна в другом. В случае необходимости или при выполнении определенных условий, токены могут быть перенаправлены в изначальный блокчейн. Двусторонняя связь между основным и вспомогательными блокчейнами способствует достижению максимальной оперативности и стабильности. Сайдчейны обеспечивают безопасность с помощью собственного майнинга, и низкая майнинговая активность может создавать дополнительные сложности для защиты сайдчейна от возможных атак. В любом случае, проблемы сайдчейна не будут оказывать никакого отрицательного воздействия ни на основной, ни на вспомогательный блокчейн. При использовании сайдчейна коины на некоторое время блокируются, чтобы сделать невозможным их повторное использование. Только после окончания перевода эквивалентной суммы в дополнительный блокчейн держатель монет получает возможность их тратить по своему усмотрению. Эффективная работа сайдчейнов предполагает бесперебойную работу всех используемых блокчейнов. Наиболее популярные примеры сайдчейнов: Polygon, Rollups, Ardor и другие.
Lightning Network
Lightning Network — самый известный и популярный протокол второго уровня для блокчейна биткоин. Данное решение обеспечивает минимальные издержки и максимальную масштабируемость при возможности использовать преимущества основного блокчейна, включая его очень высокую децентрализацию и надежность работы.