Bitcoin Forum
November 17, 2024, 01:33:16 PM *
News: Check out the artwork 1Dq created to commemorate this forum's 15th anniversary
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: [Уязвимость] Атака на пулы майнинга крипто  (Read 5445 times)
rPman (OP)
Legendary
*
Offline Offline

Activity: 1120
Merit: 1069


View Profile WWW
May 01, 2013, 10:20:42 AM
Last edit: May 01, 2013, 11:15:45 AM by rPman
 #1

http://habrahabr.ru/post/178549/ -  Идеологическая уязвимость, атака на пулы майнинга криптовалют.

Quote from: rPman
У всех пулов майнинга, включая p2pool, существует одна очень простая и неприятная идеологическая уязвимость, с помощью которой можно уменьшить совокупных доход пула относительно его общей мощности. Злоумышленник может 'наказать' пул на сумму, сравнимую с доходами от мощностей злоумышленника, фактически вся выплачиваемая пулом награда. И чем больше мощность злоумышленника и чем дольше продолжается атака, тем больше шанс что это убытки пула будут приближаться к этой величине. И самое главное, что такая атака не стоит злоумышленнику практически ничего.

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

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

Пулы майнинга платят своим пользователям не за найденные блоки, а за мощности, которые заводят пользователи на пул. Абсолютно все существующие способы расчета PPS/PPLNS/Prop/... основаны на том, что оплата производится за полученные пулом шары - частные решения, одно из которых может быть целевым решением пула по сбору блока в сети bitcoin. А проблема в том, что майнер, находя решение, знает, какое из них является целевым для пула, а какое обычным. Это определяется сложностью, под которую подходит это частное решение, если она больше сложности сети - то значит это решение целевое.

Например популярная утилита cgminer показывает в своем окне информацию по каждой найденной шаре.

Вот например эта строчка:
Quote
[2013-03-10 20:17:16] Accepted 03316740 Diff 80/52 AVA 0 pol 0
80 - это сложность, для которой подойдет данная шара как решение, а 52 - это сложность, которая была затребована пулом при выдачи задачи майнеру. Пул платит из расчета этой сложности в 52.

Майнеру-злоумышленнику достаточно не отсылать пулу решения, целевые для нахождения блока (т.е. со сложностью >= текущей мощности), это несколько измененных строчек в коде майнера (на приведенном скриншоте эта сложность указана сверху — 4.37M). Пул все равно заплатит за остальные шары, но блок от майнера так и не получит! Получается стоимость атаки, для метода выплат PPS — одна единственная шара на каждый недополученный блок пулом, для остальных методов оценка стоимости атаки будет сравнима с долей от нанесенного ущерба, равной соотношению мощности пула к мощности атакующего.
Значит если злоумышленник будет продолжать это делать достаточно долго, то он загонит пул в долговую яму для PPS или заметно уменьшит прибыль пользователей пула для остальных методов выплат. Для пула же это будет выглядеть как продолжительная повышенная неудача.
Обнаружить подобную атаку можно статистически, просто вычислив мощность майнера и количество найденных им блоков. Но максимум что пул может сделать - забанить нарушителя уже после успешной атаки, а атакующему завести новый аккаунт не составит никакого труда.

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

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

Здесь не может находиться ваша реклама Smiley
Protect a future of bitcoin, use p2pool
Donation in BTC: 19fv5yYtfWZ9jQNjx2ncmu1TTrvg5CczZe
FAN
Legendary
*
Offline Offline

Activity: 2716
Merit: 1020



View Profile
May 01, 2013, 10:27:25 AM
 #2

и шо это даст злоумышленнику?
ведь ту заветную шару он все равно никуда не применит...
получается что он будет также молотить и в никуда... может проще вообще выключить майнер? Smiley

