Дарим деньги за каждый обмен с отзывом! Подробности у оператора в чате.

Алгоритм Proof of Work – что это, принцип работы и особенности. Часть 1.

Все пользователи, начинающие работать с криптографическими валютами встречаются с массой новых терминов и понятий. Многие из них важны для понимания работы блокчейн-систем. Примером такого значимого понятия является алгоритм Proof of Work или сокращённо PoW – доказательство выполненной работы.

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

Рассмотрим обстоятельно, что такое алгоритм Proof of Work. Изучим его особенности, специфику работы. Отметим, что это первая часть нашего материала, мы постепенно будем раскрывать его работу.

Алгоритм Proof of Work – что это?

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

Они представляют собой криптографические механизмы, регулирующие конкретные функции и выполнение определённых задач. Наиболее распространённым вариантом является именно алгоритм Proof of Work, который отвечает за достижение консенсуса в блокчейне.

В переводе с английского PoW – это доказательство совершённой работы. Главная функция состоит в создании между майнерами конкуренции за получение вознаграждения. Эти деньги выплачиваются тому, кто последним завершил поиск решения в генерации нового блока для blockchain. Кроме того, Proof of Work отвечает за подтверждение валидности криптовалютных транзакций. 

Из всего обилия закладываемых в блокчейны задач PoW является наиболее «возрастным». Для постоянного использования он был задействован в 2009-ом именно в системе Bitcoin. Первые описания данного алгоритма появлялись с 1993-го при рассмотрении методик противодействия СПАМу. 

Принцип работы алгоритма Proof of Work

Важность процесса подтверждения формируется особенностями технологии блокчейн. К примеру, транзакция монет BTC в системе Bitcoin осуществляется по такой схеме:

– один пользователь отправляет другому монеты биткоина в рамках операции продажи, покупки или обмена криптовалют;

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

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

– тот, кто первым успел разрешить задачу вычислительной мощностью своего устройства (риг, ПК, ферма), получит награду;

– подтверждённые транзакции с блоком занимают место в конце цепочки общего распределённого реестра. Следом в блокчейн включается новая транзакция по такой же схеме.

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

Никак не допустима разная работа нод в распределённом реестре одного блокчейн-проекта. Выручает тут алгоритм Proof of Work либо его аналоги.

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

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

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

В результате PoW помогает достигнуть:

– исключения ошибок и коллизий в криптосистеме;

– добиться эффективности в борьбе с обилием СПАМ-запросов;

– оказывать противодействие DDoS-атакам. В этом форсинге происходит зависание системы с потерей возможности обработки новых запросов от пользователей.

Если резюмировать отмеченные выше моменты, то функционирование алгоритма Proof of Work можно описать коротко. Набор правил, составляющих PoW, даёт возможность узлу контролировать то, чтобы другие ноды, намеревающиеся включить новый блок в цепочку (майнеры), выполняли условия алгоритма. 

То есть должны быть правильно выполнены вычисления. Когда проверка подтверждает валидность, блок интегрируется в блокчейн, а майнер получает вознаграждение. В случае с биткоином после прошедшего халвинга она сегодня составляет 6,25 BTC.

Сложность майнинга и награда за блок

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

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

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

К примеру, алгоритм Proof of Work в сети Bitcoin сконструирован программистами так, чтобы новые блоки не могли быть найдены раньше 10 минут. Увеличение происходит автоматически благодаря специальным правилам в алгоритме. 

Сейчас время блока биткоина равно ~13m 52s. Увеличение спровоцировано колоссальным спросом на монеты BTC из-за стремительного роста котировки на крипторынке. Очень большая мощность направлена на майнинг биткоина. 

Изначально сложность сети Bitcoin была на уровне 5,591 Мегахеш/сек, что позволяло добывать коины BTC на средненьких домашних ПК. Сегодня этот показатель хешрейта сети самой популярной криптовалюты равен в среднем 125,937 Экзахеш/сек. 

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

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

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

Особенности алгоритма PoW

У криптографического механизма Proof of Work есть две ключевые особенности:
– проверки результатов осуществляются с большей скоростью, чем контроль решений;
– чтобы консенсус был достигнут, нужно производить решение большой, сложной математической задачи.

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

Дальше достигается критическая отметка, вследствие чего станут накапливаться транзакции без подтверждений. Результатом станет неработоспособность блокчейна. Кстати, это сценарий, который в дальнейшем нужно ждать после добычи последней монеты биткоина – на 21 000 001-м коине сеть Bitcoin встанет.

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

Какие вычисления в алгоритме Proof of Work  

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

1. Частичная инверсия хешируется, когда ей находится применение внутри системы Hashcash. На самом деле потенциал данной системы задействовался при противодействии СПАМу и защиты от DDoS-атак. Чуть позже она была интегрирована в систему Bitcoin некоторых других криптовалют.

2. Реализация функций, базирующихся на деревьях Меркла (Merkle tree). Рассматривая этот тип вычисления в криптовалютах, можно в качестве примера реализации Merkle tree назвать биткоин. 

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

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

Сейчас каждый блок, являющийся структурной единицей блокчейна биткоина, способен вместить несколько тысяч шифрованных транзакций. Их хеширование производится алгоритмом SHA-256, хотя встречаются другие модели правил – Scrypt-jane, Crypto Night и проч.

Кроме этих двух вариантов вычислений, часто используются в криптографических системах:
– протокол Фиата-Шамира;
– функции Диффи-Хеллмана;
– и др. 

Продолжение статьи, а именно – преимущества или недостатки, сферы использования PoW ожидайте в следующем материале, который мы разместим на следующей неделе.