Ключевые выводы

  • Proof of Work (PoW) — это механизм консенсуса, созданный для предотвращения двойных расходов в цифровых платежных системах.

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

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

Введение

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

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

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

Что такое двойное расходование?

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

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

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

Более подробную информацию о двойных расходах можно найти в статье «Объяснение двойных расходов».

Почему необходимо подтверждение работы?

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

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

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

Но каждый раз, когда вы совершаете транзакцию, вы ссылаетесь на транзакцию, из которой поступили средства. Итак, если бы Боб платил Кэрол 2 BTC, запись на самом деле выглядела бы следующим образом:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Давайте подведем итоги того, что мы знаем на данный момент:

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

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

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

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

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

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

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

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

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

Помимо PoW существует множество алгоритмов консенсуса, но одним из самых популярных является Proof of Stake (PoS). Концепция возникла в 2011 году и была реализована в Ethereum и нескольких других протоколах.

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

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

Proof of Stake имеет некоторые преимущества перед Proof of Work. Наиболее заметным из них является меньший углеродный след: поскольку в PoS нет необходимости в мощных майнинговых фермах, потребляемая электроэнергия составляет лишь часть того, что потребляется в PoW.

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

Заключительные мысли

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

Дальнейшее чтение

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

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

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

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