Очередное подтверждение некомпетентности команды Slock.it

d0b7d0b0d0b3d180d183d0b6d0b5d0bdd0be_29-7-2016_d0b2_12_34_01

По всей видимости, не так давно кто-то снова откачал средства из DAO. Это уже третья атака менее чем за два месяца. Ещё большее беспокойство вызывает то, что во всех трёх случаях были использованы очень похожие методы атаки. К счастью, последняя атака была «разведкой белого хакера». С другой стороны, эти атаки показывают некоторые очень тревожные детали о коде DAO, которые могут означать гибель для проекта в целом.

У DAO очень странный код

Можно смело сказать, что сообщество Эфириум было «приятно» удивлено, когда DAO была атакована в третий раз. Неизвестная личность выводила средства со счёта проекта, несмотря на то, что баланс после хард форка должен был быть нулевым. По какой-то причине, на балансе было около 38 000 Эфиров, и средства были переведены на другой счёт, благодаря рекурсивной ошибке.

Как выяснилось, один из «белых хакеров», исследовавших код контракта DAO вывел эти средства. Но не это было тревожным знаком. Дальнейшее исследование выявило сырой код, которого в первую очередь там быть не должно. Иногда трудно поверить, что этот проект привлёк 150 миллионов долларов США. Судя по всему, это был горшочек с мёдом, который только и ждал своего опустошения.

Пользователь Reddit под ником DeviateFish_ объяснил такое положение дел следующим образом:

«Эта стандартная функция контракта действительно странная. Она нужна для отправки ETH (или что бы там ни было плюс то, что уже было отправлено) на аккаунт вознаграждения DAO. Затем, она выясняет, сколько DAO токенов нужно вернуть из контракта вознаграждения (путём getMyReward) в дочерний контракт, который затем обращается к getMyReward. Обращение к getMyReward повторно вводит этот дочерний контракт. В этот момент она переводит 99.9999999% этих токенов обратно в материнский контракт перед возвращением. Затем оставшиеся токены переводятся на другой контракт (который получает гораздо большую выплату). Он также получил некоторые внутренние установленные значения, чтобы следить за определёнными заявками… Предположительно, чтобы деление DAO опустошило их. Может быть первый повторный ввод нужен для опустошения аккаунта вознаграждения (если в нём что-то есть), но нельзя сначала проверить, что аккаунт вознаграждения пуст?»

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

Источник: themerkle.com



Рубрики:ДАО, ETH, Ethereum, спорный форк

Метки: , , , , , , , , ,

6 replies

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

  2. Наверняка сделали так чтобы самим можно было красть. Но их опередили.

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

      • ну теперь то ему уж точно не до прически )))

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

Trackbacks

  1. Воткни вилку в Эфириум — EthereumClassic

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s