Следующая простая техника, которую я называю техникой лотереи решений (SLT), может использоваться в сочетании с другими техниками (такими как наличие множества проблем военнопленных, техника, упомянутая в ответе Ноа Стивенса-Давидовича и т. Д.), Чтобы помочь преобразовать вычислительные задачи в жизнеспособное доказательство рабочих проблем. SLT помогает улучшить проблемы с проблемами майнинга криптовалюты, кроме условий 1-4.
Предположим, что является вычислительной задачей вида «найдите подходящий хеш k вместе со строкой x такой, что ( k , x ) ∈ D ».Ckx(k,x)∈D
Проблема настройки: Предположим , что D представляет собой набор, Н представляет собой криптографический хэш - функция, а С есть некоторая постоянная. Предположим, кроме того, что Data ( k , x ) является частью информации, которую легко получить после того, как определено, что ( k , x ) ∈ D, но которую нельзя получить иначе.Ψ(C)DHCData(k,x)(k,x)∈D
Задача Цель: найти пару ( k , x ) , для которой k является подходящим хешем и где ( k , x ) ∈ D и где H ( k | | x | | Data ( k , x ) ) < C .Ψ(C)(k,x)k(k,x)∈DH(k||x||Data(k,x))<C
Теперь рассмотрим, как задача удовлетворяет требованиям 1-4.Ψ(C)
- Мы должны предположить, что уже рандомизирован для SLT, чтобы удовлетворить это свойство.C
2-3. , как правило, станет сложнее, чем C, и это хорошо. Сложность задачи «Доказательство работы» должна быть точно настраиваемой, но исходная задача C может иметь или не иметь точно настраиваемый уровень сложности (помните, что сложность майнинга Биткойна корректируется каждые две недели). Сложность задачи Ψ ( C ) равна сложности нахождения некоторого подходящего ( k , x ) ∈ D, умноженного на 2 n.Ψ(C)CCΨ(C)(k,x)∈D . Следовательно, поскольку постояннаяCявляется тонко перестраиваемой, сложностьΨ(C)также является тонко перестраиваемой.2nCCΨ(C)
Даже если задача сложнее, чем исходная задача C , почти вся работа по решению проблемы Ψ ( C ) будет потрачена на простое нахождение пары ( k , x ) с ( k , x ) ∈ D вместо вычисления хешей (нельзя вычислить, является ли H ( k | | x | | Data ( k , x ) ) < CΨ(C)CΨ(C)(k,x)(k,x)∈DH(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)∈DH(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)
- может или не может удовлетворять условию 4 в зависимости от конкретной проблемы.Ψ(C)4
Other Advantages of this technique:
SLT предлагает другие преимущества, чем условия 1-4, которые являются желательными или необходимыми для задачи проверки работы.
Улучшение баланса между безопасностью и эффективностью: SLT поможет в случае, когда может быть слишком легко решить или слишком сложно проверить. В общем, Ψ ( C ) гораздо сложнее решить , чем C , но Ψ ( C ) примерно так же легко проверить , как C .CΨ(C)CΨ(C)C
Устранение неисправной / небезопасной проблемы: SLT можно использовать для алгоритмического устранения проблем с плохим военнопленным в криптовалюте с резервной проблемой POW и множественными проблемами POW. Предположим , что предприятие находит очень быстрый алгоритм для решения задачи . Тогда такая проблема больше не является подходящей проблемой доказательства работы и должна быть удалена из криптовалюты. Поэтому криптовалюта должен иметь алгоритм , который удаляет C из криптовалюта всякий раз , когда кто - то разместил алгоритм , который решает проблемы C слишком быстро , но который никогда не снимает проблему C иначе. Вот схема такого алгоритма удаления проблемы используется для удаления проблемы , которую мы будем называть Problem А .CCCCA
а. Алиса платит большую плату (плата покрывает расходы, которые несут майнеры за проверку алгоритма), а затем публикует алгоритм, который мы назовем Алгоритм K, который разбивает проблему в блокчейне. Если алгоритм К опирается на большое количество предварительно вычисленных данных Р С , затем Алиса сообщений корень Меркл этого предварительно вычисленных данных Р С .APCPC
б. Случайные экземпляры проблемы А создаются блокчейном. Затем Алиса сообщения участки предварительно вычисленные данные , которые необходимы для алгоритма K работать правильно наряду с их ветви Merkle, чтобы доказать , что данные на самом деле пришли из . Если алгоритм Алисы быстро получает предварительно вычисленные данные P C , проблема устраняется, и Алиса получает вознаграждение за публикацию алгоритма, который устраняет проблему из блокчейна.PCPC
Эта процедура удаления проблемы является вычислительно дорогой для майнеров и валидаторов. Тем не менее, SLT устраняет большую часть вычислительных трудностей этого метода, так что он может быть использован при необходимости в криптовалюте (случаи, когда этот метод используется, вероятно, будут довольно редкими).
Майнинг пулы более выполнимы: в криптовалютах зачастую очень трудно получить награду за блок. Поскольку награды за блок очень трудно выиграть, майнеры часто добывают то, что называется майнинг-пулами, в которых майнеры объединяют свои ресурсы для решения проблемы и в которых они делят награду за блок пропорционально количеству «промахов», которые они нашли. , Возможная проблема для является то , что это может быть трудно получить качественное представление о том , что представляет собой как «у промаха» для задачи C и алгоритм для нахождения рядом промаха может отличаться от алгоритма решения C . Так как майнеры пула будут искать промахи, они могут быть не очень эффективны в решении CCCCC(и, следовательно, мало кто присоединится к майнинг-пулам). Однако для существует четкое понятие о близком промахе, а именно, о близком промахе есть пара ( k , x ), где ( k , x ) ∈ D, но где H ( k | | x | | Данные ( k , x ) ) ≥ C и алгоритм поиска ближних промахов для Ψ ( C )Ψ(C)(k,x)(k,x)∈DH(k||x||Data(k,x))≥CΨ(C)будет таким же, как алгоритм поиска решения .Ψ(C)
Свобода хода выполнения: задача доказательстве работы называется свободной от прогресса, если количество времени, которое требуется объекту или группе объектов для поиска следующего блока в цепочке блоков, следует экспоненциальному распределению e - λ x, где постоянная λ прямо пропорциональна количеству вычислительной мощности , что юридическое лицо использует для решения задачи P . Свобода прогресса необходима для решения задач майнинга криптовалюты, чтобы майнеры могли получать вознаграждение за блок пропорционально их мощности майнинга для достижения децентрализации. SLT, безусловно, помогает минировать проблемы достижения прогресса.Pe−λxλP