kray_zemli (kray_zemli) wrote,
kray_zemli
kray_zemli

Category:

Как взломать BitCoin

Не дали мне "подняться" на битках? Ещё и ржёте надо мной? Получайте, суки!

Идея блокчейна BitCoin в том, что за блок майнер получает 12.5 BTC плюс комиссию с транзакций. Между майнерами вводится жёсткая конкуренция, в результате которой майнерам, во-первых, выгоднее тратить как можно больше вычислительных мощностей, и, во-вторых, выгоднее "продолжать" самую длинную цепочку блоков, т.к. вероятность получить вознаграждение выше. Для компрометации сети, нужно "натравить" на побочную цепочку майнеров, совокупно владеющих 50%+ вычислительной мощности. Предполагается, что это сложно.

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

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

Итак, допустим, майнеры просекли фишку и подрихтовали софт, чтобы он действовал более рационально в случае коллизии блоков. Теперь меняем условия задачи. У майнера есть последний блок Y и предпоследний блок X. Что если опираться не на Y, а на X? Например, если в блоке X очень уж вкусно набирается комиссии (скажем, втрое больше среднего), которую очень хотелось бы "отжать" у предыдущего майнера. Если мы взяли за основу блок X, смайнив в результате блок Y2, то Y и Y2 получат одинаковый приоритет, и майнерам (освоившим предыдущий трюк, но ещё не допёрших до этого) выгодно переключиться с Y на Y2, если блок Y2 сопровождается более выгодным "откатом". Риск здесь в лишь в том, что, пока мы распространим Y2, пока майнеры переключатся c Y на Y2, кто-то уже успеет намайнить и распространить блок Z. Но зато и приз стоит того. Конечно, рациональные майнеры подхватят и эту фишку, и, всякий раз, когда попадается особо "вкусный" набор транзакций, за них начнётся драка.

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

Итак. Майнеры стали очень умными и очень азартными. Пусть, допустим, у меня есть 20K BTC. Я одной транзакцией перевожу их на биржу A. Биржа, как это принято, ждёт 3 блока-подтверждения, т.е. около 30 минут, после чего зачисляет их мне на счёт. Я оперативно продаю их и начинаю процедуру вывода денег. В этот же момент, я генерирую double-spend транзакцию на те же битки, но на биржу Б. Я ведь абсолютно ничего от этого не теряю! На этот раз, я устанавливаю астрономическую комиссию, скажем, 2K BTC. Если майнер майнит мэйнстримную цепь, он получает в среднем, скажем, 20 BTC. А если перключится на мою побочную цепь, то, под конец банкета, получает аж 2K BTC. Да, нужно перемайнить 3+ блока, но зато комиссия в 100 раз больше, хотя и есть риск, что другие майнеры эстафету не подхватят. Но если мы из этих 2K BTC оставляем следующему майнеру "откат" 1.01K BTC, то вероятность подхвата эстафеты повышается. Ведь риск всё ещё стоит того, а разрыв сократился! Следующий майнер "откатывает" 506 BTC и т.д. Таким вот образом, у нас вполне имеются шансы мобилизовать 50%+ майнеров на побочную цепь, побудив в них азарт, и "вывести" её в топ. После чего, мы выводим битки уже с биржи Б. Майнеры, если не дураки, тоже бросятся тут же выводить намайненные битки.

Казалось бы, зачем майнерам компрометировать битки такими махинациями? Во-первых, все и так уверены, что битки вот-вот обрушатся. Во-вторых, если не вступить в грязную игру, то это всё равно могут сделать другие. И гешефт обойдёт стороной.
Subscribe

  • Зачем либералам власть?

    Забавляет либеральное двоемыслие, предлагающее давить на власть сугубо законными методами, в то время как власть пишет закон сугубо под себя, да и…

  • Дворец: мужское и женское

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

  • Глубинный народ о Дворце

    Подумаешь, дворец! У вечернего мудозвона Соловьёва — и то хоромы есть. А Путину что, нельзя? Тем более, в России, а не где-нибудь в Америках да…

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 8 comments