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

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

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

Proof-of-Work (PoW). Что такое майнинг?

Для начала рассмотрим самый известный алгоритм консенсуса – Proof-of-Work, как следует из названия, - это механизм достижения соглашения между пользователями сети с публичным доказательством проделанной работы. Процесс достижения консенсуса по данному алгоритму тесно связан с майнингом.

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

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

Добавление новой транзакции требует от сети затрат энергии на решение определённой криптографической задачи. Не получится просто добавить в блокчейн очередной блок – надо еще потратить очень много реальных денег, например, на оплату электричества, покупку оборудования, необходимого для решения этих крипто-задач. К слову, о мошенничестве в блокчейн-сетях. При таком устройстве системы оно просто-напросто невыгодно.

Давайте подробней рассмотрим цикл добавления вашей транзакции в блокчейн.

Вы переводите свою криптовалюту на другой адрес в блокчейне. Информация о вашей транзакции помещается в общий реестр, который называется MemPool. К нему имеют доступ все майнеры сети. Данный список постоянно пополняется новыми транзакциями, оттуда майнеры берут себе то количество операций, которое могут обработать. Затем для каждой транзакции решают сложную криптографическую задачу. Если майнеру удаётся решить задачу, то он отправляет решение на устройства других участников сети. Остальные проверяют, верно ли решена задача и правильно ли сконструирована цепочка блокчейна. Если всё верно, блок добавляется в блокчейн. Здесь стоит сказать о том, что в блокчейн добавляется блок, подготовленный майнером, который первым решил задачу. Дублирование блоков невозможно, иначе возникнет двойное расходование. (Ситуация в сети блокчейн, когда кто-то пытается отправить один биткоин двум получателям одновременно. Однако, когда транзакция подтверждена, отправить те же самые биткоины уже другому получателю невозможно. Чем больше подтверждений есть у каждой отдельной операции, тем сложнее организовать двойное расходование)

Скорость решения задачи зависит от мощности оборудования. Майнер с наибольшей вычислительной мощностью с большей вероятностью решит задачу первым.

Для удобства восприятия информации мы составили для вас небольшую инфографику:

Итак, какую же задачу решает майнер? Чтобы это понять, разберём сначала более подробно, что такое хэш-функция.

Хэш-функция.

Криптографическая хэш-функция - это математический алгоритм, который отображает данные произвольного размера в битовый массив фиксированного размера. Это функция вида F(X+N) = H, где X – любой набор символов неограниченной длины (информация, записанная в блоке), H – это значение хэш-суммы, а N – свободная переменная, в криптографии эту переменную называют Nonce, она представляет собой любое значение от 1 до 4 миллиардов. Результатом шифрования или хэширования является «хэш-сумма», многие называют его просто хешем, он представляет собой набор цифр , в котором зашифрована информация.

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

1. Детерминированность. (В математике – определяемость) Это значит, что одно и то же сообщение с точностью до символа приводит к одному и тому же хеш-значению.

2. Уникальность. Не существует двух разных сообщений с одинаковым хэш-значением. Обратите внимание на это свойство, оно является базовым и наиболее важным. Приведём пример для понимания. Возьмём произведение Теодора Драйзера «Финансист», проведём шифрование, а затем во всём произведении уберём всего одну запятую, и получим совершенно другое значение хэш-суммы. Можете попробовать сами по этой ссылке.

3. Быстрота вычисления. Хэширование позволяет достаточно быстро вычислить нужный хэш для большого объема информации.

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

Алгоритмы хэширования.

Существует множество алгоритмов хеширования – MD5 (Message Digest 5, генерирует 128-битный ключ, что составляет 16 байт данных. Функции и классы для работы с MD5 реализованы во всех языках программирования. MD5 используется на многих веб-сайтах и веб-сервисах.);

SHA-1 (Secure Hash Algorithm 1, генерирует 160-битный ключ, что составляет 20 байт данных. Этот алгоритм считается более надежным, по сравнению с MD5, но и более сложным и выполняется немного медленней);

