Казалось бы, бессмысленность майнинга криптовалюты подняла вопрос о полезных альтернативах, см. Эти вопросы на Bitcoin , CST , MO . Интересно, существует ли алгоритм, который может преобразовать практически любую вычислительную задачу (решение которой может быть эффективно проверено) в другую такую задачу (которая используется для проверки работы), такую, что
- Функция рандомизирована с использованием некоторой (публичной) случайной последовательности .
- Решение является , как правило , столь же трудно , как решение .
- Если решение будет найдено , то решение может быть эффективно вычислено для исходной задачи .
- Знание решения для не помогает найти решение для .
4 '(обновление). Как отметил Ной в комментарии, предыдущее условие должно быть усилено так, чтобы предварительная обработка также не давала никаких преимуществ при решении .
Это последнее условие необходимо для того , что никто не может быть введен в выгодное положение только потому , что они знают решение . Используя этот метод, люди могут представлять вычислительные проблемы, которые они хотят решить, и центральный орган может выбрать некоторые достойные решения (например, поиск инопланетян или взлом паролей). Обратите внимание, что это не проблема, если на решение проблемы уходит даже неделя (я думаю, что эти инопланетяне не могут так хорошо скрываться;), поскольку это может привести к большей награде за решение. В любом случае, эти темы не имеют отношения к решению моей теоретической проблемы, но, конечно, я рад обсудить их в комментариях / на форуме.
Возможное решение будет следующим: отображает в , то есть, решает и некоторые другие сложные вычислительные задачи. Одна проблема состоит в том , что зная решение C делает решающий Ф ( С ) несколько проще (насколько легче зависит от сложности H S H г ). Другая проблема заключается в том , что Ψ ( C ) стало более трудным , чем C .
Ответы:
( Примечание : Андреас Бьёрклунд предложил в комментариях решение, которое, на мой взгляд, лучше, чем описанное ниже. См. Http://eprint.iacr.org/2017/203 от Ball, Rosen, Sabin и Vasudevan. Короче говоря, они дают доказательства работы, основанные на таких проблемах, как ортогональные векторы, твердость которых хорошо понятна и к которым многие проблемы (например, k-SAT) могут быть сравнительно эффективно сведены. Их экземпляр PoW столь же сложен, как и ортогональный в худшем случае Векторы, даже если входной экземпляр C прост, поэтому они позволяют избежать существенного недостатка решения, описанного ниже.Ψ ( С) С
Решение, описанное ниже, могло бы извлечь выгоду из его простоты - оно может быть описано не экспертом - но оно кажется мне гораздо менее интересным теоретически.)
Решение возможно, если сделать строгое предположение, что «самый быстрый алгоритм для фундаментально рандомизирован» (и если мы смоделируем криптографическую хеш-функцию как случайный оракул). Один из способов формализовать это - сказать, чтоС
Заметим , что предположение , что означает , что полный перебор из { 0 , 1 } к , по существу , оптимальный алгоритм C . Итак, это довольно сильное предположение. С другой стороны, если C не удовлетворяет этим свойствам, то мне трудно представить, чтобы выполнялись оба ваших условия (2) и (4).k ≈ log2Т { 0 , 1 }К С С
Тогда для заданной хеш-функции , которую мы моделируем как случайный оракул, определим Ψ H ( C ; r ) следующим образом, где r ∈ { 0 , 1 } ℓ для некоторого л » к является случайной вход ф Н . Цель состоит в том, чтобы вывести x ∈ { 0 , 1 } ∗ так , чтобыЧАС: { 0 , 1 }*→ { 0 , 1 }К ΨЧАС( C; г ) r ∈ { 0 , 1 }ℓ ℓ » к ΨЧАС x ∈ { 0 , 1 }* является решением C . Другими словами, ( r , x ) должен хешировать «хорошие случайные монеты» для вышеуказанного алгоритма.f(H(r,x)) C (r,x)
Давайте посмотрим, что это удовлетворяет всем вашим условиям.
источник
Следующая простая техника, которую я называю техникой лотереи решений (SLT), может использоваться в сочетании с другими техниками (такими как наличие множества проблем военнопленных, техника, упомянутая в ответе Ноа Стивенса-Давидовича и т. Д.), Чтобы помочь преобразовать вычислительные задачи в жизнеспособное доказательство рабочих проблем. SLT помогает улучшить проблемы с проблемами майнинга криптовалюты, кроме условий 1-4.
Предположим, что является вычислительной задачей вида «найдите подходящий хеш k вместе со строкой x такой, что ( k , x ) ∈ D ».C k x (k,x)∈D
Проблема настройки: Предположим , что D представляет собой набор, Н представляет собой криптографический хэш - функция, а С есть некоторая постоянная. Предположим, кроме того, что Data ( k , x ) является частью информации, которую легко получить после того, как определено, что ( k , x ) ∈ D, но которую нельзя получить иначе.Ψ(C) D H C Data(k,x) (k,x)∈D
Задача Цель: найти пару ( k , x ) , для которой k является подходящим хешем и где ( k , x ) ∈ D и где H ( k | | x | | Data ( k , x ) ) < C .Ψ(C) (k,x) k (k,x)∈D H(k||x||Data(k,x))<C
Теперь рассмотрим, как задача удовлетворяет требованиям 1-4.Ψ(C)
2-3. , как правило, станет сложнее, чем C, и это хорошо. Сложность задачи «Доказательство работы» должна быть точно настраиваемой, но исходная задача C может иметь или не иметь точно настраиваемый уровень сложности (помните, что сложность майнинга Биткойна корректируется каждые две недели). Сложность задачи Ψ ( C ) равна сложности нахождения некоторого подходящего ( k , x ) ∈ D, умноженного на 2 n.Ψ(C) C C Ψ(C) (k,x)∈D . Следовательно, поскольку постояннаяCявляется тонко перестраиваемой, сложностьΨ(C)также является тонко перестраиваемой.2nC C Ψ(C)
Даже если задача сложнее, чем исходная задача C , почти вся работа по решению проблемы Ψ ( C ) будет потрачена на простое нахождение пары ( k , x ) с ( k , x ) ∈ D вместо вычисления хешей (нельзя вычислить, является ли H ( k | | x | | Data ( k , x ) ) < CΨ(C) C Ψ(C) (k,x) (k,x)∈D H(k||x||Data(k,x))<C или нет, пока кто-то не вычислил и не сможет вычислить Данные ( k , x ), пока не проверит, что Данные ( k , x ) ∈ D ).Data(k,x) Data(k,x) Data(k,x)∈D
Конечно, тот факт, что сложнее, чем C, вызывает некоторые новые опасения. Для полезной задачи наиболее вероятно, что в какой-то базе данных нужно будет хранить пары ( k , x ), где ( k , x ) ∈ D. Однако, чтобы получить награду за блок, майнер должен раскрыть только пару ( k , x ), где ( k , x ) ∈ D и H ( k | |Ψ(C) C (k,x) (k,x)∈D (k,x) (k,x)∈D вместо всех пар ( k , x ) ∈ D независимо от того, H ( k | | x | | Data ( k , x ) ) < C или нет. Одним из возможных решений этой проблемы для майнеров является просто выявление всех пар ( k , x ), где ( k , x )H(k||x||Data(k,x))<C (k,x)∈D H(k||x||Data(k,x))<C (k,x) из вежливости. Шахтеры также будут иметь возможность отклонять цепиесли шахтеры не отправили свою справедливую долю пара ( к , х ) ∈ D . Возможно, следует подсчитать количество пар ( k , x ) ∈ D для расчета того, кто имеет самую длинную действительную цепочку. Если большинство шахтеров размещать свои решения, то процесс решения Ф ( С ) будет производить так жекак многие решениякак процесс решения C .(k,x)∈D (k,x)∈D (k,x)∈D Ψ(C) C
В сценарии, где майнеры размещают все пары , Ψ ( C ) удовлетворяет духу условий 2-3.(k,x)∈D Ψ(C)
SLT предлагает другие преимущества, чем условия 1-4, которые являются желательными или необходимыми для задачи проверки работы.
Улучшение баланса между безопасностью и эффективностью: SLT поможет в случае, когда может быть слишком легко решить или слишком сложно проверить. В общем, Ψ ( C ) гораздо сложнее решить , чем C , но Ψ ( C ) примерно так же легко проверить , как C .C Ψ(C) C Ψ(C) C
Устранение неисправной / небезопасной проблемы: SLT можно использовать для алгоритмического устранения проблем с плохим военнопленным в криптовалюте с резервной проблемой POW и множественными проблемами POW. Предположим , что предприятие находит очень быстрый алгоритм для решения задачи . Тогда такая проблема больше не является подходящей проблемой доказательства работы и должна быть удалена из криптовалюты. Поэтому криптовалюта должен иметь алгоритм , который удаляет C из криптовалюта всякий раз , когда кто - то разместил алгоритм , который решает проблемы C слишком быстро , но который никогда не снимает проблему C иначе. Вот схема такого алгоритма удаления проблемы используется для удаления проблемы , которую мы будем называть Problem А .C C C C A
а. Алиса платит большую плату (плата покрывает расходы, которые несут майнеры за проверку алгоритма), а затем публикует алгоритм, который мы назовем Алгоритм K, который разбивает проблему в блокчейне. Если алгоритм К опирается на большое количество предварительно вычисленных данных Р С , затем Алиса сообщений корень Меркл этого предварительно вычисленных данных Р С .A PC PC
б. Случайные экземпляры проблемы А создаются блокчейном. Затем Алиса сообщения участки предварительно вычисленные данные , которые необходимы для алгоритма K работать правильно наряду с их ветви Merkle, чтобы доказать , что данные на самом деле пришли из . Если алгоритм Алисы быстро получает предварительно вычисленные данные P C , проблема устраняется, и Алиса получает вознаграждение за публикацию алгоритма, который устраняет проблему из блокчейна.PC PC
Эта процедура удаления проблемы является вычислительно дорогой для майнеров и валидаторов. Тем не менее, SLT устраняет большую часть вычислительных трудностей этого метода, так что он может быть использован при необходимости в криптовалюте (случаи, когда этот метод используется, вероятно, будут довольно редкими).
Майнинг пулы более выполнимы: в криптовалютах зачастую очень трудно получить награду за блок. Поскольку награды за блок очень трудно выиграть, майнеры часто добывают то, что называется майнинг-пулами, в которых майнеры объединяют свои ресурсы для решения проблемы и в которых они делят награду за блок пропорционально количеству «промахов», которые они нашли. , Возможная проблема для является то , что это может быть трудно получить качественное представление о том , что представляет собой как «у промаха» для задачи C и алгоритм для нахождения рядом промаха может отличаться от алгоритма решения C . Так как майнеры пула будут искать промахи, они могут быть не очень эффективны в решении CC C C C (и, следовательно, мало кто присоединится к майнинг-пулам). Однако для существует четкое понятие о близком промахе, а именно, о близком промахе есть пара ( k , x ), где ( k , x ) ∈ D, но где H ( k | | x | | Данные ( k , x ) ) ≥ C и алгоритм поиска ближних промахов для Ψ ( C )Ψ(C) (k,x) (k,x)∈D H(k||x||Data(k,x))≥C Ψ(C) будет таким же, как алгоритм поиска решения .Ψ(C)
Свобода хода выполнения: задача доказательстве работы называется свободной от прогресса, если количество времени, которое требуется объекту или группе объектов для поиска следующего блока в цепочке блоков, следует экспоненциальному распределению e - λ x, где постоянная λ прямо пропорциональна количеству вычислительной мощности , что юридическое лицо использует для решения задачи P . Свобода прогресса необходима для решения задач майнинга криптовалюты, чтобы майнеры могли получать вознаграждение за блок пропорционально их мощности майнинга для достижения децентрализации. SLT, безусловно, помогает минировать проблемы достижения прогресса.P e−λx λ P
источник