bitcoin
Bitcoin (BTC) $ 64 683.33 5.22%
ethereum
Ethereum (ETH) $ 3 360.91 7.33%
ethereum-classic
Ethereum Classic (ETC) $ 28.90 9.08%
xrp
XRP (XRP) $ 0.598119 3.66%
dogecoin
Dogecoin (DOGE) $ 0.132455 11.38%
cardano
Cardano (ADA) $ 0.623316 9.22%
solana
Solana (SOL) $ 185.99 8.39%
polkadot
Polkadot (DOT) $ 9.17 11.58%
litecoin
Litecoin (LTC) $ 80.59 5.93%
tron
TRON (TRX) $ 0.121225 4.28%
cosmos
Cosmos Hub (ATOM) $ 11.13 9.14%
near
NEAR Protocol (NEAR) $ 6.80 12.43%
fantom
Fantom (FTM) $ 0.871405 5.88%
dash
Dash (DASH) $ 33.11 10.17%
shiba-inu
Shiba Inu (SHIB) $ 0.000025 10.87%
22.03.2023, 11:57

Что такое Proof-of-Work?

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

Что такое Proof-of-Work?

Proof-of-Work (PoW) или «доказательство работы» — первый алгоритм консенсуса в криптовалютной сфере, реализованный в протоколе Bitcoin. Главная задача PoW — защитить децентрализованную сеть от различных атак и манипуляций транзакциями.

Как работает Proof-of-Work

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

Блоки хранят данные о текущих и предыдущих транзакциях. Например, в блокчейне записано, что Боб получил от Алисы 5 BTC. Если при проверке выяснится, что Боб попытался отправить 10 BTC, майнеры отклонят транзакцию, ведь каждому узлу известно, что Боб может потратить только 5 BTC. Транзакцию добавят в блок только после прохождения проверки, но для записи в блокчейн её ещё нужно подтвердить.

Каждый блок имеет хеш — уникальный идентификатор входных данных в виде шестнадцатеричного числа фиксированной длины. Хеш является своего рода «отпечатком пальца» для блока. По правилам алгоритма Proof-of-Work узлы должны расшифровать хеш блока путем перебора через хеш-функцию — набор математических формул с использованием криптографии, необходимых для решения вычислительной задачи в блокчейне.

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

Майнинг — это соревновательный процесс: первый узел, который найдет новый хеш, добудет блок и получит вознаграждение. После подтверждения транзакций каждый узел обновляет свою копию для синхронизации всех записей. В сети Bitcoin награда за добытый блок составляет 6,25 BTC.

Примечание: в протоколе Bitcoin заложен механизм халвинга, который уменьшает вознаграждение майнеров в два раза каждые четыре года.

На решение головоломки майнер тратит вычислительные ресурсы. Их количество зависит от сложности сети. Показатель измеряется в хешах (H) и рассчитывается в динамике для обеспечения равномерной скорости генерации блоков. Сложность сети Bitcoin по состоянию на март 2023 года, например, составила 45,5 Терахешей (T).

Что такое Proof-of-Work?

Сложность сети зависит от хешрейта — совокупной вычислительной мощности всех майнеров. Хешрейт вычисляется в хешах/секунду (H/s). Сложность хеширования пересчитывается каждые 2016 блоков так, чтобы новый блок находился примерно каждые десять минут. Если хешрейт растет, майнеры начинают добывать новые блоки быстрее и сложность хеширования возрастает.

Вероятность добычи блока зависит от соотношения собственной вычислительной мощности к хешрейту сети, который у Биткоина на момент написания статьи составил 360 EH/s.

Что такое Proof-of-Work?

Чтобы вы не запутались, приводим таблицу единиц измерения хешрейта:

Единица Обозначение Эквивалент
Хеши H/s Минимальная единица хешрейта
Килохеши KH/s 1 KH/s = 1 000 H/s
Мегахеши MH/s 1 MH/s = 1 000 KH/s = 1 000 000 H/s
Гигахеши GH/s 1 GH/s = 1000 MH/s = 1 000 000 000 H/s
Терахеши TH/s 1 TH/s = 1000 GH/s = 1 000 000 000 000 H/s
Петахеши PH/s 1 PH/s = 1 000 TH/s = 1 000 000 000 000 000 H/s
Экзахеши EH/s 1 EH/s = 1 000 PH/s = 1 000 000 000 000 000 000 H/s
Зеттахеши ZH/s 1 ZH/s = 1 000 EH/s = 1 000 000 000 000 000 000 000 H/s

Например, если мощность вашего оборудования равна 1 EH/s, то вероятность добычи блока составит 1 к 360 — всего 0,2%. Из-за роста сложности хеширования доходы майнеров постоянно падают в долгосрочном периоде.

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

Чтобы повысить шансы на успех, майнеры соединяют несколько устройств в майнинг-ферму, а также объединяются в пулы. Например, крупнейшему пулу Foundry USA принадлежит 35,6% общего хешрейта, AntPool — 20,16%, а BinancePool — 11,52%.

Что такое Proof-of-Work?

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

Пример работы PoW

Повторим материал: результат работы майнера — найденный хеш блока с правильным минимальным количеством начальных нулей. Пример хеша блока, добытого 13 марта 2023 года под номером 780 623:

00000000000000000004fec2609050adeb99b0c50921d608bf112b9c177e9f44