SHA-2(256), SHA-2(512) и т.д. (Secure Hash Algorithm 2, это вторая версия алгоритма SHA-1, алгоритм может генерировать 256-, 384-, 512-битный ключ, что составляет 32, 48 или 64 байта данных. Этот алгоритм считается более надежных, по сравнению с предшественниками.);

В блокчейне биткоина используется алгоритм SHA-2(256). Число 256 в названии алгоритма означает, что на выходе мы получим строку фиксированной длины 256 бит независимо от того, какие данные поступят на вход.

Скорее всего, к данному этапу статьи у вас возникло пару вопросов: неужели миллиарды транзакций, проведённых в биткоинах, не перебрали все наборы всего лишь 256 битной строки? И почему в начале статьи говорится о строке цифр, а в хеш-значениях присутствуют буквы?

Итак, ответ на первый: ну конечно, нет! Ведь, количество комбинаций равняется 2 в 256 степени, что приблизительно равно 1,158×1077. И да, значение хеша записывается в 16-ричной системе счисления, в которой присутствуют буквы. (В обычной же жизни мы с вами используем 10-тичную, кстати, вот вам конвертер, попробуйте сами)

Криптографическая задача.

Давайте разберёмся, что за задача стоит перед майнерами в сетях блокчейна. Итак, вся информация, находящаяся в блоке (Х), подлежит шифрованию посредством алгоритма SHA-2(256), в ходе чего мы получаем хэш-сумму (H). Алгоритм блокчейна устанавливает некоторую минимальную границу значения хэша, назовём это число Y. Майнер в свою очередь считает хэш-сумму всего блока и сравнивает её с минимальной границей Y. Если условие H<Y выполняется, то задача считается решённой, если же нет – то майнер меняет свободную переменную Nonce (N) и снова применяет алгоритм SHA-2(256) до тех пор, пока условие задачи не выполнится. Если вы внимательно изучили свойства хэш-функций, о которых я писал выше, то поняли, что при изменении N на единицу значение хэша полностью меняется, причём, меняется непредсказуемо - нет никакой закономерности между тем, как изменился Nonce, и тем, как изменится результат хэш-функции. По крайней мере, пока что никому не удалось такую закономерность найти. Поэтому все майнят простым перебором Nonce.

Proof-of-Stake (PoS). Что такое стейкинг?

Алгоритм Proof-of-Stake – это механизм достижения соглашения между пользователями с доказательством доли владения, по принципу своего действия он похож на голосование среди акционеров компании — наибольшую власть получает тот, у кого больше всех акций.

Стейкинг – это процесс, при котором пользователи хранят криптовалюту и обеспечивают работоспособность блокчейна.

Как происходит транзакция?

Вы совершаете транзакцию, все транзакции автоматически отправляются в пулы и распределяются между валидаторами посредством смарт-контрактов. Узлы, называемые валидаторами стейкают криптовалюту. Размер монет в стейкинге называется ставкой.

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

Чтобы стать валидатором Ethereum, например, вам придётся внести в стейкинг 32 ETH, чтобы стать полным валидатором или немного ETH, чтобы присоединиться к пулу, запустить «Eth1», клиент Mainnet, либо серверный API, затем отправлять пакетные транзакции в новый блок или проверять работу других валидаторов.

Для того, чтобы валидировать транзакции на блокчейне Solana нужен мощный сервер, работающий на 12/24 ядерном процессоре с частотой 2,8 ГГц или выше. Также будут затраты на оплату за голосование, которые можгут составлять 1 SOL в день. Возможен стейкинг не менее 5000 токенов SOL или 50 000 SOL от делегатов.

Отличия стейкинга от майнинга.

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

Отличия двух самых популярных алгоритмов консенсуса представлены ниже:

