Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

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

Лекция



Привет, Вы узнаете о том , что такое доказательство выполнения работы, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое доказательство выполнения работы, 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 вычислений хеша для отправки сообщения

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

Это проверяется одним вычислением путем проверки того, что хэш SHA-1 штампа (без имени заголовка, X-Hashcash:включая двоеточие и любое количество пробелов, следующих за ним до цифры '1') начинается с 52 двоичных нулей, то есть 13 шестнадцатеричные нули:

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

Могут ли системы PoW действительно решить конкретную проблему отказа в обслуживании, такую ​​как проблема спама, является предметом обсуждения; система должна сделать рассылку спама навязчиво непродуктивной для спамера, но также не должна препятствовать легитимным пользователям отправлять свои сообщения. Другими словами, настоящий пользователь не должен сталкиваться с какими-либо трудностями при отправке электронной почты, но спамеру электронной почты придется затратить значительные вычислительные мощности для одновременной отправки множества электронных писем. Системы Proof-of-Work используются в качестве примитивов другими более сложными криптографическими системами, такими как биткойн, который использует систему, аналогичную Hashcash.

Варианты

Существует два класса протоколов доказательства работы.

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

Протоколы с известными решениями имеют тенденцию иметь немного меньшую дисперсию, чем неограниченные вероятностные протоколы, потому что дисперсия прямоугольного распределения ниже, чем дисперсия распределения Пуассона (с тем же средним). Об этом говорит сайт https://intellect.icu . [ требуется дополнительное объяснение ] Общий метод уменьшения дисперсии состоит в использовании нескольких независимых подзадач, поскольку среднее значение нескольких выборок будет иметь меньшую дисперсию.

Есть также функции с фиксированной стоимостью, такие как головоломка с временным замком.

Более того, базовые функции, используемые этими схемами, могут быть:

  • Привязка к процессору, когда вычисления выполняются со скоростью процессора, которая сильно варьируется во времени , а также от высокопроизводительных серверов до портативных устройств начального уровня.
  • Ограничение памяти [10], где скорость вычислений ограничивается доступом к основной памяти (либо задержкой, либо пропускной способностью), производительность которых, как ожидается, будет менее чувствительна к эволюции оборудования.
  • С привязкой к сети [11], если клиент должен выполнить несколько вычислений, но должен собрать некоторые токены с удаленных серверов перед запросом окончательного поставщика услуг. В этом смысле работа на самом деле не выполняется инициатором запроса, но в любом случае возникают задержки из-за задержки для получения требуемых токенов.

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

Примеры применяемых функций

Список наиболее распространенных функций, применяемых в системах доказательства выполнения работы:

  • Хеширование частичной инверсии. Наиболее известное применение — система Hashcash , которая использует хеширование частичной инверсии при отправке по электронной почте. Для расчета заголовка одного письма требуется около 252 хеш-вычислений, которые надо пересчитывать для каждого нового письма. При этом проверка корректности вычисленного кода является быстрой — используется однократное вычисление SHA-1 с заранее подготовленной меткой. [10]
  • Функции, основанные на деревьях Меркля.[11] Самый известный пример применения данного варианта можно найти в системе Bitcoin, где в качестве доказательства выполнения работы используется многоуровневое хеширование — хеш предыдущего блока становится элементом последующего. Таким образом нет возможности изменить блок без изменения хешей во всех последующих блоках. При этом проверка целостности всей цепочки ограничена однократным вычислением хешей текущего блока и предыдущего. Хеш признается истинным только в том случае, если значение хеш-суммы меньше значения специального параметра, определяющего сложность майнинга. Для поиска такой хеш-суммы требуется ее многократный пересчет с перебором произвольных значений параметра nonce.[12]
  • Квадратичный вычет по модулю большого простого числа[13]
  • Подпись по Протоколу Фиата — Шамира[13]
  • Функция на основе Протокола Диффи — Хеллмана[14]
  • Функция ограниченная по памяти (en:Memory bound function)[15]
  • Кукушкино хеширование[16]

Потенциальные уязвимости и атаки на информационные системы, основанные на POW

Эксперты продолжают обсуждать, является ли POW-защита достаточно эффективной против DoS-атак и спама[17][18].

Атака 51 %

На ранних этапах существования Bitcoin, как и многие другие криптовалюты, уязвим для «атаки 51 %»: если в руках злоумышленника находится больше половины всех вычислительных мощностей в сети, то у него появляется возможность подтверждать только свои блоки, при этом игнорируя чужие, что позволяет ему получать 100 % всех производимых биткойнов, а также блокировать любые транзакции. Как вариант, атакующий может переписать всю историю генерации блоков, начиная с определенного момента в прошлом. В результате он может догнать и обогнать текущую цепочку блокчейна, сделав свой вариант валидным. Как итог, деньги, хранящиеся в кошельках пользователей на протяжении продолжительного периода, пропадут.[12]

