Основные моменты, которые стоит запомнить

  • Доказательство работы (PoW) - это механизм консенсуса, созданный для предотвращения двойных трат в цифровых платежных системах.

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

  • Биткойн и многие другие криптовалюты используют PoW как метод защиты своей сети и данных блокчейна.

Введение

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

Доказательство работы стало первым алгоритмом консенсуса, который появился на свет, и по сей день остается одним из самых важных вместе с доказательством доли (PoS). Его представил Сатоши Накамото в whitepaper (белой книге) Биткоина в 2008 году, но разработанная технология была создана гораздо раньше.

HashCash Адама Блэка — это пример алгоритма доказательства работы, существовавшего еще до появления криптовалют. Попросив отправителей выполнить небольшой объем вычислений перед тем, как отправлять электронное письмо, было бы довольно легко снизить спам. Эти вычисления почти ничего не стоили бы законопослушному отправителю в отличие от человека, который рассылает электронные письма массово.

Что такое двойная трата?

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

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

Вам наверняка уже приходилось дублировать файл с помощью команд «копировать-вставить». Также довольно просто отправить этот же файл по электронной почте десяткам людей. Поскольку в итоге цифровые валюты — это просто данные, необходимо не допустить, чтобы люди могли копировать и тратить одни и те же единицы в разных местах. Цифровая платежная система, которая не может предотвратить двойные траты, довольно быстро рухнет.

Чтобы узнать больше о двойной трате, не стесняйтесь прочитать статью «Двойная трата, объясненная простыми словами».

Почему необходимо доказательство работы?

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

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

Алиса платит Бобу 5 BTC; Боб платит Карол 2 BTC и т. д.

Всякий раз, когда вы выполняете транзакцию, вы ссылаетесь на ту транзакцию, откуда поступили средства. Поэтому если бы Боб отправлял Карол 2 BTC, вход (input) выглядел бы примерно так:

Боб платит Карол 2 BTC из этой предыдущей транзакции от Алисы.

Теперь у нас есть способ отслеживать единицы BTC. Если Боб попробует провести транзакцию с теми же 2 BTC, которые он только что отправил Карол, то всем будет видно, что он пытается это сделать. Группа не позволит добавить эту транзакцию в блокнот, потому что эти 2 BTC уже были потрачены.

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

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

Как работает PoW?

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

Процесс проверки транзакций и добавления новых блоков называется майнингом. Это дорого и сложно, но может быть и приятно. Награда за блок состоит из комиссий пользователей и новых биткоинов, создаваемых протоколом.

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

Хэширование данных блока означает пропускание этих данных через функцию хэширования для получения хэша блока. Этот хэш блока — это «цифровой отпечаток»: он идентифицирует ваши входные данные и уникален для каждого блока.

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

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

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

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

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

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

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

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

Кратко повторим, что мы уже знаем:

  • Майнинг сложный и затратный, но он обеспечивает безопасность сети.

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

  • Создание корректного хэша занимает время, но другие пользователи могут легко проверить его корректность, повторив процесс хэширования.

Пока все хорошо. Но что, если вы попробуете схитрить? Что мешает вам добавить мошеннические транзакции в блок перед тем, как произвести корректный хэш?

Именно здесь в игру вступает криптография с открытым ключом. Здесь мы не будем подробно останавливаться на ней, но вы можете прочитать «Что такое криптография с открытым ключом?», чтобы узнать больше. Если в двух словах, существуют хитроумные криптографические методы, которые позволяют любому пользователю проверить, имеет ли кто-то право перемещать средства, которые он пытается потратить.

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

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

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

Доказательство работы (PoW) и доказательство доли (PoS)

Существует множество алгоритмов консенсуса помимо PoW, но один из самых популярных — доказательство доли (PoS). Эта идея появилась еще в 2011 году и была реализована в Ethereum и в ряде других протоколов.

В случае доказательства доли (PoS) майнеров заменяют валидаторы. Нет майнинга и нет гонки за поиском правильного хэша. Вместо этого пользователей выбирают случайным образом: если их выбирают, они должны предложить (или «форджить») блок. Если блок корректный, они получают награды, состоящие из комиссий за транзакции в блоке.

Не всех можно выбрать: протокол учитывает определенные параметры при принятии решения. Чтобы иметь возможность быть выбранными, участники должны заблокировать стейк — заранее определенную сумму нативной валюты блокчейна. Стейк работает как залог: так же, как ответчики платят крупную сумму, чтобы удержать себя от уклонения от суда, валидаторы блокируют стейк, чтобы не мошенничать. Если они действуют нечестно, весь их стейк (или часть) будет конфискован.

Доказательство доли (PoS) имеет преимущества по сравнению с доказательством работы (PoW). Самое заметное — снижение углеродного следа. Поскольку для PoS не нужно располагать майнинг-фермами большой мощности, потребляемая электроэнергия составляет лишь часть той, что требуется для PoW.

При этом у PoS нет такой же «послужной ведомости», как у PoW. Хотя майнинг может выглядеть как пустая трата ресурсов, майнинг — единственный алгоритм консенсуса, который проверяли уже более десяти лет. С момента запуска PoW в Биткоине защищает транзакции на суммы в миллиарды долларов. Чтобы со всей уверенностью утверждать, что PoS сопоставим по безопасности с PoW, стейкинг нужно корректно протестировать на крупном масштабе.

Итоги

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

Для получения дополнительной информации

  • Что такое майнинг криптовалют и как он работает?

  • Что такое криптография с открытым ключом?

  • Что такое алгоритм консенсуса в блокчейне?

Отказ от ответственности и предупреждение о рисках: этот материал представлен вам «как есть» только в целях общего и образовательного информирования, без каких-либо заверений или гарантий любого рода. Его нельзя воспринимать как финансовый, юридический совет или советы от профессионалов, а также как способ рекомендовать покупку конкретного продукта или услуги. Перед принятием любых решений вам следует проконсультироваться с соответствующими профессионалами. Когда статья подготовлена сторонним автором, обратите внимание, что взгляды, выраженные в статье, не обязательно отражают мнения Binance Academy. Пожалуйста, прочитайте полный текст нашего отказа от ответственности здесь, чтобы узнать больше. Цены на цифровые активы могут быть волатильными. Стоимость ваших инвестиций может как снижаться, так и расти, и вы можете не вернуть сумму, которую инвестировали. Вы несете единоличную ответственность за свои инвестиционные решения, а Binance Academy не несет ответственности за убытки, которые вы можете понести. Этот контент не следует воспринимать как финансовый, юридический совет или советы от профессионалов. Для получения дополнительной информации ознакомьтесь с нашими Условиями использования и предупреждением о рисках.