Введение
Proof of Work — первый и самый популярный алгоритм консенсуса. Он был представлен Сатоши Накамото в вайтпейпере Биткоина, опубликованном в 2008 году, но сама технология была предложена задолго до этого.
HashCash от Адама Бэка — это ранний пример использования алгоритма Proof of Work до появления криптовалют. Необходимость выполнения небольшого количества вычислений перед отправкой электронной почты позволила бы существенно уменьшить количество спама. Такие вычисления практически ничего не стоят для обычного отправителя, но существенно усложняют процесс массовой рассылки.
Что такое двойное расходование?
Двойное расходование происходит, когда одни и те же средства расходуются более одного раза. Этот термин практически всегда используют в отношении цифровой валюты, поскольку в реальной жизни сложно представить ситуацию, когда можно потратить одни и те же деньги дважды. Например, при покупке кофе вы передаете деньги кассиру, который кладет их в кассу. У вас не получится пойти в кафе через дорогу и заплатить за второй кофе той же купюрой.
В сфере цифровых денежных средств тактакое возможно. Это можно сравнить с дублированием файла на компьютере. Всё что нам для этого понадобится, это скопировать его и вставить. Также вы можете отправить один и тот же файл десяти, двадцати и более людям.
Поскольку цифровые деньги — это просто данные, необходимо запретить людям копировать и отправлять/расходовать одни и те же единицы в разных местах. В противном случае подобную валюту ждет крах в кратчайшие сроки.
Для чего нужен Proof of Work?
Теперь у нас есть возможность отслеживать все переводы. Если Боб попытается совершить другую транзакцию, используя те же единицы, которые он только что отправил Кэрол, всем сразу станет известно об этом и коллектив не позволит ему записать данную транзакцию в блокнот.
Такая система может хорошо работать в небольшой группе людей где все участники хорошо знают друг друга, ведь им будет проще договориться о том, кто из них станет ответственным за добавление транзакций в общий список. Но что если мы хотим собрать группу из 10 000 участников? Суть использования блокнота плохо масштабируется, поскольку никто не станет доверять незнакомцу управление подобным финансовым регистром.
Именно так работает Proof of Work. Он гарантирует, что пользователи не потратят денежные средства, которые они не могут тратить. Используя комбинацию теории игр и криптографии, алгоритм позволяет любому пользователю обновить блокчейн в соответствии с правилами системы.
Как это работает?
Блокнот — это своеобразный блокчейн. Однако транзакции не добавляются в систему одна за другой, а объединяются в блоки, после чего пользователи, создающие блок, включают их в блок-кандидат. Транзакции будут считаться действительными только после подтверждения блока-кандидата и добавления в блокчейн.
Осуществить процесс в обратном направлении, т.е. получить входные данные на основе хеша, практически невозможно. Однако, зная входные данные, вы легко сможете подтвердить правильность хеша, для этого вам необходимо провести данные через хеш-функцию и проверить, совпадает ли вывод.
В Proof of Work вы должны предоставить данные, хеш которых соответствует определенным правилам, установленным в протоколе, при условии, что вы не знаете, как его извлечь напрямую. Единственный вариант, это пропустить данные через хеш-функцию и проверить, соответствуют ли они условиям. Если соответствия не будет, вам придется изменить данные, чтобы получить другой хеш. Изменение хотя бы одного символа в ваших данных приведет к совершенно другому результату, по этой причине невозможно просто так предугадать, каким именно может быть вывод.
Таким образом, майнинг — это процесс сбора данных блокчейна и хеширования их вместе с одноразовым кодом до тех пор, пока вы не найдете подходящий хеш. Если вы найдете хеш, который удовлетворяет условиям, установленным протоколом, вы получаете право транслировать новый блок в сеть. На этом этапе другим участникам сети необходимо обновить свои блокчейны, чтобы включить новый блок.
Условия, установленные крупными криптовалютами, невероятно сложно удовлетворить. Чем выше хешрейт в сети, тем сложнее найти действительный хеш. Это сделано для того, чтобы блоки не генерировались слишком быстро.
Регулярные попытки угадать огромное количество хешей обходятся дорого, ведь при этом тратится огромное количество вычислительных ресурсов и электрической энергии. Однако если майнерам удается найти действительный хеш, протокол награждает их за проделанную работу.
Давайте повторим пройденный материал:
- Процесс майнинга является очень дорогостоящим по причине большого количества необходимых ресурсов.
- После выполненной работы и производства валидного/подтвержденного блока вы получаете вознаграждение.
- Зная входные данные, пользователь легко может проверить правильность произведенного хеша — любые участники могут проверить, что блок является действительным, не используя при этом большое количество вычислительных ресурсов.
Но что, если вы попытаетесь обмануть систему? Что мешает вам поместить в блок кучу мошеннических транзакций и создать действительный хеш?
Любой блок, содержащий недопустимую транзакцию, будет автоматически отклонен. Попытка обмануть сеть обойдется вам очень дорого, ведь в конечном итоге вы просто потратите свои вычислительные ресурсы, не получив награду за это.
Думаете, как начать работу с криптовалютами? Купите биткоин на Binance!
Proof of Work и Proof of Stake
Тем не менее, это не имеет ничего общего с послужным списком PoW. Хотя такой подход и может восприниматься как расточительство, на текущий момент, майнинг является единственным способом достижения консенсуса, который зарекомендовал себя в глобальных масштабах. Всего за одно десятилетие данный механизм обработал транзакций более чем на триллионы долларов. Чтобы с уверенностью сказать, что PoS сможет выдержать такую конкуренцию с надлежащей безопасностью для пользователей, нам еще предстоит его проверить в более дикой среде.
Резюме
Proof of Work — надежное и безопасное решение проблемы двойного расходования. Биткоин доказал, что для этого не нужны централизованные организации. При грамотном использовании криптографии, хеш-функций и теории игр участники децентрализованной среды могут сами отслеживать правильность работы всей финансовой базы данных.