Skip to main content

Подгружаем

Аудит токена LEO (UNUS SED LEO)

Оригинал текста: Medium, английский язык. Автор: Dexaran. Перевод: hashrate-and-shares.ru.

Введение

Данная статья призвана разъяснить: детали реализации токена LEO с технической точки зрения и с точки зрения защищённости, обеспечение сохранности при использовании данного токена, а также в общем ответить на частые вопросы, касающиеся данного смарт-контракта.

Несколько слов обо мне

Я Dexaran, пишущий под псевдонимом сторонник крипто-децентрализации и разработчик. Моя главная специализация — информационная безопасность. Я основатель Ethereum Commonwealth, соучредитель Callisto Network и создатель стандарта токенов ERC223.

Я был задействован в разработке смарт-контрактов с самого старта проекта Ethereum. Я был свидетелем многочисленных взломов смарт-контрактов. Я был активным участником событий c DAO и создания Ethereum CLassic. Я проводил аудиты безопасности для различных смарт-контрактов.

Три вещи, которые я знаю очень хорошо: безопасность, смарт-контракты и крипто-токены.

Аудит контракта токена LEO

Callisto Network недавно провел аудит смарт-контракта LEO. Вы можете изучить финальный отчет здесь. Я могу заключить, что данный токен защищен с технической стороны.

В контракте нет багов, ошибок или функций, которые могут напрямую привести к потере средств инвесторов.

Некоторые могут аргументировать, что данный контракт имеет функцию обновления, которая может давать возможность владельцам уничтожить средства инвесторов.

Я отвечу, что такая функция действительно присутствует в данном контракте, но она не принимает вид реальной угрозы для инвесторов. Вместо этого такой подход разработки смарт-контрактов устраняет несколько реальных угроз. Далее я разъясню это более детально и со статистикой.

Два контракта LEO (ERC20 и EOS)

Первая вещь, о которой должно быть сказано это то, что токен LEO развернут на двух цепочках — Ethereum (контракт ERC20) и EOS (контракт EOS LEO).

EOS является более новой и улучшенной системой заключения смарт-контрактов. Его подход является более продвинутым, и он принимает во внимание опыт предыдущих платформ, включая Ethereum.

Смарт-контракты EOS всегда обновляемые, в отличие от контрактов Ethereum, которые могут быть обновляемыми или нет. Почему? Потому что это лучший подход сделать смарт-контракты защищёнными. Главная проблема всякой платформы смарт-контрактов — хаки смарт-контрактов. Написание безошибочного кода является невозможным. Единственно возможный способ сделать код безопаснее — сделать его отказоустойчивым вместо того, чтобы пытаться сделать его без багов. Что касаемо контрактов LEO — было бы странным делать один контракт отличным от другого, оставляя один из них в состоянии невозможном для обновления.

Проблемы связанные с токенами

Многие слышали о стандарте ERC20, но не многие осведомлены о его проблемах. Проблема здесь в том, что стандарт токенов ERC20 небезопасен по умолчанию и может привести к денежным потерям для инвесторов. Я уже написал несколько статей об этих проблемах.

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

Вот несколько примеров:

1. 23 458 BNB застряли в BNB контракте. 656 000 долларов потеряно.

2. 154 834 токенов EOS застряли в токен-контракте EOS во время краудсейла EOS. 774 000 долларов потеряно.

3. 22 294 токенов QTUM застряли в токен-контракте QTUM во время краудсейла QTUM. 1 204 273 доллара потеряно (согласно прайса краудсейла).

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

В отличие от почти всех токенов ERC20, токен Leo не склонен к этим проблемам. Контракт LEO проводит специальные проверки для предотвращения наиболее распространённых случаев проблем с “отсутствием обработки транзакций”. Тем не менее, возможность, чтобы сделать токены LEO застрявшими внутри других контрактов продолжает оставаться, потому что в Ethereum нет стандарта для обработки трансфера токенов.

