Эгоистичные майнеры в сочетании с крупными транзакциями разрушают PoW?

РЕДАКТИРОВАТЬ В вопросах по ссылке есть более четкое описание некоторых частей проблемы.


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

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

Есть ли какое-то решение для таких атак при построении любой криптовалюты, работающей с доказательством работы?

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

Как вы будете подкупать майнеров, чтобы они создали форк на 10 блоков позади текущей вершины? Вы заплатите большую комиссию за эту транзакцию. Почему бы майнерам не включить эту транзакцию в блок поверх текущей подсказки?
Я бы подкупил майнеров в реальной жизни не большой комиссией, которую все заметят. И часть взятки заключается в том, что майнеры создают форк.
То есть вы даете им двойную награду в 10 блоков, если они сделают 10 блоков, которые вы хотите, чтобы они сделали?
Да, например, может быть и намного больше, чем в 2 раза.
Хорошая атака. Ну да, похоже, вы доверяете транзакции, которая заплатила X BTC, только после того, как она была похоронена кумулятивным вознаграждением за блок размером, сопоставимым с X?
Но тогда нам нужен платеж X затрат на майнинг (энергию!) где-то, чтобы получить доверие к транзакции со значением X, что кажется ерундой.
Не полный ответ, но вот соответствующий документ: cs.umd.edu/~gasarch/reuppapers/bitcoin.pdf
@PieterWuille Да, есть похожий сценарий атаки, но расчеты там не помогают. Они говорят, что если я даю взятку большинству майнеров, и они знают, что другие тоже подкуплены, затраты на проведение атаки превысят 0. \delta=0 в документе. Но это тривиально.

Ответы (3)

Я думаю, что вы описываете атаку 51%, но с третьей стороной, которая не является майнером, что стимулирует «плохое поведение» майнера. Даже при взятке вне блокчейна вам потребуется 51%+ майнеров, чтобы эта атака сработала (иначе «исходная цепочка» всегда будет опережать «подкупленную цепочку»).

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

Есть причина, по которой такого рода атак не было: майнеры считают их менее прибыльными в долгосрочной перспективе.

Но остается вопрос: почему «майнеры считают это менее прибыльным в долгосрочной перспективе»?
Потому что майнеры думают, что они получат наибольшую прибыль, продолжая обеспечивать безопасность сети биткойнов, а не просто брать взятку и наблюдать за падением общественного доверия к сети (т. е. падения цен). Майнеры рассчитывают получать прибыль от своего оборудования гораздо дольше, чем за следующие десять блоков, поэтому взятка должна быть огромной, по крайней мере, в размере 51% вознаграждения за майнинг в течение следующего года или более.
Это просто технический аргумент. Может быть, когда-нибудь (сегодня?) появится альтернативная монета, устойчивая к атакам, которую майнеры смогут добывать, когда валюты PoW падают, поэтому взятка касается только вознаграждения за майнинг во время атаки.
Я не думаю, что существование альткоина с таким свойством будет стимулировать майнеров к проведению этой атаки. Технические пользователи могут понимать достаточно хорошо, чтобы перейти на «более безопасную» монету, но более широкая публика потеряет доверие к криптовалютам, поэтому «рыночная капитализация отрасли» упадет. Итак, опять же, я не думаю, что майнеры захотят провести эту атаку.
Хорошо, но даже если потом мы думаем, что оборудование бесполезно, мы можем использовать короткую позицию и получить такую ​​​​высокую прибыль и комиссию за взятки, что майнеры не заинтересованы. Я сделал расчет на bitcointalk.org/index.php?topic= 2512771.0 . Вы должны начать читать в блоке о расчетах.
Чем сложнее вы составите план, тем выше риск того, что он не сработает. Что, если биржа, которую вы используете для продажи, выйдет из строя из-за DOS-атаки, вызванной паникой на рынке, когда люди спешат выйти? Самая безопасная игра — майнить совместно. Я разместил аналогичный вопрос, на который вы ответили, в нем грубая математика показывает, что 51% годового вознаграждения за майнинг составляет ~ 3,3 миллиарда долларов. Майнеры будут ожидать, что их позиция на рынке будет продолжать приносить прибыль в течение многих лет (поскольку они реинвестируют в свою деятельность), поэтому я думаю, что взятка должна быть в 11-значном диапазоне, чтобы быть заманчивой. Это много!

Давайте разыграем это, предположив, что вознаграждение за блок плюс комиссия составляют в среднем 15 биткойнов. Таким образом, 10 блоков будут стоить около 150 биткойнов.