██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
[
rPman (OP)
Legendary
*
Offline Offline

Activity: 1120
Merit: 1069


View Profile WWW
May 01, 2013, 10:33:08 AM
Last edit: May 01, 2013, 11:17:50 AM by rPman
 #3

Конкурентная борьба. Злоумышленник и так получит награду от пула, но пулу от этого не легче.

Здесь не может находиться ваша реклама Smiley
Protect a future of bitcoin, use p2pool
Donation in BTC: 19fv5yYtfWZ9jQNjx2ncmu1TTrvg5CczZe
Echoes
Legendary
*
Offline Offline

Activity: 1120
Merit: 1005


View Profile
May 01, 2013, 10:34:28 AM
 #4

и шо это даст злоумышленнику?
ведь ту заветную шару он все равно никуда не применит...
получается что он будет также молотить и в никуда... может проще вообще выключить майнер? Smiley
Он получит битки от пула если там pps система выплат, чем сделать работу пула нерентабельной, это эффективнее старого доброго ддоса будет...

Balthazar
Legendary
*
Offline Offline

Activity: 3108
Merit: 1359



View Profile
May 01, 2013, 10:35:33 AM
 #5

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

И кстати, это баян уже 4 года как.
Storan
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
May 01, 2013, 10:36:38 AM
 #6

Да, пожалуй обычные PPS-пулы такой стратегией и значительными мощностями можно вогнать в минуса. В остальных разновидностях пулов страдать будут их майнеры и сам злоумышленник...
rPman (OP)
Legendary
*
Offline Offline

Activity: 1120
Merit: 1069


View Profile WWW
May 01, 2013, 10:40:05 AM
Last edit: May 01, 2013, 11:17:33 AM by rPman
 #7

Автор не в теме о "методах расчета награды", точнее в теме только о PPS. А кроме PPS еще много чего существует... Остальные системы выплат неподвержены данной атаке, потому что в них атакующий наказывает сам себя, причиняя себе убытки.
нет, метод выплат Prop точно так же уязвим, только стоимость атаки будет повыше, и будет равна части нанесенного убытка пулу пропорционально соотношению мощности атакующего к мощности пула. PPLNS не в случае pool hopping - фактически чистый Prop (возможно растянутый на несколько блоков, зависит от длины очереди учитываемых шар), та же ситуация и с остальными, просто формула определения убытков атакующего будет сложнее, но близка к Prop.
Да, пожалуй обычные PPS-пулы такой стратегией и значительными мощностями можно вогнать в минуса. В остальных разновидностях пулов страдать будут их майнеры и сам злоумышленник...
В конечном счете атака на майнеров пула и есть атака на пул, продолжительная долговая яма заставит уйти их с пула, что может и являться целью атаки.

Здесь не может находиться ваша реклама Smiley
Protect a future of bitcoin, use p2pool
Donation in BTC: 19fv5yYtfWZ9jQNjx2ncmu1TTrvg5CczZe
Balthazar
Legendary
*
Offline Offline

Activity: 3108
Merit: 1359



View Profile
May 01, 2013, 10:45:38 AM
 #8

Автор не в теме о "методах расчета награды", точнее в теме только о PPS. А кроме PPS еще много чего существует... Остальные системы выплат неподвержены данной атаке, потому что в них атакующий наказывает сам себя, причиняя себе убытки.
нет, метод выплат Prop точно так же уязвим, только стоимость атаки будет повыше, и будет равна части нанесенного убытка пулу пропорционально соотношению мощности атакующего к мощности пула. PPLNS не в случае pool hopping - фактически чистый Prop (возможно растянутый на несколько блоков, зависит от длины очереди учитываемых шар), та же ситуация и с остальными, просто формула определения убытков атакующего будет сложнее, но близка к Prop.
Да, пожалуй обычные PPS-пулы такой стратегией и значительными мощностями можно вогнать в минуса. В остальных разновидностях пулов страдать будут их майнеры и сам злоумышленник...
В конечном счете атака на майнеров пула и есть атака на пул, продолжительная долговая яма заставит уйти их с пула, что может и являться целью атаки.
Вы не поняли. С PPS нет никакой стоимости у атаки, она полностью бесплатна. "Злой" майнер получит ровно столько же, сколько и "добрый", ну минус несколько десятков шар. Потому что доход не идет с блоков непосредственно. В прочих же системах, не отправляя побеждающую шару, атакующий автоматически не отправляет себе деньги. И вот тогда у атаки появляется стоимость.
rPman (OP)
Legendary
*
Offline Offline

Activity: 1120
Merit: 1069


View Profile WWW
May 01, 2013, 10:49:48 AM
Last edit: May 01, 2013, 11:17:20 AM by rPman
 #9

Вы не поняли. С PPS нет никакой стоимости у атаки, она полностью бесплатна. "Злой" майнер получит ровно столько же, сколько и "добрый", ну минус несколько десятков шар.
Я не понял - то ли вы говорите что я не прав, то ли подтверждаете мою правоту Smiley

Два майнера с одинаковыми мощностями, один злой - прячет 'полезные шары', другой добросовестный. Первый получит меньше второго ровно на количество этих пропущенных шар - это и есть стоимость, с точки зрения майнера-атакующего!

Здесь не может находиться ваша реклама Smiley
Protect a future of bitcoin, use p2pool
Donation in BTC: 19fv5yYtfWZ9jQNjx2ncmu1TTrvg5CczZe
Storan
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
May 01, 2013, 10:57:00 AM
 #10

В общем правильная стратегия подобной атаки такова: гнобим неугодный PPS-пул, недополучив в доход тыщу-десяток сатошиков. На вырученные с этого злобного майнинга битки, заказываем ддос на другой не-PPS пул.
Убивать неотсылкой подписанных блоков не-PPS очень затратно. К примеру имеем другой пул который в среднем подписывает 2 блока в сутки. Приходим туда мощностями, которые генерируют 1 блок в сутки. Сидим пару недель - у участников пула доход упал до 2/3; но мы сами потеряли на этой атаке ~125BTC
rPman (OP)
Legendary
*
Offline Offline

Activity: 1120
Merit: 1069


View Profile WWW
May 01, 2013, 11:08:56 AM
 #11

В общем правильная стратегия подобной атаки такова: гнобим неугодный PPS-пул, недополучив в доход тыщу-десяток сатошиков. На вырученные с этого злобного майнинга битки, заказываем ддос на другой не-PPS пул.
Убивать неотсылкой подписанных блоков не-PPS очень затратно. К примеру имеем другой пул который в среднем подписывает 2 блока в сутки. Приходим туда мощностями, которые генерируют 1 блок в сутки. Сидим пару недель - у участников пула доход упал до 2/3; но мы сами потеряли на этой атаке ~125BTC
Убытки атакующего так же пропорционально будут распределены по остальным пользователям пула. Нет смысла атакующему заводить на пул равные этому пулу мощности, хватит и 10%-20% подольше.

Здесь не может находиться ваша реклама Smiley
Protect a future of bitcoin, use p2pool
Donation in BTC: 19fv5yYtfWZ9jQNjx2ncmu1TTrvg5CczZe
Balthazar
Legendary
*
Offline Offline

Activity: 3108
Merit: 1359



View Profile
May 01, 2013, 11:12:21 AM
 #12

Вы не поняли. С PPS нет никакой стоимости у атаки, она полностью бесплатна. "Злой" майнер получит ровно столько же, сколько и "добрый", ну минус несколько десятков шар.
Я не понял - то ли вы говорите что я не прав, то ли подтверждаете мою правоту Smiley

Два майнера с одинаковыми мощностями, один злой - прячет 'полезные шары', другой добросовестный. Первый получит меньше второго ровно на количество этих пропущенных шар - это и есть стоимость, с точки зрения майнера-атакующего!
На PPS атакующий получит почти столько же, как если бы он не атаковал. На распределяющих риски системах атакующий удлиняет раунды, в которых он участвует, и в итоге недополучает тем больше прибыли, чем большую мощность имеет.

P.S. "идеологическая". 5 класс, вроде как...

P.P.S. Я считаю, что за "попробывал", "идеалогия" и "лудше" надо избивать учебником.
rPman (OP)
Legendary
*
Offline Offline

Activity: 1120
Merit: 1069


View Profile WWW
May 01, 2013, 11:16:14 AM
 #13

P.S. "идеологическая". 5 класс, вроде как...
спасибо, исправил.

Здесь не может находиться ваша реклама Smiley
Protect a future of bitcoin, use p2pool
Donation in BTC: 19fv5yYtfWZ9jQNjx2ncmu1TTrvg5CczZe
Balthazar
Legendary
*
Offline Offline

Activity: 3108
Merit: 1359



View Profile
May 01, 2013, 11:21:25 AM
 #14

https://bitcointalk.org/index.php?topic=32814.0
https://bitcoil.co.il/pool_analysis.pdf

http://bitcoin.stackexchange.com/questions/4943/what-is-a-block-withholding-attack
http://permalink.gmane.org/gmane.comp.bitcoin.devel/1112
http://bitcoin.stackexchange.com/questions/1338/how-is-block-solution-withholding-a-threat-to-mining-pools

kimmeriets
Legendary
*
Offline Offline

Activity: 1064
Merit: 1000


View Profile
May 01, 2013, 04:36:53 PM
 #15

зеленые буковки. слышал, что они вредят психике и самое страшное выжигают сетчатку глаза, медленно но бесповоротно. у меня сохранился специальный фильтр от вредного влияния зеленых буковок, но он для 14" мониторов.
naima53
Hero Member
*****
Offline Offline

Activity: 616
Merit: 502



View Profile
May 01, 2013, 05:14:11 PM
 #16

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

Donate me) 16f6iWHHkVEnDReeBQPT9GwCNwUfPTXrp2
Mad_Max
Hero Member
*****
Offline Offline

