Augur, один из самых популярных и дорогостоящих токенов, был написан на языке программирования Serpent, который оказался менее защищённым, чем используемый сейчас язык Solidity.
Во вторник Augur и Zeppelin Solutions, фирма, занимающаяся аудитом блокчейнов и смарт-контрактов, объявили об обнаружении критической уязвимости языка Serpent, что поставило под угрозу токены Augur стоимостью $200 млн. Однако, уже реализовывается фикс для исправления этой ошибки.
Процесс по обеспечению безопасности существующих токенов требует переписать смарт-контракты токенов REP на Solidity, используя контракты ERC20-токенов OpenZeppelin, для которых был проведён всесторонний аудит.
Процесс никак не затронул держателей токенов REP Augur, поскольку перенос балансов со старых контрактов на новые контракты Solidity занял несколько часов и уже был завершён. В числе компаний, объявивших о своих планах обновить программное обеспечение для использования новых контрактов, Poloniex, Kraken, Bittrex, Jaxx, Shapeshift, MyEtherWallet и MetaMask.
Zeppelin Solutions сообщает, что проблема не распространяется на другие токены.
В блоге Augur сообщил, что сейчас занимается переводом всех своих смарт контрактов. Процесс займёт 6 недель. «Перенос станет простым переводом с одного языка на другой. Это несложный процесс, напоминающий перевод документа с английского на хорошо вам знакомый язык с последующей проверкой, которая помогает убедиться, что в процессе перевода никакая часть текста не была пропущена».
В своём блоге Zeppelin Solutions пишет: «Serpent не стоит рассматривать как безопасный для эксплуатации язык программирования, пока его многочисленные проблемы не будут решены. Мы рекомендуем всем проектам, использующим контракты на языке Serpent, перейти на Solidity, используя план миграции подобный тому, что представлен выше».
Zeppelin Solutions обнаружил уязвимость после того, как Augur нанял фирму для проведения аудита. Результаты были опубликованы здесь.
По сути, взломщик мог изменить временную отметку для создания токенов, задав дату в далёком будущем и таким образом сделав передачу токенов невозможной. «Сегодня команда Augur преднамеренно вызвала уязвимость, перенеся временную отметку на 31 млрд лет вперёд. Старый контракт REP на Serpent заморожен. Переводы REP на старом контракте больше осуществлять нельзя», - пишет Augur.
Источник: https://www.forbes.com/sites/lauras...rep-tokens-discovered-and-fixed/#1bc32ca63019