Атака №1 — поощрение одной транзакцией:

  1. Алиса имеет 600btc на адресе A
  2. Алиса отправляет все 600 биткойнов с адреса А на адрес Боба Б.
  3. Боб ждет 6 кварталов, а затем передает свой особняк Алисе.
  4. Алиса едет в свое убежище и ждет до 10-го квартала.
  5. Алиса публикует новую транзакцию с адреса A, отправляя 300 BTC на адрес C с комиссией за майнинг 300 BTC.
  6. Майнеры видят, что транзакция перематывает блокчейн, и начинают работать, чтобы получить эту комиссию.
  7. Майнер находит этот блок и присуждает себе эту комиссию.
  8. Теперь эта цепочка отстает от исходной цепочки на 9 блоков, и нет дополнительных стимулов оставаться там, поэтому майнеры возвращаются к исходной цепочке.

Итог: этот метод атаки не сработает, так как форк будет заброшен.

Атака № 2 — поощрение за несколько транзакций:

  1. Алиса имеет 6000btc на адресе A
  2. Алиса отправляет все 6000 биткойнов с адреса А на адрес Боба Б.
  3. Боб ждет 6 кварталов, а затем передает свои 10 особняков Алисе.
  4. Алиса едет в свое убежище и ждет до 10-го квартала.
  5. Алиса публикует новую транзакцию с адреса A, отправляя 5700btc на адрес C с комиссией за майнинг 300btc.
  6. Майнеры видят, что транзакция перематывает блокчейн, и начинают работать, чтобы получить эту комиссию.
  7. Майнер находит этот блок и присуждает себе эту комиссию.
  8. Во 2-м блоке Алиса отправляет 5400 BTC из C в D с комиссией 300 BTC.
  9. В 3-м блоке Алиса отправляет 5100 BTC из D в E с комиссией 300 BTC.
  10. В 4-м блоке Алиса отправляет 4800 BTC из E в F с комиссией 300 BTC.
  11. В 5-м блоке Алиса отправляет 4500 btc из F в G с комиссией 300 btc.
  12. В 6-м блоке Алиса отправляет 4200 BTC из G в H с комиссией 300 BTC.
  13. В 7-м блоке Алиса отправляет 3900 биткойнов от H к I с комиссией 300 битов.
  14. В 8-м блоке Алиса отправляет 3600 BTC от I до J с комиссией 300 BTC.
  15. В 9-м блоке Алиса отправляет 3300 BTC от J до K с комиссией 300 BTC.
  16. В 10-м блоке Алиса отправляет 3000 биткойнов из K в L с комиссией 300 бит.
  17. В 11-м блоке Алиса отправляет 2700 бит с L на M с комиссией 300 бит.
  18. Разветвленная цепочка теперь на 1 блок опережает исходную цепочку, поэтому обычный стимул заставляет майнеров оставаться в разветвленной цепочке.

Итог: На бумаге этот метод атаки выгоден майнерам и Алисе. Однако на практике эта атака по-прежнему не работает по нескольким причинам:

  1. Как майнеры узнают в первом блоке форка, что Алиса продолжит обеспечивать стимул, необходимый для поддержания этого форка? Если Алиса остановится в любой момент, вся возможная прибыль исчезнет, ​​когда майнеры вернутся к исходной цепочке. Одна из возможностей состоит в том, что Алиса предварительно публикует все 11 транзакций.
  2. Поскольку блокчейны общеизвестны, успешная атака такого масштаба пошатнет веру общественности в Биткойн. Это связано с тем, что пользователи больше не могут доверять 6 блокам, чтобы узнать, была ли транзакция принята или нет, поскольку 10 блоков транзакций были отброшены с помощью этой атаки. Это подорвет фундаментальное децентрализованное доверие к Биткойну, разрушив систему, в которую так много инвестируют майнеры. Таким образом, даже если у майнеров будет больше биткойнов в краткосрочной перспективе, этот биткойн будет сильно обесценен. Кроме того, это подорвет всю платформу, в которую они так сильно инвестировали, что противоречит их интересам.

Таким образом, участие в такой атаке не отвечает долгосрочным интересам майнеров.

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

