Перейти к содержимому
Format.C^

Биткоин и "эгоистичный" майнинг.

Рекомендуемые сообщения

Группа исследователей из Корнелльского университета, во главе с Ittay Eyal и Emin Sirer утверждают, что обнаружили уязвимость в системе генерации Bitcoin. В опубликованной научной работе приводится пример атаки на цепочку блоков, в которой майнеры получают вознаграждение несоизмеримо своим усилиям по добыче монет.

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

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

Эгоистичный майнинг возможен только в составе группы достаточно большого размера. Авторы научной работы предлагают изменение протокола для защиты от подобных групп, суммарная мощность которых не превышает 25% ресурсов сети. При этом они подчеркивают, что система никогда не будет защищена от групп, которые контролируют более 33% вычислительных ресурсов сети, в то время как раньше критическим считался контроль более 50% ресурсов.

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

 

post-3105-0-13251900-1383636459_thumb.jpg

 

Источники: http://mashable.com/2013/11/04/bitcoin-cornell-researchers/

                  http://www.scribd.com/doc/181412760/Bitcoin-Mining-Vulnerability-Paper

_______________________________________

На самом деле мне не совсем понятен сам механизм публикации (выгрузки) группы блоков из "приватной" ветки в основную. Как это может произойти на практике, кто в курсе?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

За счет чего их ветка будет расти быстрее основной? Из-за падения сложности?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@Provok, за счёт того, что найденный пулом блок не обнародуется для всей сети, а держится "в секрете" и продолжается поиск следующего. Майнеры, находящиеся в основной ветке сети не знают, что блок уже найден и продолжают майнить "в холостую". Этим достигается как бы "эффект форы" и количество блоков в "приватной" ветке получается по определению длиннее, чем в основной. Такой манёвр позволяет сохранять приватную ветку валидной, а в основной ветке майнеры получают орфаны.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Группа исследователей из Корнелльского университета, во главе с Ittay Eyal и Emin Sirer ...

... наконец обнаружила существование Bitcoin Wiki или наоборот никогда ее не видела и изобрела свой велосипед? Это удивительнейшее открытие известно всем кому не лень :huh: С самого начала возникло дежавю, потом вспомнил, где я об этом читал, оказывается далеко ходить не надо ;)  

http://btcsec.com/double-spending

 

@Provok, за счёт того, что найденный пулом блок не обнародуется для всей сети, а держится "в секрете" и продолжается поиск следующего. Майнеры, находящиеся в основной ветке сети не знают, что блок уже найден и продолжают майнить "в холостую". Этим достигается как бы "эффект форы" и количество блоков в "приватной" ветке получается по определению длиннее, чем в основной. Такой манёвр позволяет сохранять приватную ветку валидной, а в основной ветке майнеры получают орфаны.

Чтобы получить большее количество блоков в приватной ветке, нужно генерировать быстрее остальной сети всю цепочку, а не отдельные блоки. А это можно только при 50%+ или затяжном периоде удачи при меньшей мощности. Так и не понял, что принципиально нового открыли эти ученые? Механизм скрытого вклеивания отдельных блоков в уже существующую цепочку задним числом? :blink: Если нет, то они сидят в касках в танке на бронепоезде...

 

P.S. btcguild уже неоднократно имела больше 50% мощности сети, но не воспользовалась, видимо ей рулят порядочные люди. Главное что такую атаку провести незаметно просто нет возможности, если кто-то будет тырить блоки систематически - допрыгается. Но самое смешное, в долгосрочной перспективе все равно больше своего законного процента не получит...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

... наконец обнаружила существование Bitcoin Wiki ... http://btcsec.com/double-spending

Ну а Вики тут причём? Если что, речь идёт не о дабл-спенде.

 

Чтобы получить большее количество блоков в приватной ветке, нужно генерировать быстрее остальной сети всю цепочку, а не отдельные блоки. А это можно только при 50%+ или затяжном периоде удачи при меньшей мощности.

Не всю цепочку, а цепочку из нескольких подряд идущих блоков. Я постом выше пояснил почему так получается  и почему нет необходимости в 50%+.

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(изменено)

Все равно ЯННП.

Считаем усредненно.

Предположим, злоумышленники нашли блок и считают дальше - получили фору в 10 минут. Они найдут следующий блок за 30 минут (т.к. считает всего 33% а сложность та же). Остальные за это время найдут 2 блока и пойдут на равных. Еще 30 минут, злоумышленники нашли 1 блок, остальные - 2 блока и ушли вперед.

 

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

Изменено пользователем Provok

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну а Вики тут причём? Если что, речь идёт не о дабл-спенде.

При том, что ничего нового я не увидел, а в той статье описан практически тот же механизм.

 

Не всю цепочку, а цепочку из нескольких подряд идущих блоков. Я постом выше пояснил почему так получается  и почему нет необходимости в 50%+.

