Здравствуй,
Я не знаю, куда поместить это, так как это не совсем Bitcoin, а более общий технический вопрос.
Как вы докажете, или утверждать, вне практического сомнения, что кто-то знает тайну, не раскрывая тайну?
Существует один способ теперь я знаю, и это через криптографические хэш, например, SHA-256.
Например, слово "secret1" при использовании хэшированного SHA-256 приводит к 5b11618c2e44027877d0cd0921ed166b9f176f50587fc91e7534dd2946db77d6.
Я могу показать результат, без не раскрывая секрета до позже или до окончания требуемого события. Но что, если я не хочу, чтобы на самом деле раскрыть тайну, но все же как-то доказать, что я знал, что?
До сих пор, что я могу видеть, чтобы использовать еще один секрет и добавить его в первый секрет.
Например, слово "secret2" когда хэшируются результаты 35224d0d3465d74e855f8d69a136e79c744ea35a675d3393360a327cbf6359a2.
Затем я могу объединить оба, чтобы сделать один длинный слово, например, "secret1secret2" который когда хэшируются результаты 9b1623d3c6e5c3e33ac15559b400d554868a3673efd4c088f575696b35d76407.
В этом примере, я публикую хэш "secret1" но сохраняющий секретный секрет. Никто не знает, но. Тогда кто-то публикует хэш "secret2", Но и держать их секретный секрет. Обе тайны теперь по существу совершено, и не может быть изменен.
Тогда, что другой человек должен раскрыть его "secret2" мне или общественность, так что я могу использовать как придумать совокупный хэш "secret1secret2" который опубликован. Две стороны приходят с тем же результатом, не раскрывая первый секрет, чтобы доказать, что они оба знали, что это, в то время как публика знает только второй секрет.
Однако это оставляет проблему меня того, чтобы знать, как секреты. Является ли это достаточным доказательством того, что я знал другую тайну, не показывая его вообще из-за отношения обеих тайн и их результатом хэшей?
Это вызывает вопрос о том, что другая сторона должна быть честна результатом хеширования его "secret2", Он может лежать, и это разрушает всю концепцию.
Моя цель состоит в сценарии 3 или более человек. Я буду использовать "стандарт" имена Алиса, Боб, и Чарли. У Алисы есть секрет. Боб имеет секрет. Как Чарли может сказать, что Алиса и Боб имеют различные секреты, которые остаются неизвестными до другого, и общественности, но разумно предположить, эти секреты остаются неизменными и фактически принадлежат одному и тому же набору уникальных секретов? Я могу, в этом пункте, ввести 4-е лицо, призванное "отпечатки пальцев" который фактически провел все секреты и раздал их как Алиса и Боб случайным образом.
Один из методов, я использую в настоящее время является хэш каждого секрета, и раздают эти хэш публично как Алисе и Бобу. Алиса будет тогда сказала тайне, мазки. Она может проверить секрет от хэша. Боб также рассказал тайну, мазки, которые, в свою очередь, может проверить секрет против это хэш, а также.
Без полностью доверять Алисе или Бобу или мазкам, как можно определить, что Чарли Алиса и Боб получили свои правильные секреты от мазков? Без мазков, Алиса или Боб раскрывая секреты на всех.
Я читал немного о нулевых доказательствах знаний и других связанных с этим вопросов, но их математике за меня, так что я попытался сделать то же самое, используя хэши как гораздо проще понять. Мы знаем, с вероятностью 1 в 2 ^ 256, что, если результат хеширования одна вещь, секрет должен быть оригинальным секретом. Я предполагаю, что сопротивление коллизий хэш-функций, более чем достаточно разумное доказательство того, что тайна есть тайна.
Аналогичная система используется в Bitcoin игорные, и они называют его "доказуемо Fair",
Хорошо, это может привести к путанице, и я, возможно, смешал его уже. Но я отправляю это в любом случае, так что я могу получить началось обсуждение, и если это не в том форуме, может быть перемещено модератором.