Двойное расходование

Двойное расходование (двойная трата) — повторная передача одних и тех же активов. Данная атака делится на несколько подтипов.

  • Атака типа «гонки» (англ. Race Attack). Злоумышленник совершает транзакцию X, оплачивая покупку товара, одновременно переводя эти же деньги на другой свой счет транзакцией Y. Если продавец не стал ждать подтверждения транзакции и отгрузил товар, то он пошел на большой риск, так как есть 50%-я вероятность, что транзакция Y может попасть в истинную цепочку, причем эта вероятность повышается в случае, если злоумышленник целенаправленно выбирает узлы сети для проведения той или иной операции.[19]
  • Атака Финни заключается в следующем: злоумышленник пытается найти блок, который содержит его транзакцию Y. Однако как только блок обнаруживается, атакующий отправляет транзакцию X, после чего он покупает товар. Продавец дожидается подтверждения транзакции X и отгружает товар. Если в этот момент появляется блок с транзакцией Y, то создается ситуация развилки, в которой майнеры должны выбрать один из двух блоков для продолжения цепочки блокчейна. При сосредоточении большого количества вычислительных ресурсов в руках злоумышленника, он может значительно увеличить вероятность выбора блока с операцией Y. Таким образом подтвержденная транзакция не является гарантированно валидной.[20]

Эгоистичный майнинг

При эгоистичном майнинге (англ. selfish mining) целью злоумышленника является контроль над сетью при том, что он обладает вычислительными ресурсами суммарной мощностью менее 50 %. Это достигается за счет того, что злоумышленник заявляет, что его пул более выгоден для майнинга, чем другие пулы, что привлекает сторонних майнеров. Атакующий публикует блоки таким образом, чтобы вычислительные ресурсы других майнеров и пулов были потрачены впустую. Приблизительный ход алгоритма такой:

  1. Пул тайно от всех майнит свою приватную цепочку.
  2. Если пул находит новый блок для своей приватной цепи, то:
    1. Если оригинальная цепочка разветвилась, то атакующий публикует свой блок, таким образом его цепочка становится длиннее и становится истинной, а цепь честных майнеров отбрасывается.
    2. Если развилки пока нет, то пул продолжает тайно майнить свою приватную цепь, наращивая отрыв.
  3. Если публичная цепь находит блок для общедоступной цепи, то:
    1. Если публичная цепь опережает тайную, то пул злоумышленника отбрасывает свои неопубликованные блоки и начинает майнить с нового публичного блока.
    2. Если цепи сравнялись, то пул злоумышленника публикует все свои блоки, таким образом уходя в отрыв в своей цепи.
    3. Если публичная цепь отстает на некоторое количество (N) блоков от приватной, то пул публикует на один блок больше (N+1), что изолирует новый честный блок.

Почти при каждом исходе честные майнеры оказываются в проигрыше, что вынуждает их присоединиться к преступному пулу.[21]

Критика информационных систем на основе POW

Противники POW подхода, помимо ряда потенциальных проблем с безопасностью, выделяют следующие недостатки:

  • Вероятность успешного создания следующего блока майнером прямо пропорциональна вычислительным мощностям, которыми он обладает, что приводит к постоянному наращиванию количества и качества оборудования каждого участника сети. Таким образом, майнинг с применением POW алгоритмов требует чрезвычайно много электроэнергии. Поэтому POW подход является не самым лучшим решением с точки зрения энергоэффективности.[22][23]
  • Результаты вычисления хеш-функций нигде, кроме как в самой сети, не нужны. С момента появления технологии сообщество пыталось придумать способ направить все вычислительные ресурсы сети на решение какой-либо полезной математической или промышленной задачи, но в чистом виде это не удалось реализовать.[24]

Попытки избавиться от недостатков POW привели к появлению POS и многочисленных гибридных вариантов.

Примеры гибридных технологий

Примеры гибридных схем, совмещающих идеи POS и POW можно найти во многих криптовалютах. В них блокчейн состоит из блоков обоих типов, что делает переписывание историй транзакций непростой задачей, так как POW блоки служат контрольными точками, если брать во внимание суммарную сложность работы во всей цепочке. Обычно в таких алгоритмах POW блоки служат показателями реальной работы, что дает дополнительную гарантию надежности для продавцов при работе с транзакциями. POW блоки можно использовать для эмиссии валюты, а POS блоки рассматривать как потенциальный доход от депозита.[25]

Proof of Activity

