AUBREY
DO YOU LIKE TO HURT PEOPLE?
Please note, if you want to make a deal with this user, that it is blocked.
Взлом Bitfinex – одной из крупнейших криптовалютных бирж - привел к потере 119 756 биткойнов. Это составляет почти 70 миллионов долларов. Для сравнения, в результате рекордного вооруженного ограбления завода в Данбаре в 1997 году было похищено 28 миллионов долларов (в пересчете с учетом инфляции). Поэтому, кражи средств из "банков" Биткойна – тема сегодняшнего дня.
Профессор Эмин Гюн Сирер (Emin Gün Sirer), преподаватель информатики Корнелльского университета, в своем блоге Hacking Distributed высказал свое мнение о причинах инцидента, каким образом мог быть осуществлен взлом и как можно предотвратить такие ситуации в будущем.
Контекст
Утверждают, что это первая крупная кража биткойнов за последние полтора года. Это совершенно не так. В первой половине этого года был взломан обменник Shapeshift, а незадолго до этого – Cryptsy, а до этого был крах MtGox. Кражи были у Poloniex и у многих других бирж. Список основных краж слишком длинный, чтобы перечислять его здесь.
Ясно, что банкротство, или близкое к нему состояние любой криптовалютной биржи означает опустошение, кладбище несбывшихся надежд и печальное напоминание о хрупкости и уязвимости нашей компьютерной инфраструктуры. Это характерно не только для сети Биткойна – мы уже видели, что банки, и даже центральные банки, точно так же уязвимы. Но если обычные банки могут отследить переводы средств и попытаться их вернуть, то необратимость транзакций в сети Биткойна делает криптовалютные биржи соблазнительными и легкодоступными мишенями. В результате появляются душераздирающие истории, как например, история человека, потерявшего все свои сбережения за последние 12 лет.
Причина
Еще слишком рано для того, чтобы можно было воссоздать связную историю краха Bitfinex. Вне всякого сомнения, многие возложат ответственность на государственных регуляторов, так как американское правительство в лице CFTC оштрафовало биржу, вмешивалось в ее работу и регулировало операции. Однако, правительственное влияние было почти незаметным.
Во-первых, биржа была оштрафована только на 75 000 долларов (трехмесячная зарплата разработчика из Силиконовой Долины) за то, что не потратила три месяца рабочего времени разработчиков на какие-то нужные регуляторам структуры. Во-вторых, регуляторы добились, чтобы Bitfinex держала деньги не на общем счете, а на индивидуальных аккаунтах зарегистрированных пользователей с мульти-подписью. В сущности, регуляторы хотели, чтобы монеты принадлежали пользователям, а не собирались в одном гигантском пуле. Это формальное изменение финансового баланса полностью удовлетворило регуляторов, которые совершенно не касались вопросов безопасности. Все задачи обеспечения безопасности закрытых ключей полностью находились в зоне компетенции Bitfinex.
К чести Bitfinex нужно сказать, что биржа перешла на аккаунты с мульти-подписью, защищенные BitGo, где они и держали закрытые ключи пользователей, при этом для транзакций требовали второй подписи от BitGo.
Мы можем только гадать: предположим, что хакер получил приватные ключи, которые хранились на Bitfinex, вместе с API доступом к BitGo, и затем отправлял в BitGo инструкции по выводу средств. Вероятно, потребовались дополнительные фокусы для обхода лимитов BitGo на максимальную сумму вывода в день.
Грабить криптовалютные биржи очень удобно. Не нужно выглядеть идиотом с черным носком на голове, угрожать пистолетом. Для того, чтобы грабить современные банки, не нужен брезентовый мешок. Брать заложников, стрелять в охранников, прыгать с парашютом над Западным Вашингтоном в офисном костюме – все это лишнее. Все очень просто – скрипт-кидди делают закладки на последних постах по безопасности и запускают атаку из студенческого общежития. Здесь же и хакерские группы на службе у государств (а их тысячи, и все с "лицензией на взлом"), которые проводят атаку в свой обеденный перерыв или за оплату крутой вечеринки.
Сомнительно, что деньги можно вернуть
Необратимость транзакций – ключевой момент в определении цели атаки: трейдеры, которым пользователи не доверяют, участвуют в бизнесе, не санкционированном государством. Биткойн не может провести форк, иначе он потеряет свою особенную, заработанную годами репутацию.
Вариант, предложенный разработчиком Биткойна: провести софтфорк, в котором майнеры блокируют счет злоумышленника и позволяют Bitfinex провести двойную трату, как будто никакого ограбления не было. Это возможно только потому, что майнинг бикойнов достаточно централизован. Однако это только голая идея, и ряд факторов благоприятствует дальнейшим кражам. Верно, что майнеры решают, какие транзакции они запишут в блокчейн, но так же и верно, что некто может заплатить им за реорганизацию цепочки. Вор может заплатить им более высокую цену, ведь ему не надо было платить за предыдущую работу. В предельном случае награбленное может быть разделено между майнерами и злоумышленником. Это классический вариант задачи из области экспериментальной психологии, только с гораздо более высокими ставками.
Другой вариант: попытка договориться со злоумышленником. Разговор ведется в публичном пространстве, в социальных сетях, кончается это достаточно жалким и униженным обсуждением, которое выглядит в точности как классическая третья стадия горевания.
Глупо пытаться договориться с кем-либо, не имея возможности предложить что-либо взамен. К тому же, в последний раз, когда хакеру предлагалась такая сделка, он был схвачен в процессе переговоров. В психологическом эксперименте, если хакер предлагает 1 доллар, нужно брать, альтернатива этому – ноль.
Как предотвратить кражи
Похоже, что нужна схема, которая не нарушает фундаментальной необратимости Биткойна, но позволяет вернуть средства, украденные в результате атаки.
Как может работать такая схема? Конфликт кажется неразрешимым. Поскольку определение "взлом" отсутствует в словаре Биткойна, неограниченный механизм отката обязательно нарушит принцип необратимости.
На самом деле, решение есть. Вот как оно может выглядеть.
Предположим, что средства хранятся в специальном холодном кошельке, далее "погреб". Чтобы произвести оплату, нужно перенести средства из погреба в обычный кошелек, допустим, этот процесс занимает 1 день. Продавцы не принимают платежи из погреба, они требуют обычный Биткойн-адрес, платежи по которому проходят обычным, необратимым способом.
Особенность погреба заключается в том, что у него два приватных ключа. Один ключ разблокирует погреб и переносит средства в обычный кошелек. Другой, ключ восстановления, используется, если обнаружена хакерская транзакция и средства выведены из "погреба". После этого в течение 24 часов с помощью ключа восстановления можно вернуть средства. Владелец погреба не может обмануть продавца и откатить финальную транзакцию. Он может только вернуть средства, если злоумышленник попытается их украсть. Ключ восстановления также должен снабжаться замедлителем – те же 24 часа.
Такой способ максимально эффективен против атаки инсайдеров.
Концепция "погреба" – это дальнейшее развитие такого предохранителя, как замедлитель – таймлок. С помощью таймлока, например, был произведен откат похищенных фондов TheDAO в Эфириуме и предотвращена попытка атаки на сеть Steemit в июне.