Если я повторно итерация старой информации, пожалуйста, указать, где-то, где я могу узнать эти вещи.
Алиса и Боб хотят каждый ставить Bitcoin. Они хотят, чтобы один из них, чтобы выиграть оба биткойна, а другие не получить ничего.
Каждый человек выбирает либо 1 или 0, и записывает его на бумаге.
Они показывают свои работы друг с другом. Если сумма четная, Алиса выигрывает. если сумма нечетная, то Боб выигрывает.
Теперь Алиса и Боб находятся в разных городах, но они все еще хотят играть в свою игру.
Запись на листе бумаги не работает больше. они могут лежать о том, что говорится в документе по телефону.
Вместо этого, Алиса и Боб каждый хэш свои собственные догадки и первый делиться своими хэшей.
Это делает его так, что Алиса и Боб не могут изменить свои догадки позже.
как правило, хэши 1-полосная функции, так что это будет работать. но в этой ситуации есть только два возможных значения, что Алиса и Боб мог выбрать, либо "1" или "0", Таким образом, хэш-функция в этом случае не является функцией 1-полосная, и можно обмануть в игре. (Это как с использованием таблиц радуги взломать пароль, но вся таблица имеет длину всего 2 записей)
Скажи Алиса по телефону с Бобом, и Элис говорит "мой номер хэшей в 5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9, что делает ваш номер хэш?"
Боб мог смотреть на этот хэш, и сказать, что это хэш 0, поэтому боб знает выбрать "1" побеждать.
Нам нужно найти лучший способ хеширования номера. Простая техника для Алиса и Боб, чтобы выбрать большие числа. 23 цифр номера в базе 256, например.
Мы все еще проверить, если сумма четным или нечетным, чтобы определить победителя.
Теперь, когда Алиса говорит "мой номер хэшей в 4464817f35f6dd2a3660ea727311c16430dc31710751825a70ee97072efca9d3, что делает ваш номер хэш?"
Боб не имеет никакого способа, чтобы сказать, что номер Алисы +14398798798985987987987 что странно.
К сожалению op_MOD в настоящее время отключена. Эта известная сделка нашла способ обойти эту проблему: https://blockchain.info/tx-index/96964833
Это решение требует, чтобы у нас есть 3-х игроков. Это решение плохо, потому что любой 2 из игроков может сговариваются, чтобы всегда выигрывать против третьего лица. Если остальные 2 игрока и тот же человек, то вы всегда будете терять
Сначала каждый человек выбирает номер из списка [0,1,2]
Вызов номер А Алис, B Боб и Кэрол С.
Если три числа просуммировать 0 или 3 или 6, то алиса выигрывает. если 1 или 4, то Боб выигрывает. если 2 или 5, то Кэрол выигрывает.
Алиса и Боб придумали 23 цифры в базовой 256 общий секрет, что Кэрол не знает. называют это AB
Алиса и Кэрол придумали 23 цифры в базовой 256 общий секрет, что Боб не знает. называют его AC
Кэрол и Боб придумали 23 цифры в базовой 256 общий секрет, что Алиса не известно, называют его BC
Алиса вычисляет HASH (A + AB-AC) и разделяет с группой. (А 1-функция !!)
Боб вычисляет HASH (B + BC-AB) и разделяет с группой.
Кэрол вычисляет HASH (C + AC-BC) и акции группы.
(Для того, чтобы гарантировать, что АВ, АС и ВС длиной 23 цифр, требуется, чтобы (А + АВ-АС), (В + ВС-АВ) и (С + АС-ВС) каждая находиться в диапазоне от 20 цифр и 23 цифры долго.)
Обратите внимание на то, что А + В + С = (А + АВ-АС) + (В + ВС-АВ) + (С + АС-БК).
Это как строится сценарий: (? Я, возможно, написал pubkeys в обратном порядке)
OP_SIZE OP_TUCK 20 23 OP_WITHIN OP_VERIFY OP_SHA256 HASH (А + АВ-АС) OP_EQUALVERIFY OP_SWAP
// проверить, что число Алисы есть между 20 и 23 цифр, то убедитесь, что он соответствует этому хэш, что Алиса совместно ранее
OP_SIZE OP_TUCK 20 23 OP_WITHIN OP_VERIFY OP_SHA256 HASH (В + ВС-АВ) OP_EQUALVERIFY OP_ROT
// проверить номер Боба точно так же
OP_SIZE OP_TUCK 20 23 OP_WITHIN OP_VERIFY OP_SHA256 HASH (С + АС-ВС) OP_EQUALVERIFY
// Проверяем номер Кэрол точно так же,
OP_ADD OP_ADD OP_16 OP_SUB OP_DUP OP_2 OP_GREATERTHAN OP_IF OP_3 OP_SUB OP_ENDIF OP_DUP OP_2 OP_GREATERTHAN OP_IF OP_3 OP_SUB OP_ENDIF
// Жесткого кодирования модуля базового домен 3. = [0,1,2,3,4,5,6,7,8] Диапазон = [0,1,2]
Alice_pubkey Bob_pubkey Carol_pubkey OP_3 OP_ROLL OP_ROLL OP_3 OP_ROLL OP_SWAP OP_CHECKSIGVERIFY
Это как (я думаю) подписан сценарий:
winners_signature (С + АС-ВС) (В + ВС-АС) (А + АВ-АС)
------------------------------------------------------------------------------
Почему это плохое решение?
Что делать, если Боб и Кэрол пытаются сговариваются? Боб знает AB, и Кэрол знает AC, таким образом, они могли бы попытаться вычисления этих чисел:
HASH (0 + АВ-АС)
HASH (1 + АВ-АС)
HASH (2 + АВ-АС)
один из этих трех будет равна HASH (A + AB-AC), поэтому Боб и Кэрол могут работать вместе, чтобы выяснить, что догадалась Элис.
(Это похоже на использование радужных таблиц, чтобы взломать пароль, но вся таблица только 3 долго.)
-------------------------------------------------------------------------------
Как мы можем решить эту проблему:
ПОЖАЛУЙСТА, ПОЖАЛУЙСТА, включите op_MOD в ближайшее время. Там нет никакого способа, чтобы соответствовать достаточно "OP_IF OP_3 OP_SUB OP_ENDIF" чтобы избавиться от радуги таблицы атаки типа.
---------------------------------------------------------------------------
Если вы хотите увидеть больше вещей, как это: 1GbpRPE83Vjg73KFvTVZ4EnS2qNkiLY5TT