За этот блок майнер получил фиксированную награду за блок в размере 6.25 BTC и ~0,11 BTC с комиссий. Значение nonce составило 0xffb5ba6 или 268 131 238 в десятичной системе исчисления — столько циклов хеширования совершил майнер, прежде чем найти подходящий уникальный идентификатор.

Что такое Proof-of-Work?

Зачем блокчейну «доказательство работы»?

Первая задача Proof-of-Work — предотвратить DDoS-атаки на блокчейн-сеть и снизить количество «пыли» — спам-транзакций с незначительными суммами криптовалюты. Distributed Denial of Service (DDoS) или «распределенный отказ в обслуживании» — это вид атаки на информационную систему с целью заставить её прекратить обрабатывать запросы от узлов.

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

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

Что такое Proof-of-Work?

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

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

Proof-of-Work решает эту проблему путем записи полной истории транзакций в блокчейне: все блоки логически связаны друг с другом и упорядочены. Допустим, вы отправляете кому-то 5 BTC. Вот как транзакцию видят майнеры: «пользователь Боб отправляет Кэрол 5 биткоинов, которые ранее получил от Алисы». Если Боб отправил 5 BTC, и майнеры подтвердили транзакцию, ещё раз потратить монеты будет нельзя.

В сети Bitcoin более 10 000 майнеров. Чтобы смухлевать, Бобу придется убедить ту часть узлов, которой принадлежит более 50% хешрейта сети, что он на самом деле не тратил свои BTC. В этом случае большая часть майнеров сможет создать альтернативную цепочку с измененными записями и заменить ею оригинальный блокчейн.

Существует ещё два вида атаки с двойным расходованием на сеть Биткоина:

  • Атака типа «гонки» (Race Attack)

Транзакциям в POW-сетях вроде Bitcoin нужно не менее 12 подтверждений, чтобы попасть в блокчейн. Валидация длится несколько минут или часов, а сами транзакции можно отменить. Вот, как работает атака типа «гонки»: Алиса увидела объявление Боба о продаже лицензионной копии Windows за 0.01 BTC и договорилась с ним о сделке.

Покупательница переводит биткоины на кошелек Боба и сообщает ему TX ID — уникальный идентификатор транзакции. По этому идентификатору Боб видит транзакцию в блокчейн-обозревателе и убеждается, что Алиса действительно перевела 0.1 BTC. Боб передает Алисе лицензионный ключ, не дожидаясь подтверждений.

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

Алиса даже может воспользоваться функцией частично подписанной биткоин-транзакции (Partial Signed Bitcoin Transaction или PSBT) и заранее её подготовить, а затем транслировать в сеть

  • Атака Финни (Finney Attack)

Для реализации этой атаки злоумышленнику понадобятся большие вычислительные ресурсы: 10—20% от общего хешрейта сети. Разберем атаку на том же примере: представим, что Алиса обладает таким хешрейтом.

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

В результате появляется развилка с двумя идентичными блоками, и майнеры могут подтвердить блок злоумышленницы. Результат атаки не гарантирован, но Алиса может повысить шансы, подставив несколько блоков. Подменить блоки возможно даже после 1—2 подтверждений.

Примечание: чтобы не оказаться на месте Боба, дожидайтесь не менее 6 подтверждений сети.

История создания PoW

Впервые концепцию, лежащую в основе доказательства работы предложили в 1993 году. Изначально механизм придумали с целью защиты от почтового спама: каждому пользователю требовалось выполнить ресурсоёмкую задачу для отправки письма. Это ограничивало число возможных для отправки писем.

Впервые данную концепцию в 1997 году реализовал британский бизнесмен и криптограф Адам Бек в системе под названием Hashcash, которую позднее решили использовали в протоколе Bitcoin. Сам термин «Proof-of-Work» появился в 1999 году, а в 2004 американский разработчик Хэл Финни предложил использовать похожую технологию – многоразовое доказательство работы (Reusable Proof-of-Work или RPoW) при создании электронной валюты.

В 2008 году Сатоши Накамото представил протокол Биткоин, который использовал механизм Proof-of-Work для нахождения блоков через хеш-функцию SHA-256.

SHA или Secure Hash Algorithm — «безопасный алгоритм хеширования». SHA-256 относится к семейству SHA-2, разработанному Агентством национальной безопасности США. Алгоритм шифрования SHA-256 предназначен для преобразования набора данных в фиксированную строку размером, не превышающим 256 бит.

Спустя некоторое время появились и другие блокчейны на основе Proof-of-Work, но с другими алгоритмами шифрования, например, Ethash и Scrypt.

Блокчейны на Proof-of-Work

Полный список блокчейнов на PoW можете найти на CoinMarketCap, выбрав соответствующий фильтр в разделе «Algorithms».

Что такое Proof-of-Work?

Преимущества Proof-of-Work

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

Proof-of-Work обеспечивает целостность данных: никто не может изменить или удалить транзакцию из блокчейна, если её не подтвердят майнеры. В сделках отсутствует третья сторона, которая может манипулировать данными в своих интересах.

Недостатки Proof-of-Work

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

У одиночных майнеров шанс успеха на добычу блока достаточно мал. Особенно при хешрейте менее 1 EH/s. Высокая стоимость майнингового оборудования служит главным барьером для входа в эту отрасль предпринимателей.

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

Заключение

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

Автор материала: Илья Пронин
Table
#МонетаЦенаИзменениеОбъем (24ч)КапитализацияПоследние 24ч