http://bits.media/images/news/080816/060816_o-krazhe-s-bitfinex_1.JPG http://bits.media/news/birzha-bitfinex-vzlomana-vse-operatsii-ostanovleny/ – одной из крупнейших криптовалютных бирж - привел к потере 119 756 биткойнов. Это составляет почти 70 миллионов долларов. Для сравнения, в результате рекордного вооруженного ограбления завода в Данбаре в 1997 году было похищено 28 миллионов долларов (в пересчете с учетом инфляции). Поэтому, кражи средств из "банков" Биткойна – тема сегодняшнего дня. Профессор Эмин Гюн Сирер (Emin Gün Sirer), преподаватель информатики Корнелльского университета, в своем блоге Hacking Distributed http://hackingdistributed.com/2016/08/03/how-bitfinex-heist-could-have-been-avoided/ о причинах инцидента, каким образом мог быть осуществлен взлом и как можно предотвратить такие ситуации в будущем. Контекст Утверждают, что это первая крупная кража биткойнов за последние полтора года. Это совершенно не так. В первой половине этого года был взломан обменник Shapeshift, а незадолго до этого – Cryptsy, а до этого был крах MtGox. Кражи были у Poloniex и у многих других бирж. Список основных краж https://bitcointalk.org/index.php?topic=83794.0, чтобы перечислять его здесь. Ясно, что банкротство, или близкое к нему состояние любой криптовалютной биржи означает опустошение, кладбище несбывшихся надежд и печальное напоминание о хрупкости и уязвимости нашей компьютерной инфраструктуры. Это характерно не только для сети Биткойна – мы уже видели, что банки, и даже центральные банки, точно так же уязвимы. Но если обычные банки могут отследить переводы средств и попытаться их вернуть, то необратимость транзакций в сети Биткойна делает криптовалютные биржи соблазнительными и легкодоступными мишенями. В результате появляются душераздирающие истории, как например, история https://np.reddit.com/r/BitcoinMark..._to_bitcoin_security_breach/d61qbed?context=2. Причина Еще слишком рано для того, чтобы можно было воссоздать связную историю краха Bitfinex. Вне всякого сомнения, многие возложат ответственность на государственных регуляторов, так как американское правительство в лице CFTC оштрафовало биржу, вмешивалось в ее работу и регулировало операции. Однако, правительственное влияние было почти незаметным. Во-первых, биржа была оштрафована только на 75 000 долларов (трехмесячная зарплата разработчика из Силиконовой Долины) за то, что не потратила три месяца рабочего времени разработчиков на какие-то нужные регуляторам структуры. Во-вторых, регуляторы добились, чтобы Bitfinex держала деньги не на общем счете, а на индивидуальных аккаунтах зарегистрированных пользователей с мульти-подписью. В сущности, регуляторы хотели, чтобы монеты принадлежали пользователям, а не собирались в одном гигантском пуле. Это формальное изменение финансового баланса полностью удовлетворило регуляторов, которые совершенно не касались вопросов безопасности. Все задачи обеспечения безопасности закрытых ключей полностью находились в зоне компетенции Bitfinex. К чести Bitfinex нужно сказать, что биржа перешла на аккаунты с мульти-подписью, защищенные BitGo, где они и держали закрытые ключи пользователей, при этом для транзакций требовали второй подписи от BitGo. Мы можем только https://www.reddit.com/r/Bitcoin/comments/4vwcek/bitfinex_hacker_used_bitfinex_and_bitgo_keys/: предположим, что хакер получил приватные ключи, которые хранились на Bitfinex, вместе с API доступом к BitGo, и затем отправлял в BitGo инструкции по выводу средств. Вероятно, потребовались дополнительные фокусы для обхода лимитов BitGo на максимальную сумму вывода в день. Грабить криптовалютные биржи очень удобно. Не нужно выглядеть идиотом с черным носком на голове, угрожать пистолетом. Для того, чтобы грабить современные банки, не нужен брезентовый мешок. Брать заложников, стрелять в охранников, прыгать с парашютом над Западным Вашингтоном в офисном костюме – все это лишнее. Все очень просто – скрипт-кидди делают закладки на последних постах по безопасности и запускают атаку из студенческого общежития. Здесь же и хакерские группы на службе у государств (а их тысячи, и все с "лицензией на взлом"), которые проводят атаку в свой обеденный перерыв или за оплату крутой вечеринки. Сомнительно, что деньги можно вернуть Необратимость транзакций – ключевой момент в определении цели атаки: трейдеры, которым пользователи не доверяют, участвуют в бизнесе, не санкционированном государством. Биткойн не может провести форк, иначе он потеряет свою особенную, заработанную годами репутацию. Вариант, предложенный разработчиком Биткойна: провести софтфорк, в котором майнеры блокируют счет злоумышленника и позволяют Bitfinex провести двойную трату, как будто никакого ограбления не было. Это возможно только потому, что майнинг бикойнов достаточно централизован. Однако это только голая идея, и ряд факторов благоприятствует дальнейшим кражам. Верно, что майнеры решают, какие транзакции они запишут в блокчейн, но так же и верно, что некто может заплатить им за реорганизацию цепочки. Вор может заплатить им более высокую цену, ведь ему не надо было платить за предыдущую работу. В предельном случае награбленное может быть разделено между майнерами и злоумышленником. Это классический вариант задачи из области экспериментальной психологии, только с гораздо более высокими ставками. Другой вариант: попытка договориться со злоумышленником. Разговор ведется в публичном пространстве, в социальных сетях, кончается это достаточно https://www.reddit.com/r/Bitcoin/comments/4vvx7i/dear_attacker_please_keep_25_and_return_the_rest/, которое выглядит в точности как классическая https://www.b17.ru/article/23173/. Глупо пытаться договориться с кем-либо, не имея возможности предложить что-либо взамен. К тому же, в последний раз, когда https://habrahabr.ru/post/165607/, он был схвачен в процессе переговоров. В психологическом эксперименте, если хакер предлагает 1 доллар, нужно брать, альтернатива этому – ноль. Как предотвратить кражи Похоже, что нужна схема, которая не нарушает фундаментальной необратимости Биткойна, но позволяет вернуть средства, украденные в результате атаки. Как может работать такая схема? Конфликт кажется неразрешимым. Поскольку определение "взлом" отсутствует в словаре Биткойна, неограниченный механизм отката обязательно нарушит принцип необратимости. На самом деле, решение есть. Вот как оно может выглядеть. Предположим, что средства хранятся в специальном холодном кошельке, далее "погреб". Чтобы произвести оплату, нужно перенести средства из погреба в обычный кошелек, допустим, этот процесс занимает 1 день. Продавцы не принимают платежи из погреба, они требуют обычный Биткойн-адрес, платежи по которому проходят обычным, необратимым способом. Особенность погреба заключается в том, что у него два приватных ключа. Один ключ разблокирует погреб и переносит средства в обычный кошелек. Другой, ключ восстановления, используется, если обнаружена хакерская транзакция и средства выведены из "погреба". После этого в течение 24 часов с помощью ключа восстановления можно вернуть средства. Владелец погреба не может обмануть продавца и откатить финальную транзакцию. Он может только вернуть средства, если злоумышленник попытается их украсть. Ключ восстановления также должен снабжаться замедлителем – те же 24 часа. Такой способ максимально эффективен против атаки инсайдеров. Концепция "погреба" – это дальнейшее развитие такого предохранителя, как замедлитель – таймлок. С помощью таймлока, например, был произведен откат похищенных фондов TheDAO в Эфириуме и предотвращена попытка атаки на сеть Steemit в июне.