Activity: 894
Merit: 1001


View Profile
May 05, 2013, 01:25:46 AM
Last edit: May 05, 2013, 01:47:25 AM by Mad_Max
 #17

Вы не поняли. С PPS нет никакой стоимости у атаки, она полностью бесплатна. "Злой" майнер получит ровно столько же, сколько и "добрый", ну минус несколько десятков шар. Потому что доход не идет с блоков непосредственно. В прочих же системах, не отправляя побеждающую шару, атакующий автоматически не отправляет себе деньги. И вот тогда у атаки появляется стоимость.

Что-то недопонял, а что мешает злоумышленнику эту найденную удачную шару, которую он перехватил и не отправил на пул, использовать для генерации нового блока себе лично (в соло режиме или на своем пуле, если это владелец пула этим занимается).
Ну помимо необходимости разобраться в коде майнера и переписать соответствующие участки?
Не знает "содержимого" блока, которое хочет подписать пул? Оно разве не одно и тоже у всех желающих создать по честному валидный (а не поддельный, с липовыми данными) блок? (информация о предыдущем блоке + набор транзакций, которые по все сети одинаково рассылаются по известному открытому формату).


Ну а по теме. Не знаю, может оно совпадение, но вот смотрю сейчас пулы для FTC. Они почему-то на PPLNS системах, и подключился к одному из них (featherpool.com) смотрю что-то нарабатывается заметно меньше ожидаемого (уже с учетом поправок что это PLNS).
Стал сверять статистику - а у них почему-то стабильная непруха, последние 50 найденных блоков (больше сайт не показывает) в среднем добывались где-то на 30-40% тяжелее (больше шар требуется) чем положено исходя из сложности сети. (отсюда и меньшие выплаты, т.к. PPLNS по сути пропорционалка) Понятное дело, что для отдельного блока она скачет сильно туда-сюда - есть большой элемент случайности. Но усредненно по 50 блокам, это уже статистически значимо. Причем когда подключался тоже проверил "везучесть" пула, там было все ОК - порядка 5% отклонение от целевой сложности.
Как результат - майнеры с него разбегаются, уже почти половину мощностей пул потерял.
Проверил еще пару пулов, там тоже похожая ситуация, только превышение сложности на 10-20%. Народ тоже с них уходит (а перед этим все эти 3 ДДОСили, хотя возможно это они сами друг друга). Правда еще не выяснил куда же уходят? (т.к. общая мощность сети не снижается)
Кроме мошенничества со стороны владельцев пулов (кстати как это можно реализовать/отследить?) напрашивается вывод, что кто-то мог налить большие объемы таких "пустых" шар (с изъятыми блоками).
Возможно, это была как раз такая атака. Она конечно не дешевая, если ее длительно проводить. Но длительно тут не нужно - подключить на 1-2 дня мощности. И юзеры начнут разбегаться, а пул получит плохую репутацию мошенников (т.к. большинство не особо статистику изучает/просчитывает, а просто подключается, смотрит сколько за день примерно выходит - сравнивает с тем, что должно получиться исходя из имеющего хэшрейта и если получается существенно меньше положенного - бежит на другой пул, записав этот в свой черный список).

