Теоретический сценарий малозатратной атаки в валютах PoW

Сценарий был разработан пользователем: croraf и мной вчера при обсуждении моего вопроса . Чтобы было понятнее, хочу представить его здесь еще раз в более строгом оформлении.

Чтобы сделать это ясно, первые четыре предположения :

  1. Транзакции принимаются, когда их подтверждают N блоков.
  2. Мы можем установить контакт с большинством майнеров, они эгоистичны и почти не инвестируют в валюту PoW.
  3. Возможна атака с большей мощностью майнинга. Чтобы было понятнее: мы предполагаем, что переписывание истории блокчейна с отменой многих транзакций настолько удивительно, что мы можем получить выгоду от атаки до того, как валюта упадет.
  4. Существует альтернативная монета, устойчивая к нашему следующему сценарию атаки, без привязки стоимости к валютам PoW. Оборудование для майнинга позволяет добывать альтернативную монету, а также валюту PoW.

Теперь сценарий нападения .

Мы совершаем транзакцию с более высокой стоимостью, чем выгода майнинга от N блоков. Мы ждем, пока N блоков не подтвердят нашу транзакцию, поэтому транзакция принимается по предположению 1 . Затем мы подкупаем большинство майнеров, чтобы они создали форк и отменили нашу транзакцию. Взятка должна быть лишь немного больше, чем прибыль от майнинга в «реальной» цепочке, потому что они эгоистичны и не заинтересованы в поддержании валюты в соответствии с предположением 2 . Только заплатив взятку, стоимость атаки очень мала по сравнению с обещанной победой! Майнеры и мы получаем выгоду от атаки до того, как валюта упадет в соответствии с предположением 3.. Тогда валюта PoW, возможно, упадет, но подкупленные майнеры смогут пойти добывать альткоин без каких-либо потерь, что возможно по предположению 4 .

Где ошибка, в сценарии нападения или в предположениях?

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

Наиболее важные критики, которых я уже знаю:

Предположение 1 : Мы должны доверять только транзакциям со значениями, сравнимыми с затратами на майнинг, но это делает валюту неэффективной, что было показано здесь .

Предположение 3 : Если вы не доверяете этому предположению, значит, вы отрицаете обычный сценарий атаки валюты PoW. Если вы это сделаете, почему бы нам тогда не сделать PoW с очень низкой сложностью и очень маленькой мощностью майнинга?

РЕДАКТИРОВАТЬ : я думаю, что мы можем пропустить предположение 3, выполнив атаку с короткой позицией, что означает, что мы выполняем транзакцию с высокой стоимостью в начале с криптовалютой, которую мы одолжили. Мне кажется очевидным, что валюта падает после такой большой атаки, и поэтому мы даже получаем прибыль от продажи.

Я бы сделал 10 универсальных, заменив их на N. И убрал бы 3-е предположение из списка.
Привет еще раз, рад тебя видеть. Да, вы правы, 10 — это не специальное число, поэтому теперь оно стало универсальным. Я сделал третье предположение, потому что это был главный аргумент во вчерашней дискуссии @Briguy37.
что вы подразумеваете под «транзакции принимаются, когда их подтверждают N блоков»? Каждый узел в сети принимает транзакцию, проверяет ее на соответствие набору правил, после чего они попадают в мемпул, а затем включаются майнером в блок. Так что, если вы ждете «N блоков», другие уже обработали его... Независимо от этого, есть оценки мощности майнинга (атака 51%). Наверное тоже с 40%. Как «подкупить» майнеров? Работающее программное обеспечение следует правилам биткойнов. Если они создают блок, который отличается, они теряют «предполагаемую» выгоду (иначе значения coinbase не могут быть потрачены).
ааа, понятно: вы хотите подождать N блоков, а затем отправить в сеть свой «высококачественный tx» и убедить большинство майнеров сделать форк. Нет ничего проще, чем это! Если бы вы так испортили сеть, все бы ушли от валюты, а вы добились разового выигрыша?
Сначала я отправил транзакцию с высокой стоимостью, затем подождал, пока не буду уверен, что получу то, за что заплатил, а затем я подкупаю майнеров, чтобы они согласились на двойную трату денег от транзакции, поэтому я выполняю обычную атаку большинства. Отличие заключается в том, что, на мой взгляд, затраты в PoW — это только затраты на подкуп майнеров, а не затраты на удержание мощности майнинга. Так что атака намного дешевле, чем предполагалось.
Стоимость и риски в лучшем и худшем сценарии моей атаки см. в моем ответе на bitcoin.stackexchange.com/questions/1093/…

Ответы (1)

Где ошибка, в сценарии нападения или в предположениях?

Ошибка заключается в том, что вы обесценили альтернативную стоимость, которая требуется противнику или конгломерату майнеров, чтобы разрушить цепочку, отколовшись от какого-то предшествующего блока. Ключевым моментом здесь является то, что разветвление блокчейна на произвольной высоте и повторное создание блоков сопряжено с неотъемлемыми затратами. Стоимость может быть сформулирована как block subsidy + total transaction feesколичество блоков, которые противник хочет воспроизвести.

Во-первых, честные майнеры не будут участвовать в этом, потому что им придется отказаться от своих предыдущих заработков и проделать двойную работу, чтобы повторно заработать разницу в ваших обещанных комиссионных за транзакции взятки, поэтому конфликтная транзакция, которой вы намереваетесь подкупить майнера должно быть настолько велико, что оно должно быть равно двойному (по крайней мере) block subsidy + total transaction fees * N. Где N — общее количество блоков, которые вы хотите реорганизовать. Что еще более важно, чего злоумышленник пытается добиться, пожертвовав такую ​​крупную сумму взяток (действительно ли это совместимо с поощрением)?

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

@sigmabe, я объяснил, что у короткой позиции есть валютный и рыночный риск для противника.
Да, это понятно, мы должны заплатить комиссию, чтобы одолжить монеты на шорт. Возможно комиссия очень большая и за кредитование монет на сумму 10 миллионов долларов мы должны заплатить комиссию в 1 миллион долларов. В общем, теперь у нас есть самолет стоимостью 10 миллионов долларов, который мы купили с нашей сделкой. И единственные затраты — это 1 миллион долларов на комиссию за шорт и 1 миллион долларов на взятку майнерам.
Возможно, есть недоразумение: мы держим короткую позицию, а не майнеры. Наша короткая реализуется путем кредитования монет на 10 миллионов долларов для проведения атаки.