И тут появляется возможность сжигать токены на произвольном адресе. Я хотел бы процитировать эту статью обвиняющею разработчиков Bitfinex в реализации этих функций.

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

Компании определенно понадобилась бы такая функция, чтобы уберечь инвесторов от потери миллионов долларов при помощи восстановление их токенов из “несоответствующего транзакции пункта назначения”. Это единственный возможный способ, чтобы оставаться совместимым с наиболее широко принятым стандартом ERC20 и разрешать его критические проблемы.

Реальные угрозы в смарт-контрактах

Отсутствие возможности обновления или функций контроля владельцем является угрозой в случае смарт-контрактов.

Давайте посмотрим на исторические примеры:

1. The DAO был взломан и миллионы долларов были украдены. 17 июня 2016 года хакер нашел лазейку в кодировке, которая позволила ему вывести средства из The DAO. Однако данные средства были размещены на счету с условием 28 дневного периода удерживания, поэтому хакер не смог закончить свой выход. Если бы контракт The DAO был контролируемым или обновляемым, тогда разработчики могли бы использовать данный период, чтобы пофиксить баг. Однако отсутствие данных функций и гипотеза, что разработчики будут способны писать код с отсутствием багов не позволили решить существующую проблему и привели к полному коллапсу проекта The DAO.

2. Parity Multisig был написан Гэвином Вудом, разработчиком языка программирования Solidity. Parity Multisig был “взломан” дважды (атака initWallet и атака самоуничтожения библиотеки). Невозможность сделать изменения в контракте после совершения нескольких действий привела к пагубным последствиям для многих пользователей.

Отсутствие возможности изменить или контролировать контракт во время его рабочего процесса является реальной угрозой, которая уже приводит к потерям в миллионы долларов. Теоретическая возможность обновления контракта, чтобы сделать возможным сжигать средства инвесторов, практически не принимает вид угрозы, потому что нет сторон, у которых есть реальная мотивация для этого.

Мы провели аудит более чем 200 смарт-контрактов в Callisto. Среди них было много смарт-контрактов с контролем владельца. Это распространенная практика сделать контракты отказоустойчивыми. За последние 4 года я никогда не слышал, чтобы владельцы контрактов умышленно манипулировали своим смарт-контрактом, чтобы нанести ущерб инвесторам, в то время как каждый слышал о The DAO и отсутствии возможности манипулировать контрактом, чтобы уберечь инвесторов в случае реальной атаки.

Неправильное понимание концепции смарт-контрактов

Хотя понятно, что смарт-контракт LEO был разработан, чтобы быть обновляемым, наличие такой централизованной системы, безусловно, не соответствует духу новой децентрализованной экономики.

Блокчейны были разработаны, чтобы решить проблему сопротивления цензуре. Однако это не в полной мере относится к смарт-контрактам.

Смарт-контракт всегда ставит вопрос о доверии: (1) Вы либо верите, что разработчик контракта сделал его без багов, ЛИБО (2) вы верите, что разработчик контракта не будет манипулировать им злонамеренно. Вы должны иметь в виду, что написание кода без багов практически невозможно, поэтому я не рекомендую доверять первому варианту.

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

Хотя это может показаться противоречащим принципам децентрализации, я бы сказал, что это единственный безопасный вариант использования смарт-контрактов.

Заключение

Я бы назвал токен LEO одним из самых защищённых смарт-контрактов во всей экосистеме Ethereum. Это один из немногих токенов ERC20, который не подвержен общим критическим проблемам стандарта ERC20.

Смарт-контракт может гарантировать, что инвесторы не пострадают от одной из известных в настоящее время угроз, которая нанесла ущерб многим держателям других токенов. Контракт использует распространенную современную практику придания ему отказоустойчивости вместо того, чтобы полагаться на архаичные принципы, которые привели к потерям в миллионы долларов.

Информация взята с сайта https://medium.com/ и других открытых источников.

Все упомянутые логотипы и торговые марки являются собственностью соответствующих компаний.

О Callisto Network

Новости Callisto Network

На сайте

Присоединяйтесь к нам