Не зная покоя и отдыха, При лунном и солнечном свете, Мы делаем деньги из воздуха, Чтоб снова спустить их на ветер!
rPman (OP)
Legendary
*
Offline Offline

Activity: 1120
Merit: 1069


View Profile WWW
May 05, 2013, 07:18:13 AM
 #18

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

Почти наверняка с мелкими/слабыми пулами ситуация проще чем описанная атака, сами владельцы тырят средства. Много ли майнеров проверяют, что их шара со сложностью больше сложности сети дошла до сервера и попала в статистику? Инструментов готовых для этого нет, хотя их создание возможно, тот же cgminer дает полный доступ по сбору и анализу логов и статистики.
Крупным пулам, с большими комиссиями можно потратить немного средств на такие атаки, так же дополнительно информационная атака (из под левого форумного аккаунта - 'ааа, этот пул мои выплаты заныкал хнык, плохой пул') и конечно же ддос.
p.s. а когда крупный пул тырит средства, это еще круче, можно тырить совсем мало, вообще никто не заметит.

Здесь не может находиться ваша реклама Smiley
Protect a future of bitcoin, use p2pool
Donation in BTC: 19fv5yYtfWZ9jQNjx2ncmu1TTrvg5CczZe
naima53
Hero Member
*****
Offline Offline

Activity: 616
Merit: 502



View Profile
May 05, 2013, 02:55:26 PM
 #19

Все можно сделать. Можно даже целиком всю сеть имитировать. Вопрос цены.

Donate me) 16f6iWHHkVEnDReeBQPT9GwCNwUfPTXrp2
Vicus
Hero Member
*****
Offline Offline

Activity: 798
Merit: 1000


View Profile
May 11, 2013, 11:52:10 AM
 #20

Я кстати думал насчет атаки такого рода. Она легко вычисляется. Майнеру подсовывается данные фиктивного блока и диапазон nonce, в котором однозначно есть шара нужной сложности. Если майнер ее не отдаст, значит он и есть злодей. Шары такого товарища можно спокойно молча сливать в утиль Smiley
Pages: [1] 2 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!