Опять же, если "очень повезет". Никакой привязки к 33% нет, вопрос только во времени.

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А тут злоумышленник теряет проработавшие вхолостую мощности. Авторы исслкдования поняли что атаку 51% можно провести и с 30% сети, только шансы ниже, также наличие 51% и более не дает 100% гарантии успешной атаки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(изменено)

А тут злоумышленник теряет проработавшие вхолостую мощности. Авторы исслкдования поняли что атаку 51% можно провести и с 30% сети, только шансы ниже, также наличие 51% и более не дает 100% гарантии успешной атаки.

Ага. Так же интересна ситуация (обсуждалось на talks-ах, ссылку на сохранил), когда пул находит блок, а сеть нашла другой  чуть раньше. У пула (теоретически) два варианта: согласиться и начать дальше копать "от чужого блока" или копать от своего.

Если копать от  чужого,  блока: минусы понятны: свой  блок в orphan, а найдем что-то дальше или нет - как повезет. А вот если копать от своего: если пул находит новый блок раньше чем сеть в своей цепочке, то появляется возможность "перебить" чужой блок цепочкой из 2-х своих (то есть в плюсе сразу на 2 блока). А если сеть нашла еще один блок раньше чем, пул - начинаем копать уже от общей цепочки. То есть потери ровно те же, что и если бы сразу переключились на общую цепочку. То есть, в первом приближении, для пула минусов для случая переключения на общую цепочку не сразу, а с задержкой на 1 блок (если предыдущий блок пытаются отправить в orphan) и не видно независимо от соотношения мощности пула к мощности сети... В более тщательном рассмотрении нужно уще учитывать задержки растпространения блоков по сети...

Изменено пользователем XBOCT

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Авторы незнакомы с матчастью. При разрешении конфликта форка цепи протокол принимает не у кого блоков больше, а чья совокупная сложность больше. То есть в "нечестную" цепь чтобы она принялась сетью, надо вбухать больше хешей чем в "честную", Получаем 51% дабл-спенд. Если злодеи продолжат упорстововать, их просто выбросит в лимб, их блоки и транзакции не будут признаны кворумом и не примутся.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если на пальцах.

 

У меня ровно четверть сети, я поймал короткий раунд на 0 минут и сразу начал копать следующий блок поверх найденного и неопубликованного. Найду я его через 40 минут (наивероятное значение), в то время сеть сгенерирует 3 блока. В итоге у меня 2 блока, у всех остальных 3, и любой клиент мою ветку заорфанит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если на пальцах.

 

У меня ровно четверть сети, я поймал короткий раунд на 0 минут и сразу начал копать следующий блок поверх найденного и неопубликованного. Найду я его через 40 минут (наивероятное значение), в то время сеть сгенерирует 3 блока. В итоге у меня 2 блока, у всех остальных 3, и любой клиент мою ветку заорфанит.

 

Это само собой разумеется, так как у открытой ветки накопленная сложность будет выше за счёт сложности +1 блока. Если в этом интервале не было пересчёта сложности, то для простоты можно считать преимущество форков в блоках, а не в накопленной сложности. Кстати, 51% ещё не означает double spend, он лишь частный случай.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@Tomcat_MkII все правильно сказал и привел ссылку на статью про double spending

Группа исследователей из Корнелльского университета заставила меня вспомнить вот эту картинку:

breaking_news.jpg

Ребята наконец прочитали спецификации и до них дошло.

 

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

 

майнеры получают вознаграждение несоизмеримо своим усилиям по добыче монет.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вообще, как описано в спецификации от Сатоши, даже если у вас есть 51% всей мощности сети, вам выгоднее "играть по правилам". Транзакции, совершённые до получения этой мощности, отменить не получится - можно только отменять последующие, дискредитируя систему и "понижая курс валюты на биржах". И это гениально, imho.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А вообще, смысл "исследования" в том, что "Надо больше негативных новостей!" Паник! Паник! Система разваливается! Биток сливаем!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Кстати, этим "открытием" все новостные сайты завалены, пора бы курсу просесть.

А потом кто-нибудь из разработчиков выедет на белом коне с опровержением <_<

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

[bitcoin-development] Bitcoin Network Simulator

 

Over the last days I spent some time working on a simple Bitcoin network simulator. It is a stochastic event-based continuous-time simulation of Bitcoin miners exchanging messages and building block chains. It simulates latency, bandwidth and also verification speed but it currently does not simulate propagation/inclusion of transactions and instead uses random block sizes. The simulator includes two examples, one for a 51% attack and the other is an implementation of selfish mining (pretty much 1:1 as described in the paper). With the random parameters I picked it seems like it pays off to mine selfish with >=30% of the hashing power - but take this with a huge grain of salt as this is with a very small network and randomly chosen parameters. And of course it is not a perfect replica of the real world network. Since this is based on my understanding of the Bitcoin network and protocol it would be great if others would take a look and help improve it.

  Regards,

  Rafael Brune

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×