После того как июльский взлом кода мультиподписного кошелька 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, придется задуматься над “защитой от дурака”, чтобы предотвратить подобные случаи в будущем.
В современном мире ведение бухгалтерского учета играет ключевую роль в успешном функционировании любой компании. Одной…
В последние годы криптовалюты, особенно bitcoin, становятся все более популярными как среди инвесторов, так и…
В современном мире криптовалютного майнинга и цифровой экономики важным инструментом защиты и оптимизации работы в…
Трейдинг на рынке криптовалютных продуктов уже давно стал не только способом заработка, но и искусством,…
В мире блокчейн-технологий появляются новые и амбициозные проекты, стремящиеся улучшить децентрализованные сети и предоставить пользователям…
В мире цифровой экономики одним из актуальных вопросов является обмен криптовалюты на фиатные деньги. Особенно…