Logo
Condividi questo articolo

ONE из самых ранних языков смарт-контрактов Ethereum уходит на пенсию

ONE из старейших языков смарт-контрактов Ethereum демонстрирует признаки старения, и это может указывать на глубинные слабости экономики токенов.

Serpent, ONE из ранних языков смарт-контрактов Ethereum, больше небезопасен для использования.

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

La storia continua sotto
Non perderti un'altra storia.Iscriviti alla Newsletter Crypto Long & Short oggi. Vedi Tutte le Newsletter

Zeppelin был нанят Augur, рынком прогнозов на базе Ethereum, для проведения аудита два месяца назад. почти на 2 миллиона долларовсвоего токена (REP), находящегося в контракте, написанном на языке Serpent, у Augur были веские основания беспокоиться о безопасности старого языка.

Augur был ONE из ранних проектов Ethereum , и на момент написания его токена Serpent был основным доступным языком смарт-контрактов. Но вскоре после этого был представлен Solidity, который занял место флагманского языка программирования смарт-контрактов Ethereum, отодвинув Serpent на второй план.

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

Он сказал CoinDesk:

«Никто никогда не говорил, что Serpent ненадежен или недооценен. Он просто T был таким популярным [как Solidity]».

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

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

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

Взапись в блогеZeppelin назвал проект Serpent «низкокачественным» и «несовершенным» и предупредил разработчиков воздержаться от использования языка, пока не будут исправлены его многочисленные критические проблемы.

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

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

«Можно было бы сделать так, чтобы контракт выглядел так, будто он еще официально не был заключен, и тогда ни один из переводов не сработает», — сказал Круг.

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

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

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

Нужно больше глаз

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

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

«Меньше внимания к коду — меньше обнаруженных ошибок».

Zeppelin также отметил, что Serpent существует уже два года, и с октября 2015 года было сделано лишь несколько изменений. К тому же, поскольку сейчас Serpent почти никто не использует, маловероятно, что кто-то обнаружит проблемы в коде или что эти проблемы будут исправлены.

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

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

Аудит надежности?

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

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

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

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

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

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

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

«В целом, идея такова: необходимо больше проверок».

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

Picture of CoinDesk author Amy Castor