Я понимаю, что они используют вашу ставку как вход, но что это значит и как они это делают? Могут ли они использовать стандартный биткойн в качестве сервера для запуска API?
Это слишком упрощенно, но вот одна последовательность, показывающая серию платежных транзакций:
Шахтер --> Вы --> Я --> SatoshiDice --> Я
Итак, вы отправляете мне половину биткойна, а я использую клиент, который позволяет мне мгновенно отправить его в SatoshiDICE. Затем SatoshiDICE включает по крайней мере часть этого платежа в свою выплату по выигрышу или проигрышу.
Как только ваш платеж мне подтвердится, мой платеж SatoshiDICE сможет подтвердить. Как только мой платеж SatoshiDICE будет подтвержден, их выплата мне может быть подтверждена.
Так что, если вы меня обманули, и ваш платеж мне был двойным, он никогда не подтвердится (достигнув 6 подтверждений). И, в свою очередь, моя транзакция в SatoshiDICE никогда не подтвердится. И, в свою очередь, транзакция выплаты SatoshiDICE мне никогда не подтвердится.
Так что неважно, что я сразу увидел транзакцию выплаты от SatoshiDICE, я не могу ее никуда потратить, пока она не подтвердится.
Потому что даже транзакция с одной или двумя транзакциями может стать потерянной из-за реорганизации блока и атаки двойной траты, даже если вы видите подтверждение, которое не означает, что транзакция будет очищена. Вот почему, если нет права регресса, рекомендуемое количество требуемых подтверждений — шесть транзакций.
Вот пример транзакций для проигрышной ставки в 0,02041833 BTC:
Вы можете увидеть поток визуально здесь:
Если SatoshiDice выплатила так быстро, как только могла, то что сказать, что злоумышленник сделал следующее, отправляя биткойны, чтобы сделать ставку:
Даже доли секунды могут иметь значение для потенциального успеха такой атаки, поэтому, если у SatoshiDice есть, скажем, 10-секундная задержка перед выплатой, тогда атака может стать практически невозможной, если злоумышленник каким-то образом не отключит SatoshiDice от большая часть сети (очень трудно достичь).
Вы создаете транзакцию с идентификатором вывода транзакции, и они платят вам за создание транзакции, используя этот идентификатор вывода транзакции в качестве идентификатора ввода транзакции. Так что, если ваш платеж не прошел, их тоже не пройдет.
Стивен Горник
Шамун
Джим618
Шамун
о0'.
Шамун
о0'.
гезель