Атака № 3 — взятка без комиссии за транзакцию:

  1. Алиса имеет 600btc на адресе A
  2. Алиса отправляет все 600 биткойнов с адреса А на адрес Боба Б.
  3. Боб ждет 6 кварталов, а затем передает свой особняк Алисе.
  4. Алиса едет в свое убежище и ждет до 10-го квартала.
  5. Алиса подкупает всех майнеров, чтобы те перешли на разветвленную цепочку. Если бы это было в цепочке из кошелька А, это выглядело бы следующим образом:
    1. Всем майнерам, которые заработали вознаграждение и комиссию за блок в 10 блоках, она платит им эту сумму на общую сумму 150 биткойнов.
    2. Для всех майнеров в мире она платит им часть вычислительной мощности, которую они имеют, из оставшихся 150 биткойнов.
  6. Майнеры видят эту транзакцию, которая приносит пользу всем им, перематывают блокчейн и начинают работать, чтобы получить эту транзакцию.
  7. Все майнеры остаются в этой цепочке, поскольку она начинает их всех с большего количества биткойнов, чем в исходной цепочке, плюс у нее такие же вознаграждения.

Технически это дешевле, чем атака № 2, но требует участия более 50% майнеров в мире, поэтому усилия по координации огромны. Это связано с тем, что все участвующие майнеры должны координировать свое программное обеспечение для майнинга, чтобы иметь возможность играть по этим правилам. Кроме того, в зависимости от количества майнеров/майнинговых пулов, которые не участвуют, это увеличит количество блоков, которые Алисе нужно будет разместить. Например, если 30% майнеров не участвуют, к тому времени, когда 10-й блок в разветвленной цепочке развернется, в исходной цепочке будет около 13 блоков.
Это снова будет иметь тот же сценарий, когда станет общеизвестно, что майнеры переписали историю и подорвали (без каламбура) блокчейн. Даже если транзакция Алисы была вне цепочки, она все равно нарушит основной принцип безопасности транзакций глубиной 6 блоков и, таким образом, обесценит биткойн.

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

Вы читали мои комментарии о? Сценарий состоит в том, чтобы подкупать майнеров в реальной жизни, а не за плату, что может быть слишком очевидно. А когда есть большие суммы, вы можете подкупить майнеров такой большой суммой денег, что им будет все равно, упадет ли биткойн после этого. Кроме того, я имею в виду Атаку №2.
Кстати, майнеры PoW не «сильно вложены» в систему. Это может быть проблема всех. Я думаю, что атака невозможна в гибриде PoW-PoS, поэтому майнеры могут пойти туда после того, как они обрушили валюты PoW.
@sigmabe Спасибо за разъяснение, я добавил третий сценарий на основе вашего первого комментария.
@sigmabe Что касается PoW, я полагаю, вы правы в том, что они не обязательно «сильно инвестируются» в Биткойн. Вместо этого они вкладывают значительные средства в свое оборудование для майнинга. Теперь, когда у нас есть альтернативные цепи, на которых будет работать их оборудование для майнинга, они могут избежать биткойн-резни, перейдя к добыче альтернативной валюты. Однако, если альтернатива не имеет защиты от подобной атаки, это подорвет доверие и к ней, поэтому ваше предложение гибрида PoW-PoS или чего-то еще, чтобы помешать этому, является точным требованием, чтобы заставить этот тип атаки работать.
Да, третий сценарий лучше. Но я не вижу, как это решает проблему. Да, вам нужна большая часть мощности для майнинга, но это не так дорого, как предполагалось. Вам не нужно платить за оборудование и энергию для майнинга, вам нужно только платить деньги, чтобы дать взятку. И я думаю, что на взятки не нужно много денег, потому что майнеры эгоистичны и могут потом перейти на лучшую монету.
Разве нет альтернативных монет, которые работают как гибрид PoW-PoS?
для дальнейшего обсуждения bitcoin.stackexchange.com/questions/63993/…
Чтобы получить еще больше прибыли от «биткойн-резни», мы должны провести атаку с кредитными монетами, поэтому не будет проблем, если валюта упадет, потому что это то, что мы хотим.

Я думаю, у вас есть веская точка зрения. Допустим, я контролирую 50% добычи. Сколько я бы согласился, чтобы начать новый форк с 10 блоков назад?

При 50% добычи я получу примерно половину блоков или 5 из 10 только что добытых блоков. Попросить меня раскошелиться на 10 блоков назад означало бы, что я отказался бы от оплаты этих 5 блоков.

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

Итак, если вы заплатите мне больше, чем N+5 блоков, то в среднем мне будет выгоднее запустить цепочку для вас, чем продолжать текущую цепочку.

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

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

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

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

Подставив некоторые цифры, я буду использовать предположение Briguy37 о 15 BTC за добытый блок, и давайте предположим, что N равно 20, а моя премия составляет 100%. Затем я бы взял 25 * 15 * 2 = 750 BTC, чтобы сделать этот форк.

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

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