Введение

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

Доказательство работы — один из самых ранних алгоритмов консенсуса, который до сих пор широко распространен. Сатоши Накамото представил эту концепцию в официальном документе о Биткойне, выпущенном в 2008 году, но сама технология на самом деле была задумана раньше.​

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


В чем проблема двойных расходов?

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

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

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

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


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

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

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

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

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

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

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


Как работает доказательство работы?

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

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

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

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

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

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

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

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

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

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

  • Майнинг стоит дорого.

  • Создавайте действительные блоки, чтобы получать награды.

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

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

Появилась криптография с открытым ключом. В этой статье не будут вдаваться в подробности. Пожалуйста, прочитайте «Что такое криптография с открытым ключом?». " Больше подробностей. Проще говоря, мы используем некоторые совместимые методы криптографии, чтобы проверить, имеет ли кто-то полномочия доступа к определенному количеству средств.

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

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

Тайна доказательства работы раскрыта — цена мошенничества высока, но прибыль от честной работы огромна. Мудрые майнеры будут стремиться к возврату инвестиций (ROI), действовать осторожно и обеспечивать прибыль.



Хотите начать свое путешествие в криптовалюту? Зайдите на Binance и купите биткойны прямо сейчас!



Доказательство работы против Доказательства доли

Доказательство доли (PoS) также находится в центре внимания многих алгоритмов консенсуса. Эта концепция возникла в 2011 году и была реализована в ряде более мелких протоколов. Но он еще не получил распространения среди крупных блокчейнов.

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

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

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

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


Подведем итог

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