Proof of work что это
Что такое Proof of Work в криптовалюте? Все что вам нужно знать
Децентрализация была ключевой частью первоначального видения криптовалют. Для этого необходим способ подтверждения транзакций без участия финансовых учреждений. Первое решение этой проблемы было названо Proof of Work (Доказательство выполнения работы).
Proof of Work (PoW) – это форма добавления новых блоков транзакций в цепочку блоков криптовалюты. В этом случае работа генерирует хэш (длинную строку символов), который соответствует целевому хешу для текущего блока. Крипто-майнер, который делает это, получает право добавить этот блок в цепочку блоков и получить вознаграждение.
Криптовалюта началась с доказательства выполнения работы, поскольку это механизм консенсуса, используемый первой криптовалютой, Биткойн (BTC). Он хорошо известен своей безопасностью, но также неэффективностью и сильным воздействием на окружающую среду.
Разобравшись с PoW, вы лучше поймете, какие монеты его используют. Это также может помочь вам выбрать, куда вкладывать деньги при инвестировании в криптовалюту. Продолжайте читать, чтобы получить полное объяснение доказательства выполнения работы.
Как работает модель Proof of Work
Модель PoW – это механизм консенсуса, используемый для подтверждения и записи транзакций с криптовалютой.
У каждой криптовалюты есть блокчейн, который представляет собой публичный реестр, состоящий из блоков транзакций. В криптовалютах с доказательством выполнения работы каждый блок транзакций имеет определенный хеш. Чтобы блок был подтвержден, криптомайнер должен сгенерировать целевой хэш, который меньше или равен хешу блока.
Для этого майнеры используют устройства для майнинга, которые быстро производят вычисления. Цель состоит в том, чтобы стать первым майнером с целевым хешем, потому что именно этот майнер может обновлять цепочку блоков и получать криптовалютные вознаграждения.
Причина, по которой PoW в криптовалюте работает хорошо, заключается в том, что найти целевой хэш сложно, а проверить его нет. Процесс достаточно сложен, чтобы предотвратить манипуляции с записями транзакций. В то же время, как только целевой хеш найден, другие майнеры могут легко его проверить.
Пример Proof of Work
Вот пример того, как Биткойн использует Proof of Work для поддержания целостности своей цепочки блоков.
Когда происходят биткойн-транзакции, они проходят проверку безопасности и группируются в блок для майнинга. Затем алгоритм доказательства работы Биткойна генерирует хэш для блока. Алгоритм, который использует Биткойн, называется SHA-256, и он всегда генерирует хэши из 64 символов.
Майнеры соревнуются за то, чтобы первыми сгенерировать целевой хеш, который ниже хеша блока. Победитель может добавить последний блок транзакций в блокчейн Биткойна. Они также получают вознаграждение в биткойнах в виде новых монет и комиссий за транзакции. Биткойн имеет фиксированный максимальный запас в 21 миллион монет, но после этого майнеры будут продолжать получать комиссию за транзакции за свои услуги.
Алгоритм Proof of Work, используемый Биткойном, направлен на добавление нового блока каждые 10 минут. Для этого он регулирует сложность добычи биткойнов в зависимости от того, как быстро майнеры добавляют блоки. Если майнинг происходит слишком быстро, вычисления хеша усложняются. Если все будет происходить слишком медленно, им станет легче.
Чем отличается Proof of Work от Proof of Stake
Proof of Work (Доказательство выполнения работы) был первым механизмом консенсуса в криптовалюте. Альтернатива, Proof of Stake (Доказательство доли владения), появилась в 2012 году с запуском Peercoin (PPC). Этот механизм консенсуса выбирает валидаторов транзакций в зависимости от того, сколько монет они поставили или заблокировали в сети.
Поскольку для доказательства доли владения не требуется столько вычислительной мощности, сколько для подтверждения выполнения работы, оно более масштабируемое. Этот механизм консенсуса может обрабатывать транзакции быстрее, с меньшими комиссиями и с меньшим потреблением энергии, что делает криптовалюты с доказательством доли владения более экологически безопасными. Также намного проще начать заниматься стекингом криптовалют, чем майнингом, поскольку не требуется дорогостоящее оборудование.
Однако Proof of Work уже продемонстрировал высокий уровень безопасности в отличие от Proof of Stake. Одна потенциальная проблема с Proof of Stake в том, что стороны, владеющие значительным объемом криптовалюты могут иметь слишком много полномочий, что является проблемой, которой нет в PoW.
Плюсы и минусы Proof of Work
Вот самые большие преимущества и недостатки PoW:
Плюсы | Минусы |
Высокий уровень безопасности | Имеет медленные скорости транзакций и высокие комиссии |
Предоставляет децентрализованный метод проверки транзакций | Высокое потребление энергии |
Позволяет майнерам зарабатывать криптовалюты | Для майнинга часто требуется дорогое оборудование |
Монеты Proof of Work
Вот некоторые из известных криптовалют, в которых используется доказательство выполнения работы:
PoW был предпочтительным механизмом консенсуса для ранних криптовалют, которым требовался безопасный децентрализованный способ обработки транзакций. Хотя Proof of Stake с тех пор стал менее энергоемкой альтернативой, Proof of Work по-прежнему используется многими основными монетами.
Экономист, финансовый аналитик, трейдер, инвестор. Личные интересы – финансы, трейдинг, криптовалюты и инвестирование.
Что такое Proof-of-Work и Proof-of-Stake?
Что такое Proof-of-Work и Proof-of-Stake?
В чем суть Proof-of-Work?
Proof-of-Work (PoW – дословно: доказательство работы) — алгоритм защиты распределенных систем от злоупотреблений (DoS-атак, спам-рассылок и т.д.), суть которого сводится к двум основным пунктам:
PoW-задачи изначально не предназначены для человека, их решение компьютером всегда достижимо в конечные сроки, однако требует больших вычислительных мощностей. При этом проверка полученного решения требует гораздо меньше ресурсов и времени.
Кто придумал термин Proof-of-Work?
Впервые концепция Proof-of- Work была описана в 1993 году в работе «Pricing via Processing, Or, Combatting Junk Mail, Advances in Cryptology» (авторы – Синтия Дворк и Мони Наор). И хотя сам термин в статье еще не использовался, авторы предложили следующую идею:
«Чтобы получить доступ к общему ресурсу, пользователь должен вычислить некоторую функцию: достаточно сложную, но посильную; так можно защитить ресурс от злоупотребления».
В 1997 году Адам Бэк запустил проект Hashcash, посвященный той же защите от спама. Задача формулировалась следующим образом: «Найти такое значение x, что хеш SHA(x) содержал бы N старших нулевых бит».
Система предлагала хеширование частичной инверсии при отправке по электронной почте. Для расчета соответствующего заголовка требуется около 2 52 хеш-вычислений, которые надо пересчитывать для каждой отправки. И если для отправки нескольких обычных писем дополнительные расчеты препятствий не создают, то отправку спама необходимость постоянного пересчета делает очень ресурсоемкой. При этом проверка корректности вычисленного кода осуществляется очень быстро: используется однократное вычисление SHA-1 с заранее подготовленной меткой.
В 1999 году появляется и сам термин Proof-of-Work – использован он был в статье «Proofs of Work and Bread Pudding Protocols» (авторы – Маркус Якобссон и Ари Джуелс) в журнале Communications and Multimedia Security.
Какое отношение Proof-of-Work имеет к криптовалютам?
В сети Bitcoin механизм PoW был использован как средство достижения консенсуса (единого мнения о том, какую версию блокчейна считать верной). При этом за основу создатель первой криптовалюты Сатоши Накамото взял идею упомянутого выше проекта Hashcash, добавив к ней механизм изменяющейся сложности — уменьшение или увеличение N (требуемого числа нулей) в зависимости от суммарной мощности участников сети. Вычисляемой функцией стала SHA-256.
Если говорить простыми словами, механизм PoW обеспечивает способность узла сети (ноды) проверить, что майнер (в роли которого выступает узел, добавляющий новый блок в блокчейн) фактически выполнил расчеты. Данный процесс включает в себя попытку найти хеш заголовка блока (часть блокчейна, которая содержит ссылку на предыдущий блок и суммированное значение транзакций, в него включенных), который будет по своему значению соответствовать текущему уровню сложности.
Действительно ли сложность вычисления «сложная»?
Эти вычисления могут производиться только в интерактивном режиме, и сложность устанавливается на таком уровне, что она действительно оказывается сложной. В то же время проверка результатов вычислений остается простой. Узлы всегда могут удостовериться, что майнер нашел корректное значение, однако, поскольку процесс нахождения блока весьма трудозатратен и случаен, невозможно с точностью предсказать какой именно майнер решит задачу и найдет блок.
Для того, чтобы система признала блок валидным, необходимо, чтобы значение его хеша было меньшим по сравнению с текущей целью. Таким образом, каждый блок показывает, что была проделана определенная работа по его нахождению.
Каждый блок содержит хеш предыдущего блока, образуя цепь. Изменить блок невозможно – возможно лишь создать блок на той же высоте, который будет содержать в себе хеш предыдущего блока. Для проведения такого процесса необходимо проделать работу по нахождению всех предыдущих блоков. Высокая сложность этого процесса защищает блокчейн от несанкционированного доступа и двойных трат.
Как Proof-of-Work повлиял на майнинг?
Proof-of-Work биткоина породил целую индустрию майнинга и стал импульсом к разработке специализированного оборудования, поскольку вычислительные ресурсы, расходуемые на хеширование блоков, огромны и намного превышают мощности крупнейших суперкомпьютеров.
В то же время не обошлось и без пресловутой «обратной стороны медали»: достаточно быстро PoW превратился в монстра, пожирающего электричество в гонке за прибыльностью майнинга. В 2012 году суммарная мощность сети Bitcoin уже превышала по производительности самый мощный суперкомпьютер в мире, а на горизонте появилась и первая альтернатива – Proof-of-Stake.
Что такое Proof-of-Stake?
Альтернативный механизм консенсуса, впервые реализованный в 2012 году в криптовалюте PPCoin (сейчас известна под названием PeerCoin). Идея состоит в использовании «доли» (stake) в качестве ресурса, который определяет, какая именно нода получает право добычи следующего блока.
В подходе Proof-of-Stake ноды также пытаются хешировать данные в поисках результата меньше определенного значения, но сложность в данном случае распределяется пропорционально и в соответствии с балансом данного узла. Иными словами — в соответствии с количеством монет (токенов) на счету пользователя.
Таким образом, больше шансов сгенерировать следующий блок имеет узел с большим балансом. Схема выглядит достаточно привлекательно прежде всего из-за небольших требований к вычислительным ресурсам, а также потому, что не стоит вопрос «потраченных впустую» мощностей.
Какие приводятся аргументы за и против Proof-of-Stake?
Как правило, в пользу использования PoS приводятся следующие аргументы:
Аргументы, вызывающие опасения:
Дополнительно можно отметить проблему Nothing-at-Stake (пустой стэк), которая делает PoS-системы по своей природе нестабильными в глазах многих криптовалютных энтузиастов. Атакующий может попытаться сделать форк блокчейна, т. е. создать более длинную альтернативную цепочку посредством расходования «несуществующих» ресурсов. Более того, его могут поддержать другие майнеры, поскольку они также не расходуют «подлинные» ресурсы. Посредством форка атакующий может отклонять определенные транзакции и осуществлять атаку «двойной траты».
На чьей стороне чаша весов?
Споры между сторонниками Pow и PoS длятся уже долгое время, но природа этих споров больше теоретическая. Практика показывает, что роль разработчика в вопросах обеспечения безопасности по-прежнему очень высока.
В то же время многие считают наиболее безопасным решением гибридный вариант PoS- и PoW-систем. Такой подход уже активно практикуется — у многих криптовалют существует этап PoW, когда валюта выпускается через классический майнинг, и этап PoS, наступающий после завершения эмиссии.
Тем не менее, несмотря на то, что PoS-системы всегда будут более легкими для имплементации и в целом такими же надежными с точки зрения безопасности, большинство серьезных криптовалют, скорее всего, не станут отказываться от PoW.
Где еще можно почитать про Proof-of-Work и Proof-of-Stake?
Какие еще механизмы доказательств есть в криптовалютах?
Proof-of-Work и Proof-of-Stake можно считать двумя наиболее популярными алгоритмами консенсуса в мире криптовалют, однако помимо них, существует еще целый ряд механизмов, имеющих собственные тонкости и особенности.
Их список может оказаться достаточно большим, поэтому перечислим несколько наиболее известных:
Proof-of-Work для чайников
Вы наверняка слышали, что блокчейн обеспечивает безопасное хранение данных. Но за счёт чего ему это удаётся?
В статье «Что же такое блокчейн на самом деле?» мы разобрались, что делает блокчейн децентрализованным, и затронули понятие Proof-of-Work — PoW, доказательство работы. Однако мы не обсудили в деталях, как работает механизм, какие проблемы решает и с какими трудностями сталкивается.
Децентрализация — ключевое свойство блокчейна, но она делает его потенциально уязвимым. Когда один участник сети хочет загрузить свою копию блокчейна, как другому пользователю узнать, что загружается «правильный» блокчейн? Если в сети тысячи компьютеров, что мешает сотням из них начать бомбардировать нового пользователя данными, которые они вместе подделали?
Если вы знакомы с игрой в испорченный телефон, то понимаете, как легко исказить информацию при передаче по цепочке ради шутки или желая подставить другого. Дело в том, что в этой игре правда и ложь стоят одинаково. Но что если бы за подложные данные пришлось доплачивать?
Алгоритм Proof-of-Work (PoW) позволяет участникам блокчейн-сети знать, была ли предлагаемая им информация создана бесплатно или её авторам пришлось серьёзно вложиться в её создание.
Почему PoW столь важен
PoW используется в биткоине для решения нескольких проблем, стоящих перед децентрализованной сетью, у которой нет «начальства». Рассмотрим самые важные из них.
Какая версия истории правильная?
В сети, где вам нужно знать, кто располагает деньгами, кто тратил деньги и кто их получал, история — это всё. Раньше считалось, что участникам децентрализованной сети, которой никто не руководит, невозможно достичь полного консенсуса и согласиться друг с другом.
Время в сети имеет решающее значение, так как биткоин создаёт новые монеты каждые десять минут. В традиционной системе вы просто скажете: «Посмотри на часы», но в децентрализованной глобальной системе встаёт вопрос, на чьи часы смотреть.
Представим, что новый компьютер присоединяется к сети сегодня. «Старожил» может сказать: «Эй, вот деньги, которые я отчеканил шесть месяцев назад, и деньги, которые я отчеканил ещё через десять минут». Как новый участник сети сможет подтвердить действия, которые были совершены в прошлом?
Чтобы понять, как Proof-of-Work справляется с этими двумя вопросами, вы сначала должны понять, что это за механизм и как он работает.
Анализ Proof-of-Work: Без кода совсем никуда
Поскольку эта статья нацелена на широкую аудиторию, постараемся использовать в ней как можно меньше кода.
Напомним, что хеш-функция предоставляет собой уникальный цифровой отпечаток части данных. Например, уникальный хеш для имени Мэтт — это длинный фрагмент текста:
Если кто-то видит этот хеш, он не знает, что за ним стоит, но мы можем сказать: «Если вы напечатаете текст matt с помощью компьютерной программы, то сможете доказать, что мы знаем, что представляет собой этот хеш. Дело в том, что ваша программа будет генерировать один и тот же хеш, следовательно, мы знаем, к чему относится этот хеш».
Криптографические хеш-функции всегда возвращают одинаковое значение для заданной части данных.
Теперь хешируем, например, matt14 и получим:
Но зачем это делать? Представьте, что компьютер поставил перед нами задачу: «Дайте мне первое число, добавленное в конце имени Мэтт, в результате чего хеш будет начинаться с нуля».
С помощью своего компьютера мы начинаем генерировать хеши до первого совпадения:
c5163e81b6dff231b46b584384718ffb734da51d51009399b4b5c73aaa55a811
Hash(matt + 1) =
4755a40d3769d7614fb31229fedea4d5e247b3ab8cdc223c4b4f5e3cf9910b4c
Hash(matt + 2) =
Наш компьютер отвечает текстом matt14 и включает хеш; принимающий компьютер смотрит, соответствует ли полученный хеш тому, который был запрошен.
Это доказывает, что наш компьютер провёл расчёты, добавляя цифры от 0 до 14, чтобы найти этот хеш. Это эффективно, поскольку наш компьютер выполнил 15 действий, а принимающий компьютер смог проверить это с помощью одного действия.
Фактически мы предоставили доказательства своей работы, то есть выполнили доказательство работы.
Компьютер способен создавать миллионы хешей в секунду, 15 операций приведены только для примера: на деле такое доказательство работы не имеет особого смысла. Но представьте, что группа других компьютеров сообщает нашему следующее задание: «Предоставьте нам действительный блок транзакций, его хеш, а также число, которое приведёт к хешу, начинающемуся с 15 нулей».
Изначальная команда поступит в обработку мгновенно:
BlockHash = Hash(‘All of the transactions in the current block’)
После чего наш компьютер приступит к вычислениям:
Hash(BlockHash + 0)
Hash(BlockHash + 1)
Hash(BlockHash + 2)
Чтобы найти хеш с 15 нулями в начале, потребуются многие триллионы попыток. Медленный компьютер потратил бы на это сотни лет, а несколько мощных компьютеров справились бы за считанные минуты.
Эти компьютеры, очевидно, будут съедать много электричества. Из-за затрат на электроэнергию майнеру невыгодно находить допустимый хеш для недопустимого блока транзакций. То есть майнеру глупо подтверждать «неправильный» блок, утверждая, что все транзакции действительны, и просто переходить к хешированию. Остальные компьютеры в сети отклонят недействительный блок, и майнер не получит своё вознаграждение.
Одна из вещей, которая помогает поддерживать децентрализацию майнинга, заключается в том, что двое майнеров не могут хешировать одинаковые блоки. При хешировании «a + b» получается не тот же результат, что при хешировании «b + a». Майнеры получают транзакции по сети в разном порядке; из-за этого, а также из-за индивидуальных предпочтений в вопросах комиссии каждый майнер обрабатывает блок немного иначе.
Хотя все блоки, возможно, были подтверждены правильным образом, только один блок может войти в блокчейн. Все майнеры должны будут продолжать хешировать, пока не найдут число, которое при добавлении к их блоку даёт результат, начинающийся с такого числа нулей, которое сеть согласилась принять как действительный показатель.
Чтобы поддерживать финансовую политику биткоина, сеть должна гарантировать создание нового блока раз в десять минут. Сеть делает это путём корректировки сложности добычи каждые две недели. Поэтому, если блоки обнаруживаются слишком быстро из-за количества новых майнеров, сеть для снижения инфляции увеличивает требуемую сложность, и майнерам приходится искать хеши с большим количеством нулей в начале.
Невозможно заранее узнать, каким будет этот хеш, поэтому майнеры должны работать быстро, используя множество быстрых компьютеров. Поскольку в этой «игре» присутствует элемент случайности, майнер с самым мощным компьютером не всегда выигрывает. Представьте это как лотерею, где пользователь с самым большим количеством билетов имеет больше шансов на победу, но не побеждает каждый раз.
Краткое повторение пройденного: майнер создаёт блок действительных транзакций, а затем запускает Proof-of-Work на этом блоке, надеясь найти хеш, установленный правилами сети, раньше других майнеров. В случае успеха его блок войдет в блокчейн, и он получит своё вознаграждение плюс свежевыпущенный биткоин.
В следующий раз, когда вы услышите в СМИ о том, что майнеры зарабатывают биткоины, решая сложные математические задачи, вы будете знать, о чём идет речь.
Проблемы Proof-of-Work
Майнинг с алгоритмом Proof-of-Work — не единственный известный метод достижения консенсуса в децентрализованной сети. Тем не менее это самый безопасный и меньше всего подверженный централизации на сегодняшний день вариант.
Существуют и другие системы, такие как Proof-of-Stake: она направлена на решение некоторых проблем, связанных с Proof-of-Work, но в целом ведёт к полудецентрализованной (или полуцентрализованной) сети.
Итак, с Proof-of-Work связаны две проблемы.
Высокое энергопотребление
Хеширование от matt до matt+14 занимает меньше одной микросекунды. Однако сеть биткоина состоит из миллионов специально разработанных микрочипов, хеширующих каждые десять минут. Это требует много энергии!
Текущий хешрейт биткоин-сети составляет 20 экзашей в секунду, или, проще говоря, сеть создаёт 20 млрд. хешей в секунду. Обычный компьютер не может выдать даже 1 млрд. хешей в секунду; но если бы это было возможно, понадобилось бы 20 млрд. компьютеров, чтобы иметь такой же хешрейт, как у сети биткиона.
Биткоин-майнеры используют специальные чипы, разработанные для хеширования. Это защищает сеть от атак ботнетов, при которых хакеры захватывают множество компьётеров и используют их для майнинга. Хакеры могут сделать это, но мощности всех доступных им компьютеров не хватит для того, чтобы обмануть сеть биткоина. Созданные хакерами блоки просто будут отклонены.
Блокчейн хранит историю всех когда-либо созданных блоков, включая Proof-of-Work для каждого блока. Когда новый компьютер присоединяется к сети, он загружает весь блокчейн и проверяет каждый фрагмент работы, чтобы гарантировать, что всё верно. Хакеры могут отправить пользователю неправильный блокчейн, но программное обеспечение пользователя подключится ко многим компьютерам и рассмотрит самую длинную цепочку с самым длинным кумулятивным доказательством работы — и это будет «истинный» блокчейн.
Из-за модели безопасности биткоина, где сеть защищена потребляемой ей энергией, главная криптовалюта рассматривается как нечто очень энергоёмкое. В то время как население планеты стремится уменьшить глобальный углеродный след, это обеспечивает СМИ новостями, способными переполошить и напугать общественность.
Из-за того, что электричество представляет собой самую серьёзную статью расходов, с которой сталкиваются майнеры, добыча биткоинов связана не только с гонкой за правильным хешем, но и с поиском самого дешёвого электричества. Лучшим решением для получения дешёвой энергии было использование гидроэнергетики и других возобновляемых источников. Победителем в гонке станет тот, кто найдёт самое дешёвое электричество. Таким образом, биткоин поддерживает развитие современных видов энергетики и способствует защите окружающей среды.
Централизация майнинга
Границы рентабельности добычи биткоинов очень тонкие. Чтобы получить прибыль, вам нужно иметь доступ к дешёвому электричеству, и его поставки должны быть надёжными. Пока большая часть добычи биткоина приходится на западные провинции Китая, где в избытке производится дешёвая электроэнергия. Напротив, модель Proof-of-Stake не имеет географической привязки.
Ситуация может накалиться в том случае, если монопольный производитель оборудования для майнинга биткоинов решит диктовать свои правила, не учитывая интересы клиентов. Это приведёт к централизации сети. Однако, если производитель оборудования захочет слишком многого, пользователи сети могут договориться об изменении метода Proof-of-Stake. В таком случае выпускаемое монополистом оборудование в один момент станет ненужным мусором.
Теоретически, на прибыльном рынке должно быть достаточно конкуренции, но в этой области потребители предпочитают покупать только то оборудование, которое обещает наибольшую прибыль. Некоторые полагаются на закон Мура и верят, что в итоге ни один майнер не будет иметь преимущества над другим; другие считают, что лидеры на рынке будут постоянно сменять друг друга.
Одно можно сказать наверняка: на сегодняшний день Proof-of-Work обеспечивает самый высокий уровень безопасности для децентрализованных блокчейн-сетей.