Возможна ли атака «плата выше вознаграждения за блок»?

Представьте себе следующий сценарий:

  • Я посылаю вам 1000 BTC.

  • После 6 подтверждений вы отдаете мне то, что я купил.

  • Я создаю еще одну транзакцию с 900 BTC на свой кошелек и 100 BTC в качестве комиссии за транзакцию, используя те же данные, что и в предыдущей транзакции. (двойной расход)

  • Пулы майнинга считают, что 100 BTC выше, чем вознаграждение за 6 блоков, что составляет 12,5 * 6 = 75 BTC, поэтому они начинают добывать последний блок, который не содержит мою первую транзакцию.

  • Эти 6 подтверждений потеряны, и пулы заработали больше денег.

  • Мои двойные траты увенчались успехом.

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

100 BTC — это большая сумма денег. Но по прошествии многих лет вознаграждение за блок будет очень низким, поэтому в будущем эта атака может не требовать столько денег для выполнения.

Я гуглил и не нашел связанных вопросов.

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

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

Ответы (1)

Такая атака возможна, это просто способ получить прибыль от атаки 51%. Однако вы должны помнить несколько вещей:

  • если майнер контролирует менее 51% хэш-мощности, то, скорее всего, он не сможет вернуться в сеть после майнинга вредоносного tx, поэтому честная сеть будет преобладать как самая длинная цепочка.

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

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

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

Почему вы говорите, что майнер, как я описал, не «честен»? Майнер просто майнит для получения максимальной прибыли. bitcoin.stackexchange.com/a/26936/49906 Вот стратегия майнинга, которая майнит только транзакцию с самой высокой комиссией среди всех конфликтных транзакций. Это не нечестно, и каждый пул может это сделать.
«Честный» и «нечестный» используются здесь только для обозначения общего поведения майнеров (т. е. майнер участвовал в атаке, а не нет). Хотя я думаю, что майнер, пытающийся атаковать сеть на 51%, чтобы заявить о двойной трате, в любом случае может быть описан как «нечестный».