Была ли когда-нибудь успешная атака двойной траты в сети Биткойн? Если нет, то действительно ли нужно ждать подтверждений?

Есть много опасений по поводу ожидания подтверждений, чтобы избежать атаки с двойной тратой, но была ли когда-нибудь атака с двойной тратой?

Похоже, что есть два типа атаки двойного расхода. Один совершается без значительной доли общей мощности майнинга сети. Для успешного выполнения этого злоумышленник должен отправить обе транзакции практически одновременно. Если существует значительная задержка между законной транзакцией и двойным расходом, то почти каждый майнер получит законную транзакцию до двойного расхода. Майнеры отклонят двойную трату, и законная транзакция почти гарантированно будет включена в следующий блок. Таким образом, чтобы успешно совершить такую ​​двойную трату, злоумышленник должен отправить обе транзакции одновременно, чтобы половина сети работала с одной, а половина — с другой. Однако если они это сделают, тогда получателю платежа должно быть легко сразу обнаружить, и, таким образом, получатель платежа может отклонить платеж в течение нескольких секунд. Таким образом, атака с двойной тратой без существенной доли мощности сети не кажется проблемой — ее легко и сразу обнаружить (или она не сработает).

Таким образом, единственный вид двойной траты, который может быть успешным, — это тот, когда злоумышленник контролирует значительную часть мощности сети и может наверстать упущенное при первоначальном затруднении при создании блоков. Однако до тех пор, пока такая двойная трата не будет продемонстрирована, это означает, что ни один злонамеренный объект не получил контроль над значительной долей вычислительной мощности сети.

Таким образом, если атака с двойной тратой никогда не проводилась, обычные пользователи, переводящие небольшие суммы биткойнов, могут быть абсолютно уверены, что они не станут жертвами атаки с двойной тратой (каковы шансы быть первыми?), и воздержаться от ожидания подтверждений. .

(С другой стороны, люди, проводящие очень крупные анонимные транзакции, могут оказаться в числе первых, на кого нацелится двойной транжира, получивший значительную долю вычислительной мощности сети)

Это правильный анализ?

Не обязательно «возможный дубликат», поскольку он не касается конкретного вопроса о том, совершалась ли когда-либо атака, но очень похож на вопрос, который я задавал некоторое время назад.

Ответы (5)

Что бы это ни стоило, MyBitcoin.com заявил , что их закрытие было вызвано серией атак с двойной тратой:

Наш программист исходил из того, что одного блока достаточно, чтобы обеспечить транзакцию. Два года назад, когда было написано программное обеспечение, этот миф о единственном подтверждении был широко распространен.

Пользователь theymos (администратор форума bitcointalk.org) публично предупредил их, что принимать транзакции после однократного подтверждения — «безумие».

Тем не менее, нет никакого способа проверить, действительно ли имели место какие-либо атаки с двойной тратой, потому что, насколько мне известно, в настоящее время никто не сканирует их в сети (транзакции с двойной тратой обычно отбрасываются после того, как событие разрешено к удовлетворению блокчейн). Все, что мы можем публично наблюдать, — это реорганизация цепочки блоков, которая также естественным образом происходит время от времени, когда блоки обнаруживаются почти одновременно разными майнерами или пулами. Возможно, статистический аргумент мог бы оценить, как часто это должно происходить (у нас было 14 за последний месяц), и аргументировать существование попыток двойного расходования на этом основании, но я лично не видел такого анализа.

Однако самым важным в вопросе о том, ждать ли подтверждения, является тот факт, что вы пропустили возможный вектор атаки, известный как «Атака Финни» в честь Хэла Финни, который ее идентифицировал . При атаке Финни майнер включает одну «двойную» из двух транзакций в свои блоки во время майнинга, но не транслирует ее в сеть. Когда они в конце концов находят блок, они покупают что-то с конфликтующей транзакцией (второй «двойник» в атаке с двойной тратой), а затем немедленно транслируют свой блок, что делает транзакцию покупки недействительной в блокчейне. Если продавец не дождался подтверждения, злоумышленник уйдет как с купленным товаром (надеюсь, что-то вроде наличных), так и со своими оригинальными биткойнами.

Поскольку эта ситуация и ее варианты в основном применимы к продавцам, которые предлагают товары «по требованию» с мгновенной доставкой, ваш анализ «обычных пользователей, переводящих небольшие суммы биткойнов» остается примерно правильным. Имейте в виду, что если бы принятие транзакций с 0-подтверждением стало нормой, стимул для атаки «отправить их одновременно» значительно увеличился бы (требование даже одного подтверждения предотвращает это в подавляющем большинстве случаев). Но на данный момент обычных пользователей должны больше беспокоить обычные старые мошеннические схемы «вы платите первым» по транзакциям без условного депонирования и атаки «человек посередине», когда собеседник передает сообщения между двумя доверенными сторонами, стремящимися сделать бизнес,был казнен в дикой природе).