Стейкинг постепенно начинает вытеснять традиционный майнинг, всё больше новых блокчейн проектов кладут в свою основу алгоритм Proof-of-Stake ввиду более простого механизма заработка для пользователей и большей экологичности и энергоэффективности.

В данный момент команда разработчиков блокчейна Ethereum работает над программным кодом, который позволит второй по капитализации и популярности криптовалюте Ether перейти с PoW на PoS.

«Майнинг требует большей включенности в процесс, надо постоянно держать руку на пульсе. В случае стейкинга процесс упрощен и открыт для большего числа участников блокчейн-сообщества, порог входа в стейкинг ниже, чем порог входа в майнинг», - отметил Максим Крупышев, СЕО криптоплатежной системы Coinspaid.

Альтернативные алгоритмы консенсуса.

Мы рассмотрели два самых популярных алгоритма консенсуса, существуют также менее применяемые механизмы. Приведём их для вашего ознакомления, но подробно останавливаться не будем.

Proof-of-Authority (PoA, Процедура прихода к консенсусу с доказательством права) - Процедура консенсуса на основе разграничения прав пользователей;

Delegated Proof-of Stake (DPoS) – идея состоит в том, что каждый пользователь может голосовать за представителей – тех, кто одобряет транзакции.

Proof of Importance (PoI) – является модернизированной версией PoS. Помимо рассмотрения количества участников, владеющих валютой, алгоритм анализирует их поведение: где, когда и насколько часто монеты ими передаются.

Hybrid PoS/PoW (Гибридный PoS/PoW) - Гибридный алгоритм достижения консенсуса PoS/PoW позволяет одновременно использовать и Proof of Stake, и Proof of Work процедуры для достижения консенсуса. В этом случае можно достичь баланса между майнерами и держателями монет, создав систему управления со стороны «внешних» (майнеры) и «внутренних» (держатели) участников.

Для чего вообще знать, что такое алгоритмы консенсуса?

Технологии, на которых базируются блокчейн-системы, показывают их фундаментальную ценность. Понимая их, вы осознаёте, во что инвестируете, как устроен тот или иной актив;

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

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

Как сказал известный американский финансист и инвестор Питер Линч: «Знайте, чем вы владеете, и знайте, почему вы этим владеете».

Спасибо за прочтение. Подписывайтесь на наш Telegram-канал, там мы даём много образовательных материалов по блокчейн-технологиям и криптовалютам.

Комментарии (4)


  1. Keeper1
    24.06.2022 13:49
    +2

    информация [...] подлежит шифрованию посредством алгоритма SHA-2(256)

    Дальше можно не читать.


  1. msky2009
    24.06.2022 14:09
    +1

    Очень интересна оценка входа в майнинг. 32 ETH по курсу 1000$ это 32k$. На эти деньги вполне себе можно купить оборудования для POW, которое имеет цену, в отличии от цифровых валют, которые могут превратиться в 32$.

    Не вижу оценки безопасности и оценки справедливости. В PoS вместо того, чтобы побеждал блок, на майнинг которого было потрачено больше всего ресурсов, побеждает блок, набравший наибольшее количество голосов. Если поведение узлов окажется злонамеренным, вместо того, чтобы потерять вознаграждение за проделанную работу, они буквально потеряют всю свою заблокированную долю – как если бы вся их майнинг-ферма, настроенная для работы с алгоритмом PoW, сгорела при пожаре.

    По моему мнению, PoS эфира выгоден Бутерину и команде разработчиков, никто же не гарантирует отсутствие суперНоды, которая сможет верифицировать любой блок.


    1. mrkerzak
      24.06.2022 15:11

      Виталик так и думает что после ПОСа его эфир взлетит выше деда и он и его инвесторы будут гребсти бабки камазами. Майнеры перейдут на другую монету, тот же классик/варону и тд. А вот вероятность успеха Виталика 50/50.


  1. Chelobacca
    24.06.2022 15:11

    достаточно просто договоритЬся о правилах