Не реализованный пока прототип алгоритма, заключающийся в том что холдеры вступают в общий процесс только после проведения некоторой работы POW участниками, что уменьшает шансы на атаку 51 %, так как мажоритарный владелец не сможет единолично контролировать создание новых блоков.[26]

Принцип работы алгоритма:

  1. POW майнер ищет хеш соответствующей сложности.
  2. Найденный хеш отправляется в сеть, при этом являясь не блоком, а лишь первым шагом, своеобразным шаблоном, необходимым для его создания.
  3. Хеш, состоящий из 256 псевдослучайных бит, интерпретируется как N чисел, к каждому из которых в соответствие ставится один сатоси.
  4. Устанавливается взаимно однозначная связь между каждым сатоси и публичным ключом его текущего владельца.
  5. Как только все N владельцев поставят свои подписи на этом блоке, на выходе получается полноценный блок.
  6. В случае, если один из холдеров не доступен или не участвует в майнинге, то остальные майнеры продолжают генерировать шаблоны с различными комбинациями холдеров-кандидатов.
  7. В какой-то момент необходимый блок будет подписан нужное количество раз. Награда за блок распределяется между POW майнером и всеми N холдерами.

Proof of Burn

Деньги отправляются на адрес, являющийся хешем случайного числа, с этого адреса их гарантированно нельзя потратить, так как вероятность подобрать ключи к нему стремится к нулю. Взамен майнер получает постоянный шанс найти PoB блок и получить за него награду. Майнинг в данном случае устроен так, что шансы на успех зависят от количества сожженных монет. Проводя аналогии, сжигание- это как невозвратный POS депозит или инвестиции в виртуальное железо для POW майнинга. С экономической точки зрения данный алгоритм лучше подходит для поздних этапов развития криптовалюты, когда уже сгенерирована большая часть денежной массы.[27]

Proof of Capacity

Алгоритм Proof of Capacity (или Proofs of Space) заключается в следующем: для майнинга необходимо выделить существенный объем памяти на компьютере, после чего многократным хешированием из публичного ключа и случайных чисел создается большое количество крупных блоков данных. В каждом блоке данных из последнего заголовка получаем индекс, после чего выбираем небольшой кусочек блока с этим индексом, чанк (англ. Chunk). Чем больше памяти выделено, тем больше получаем чанков. Должно выполняться условие, что хеш чанка и последнего заголовка должен быть меньше чем цель. Таким образом, каждый мегабайт памяти используется как аналог лотерейного билета и увеличивает шанс на успех при майнинге.[28]

Proof of Research

Алгоритм Proof of Research (доказательство проведенного исследования) был разработан в проекте GridCoin для того чтобы направить вычислительные мощности PoW-сетей на решение научных задач на платформе BOINC. В Proof of Research одновременно используется Proof of Work для вознаграждения участников за выполненные вычисления и Proof of Stake для поощрения долговременного участия в проекте[29].

Энергетическая неэффективность[

Системы на основе POW являются чрезвычайно ресурсоемкими.

  • В 2013 году совокупная вычислительная мощность, затрачиваемая на POW в сети Bitcoin, обогнала в 256 раз топ-500 самых мощных на тот год суперкомпьютеров в мире вместе взятых.[30]
  • В 2017 году на полное оформление одной транзакции в системе Bitcoin требовалось затратить в среднем 163 кВт⋅ч энергии. Таким количеством энергии можно в течение пяти с половиной дней полностью обеспечивать нужды семьи, состоящей из трех человек и проживающей в небольшом одноэтажном доме. На майнинг криптовалют в сетях Bitcoin и Ethereum суммарно уходило энергии больше, чем потребляло все население Сирии[22][23].

Вау!! 😲 Ты еще не читал? Это зря!

Криптовалюты
PoW на основе SHA-2
  • Биткойн
  • Bitcoin Cash
  • Namecoin
PoW на основе Scrypt
  • Auroracoin
  • Dogecoin
  • Litecoin
PoW на основе CryptoNote
  • Bytecoin
  • Monero
Другие алгоритмы PoW
  • Ethereum
  • IOTA
  • Dash
  • Peercoin
  • Ethereum Classic
  • Primecoin
Алгоритмы PoS
  • Bitshares
  • EOS.IO
  • Gram
  • TRON
Другие технологии
  • Burstcoin
  • Emer Coin
  • Gridcoin
  • Mastercoin
  • NEM
  • NEO
  • NXT
  • OmiseGO
  • Polkadot
  • XRP (Ripple)
  • Stellar
  • Zcash
  • Tether


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

создано: 2021-03-13
обновлено: 2021-03-13
23



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Информационная безопасность, Шифры в криптографии

Термины: Информационная безопасность, Шифры в криптографии