Лекция
Привет, Вы узнаете о том , что такое доказательство выполнения работы, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое доказательство выполнения работы, proof-of-work, pow, pow , настоятельно рекомендую прочитать все из категории Шифры в криптографии.
доказательство выполнения работы (англ. proof-of-work , POW, PoW) — принцип защиты сетевых систем от злоупотребления услугами (например, от DoS-атак или организации рассылок спама), основанный на необходимости выполнения на стороне клиента некоторой достаточно длительной работы (нахождение решения задачи), результат которой легко и быстро проверяется на стороне сервера (см. односторонняя функция). Главная особенность применяемых вычислений заключается в асимметрии затрат времени — они значительны на нахождение решения и весьма малы для проверки . Подобные схемы также известны как client puzzle (функция клиентской головоломки), computational puzzle (вычислительная головоломка), или CPU pricing function.
Не следует путать этот способ защиты с капчами, которые предлагают задачи, легкие для человека, но трудные или вовсе неразрешимые для компьютера. Доказательство выполнения работы изначально ориентировано на нахождение решения по заранее известному алгоритму за некоторое конечное время, но для проверки полученного решения требуется относительно малое количество операций . Наибольшее распространение и развитие POW-технологии получили в криптовалютных системах.
Впервые выдвижение требования доказательства выполнения работы приведено в статье «Pricing via Processing or Combatting Junk Mail» в 1993 году. Авторы предложили следующую идею: для доступа к общему ресурсу пользователь должен вычислить некоторую функцию, весьма сложную и ресурсоемкую, но при этом решаемую за приемлемое время. Вычисление функции на стороне клиента должно быть гораздо сложнее, чем проверка результата на стороне сервера. Одним из обязательных требований к функции является ее неамортизируемость — при нахождении нескольких решений времени требовалось бы пропорционально их количеству. По предположению авторов, подобные дополнительные расчеты не создают препятствий для отправки нескольких обычных писем с компьютера рядового пользователя, но необходимость постоянных вычислений делает отправку спама очень ресурсоемкой. По независимым оценкам, подобные системы приводят фактически к существенному ограничению количества писем, которые возможно отправить за день с одного компьютера .
В 1997 году Адам Бэк запустил проект Hashcash , посвященный защите от спама. Задача формулировалась следующим образом: «Найти такое значение x, что хеш SHA(x) содержал бы N старших нулевых бит».
В 1999 году появляется термин Proof-of-Work — использован он был в статье «Proofs of Work and Bread Pudding Protocols» (авторы — Маркус Якобссон и Ари Джуелс) в журнале Communications and Multimedia Security .
16 августа 2004 года Хэл Финни в своем письме на форуме шифропанков предложил использовать многоразовое доказательство выполнения работы (англ. Reusable-Proofs-of-Work, RPOW, RPoW) для организации электронной валюты .
Вскоре Сатоси Накамото предложил криптовалюту биткойн, где доказательство выполнения работы использовано для значительного усложнения двойного расходования. Было предложено нахождение хеша блока информации через функцию SHA-256 с подбором параметров, чтобы у результата заданное число старших бит было нулевым. В дальнейшем в других криптовалютах (например Litecoin) вместо SHA-256 стали применяться KDF, такие как scrypt, bcrypt, PBKDF2 и другие .
Одна популярная система, используемая в Hashcash , использует частичную инверсию хэша, чтобы доказать, что работа была выполнена, в качестве токена доброй воли для отправки электронного письма . Например, следующий заголовок представляет около 2 52 вычислений хеша для отправки сообщения
Это проверяется одним вычислением путем проверки того, что хэш SHA-1 штампа (без имени заголовка, X-Hashcash:
включая двоеточие и любое количество пробелов, следующих за ним до цифры '1') начинается с 52 двоичных нулей, то есть 13 шестнадцатеричные нули:
Могут ли системы PoW действительно решить конкретную проблему отказа в обслуживании, такую как проблема спама, является предметом обсуждения; система должна сделать рассылку спама навязчиво непродуктивной для спамера, но также не должна препятствовать легитимным пользователям отправлять свои сообщения. Другими словами, настоящий пользователь не должен сталкиваться с какими-либо трудностями при отправке электронной почты, но спамеру электронной почты придется затратить значительные вычислительные мощности для одновременной отправки множества электронных писем. Системы Proof-of-Work используются в качестве примитивов другими более сложными криптографическими системами, такими как биткойн, который использует систему, аналогичную Hashcash.
Существует два класса протоколов доказательства работы.
Протоколы с известными решениями имеют тенденцию иметь немного меньшую дисперсию, чем неограниченные вероятностные протоколы, потому что дисперсия прямоугольного распределения ниже, чем дисперсия распределения Пуассона (с тем же средним). Об этом говорит сайт https://intellect.icu . [ требуется дополнительное объяснение ] Общий метод уменьшения дисперсии состоит в использовании нескольких независимых подзадач, поскольку среднее значение нескольких выборок будет иметь меньшую дисперсию.
Есть также функции с фиксированной стоимостью, такие как головоломка с временным замком.
Более того, базовые функции, используемые этими схемами, могут быть:
Наконец, некоторые системы PoW предлагают быстрые вычисления, которые позволяют участникам, которые знают секрет, обычно закрытый ключ, генерировать дешевые PoW. Причина в том, что держатели списков рассылки могут создавать марки для каждого получателя, не неся при этом больших затрат. Желательна ли такая функция, зависит от сценария использования.
Список наиболее распространенных функций, применяемых в системах доказательства выполнения работы:
Эксперты продолжают обсуждать, является ли POW-защита достаточно эффективной против DoS-атак и спама[17][18].
На ранних этапах существования Bitcoin, как и многие другие криптовалюты, уязвим для «атаки 51 %»: если в руках злоумышленника находится больше половины всех вычислительных мощностей в сети, то у него появляется возможность подтверждать только свои блоки, при этом игнорируя чужие, что позволяет ему получать 100 % всех производимых биткойнов, а также блокировать любые транзакции. Как вариант, атакующий может переписать всю историю генерации блоков, начиная с определенного момента в прошлом. В результате он может догнать и обогнать текущую цепочку блокчейна, сделав свой вариант валидным. Как итог, деньги, хранящиеся в кошельках пользователей на протяжении продолжительного периода, пропадут.[12]
Двойное расходование (двойная трата) — повторная передача одних и тех же активов. Данная атака делится на несколько подтипов.
При эгоистичном майнинге (англ. selfish mining) целью злоумышленника является контроль над сетью при том, что он обладает вычислительными ресурсами суммарной мощностью менее 50 %. Это достигается за счет того, что злоумышленник заявляет, что его пул более выгоден для майнинга, чем другие пулы, что привлекает сторонних майнеров. Атакующий публикует блоки таким образом, чтобы вычислительные ресурсы других майнеров и пулов были потрачены впустую. Приблизительный ход алгоритма такой:
Почти при каждом исходе честные майнеры оказываются в проигрыше, что вынуждает их присоединиться к преступному пулу.[21]
Противники POW подхода, помимо ряда потенциальных проблем с безопасностью, выделяют следующие недостатки:
Попытки избавиться от недостатков POW привели к появлению POS и многочисленных гибридных вариантов.
Примеры гибридных схем, совмещающих идеи POS и POW можно найти во многих криптовалютах. В них блокчейн состоит из блоков обоих типов, что делает переписывание историй транзакций непростой задачей, так как POW блоки служат контрольными точками, если брать во внимание суммарную сложность работы во всей цепочке. Обычно в таких алгоритмах POW блоки служат показателями реальной работы, что дает дополнительную гарантию надежности для продавцов при работе с транзакциями. POW блоки можно использовать для эмиссии валюты, а POS блоки рассматривать как потенциальный доход от депозита.[25]
Не реализованный пока прототип алгоритма, заключающийся в том что холдеры вступают в общий процесс только после проведения некоторой работы POW участниками, что уменьшает шансы на атаку 51 %, так как мажоритарный владелец не сможет единолично контролировать создание новых блоков.[26]
Принцип работы алгоритма:
Деньги отправляются на адрес, являющийся хешем случайного числа, с этого адреса их гарантированно нельзя потратить, так как вероятность подобрать ключи к нему стремится к нулю. Взамен майнер получает постоянный шанс найти PoB блок и получить за него награду. Майнинг в данном случае устроен так, что шансы на успех зависят от количества сожженных монет. Проводя аналогии, сжигание- это как невозвратный POS депозит или инвестиции в виртуальное железо для POW майнинга. С экономической точки зрения данный алгоритм лучше подходит для поздних этапов развития криптовалюты, когда уже сгенерирована большая часть денежной массы.[27]
Алгоритм Proof of Capacity (или Proofs of Space) заключается в следующем: для майнинга необходимо выделить существенный объем памяти на компьютере, после чего многократным хешированием из публичного ключа и случайных чисел создается большое количество крупных блоков данных. В каждом блоке данных из последнего заголовка получаем индекс, после чего выбираем небольшой кусочек блока с этим индексом, чанк (англ. Chunk). Чем больше памяти выделено, тем больше получаем чанков. Должно выполняться условие, что хеш чанка и последнего заголовка должен быть меньше чем цель. Таким образом, каждый мегабайт памяти используется как аналог лотерейного билета и увеличивает шанс на успех при майнинге.[28]
Алгоритм Proof of Research (доказательство проведенного исследования) был разработан в проекте GridCoin для того чтобы направить вычислительные мощности PoW-сетей на решение научных задач на платформе BOINC. В Proof of Research одновременно используется Proof of Work для вознаграждения участников за выполненные вычисления и Proof of Stake для поощрения долговременного участия в проекте[29].
Системы на основе POW являются чрезвычайно ресурсоемкими.
Криптовалюты
|
|
---|---|
PoW на основе SHA-2 |
|
PoW на основе Scrypt |
|
PoW на основе CryptoNote |
|
Другие алгоритмы PoW |
|
Алгоритмы PoS |
|
Другие технологии |
|
Исследование, описанное в статье про доказательство выполнения работы, подчеркивает ее значимость в современном мире. Надеюсь, что теперь ты понял что такое доказательство выполнения работы, proof-of-work, pow, pow и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Шифры в криптографии
Комментарии
Оставить комментарий
Информационная безопасность, Шифры в криптографии
Термины: Информационная безопасность, Шифры в криптографии