Конструкция Bitcoin в настоящее время * * поощряет принимающую добычу. Это конструктивный недостаток. Это позволяет легко запускать безопасный протокол размещенного горнодобывающий, где сервер доказывает это выполняет работу, которая только приносит пользу клиента. Она делает это путем передачи «акции», где доля «почти-мисс», совершающая на coinbase сделки награждения клиента. (Это точно противоположность горного бассейна, где клиент не работает для (оператора пула сервера), но протокол такого же.) Основная проблема заключается в том, что компания делает работу (например, угадывая одноразовые номера и проверку хэша) не обязательно получить тратить награду.
Что я предлагаю модифицировать протокол корректуры из-работы, так что, если сервер выполняет работу, сервер может * украсть * награду за себя, таким образом, что это * незаметным * Клиент. Если такая головоломка была использована, то ни один разумный клиент не будет нанимать размещаемой шахтера, так как прошел шахтер бы по мере необходимости, награды и клиент просто кажется, повезло.
Там есть способ сделать это, что не требует изменений, как существующих работ горнодобывающей промышленности. Это потребовало бы, однако, с трудом-вилку, которая поддерживает дополнительную форму с нулевым знанием действительного блока. Как правило, корректный блок показывает случайное слово и merkleroot такое, что
Код:
Н (пред, Nonce, merkleroot) < цель.
Для варианта с нулевым знанием, то же одноразовое значение было бы решение, но не раскрывает, или одноразовый номер оригинального merkleroot, чтобы претендовать на блок. Вместо этого вы бы доказать с нулевым знанием, что вы знаете верное решение, и в то же время совершить, возможно, отличающийся merkleroot».Код:
Выявить предыдущий, merkleroot.
Докажите в Zero-Knowledge, что вы знаете, нонс merkleroot и значения т, такие, что
Н (пред, Nonce, merkleroot) < цель, и т = merkleroot ^ merkleroot»
Докажите в Zero-Knowledge, что вы знаете, нонс merkleroot и значения т, такие, что
Н (пред, Nonce, merkleroot) < цель, и т = merkleroot ^ merkleroot»
Тогда блок будет состоять из этого доказательства, и сделки, лежащие в основе merkleroot. Это не раскрывает или временное значение merkleroot. Однако, это действует как не ковкая подпись merkleroot»в том смысле, что кто-то, кто не знает merkleroot (или м) не может создать воспользоваться доказательством принять награду.
Цель ZK Общие доказательства, как это может быть сделано с помощью Пиноккио или СКИП. Я считаю, что это займет около 20 секунд для обычного компьютера, чтобы построить такое доказательство. Проверка займет всего лишь 15мс, согласно статье Пиноккио (они реализованы SHA1, SHA2 незначительно медленнее). Обратите внимание, что это не является необходимым для каждого шахтер, чтобы построить это ноль знаний доказательства - в обычном использовании вы можете просто опубликовать и одноразовый номер merkleroot, как нормальные. Но смысл этого предложения заключается в том, чтобы дополнительно поддержать альтернативный метод проверки нулевого знания, так что есть явный соблазн для размещенных шахтеров, чтобы украсть награду.
Существует в настоящее время не полная реализация с открытым исходным кодом Буратино, но можно было бы, вероятно, быть сделаны из бумаги с использованием библиотеки Сопряжение Based Crypto.
Это зависит от предположения, что не существует эффективного способа «Затемнение» SHA2, в том смысле, что единственный путь для сервера, чтобы эффективно шахта на самом деле знать, что случайное слово позволил бы это украсть награду.
Похоже обескураживающим аутсорсинга этот путь будет * также * препятствовать добыче пула. Это, возможно, непреднамеренная несчастные случаи, так как объединенная добыча не обязательно является системной угроза децентрализации, по крайней мере, не таким же образом. Но, может быть, есть способ поддержать добычу нижних отклонений в тот же время предотвращая аутсорсинг.
Поскольку merkleroot»не стремится в то время как добыча, это делает его тривиальным создавать сотни 1-блочных вилок. Это не влияет на консенсус в целом, так как blockhash (используется как предыдущая в следующем блоке) * будет * содержать обязательство одного merkleroot».
***Обновить***: Я опубликовал препринт исследовательской работы, которая представляет улучшенные версии этой схемы более подробно: Nonoutsourceable соскребаемая Пазлы для Препятствовать Bitcoin Mining коалиций