Я был в раздумье, и на некоторое время теперь должен быть способом создания и использование в какой-то полезный эффект в контексте Bitcoin слепого доказательства правильности работы. И что гомоморфно значение может открыть путь к некоторым интересным не-непредусмотренным особенностям. Это может быть. Со ссылкой на эту другую нить на гомоморфном значении:
в конце концов, я цитирую по электронной почте для Криса Ода, где я наблюдаю, что Педерсен обязательство, которые используются для гомоморфных значений фактически та же кодировка, как проблема представления неослеплённых брендов верительных электронных денег. Так что приводит к вопросу хорошо мы можем использовать слепую форму HashCash вместо добычи HashCash в Bitcoin, так что мы используем может каким-то образом проверить монету, не видя его историю расходов.
В morphcoin доказательства используют Шнорру / EC Шнорру (ECS) также, поэтому доказательство стоимости & диапазон доказательство и т.д., все совместимы с марками blinding.selective раскрытия и другими доказательствами. (Только его монеты подписаны).
Однако вы можете подумать, но как вы можете unblind хэш. Вы могли бы, возможно, включать в себя случайное значение в дополнительном скрытом поле, как г ^ v * е ^ г * ч ^ х и шахтеры задачей является найти столкновение с участием п, а затем вы можете ослепить, все еще доказать монету содержит V и добавляет вверх, а правый е значение имеют шахтер делать свою работу, тем unblind. Это может сработать, однако тогда ваша монета связана с определенным добытым блоком, уменьшая набор анонимности.
Поэтому в идеале вы должны иметь работу сам быть unblindable поэтому слепым HashCash. Оказывается, вы можете сделать это: он должен быть подписан, и нет никакой сущности подписания. Однако хитрость заключается в том, как с контурной идеей одного из Дворка & Naor 1992-х доказательство правильности работы (4,2) (см http://hashcash.org/papers/ ) Модель построения подписи подлога в качестве работы. В нашем случае, поскольку мы не хотим никакого центрального лаза (в отличие от модуля RSA в zerocoin и использование Дворкой схемы идентичности Fiat-Fiege). Таким образом, мы просто создать открытый ключ, который мы можем доказать, что никто не знает. например hash2curve цифры числа пи (или в не открытом ключе ЕС является хэшем семени цифр пи или таких вещей). Теперь мы не можем вычислить дискретный журнал EC (простое поле дискретного журнала) и каждый может убедиться в том, что никто не знает об этом. на основе RSA плохо для люков, дискретная журнал на основе хорошо.
Напомним, нормальная Шнорра подпись х секретный ключ, подпись пара (а, г):
к = случайным образом, а = ч ^ к, А0 = Н ^ х, г = к + сх
и проверка отношение, чтобы проверить: ч ^ г = а * h0 ^ с
или, что эквивалентно а =? ч ^ г * h0 ^ -с.
Теперь для подлога мы не знаем х, но никогда не менее, мы хотим, чтобы эти проверки отношения к работе.
Вот как работает вслепую HashCash:
s = случайная соль, г = случайные, с = случайной по модулю 2 ^ ш
вычислить = Н ^ г * h0 ^ -c
найти я такой, что с =? Н (S, I, а, т) по модулю 2 ^ п
ш коэффициент работы в битах, я это итератор строки случайным образом увеличить, s является солью так шахтерской DonT случайно или намеренно (как DoS) выполняет ту же работу, а является начальным свидетелем, h0 является открытым ключом. м это сообщение, которое будет подписано, в Bitcoin то будет coinbase.
Объяснение состоит в том, что мы обычно нужно вычислить с = Н (а, т), поэтому мы фиксируем, что после того факта, делая теперь уже укороченную хэш и с помощью диагностики с, я такой, что с по-прежнему такой же, как случайное значение мы отгаданного фронт.
Вы можете использовать этот протокол слепой HashCash с вашим выбором хэша: двойной SHA256, как H для Bitcoin, или аналогично с Scrypt с итератора 1. (Litecoin сам использует HashCash также, его просто хеш-функция заменяется Scrypt (1)) ,
Это лучше, чем Дворк & ослаблена подделка подписи NaOR, основанные доказательство работы, поскольку основная работа не используют большие операции с цифрами. (Ну вы могли бы попытаться сорвать СБИС с такими операциями, но вот что ppcoin о, как основной функции вы хотите простоты). Также в отличии от Дворка & Функция Наора имеет люк, что не может быть удален. Его также быстрее, чтобы проверить, более компактный, поддерживает слепой подписи. Мы могли бы позволить люк, при желании, публикуя открытый ключ с фактическим закрытым ключом, или пороговым удерживаемых закрытый ключом, так к п власти должно сотрудничать, чтобы получить доказательство правильности работы с укороченным. Однако укороченный в Bitcoin средств отменить транзакции, мятные монеты, убивая сеть (сложность ракеты до бесконечности, если реальных подписи и не не приходят вниз) и т.д. Кроме того, его безопаснее использовать отдельную подпись для коротких сокращений, так что он может быть аннулирован и обнаружил, и игнорировали пользователей, кто не доверяет власти. Мы не будем делать ничего из этого для Bitcoin, упоминается только для улучшения признака из Дворка & Naor которые сосредоточены на центральной модели власти, я, как правило, сосредоточены на устранении таких вещей!
Вы заметите, что основная функция работы достаточно, возможно, сломать существующие двойной SHA256 HashCash СБИС слегка несовместимы. Мы можем зафиксировать, что при желании, выполнив:
г = случайный, S = случайный
вычислить A = H ^ R * h0 ^ -s
найти я такие, что 0 =? Н (S, I, а, т) по модулю 2 ^ п
на проверку вычислить C = S + Н (с, я, а, м)
В настоящее время основной функцией работы слепой-Hashcash является функцией стандартным HashCash работы и поэтому может повторно использовать существующую ASM, C, GPU, FPGA и ASICs для нормального Hashcash с двойным SHA-256 или Scrypt (1) в качестве хэш-функции.
Затем обратно в Bitcoin приложений теперь мы можем сделать слепой-HashCash (слепые кованые подписи для неизвестного дискретной журнала открытого ключа, который включает в доказательство правильности работы), мы можем, возможно, найти способ использовать, что вместо выдачи сертификатов / электронные деньги банк брендов. Если мы можем сделать что мы можем получить преимущество слепой неприкосновенности частной жизни с электронными денег на отсутствии центральной власти и распределенной горнодобывающей промышленности, что Bitcoin имеет.
Так что, если это может быть сделано, чтобы работать (некоторые вопросы, чтобы проверить), мы бы дополнительно использовать гомоморфное введенное значение (или четкий вход, хотя суммы, как правило, ссылаются, если редко), ослепить его, шахтеры могут проверять зашифрованные суммы складываются, даже хотя монета ослеплена (надо проверить, что диапазон-доказательства работы на слепом представлении). Тогда шахтеры могут сделать поддельную слепую подпись, которая выглядит, как они знают, что дискретный журнал, но в действительности подделка создаются потому, что мы используем ковкий короткий хэш (где вы получите, чтобы попробовать много раз).
Нам нужно кодировать в дополнительный атрибут монеты блок-счетчик J. Итак, мы должны были бы слепой-монета и ослепительный фактор б:
h0 = (g1 ^ J * г ^ V * ч ^ х) ^ Ь
которые затем может быть ослеплена и раскрывать шахтер у, v еще доказать проверяющие вы знаете, х (б).
Основные сложные вещи, чтобы работать вне являются интерактивность, поскольку мы не можем иметь взаимодействие эмитента, как не эмитент, только распределенный поддельная подпись. Некоторые из механизмов марки являются resonsive на выбранный сервер начального свидетеля. Есть некоторые нижние варианты круглые, но, как я помню, они были RSA. Если подлог аспект не может заботиться о нем - то есть е не нужно первоначальное свидетельство, только сам подобранные кованые один. Не уверен, что. А также сервер знание дискретного логарифма баз g1, г WRT g0, что не может работать, по крайней мере непосредственно в распределенной environmnt.
Адам