BTC
3683.0
ETH
124.40
BCH
130.11
LTC
32.080
CFI
0.0233
EOS
2.4660
REQ
0.0370
XMR
46.188
XRP
0.3340
Yobit
hashflare.io
bestchange.ru
YoBit.Net

Новая критическая уязвимость в кошельке Parity для Эфириума

Новая критическая уязвимость в кошельке Parity для Эфириума

После того как июльский взлом кода мультиподписного кошелька Parity привел к краже 153 000 ETH, 20 июля компания Parity (Ethcore) выпустила новую версию контракта Parity Wallet. Однако, в новом коде обнаружилась новая уязвимость: вызов функции initWallet приводит к преобразованию контракта в обычный мультиподписной кошелек и назначению нового владельца контракта. Скорее всего, такой вызов произошел случайно 6 ноября в 02:33:47 PM +UTC. Вслед за вызовом, пользователь уничтожил код контракта, превращенного в кошелек, и его библиотеки, вследствие чего все мультиподписные контракты оказались непригодными к использованию, а все средства на них – заморожены, поскольку логика контракта вместе с функцией изменения состояния находилась в этих библиотеках.

Соответственно, все мультиподписные кошельки Parity (версия 1.8), развернутые после 20 июля теперь выглядят следующим образом:

contract Wallet {
    function () payable {
          Deposit(...)
    }
}

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

В блоге Parity говорится, что специалисты анализируют ситуацию.

Общий объем потерь пока неизвестен, однако в Твиттере Parity сообщается о том, что средства, собранные на ICO Polkadot также заморожены, а это более $144 миллионов (485 000 ETH).

Комментаторы сходятся на том, что единственным способом вернуть замороженные средства может стать хардфорк, при этом, новый код контракта может быть включен во вторую часть релиза Metropolis, запланированную на первый квартал 2018 года. Никакой необходимости в спешке нет, ведь кражи не случилось.

Тем не менее, можно сказать, что репутация компании Parity, и ее основателя Гэвина Вуда (Gavin Wood), и без того изрядно подмоченная происшествием 19 июля, практически уничтожена.

Настоящий виновник нашелся сам

Согласно информации портала Trustnodes, невольным виновником происшествия стал пользователь devops199. В чатруме разработчиков Parity он написал:

Я новичок в ETH.. я просто пытался научиться использовать команду kill() destroy() в случайных контрактах, вы можете посмотреть мою историю [...] .Когда я вижу в чате шутки о том, что я стал знаменитым... пожалуйста, прекратите... У меня руки трясутся.

По словам devops199, он не кодер, а консультант по графическим интерфейсам.

Спустя несколько минут после того как библиотека самоуничтожилась, devops199 написал сообщение в Github Parity, озаглавленное:"ваш контракт может уничтожить кто угодно", добавив, что он нашел уязвимость, которую может использовать злоумышленник. 

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

Теперь всем разработчикам клиентов для Эфириума, а не только Parity, придется задуматься над "защитой от дурака", чтобы предотвратить подобные случаи в будущем.

Показать комментарии Обсудить на форуме

Подписывайтесь на новости и их анализ в нашем Telegram канале!

Калькулятор Bitcoin
Скорость, GH/s:
Сложность:
Курс BTC/USD:
Курс BTC/RUB:
в день в неделю в месяц
BTC
0.000043
0.000299
0.00128
USD
0.15321
1.0725
4.5963
RUB
10.278
71.944
308.33
Расширенный калькулятор
konvert.im
YoBit.Net
Курсы криптовалют
Обновить
Статистика сети
Текущая сложность: 5883988430955
Следующая сложность: 5832971598783 (-0.87%)
Блоков до пересчета: 1642
Цена шары (PPS): 0.0000000000
Мощность сети (Th/s): 41754037.09
Блоков в сети: 558806
Блоков в час: 5.95
Блоков за последний час: 5
До 6.25 BTC/блок: 498.56 дней
(71194 блоков)
Лучше взять и изобрести завтрашний день, чем переживать о том, что вчерашний был так себе
Стив Джобс