Что такое двойной расход?

Что такое двойной расход?

Как человек, использующий Биткойн, что мне нужно знать о том, как система Биткойн предотвращает двойные траты? Существуют ли еще обстоятельства, при которых они могут произойти?

Ответы (4)

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

  • Отправьте две конфликтующие транзакции в быстрой последовательности в сеть Биткойн. Это называется расовой атакой .
  • Предварительно создайте одну транзакцию в блоке и потратьте те же монеты перед выпуском блока, чтобы сделать эту транзакцию недействительной. Это называется атакой Финнея .
  • Владейте 51+% общей вычислительной мощности сети Биткойн, чтобы отменить любую транзакцию, которую вы хотите, а также иметь полный контроль над тем, какие транзакции появляются в блоках. Это называется атакой 51% .

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

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

Этот ответ можно улучшить, объяснив, что монеты можно потратить только один раз и как атака двойной траты может нанести ущерб получателю.
«Ваш бизнес, скорее всего, не будет главной целью (это вряд ли произойдет без привлечения действительно больших денег)». Это не совсем верно, потому что, если у вас много мощностей для майнинга, стоимость атаки становится для вас очень низкой, поэтому вы можете разрушить множество людей с небольшими затратами. К тому же для этого не нужны большие деньги. Все, что вам нужно, это взломать один из крупнейших пулов майнинга.
@iYalovoi, «Все, что вам нужно, это взломать один из крупнейших пулов майнинга»… или быть нечестным системным администратором достаточно большого пула майнинга…
Чтобы предотвратить ущерб от первого и второго типов атаки - кто должен ждать подтверждения? Получатель или отправитель? Спрашиваю, потому что это звучит так, как будто вы говорите, что получатель может «предотвратить ущерб», ожидая, но на самом деле он / она в таких ситуациях находится во власти отправителя. Злоумышленник-отправитель, безусловно, не будет заинтересован в том, чтобы ждать, если атака требует чего-то, что нужно сделать в быстрой последовательности.

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

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

Атака Финни также имеет издержки, которые делают ее менее опасной, чем может показаться. Удержание блока стоит около доллара в секунду. Таким образом, если после того, как блок будет добыт, но не транслирован, а затем вору потребуется сорок секунд, чтобы завершить транзакцию с продавцом, лучше получить прибыль на сумму более 40 долларов, иначе попытка окажется неэкономичной по сравнению с продавцом. длинный пробег. Опять же, продавец в конечном итоге узнает, что произошла двойная трата (измеряемая в секундах, если отслеживать блокчейн), поэтому это не работает в обстоятельствах, когда вор рискует быть пойманным. Таким образом, предотвращение этого состоит в том, чтобы просто не совершать транзакции на большие суммы (например, сто долларов или более) на 0 / неподтвержденных без некоторой задержки, когда вы следите за двойными расходами.

Атака 51%, которая отменит подтвержденные транзакции, настолько дорога и, следовательно, настолько маловероятна, что это даже не беспокоит обычного продавца. (т. е. кто-то, кто тратит миллионы долларов на двойную трату, используя этот вектор атаки, если это когда-либо произойдет, будет преследовать сделки, в которых происходит крупный обмен ценностями — представьте, что золотые слитки обмениваются на биткойны под мостом в полночь. Они они не пытаются купить вашу бытовую электронику, которую вы отправляете через UPS, и они не встречаются с вами в Starbucks, надеясь выманить у вас ваши 200 долларов.)

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

Однако это не то, что означает «двойная трата». Атака двойной траты на самом деле не создает новые монеты и не влияет на денежную массу. Скорее, он позволяет вам забрать монеты у того, кому вы их ранее давали (чтобы у него их больше не было). Без обид, но я не понимаю, как этот ответ попал в +4.

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

Чтобы понять это, прочитайте этот пример из реальной жизни, где злоумышленник может потратить дважды потраченные 807 000 ETC.

Злоумышленник украл 807 тыс. ETC в Ethereum Classic Атака 51%