tl;dr Торговцам и биржам обязательно нужно ждать подтверждения каждый раз, когда транзакции имеют значительную стоимость и/или в обмен на наличные товары. Лица, переводящие небольшие суммы, должны больше беспокоиться о других аспектах доверия к бирже и могут достаточно эффективно защитить себя с помощью всего лишь одного подтверждения.

Хотя никто не утверждал, что проиграл атаке Финни, не следует сбрасывать со счетов то, что это маловероятно произойдет в будущем. Вероятная причина, по которой мы не слышим об этом, заключается в том, что есть несколько продавцов, которые принимают 0/неподтвержденные, и еще меньше продают товары достаточной стоимости, чтобы злоумышленник мог попытаться это сделать.
Вы заметите, что я не отвергаю атаку Финни в своем ответе, а вместо этого подчеркиваю ее важность.
«Два года назад, когда программное обеспечение было написано, этот миф о единственном подтверждении был широко распространен»... популярен среди людей с таким ограниченным знанием технологии биткойнов, что они не имеют права писать для нее программное обеспечение.

Этот вопрос задавался несколько раз в разных местах, и никто еще не представил доказательств атаки двойной траты. Не исключено, конечно, что такой атакой никто не заморачивается, потому что подтверждения все равно ждут.

Ваш анализ правильный. Вы можете действовать при меньшем количестве подтверждений с тем же уровнем надежности, если вы контролируете сеть из нескольких точек — в идеале как можно ближе к как можно большему количеству крупных пулов майнинга. И если бы кому-то когда-нибудь удалось организовать такую ​​атаку, у вас было бы неопровержимое доказательство — конфликтующая транзакция.

Интересно, захотят ли майнинговые пулы предоставить веб-страницу со списком транзакций, которые они намереваются включить в следующий блок (при условии, что они добыли его именно тогда). Если бы это сделали несколько крупных пулов, это позволило бы вам быть более уверенным в отсутствии конфликтующих транзакций в сети. Если в двух крупнейших пулах есть ваши транзакции и ни в одном из пулов нет конфликтующих транзакций, вы можете быть почти уверены, что находитесь в безопасности даже без подтверждений.

11 марта 2013 года произошел незапланированный хард-форк, в результате которого была проведена как минимум одна атака с двойным расходом, в ходе которой большое количество средств (биткойнов на сумму 10 000 долларов США) было потрачено дважды.

Для тех, кому лень переходить, или в случае смерти ссылок, это не было криминальной операцией: пользователь добровольно вернул средства.

Сентябрь/октябрь 2013 г. — операторы пула GHASH.IO были обвинены в двойных тратах против BetCoin Dice:

https://bitcointalk.org/index.php?topic=321630.0

Выдержка:

«Я говорю, что ghash.io, вероятно, был причастен к этой двойной трате. Я получил отчет от пользователя пула о том, что между 25 и 27 сентября не было блоков (вознаграждений). Это означает, что хэш-мощность пользователя была использована бесплатно операторов пула для выполнения этой атаки».

Дело в том, что BetCoin Dice использовала метод 0-подтверждения при тратах, и что хеш-мощность GHASH.IO злоупотребляла/использовалась для проверки/подтверждения только выигрышных ставок (игнорируя невыигрышные ставки). Был достаточно значительный поток подтверждений только для выигрыша, чтобы предположить, что «кто-то» в пуле ghash.io был почти доказуемо дважды тратил биткойны, а затем использовал мощность хеширования ghash.io для получения подтверждений выигрыша в блокчейне до невыигрышных транзакций. могут быть подтверждены остальной частью сети.

CEX.IO, очевидно, отрицает свою причастность, но поднимает более важный вопрос о том, как мы должны следить за подобным мошенничеством? Помимо затронутых людей, кто-нибудь беспокоится о проверке результатов блокировки (как недействительных, так и действительных?)

Старый ответ Дэвида Шварца подразумевает, что успешных двойных расходов, даже НЕПОДТВЕРЖДЕННЫХ транзакций, никогда не наблюдалось. Это нужно обновить:

Во время форка 0,7/0,8 произошла как минимум одна значительная двойная трата — транзакция с 15 подтверждениями .

Ежедневно происходят успешные двойные траты неподтвержденных транзакций. См. http://respends.thinlink.com