В течение прошлой недели сеть Bitcoin подвергалась неопасной атаке, основанной на гибкости транзакций [malleability attack]. Ответственность взял на себя один из энтузиастов криптовалют и активный участник интернет-форума bitcointalk.org. Он утверждает, что живёт в Москве, а атаку на сеть проводил «потому, что может это сделать».
Атака, которая была организована силами одного человека и повлияла на работу всей сети, известна в криптосообществе уже довольно давно. Разработчики bitcoin уже почти год готовят изменения в коде, Хотя она не обладает фатальными последствиями, но способна значительно замедлить скорость обработки транзакций.
Согласно описанию на сайте bitcoin wiki, атака на гибкости использует недочёт в протоколе обработки переводов средств, позволяющий дублировать транзакции. Протокол разрешает взять любую транзакцию, подписать её, изменить id и отправить на утверждение в цепочку блоков. В результате только одна из конкурирующих транзакций попадёт в результирующую цепочку, и у сети обработка этих двух транзакций занимает гораздо больше времени.
Криптохулиган, называющий себя Alister Maclin (возможно, в честь шотландского новеллиста Alistair MacLean), признался на форуме bitcointalk, что именно он стоит за этой атакой, продолжавшейся несколько дней. Он согласился пообщаться с изданием Vice и поделиться подробностями о проведённой акции.
![image](https://habrastorage.org/r/w1560/getpro/geektimes/post_images/05d/4ac/bc7/05d4acbc7fa2bf42ca7360fda5e0fec6.png)
Временный всплеск количества отвергнутых транзакций
amaclin продемонстрировал интервьюеру свои возможности, включая и выключая атаку на сеть – эти действия были видны в статистике работы сети, доступной на сайте statoshi.info. По его словам, организовать такую акцию сведущему человеку довольно просто – это заняло у него пару часов и сотню строчек кода скрипта.
На вопросы о целях атаки amaclin отвечает, что делает это потому, что может, а также цитирует произведение Джека Лондона «Морской волк»: «Мы делаем всё, чтобы выжить, и прокормить наших жён и детей» (прообразом главного героя произведения стал, кстати, ещё один Маклин – капитан Алекс Маклин [Alex MacLean]). При этом он заявляет, что не преследует в данной ситуации корыстных целей.
Главным поводом для вмешательства в работу сети по словам активиста стало то, что ему не нравится количество паразитной энергии, которая тратится при обработке транзакций. «Биткоин тратит больше ресурсов (электричества, железа, человеческих усилий) в пересчёте на транзакцию, чем текущие централизованные системы». Также amaclin сетует на то, что биткоин-сообщество делает слишком мало для улучшения работы системы и оставляет всё на откуп кучке разработчиков, ответственных за обновления ядра.
Этим летом сеть биткоин подвергалась другому стресс-тесту – в том случае он был связан с размерами блока. Текущий размер блока позволяет обрабатывать слишком мало транзакций в единицу времени. Чтобы продемонстрировать эту ограниченность, биржа CoinWallet.eu 22 июня провела свой стресс-тест. Десять серверов с кошельками Bitcoin посылали транзакции два раза в секунду, и каждая из них рассылалась на 10–20 адресов. Выходы из этих сделок объединялись и отправлялись обратно на рассылавшие серверы. Однако, серверы CoinWallet сами упали, и компания не смогла создать нагрузки в тех объемах, которые планировались. Сеть этот стресс-тест выдержала без особых проблем.
Атака, которая была организована силами одного человека и повлияла на работу всей сети, известна в криптосообществе уже довольно давно. Разработчики bitcoin уже почти год готовят изменения в коде, Хотя она не обладает фатальными последствиями, но способна значительно замедлить скорость обработки транзакций.
Согласно описанию на сайте bitcoin wiki, атака на гибкости использует недочёт в протоколе обработки переводов средств, позволяющий дублировать транзакции. Протокол разрешает взять любую транзакцию, подписать её, изменить id и отправить на утверждение в цепочку блоков. В результате только одна из конкурирующих транзакций попадёт в результирующую цепочку, и у сети обработка этих двух транзакций занимает гораздо больше времени.
Криптохулиган, называющий себя Alister Maclin (возможно, в честь шотландского новеллиста Alistair MacLean), признался на форуме bitcointalk, что именно он стоит за этой атакой, продолжавшейся несколько дней. Он согласился пообщаться с изданием Vice и поделиться подробностями о проведённой акции.
![image](https://habrastorage.org/getpro/geektimes/post_images/05d/4ac/bc7/05d4acbc7fa2bf42ca7360fda5e0fec6.png)
Временный всплеск количества отвергнутых транзакций
amaclin продемонстрировал интервьюеру свои возможности, включая и выключая атаку на сеть – эти действия были видны в статистике работы сети, доступной на сайте statoshi.info. По его словам, организовать такую акцию сведущему человеку довольно просто – это заняло у него пару часов и сотню строчек кода скрипта.
На вопросы о целях атаки amaclin отвечает, что делает это потому, что может, а также цитирует произведение Джека Лондона «Морской волк»: «Мы делаем всё, чтобы выжить, и прокормить наших жён и детей» (прообразом главного героя произведения стал, кстати, ещё один Маклин – капитан Алекс Маклин [Alex MacLean]). При этом он заявляет, что не преследует в данной ситуации корыстных целей.
Главным поводом для вмешательства в работу сети по словам активиста стало то, что ему не нравится количество паразитной энергии, которая тратится при обработке транзакций. «Биткоин тратит больше ресурсов (электричества, железа, человеческих усилий) в пересчёте на транзакцию, чем текущие централизованные системы». Также amaclin сетует на то, что биткоин-сообщество делает слишком мало для улучшения работы системы и оставляет всё на откуп кучке разработчиков, ответственных за обновления ядра.
Этим летом сеть биткоин подвергалась другому стресс-тесту – в том случае он был связан с размерами блока. Текущий размер блока позволяет обрабатывать слишком мало транзакций в единицу времени. Чтобы продемонстрировать эту ограниченность, биржа CoinWallet.eu 22 июня провела свой стресс-тест. Десять серверов с кошельками Bitcoin посылали транзакции два раза в секунду, и каждая из них рассылалась на 10–20 адресов. Выходы из этих сделок объединялись и отправлялись обратно на рассылавшие серверы. Однако, серверы CoinWallet сами упали, и компания не смогла создать нагрузки в тех объемах, которые планировались. Сеть этот стресс-тест выдержала без особых проблем.