Атака двойного расхода путем отправки транзакции с более высокой комиссией напрямую в пулы возможна?

Стандартный клиент отдает приоритет TX по времени получения, например, конфликтующая транзакция не будет передана. Однако это не соблюдается сетью. Есть ли что-нибудь, что предотвратило бы этот сценарий с 0-подтверждениями?:

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

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

продавец может создать транзакцию с еще более высокой комиссией на основе исходной транзакции, если обнаружит двойную трату: bitcointalk.org/index.php?topic=62137.msg727644#msg727644

Ответы (2)

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

Можно только надеяться, что майнинговый пул (или любой агент по выпуску блоков) воздержится от этого, потому что они понимают, что поддержка двойных расходов подрывает обоснованность их собственной доли в экосистеме Биткойн.

Вы слишком оптимистичны, ИМО, поскольку даже относительно небольшого меньшинства майнеров, которые совершают более крупную транзакцию, достаточно, чтобы сделать 0-conf ненадежными.
Было бы интересно следить за пулом и крупными майнерами на предмет нарушения протокола....
@CodeInChaos: Вы правы, это будет непростая проблема. Это означает, что анонимный 0-conf (не из электронного кошелька с разделенным ключом) будет использоваться в основном для небольших личных покупок, когда вероятность даже попытки двойного расходования изначально мала.
@CodeInChaos, и это нормально, поскольку они такие, какие они есть: 0 подтверждений. Вы знаете, что вам нужно как минимум 8 (6?) подтверждений, а по определению 0 подтверждений означает 0 подтверждений. Конечно, им нельзя доверять.
@Lohoris: Нет, вы можете доверять им, если знаете, при каких обстоятельствах им можно доверять и в какой степени. 6 подтверждений — это перебор почти для всех транзакций, 2 достаточно, если вы не продаете машину или что-то в этом роде. Скажем так, 1-conf можно сравнить с приемом банкноты без проверки правильности всех знаков защиты от подделок.

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

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

А может, ему просто все равно. Например, для многих цифровых товаров (большинство программ, фильмов, музыки и т. д.) у вас незначительные предельные затраты, и вы уже рассчитываете на то, что пользователь будет достаточно честным и не загрузит копию с Pirate Bay, не заплатив вам.


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

Необработанный биткойн применим для небольших быстрых транзакций при правильном использовании. Нельзя сказать, что дополнительные слои не могут помочь.
Другой ответ в любом случае хорош, но это правильный .
@Lohoris: Хотя я очень ценю этот ответ (+1), другой имхо ближе к Q.