Обменник

Змей, один из более ранних умных договаривающихся языков ethereum, более небезопасен в использовании.

Это может быть самый большой навынос от аудита языка компиляции Serpent от ethereum, выпущенного на прошлой неделе блочной охранной фирмой Zeppelin Solutions. Выводы указывают на десятки проблем с компилятором, включая восемь критических уязвимостей.

Цеппелин был нанят Авгуром, рынком прогнозов, основанным на эфире, для проведения аудита два месяца назад. С почти 2 миллиона долларов его токена (REP), сидящего в контракте, написанном в Змее, у Авгура были веские основания беспокоиться о безопасности старого языка.

Авгур был одним из ранних Эфириума проектов, и в то время, когда был подписан его токен-контракт, Змей был основным доступным языком для смарт-контрактов. Но вскоре после этого, Solidity была представлена ​​и взяла на себя флагманский умный контрактный язык программирования ethereum, подталкивая Змея к обочине.

Несмотря на это, генеральный директор Augur Joey Krug сказал, что было несколько публичных предупреждений о возможных проблемах, которые помешали бы Serpent выполнить код, как ожидалось.

Он сказал CoinDesk:

«Никто никогда не говорил, что Змея небезопасна или обесценилась. Это было не так популярно [как Солидность]».

Хотя в какой-то момент Авгур планировал перейти на другой язык смарт-контрактов, результаты аудита компилятора существенно заставляли руку проекта. Как только Цеппелин уведомил Augur о проблемах безопасности, Augur быстро переехал для переноса своих токенов REP в безопасное ERC-20 подписанный в Solidity.

«Низкое качество» и «недостаток»

Для других, интересующихся, следует ли им следовать, Zeppelin Solutions изложила полные результаты своей проверки в 36-страничный отчет ,

В Сообщение блога , Цеппелин назвал проект змей «низким качеством» и «ошибочным», и предостерег разработчиков отказаться от использования языка до тех пор, пока не будут исправлены многие критические проблемы.

Новость побудила основателя ethereum Виталика Бутерина выслать чирикать , назвав язык программирования «устаревшими технологиями» и предупредив, что ему не хватает адекватных «защитных мер безопасности».

Что касается Augur, наиболее критической уязвимостью Serpent была та, которая позволила бы хакеру изменить дату, в которой был создан контракт на токен REP, существенно затормозив поставку токена.

«Вы могли бы договориться о том, что на самом деле он официально не был официально создан, так что в основном ни одна из передач не будет работать», – сказал Круг.

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

Поэтому вместо этого, следуя пути обновления, описанному Цеппелином, Авгур перешел к переписыванию его старый маркер REP в Solidity и развернуть новый контракт ERC-20 на ethereum. Затем он эффективно взломал собственный смарт-контракт Serpent, заморозив маркер REP, прежде чем переносить баланс замороженного REP на новый контракт.

В отдельном Сообщение блога , Цеппелин призвал любые проекты ethereum, все еще используя Serpent, следовать аналогичному пути миграции, чтобы переместить свои жетоны в более безопасный контракт Solidity.

Требуется больше глаз

Язык программирования и компилятор Serpent были написаны Бутерином. Но тот факт, что только один человек написал код, может лежать в основе некоторых проблем Змеи.

Цеппелин написал в своем отчете:

«Меньше глаза на код означает, что меньше ошибок замечают».

Цеппелин также отметил, что Змею два года, с небольшим количеством коммитов с октября 2015 года. Добавляя к этому, вряд ли кто-либо использует Змею сейчас, мало кто может выявить проблемы в коде или исправления этих проблем.

С другой стороны, твердость была написана команда людей во главе с Гэвин Вуд , один из основателей эфирума. И поскольку Solidity более широко используется и видит гораздо больше активности – в 30 раз больше запросов на тяну, в 20 раз больше, в восемь раз больше участников, согласно Zeppelin – по сравнению с Serpent, у более новой программы меньше шансов иметь одинаковое число проблем.

Что касается того, что разработчики должны использовать вместо Serpent, отчет Zeppelin предлагает Solidity лучший ответ сегодня. Тем не менее, он также предлагает разработчикам рассмотреть Viper, преемника Змея, заявив, что Viper «выглядит превосходенным» для Serpent. Но в чирикать , Бутерин рекомендовал разработчикам отложить до тех пор, пока Viper не проведет внешний аудит первым.

Проверка целостности?

Но, возможно, одна из наиболее тревожных проблем, выявленная аудитом компилятора Zeppelin’s Serpent, заключается в том, что сама Solidity также не проверялась. И учитывая, что токены на сумму в миллионы долларов в настоящее время управляются умными контрактами, написанными в Solidity, некоторые, в том числе и Круг, считают, что новости тревожатся.

Добавляя к соображениям о Solidity, аудит компилятора Zeppelin приходит по пятам за рублем кошелька Parity стоимостью 30 миллионов долларов, где ошибка в коде четности по сути, позволил хакеру превратить три кошелька с несколькими сигнатурами в кошельки с нулевой подписью и слить средства.

В Сообщение блога после этой атаки Парити указал пальцем на Solidity, заявив, что «какая-то вина за эту ошибку лежит на языке Solidity и в ее нынешнем воплощении трудность, с которой можно понять разрешения на выполнение над функциями».

Но даже более крупная эльфийская кража произошла чуть больше года назад, когда хакер воспользовался лазейкой в ​​коде Solidity, чтобы пролить 50 миллионов долларов в эфир из проекта под названием The DAO. Ущерб был признан настолько обширным, что разработчики, стоящие за ним, внедрили в протокол жесткую вилку, чтобы отменить историю транзакций.

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

«Учитывая количество уязвимостей, обнаруженных в Serpent, мы считаем, что аудит компилятора вместе с проверками кода должен стать лучшей практикой», – написал он в электронном письме CoinDesk. Он добавил, что Цеппелин в настоящее время разговаривает с Фондом Ethereum, чтобы это произошло.

Между тем, Круг высказал свои мысли по этому поводу, сказав:

«В целом, сообщение состоит в том, что нужно проверять больше материала».

Змеиная кожа изображение через Shutterstock

Лидер в новостях о блочной цепочке CoinDesk является независимым медиа-представителем, который стремится к самым высоким журналистским стандартам и соблюдает строгий набор редакционных политик , Хотите поделиться своим опытом или знаниями с нашими отчетами? Свяжитесь с нами по адресу [Электронная почта защищена] ,

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here