В чем проблемы smart-договора Ethereum?

Впервые теория смарт-контрактов была изложена Ником Сабо в 1996 году. «Числовая революция стала возможной благодаря новоиспеченным университетам и новоиспеченным методам формализации отношений, которые составляют эти университеты. Я называю эти новые контракты “разумными», так что они все еще более активны, чем их неодушевленные предки, основанные на бумаге. Она не предназначена для внедрения искусственного интеллекта. Смарт-контракт-это, вероятно, набор обязательств, обозначенных числовым шаблоном, соединяющий протоколы, в которых стороны выполняют эти обязательства», — изложил он свою собственную идею. Однако не все так гладко: такие глубокие мысли постоянно манят из-за ошибок и лжи. Что-никаких сложностей в смарт-контрактах 1-го из самых-самых огромных и старых блокчейнов больше не выявляется?

Какие проблемы у Ethereum?

Спустя более чем 20 лет абстрактная идея смарт-контрактов стала реальностью. Потенциал, заложенный в смарт-контрактах, огромен. Начавшаяся разработка может быть использована для тестирования надежности, не опасного обмена данными, но и для управления токенами и привлечения лекарств в ICO. Так, блокчейн Ethereum, 1 из первых платформ для реализации смарт-контрактов в своем собственном блокчейне, владеет самыми 1500 разрозненными дополнениями, любое из которых использует смарт-контракты для выполнения самых различных задач. Но расхождение со смарт-контрактами заключается в том, что они основаны на коде, и некоторые оплошности в безмолвии имеют все шансы быть буквально трагичными.

Согласно мнению категории профессионалов, Ethereum имеет «наследственную травму», поскольку его блокчейн построен на значительном этапе солидности — продвинутом языке программирования. Таким образом, почти все творцы обязаны изучать совершенно свежий язык, как будто это усиливает возможность человеческой ошибки.

Ошибки BatchOverflow

И такой оплошности не заставила себя ожидать. 23 апреля 2018 года компания PeckShield, основанная на блокчейне, объявила, что BatchOverflow допустила ошибку в нескольких смарт-контрактах ERC20.

Создатели создали дедуктивный метод передачи токенов ERC-20. Система специализирована на самостоятельном уведомлении о подозрительных операциях. В итоге «улов» не заставил себя долго ждать — программа выдала тревожный знак, увидев непонятную транзакцию токена BEC. В этой афере было зачислено невыносимое количество токенов BEC-0x8000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,00)

Такая необычная сделка заставила разработчиков взглянуть на код смарт-контракта. В ходе исследования выяснилось, что такая компания имеет возможность запускать следствие из «диких» атак, которые раньше пользовались неизвестной ранее непогрешимостью в контракте (batchOverflow).

Источник.

Уязвимая функция была помещена в batchTransfer. Таким образом, в строке 257, если локальная нестабильная сумма находится с поддержкой увеличения cnt и _value. 2-я переменная (_value) имеет возможность полностью существовать в случайном 256-битном целочисленном количестве (для выборки 0x8000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,00).

Таким образом, имея 2 _receivers, отправленных в batchTransfer () в нашем собственном разрешении с очень большой ролью, мы можем получить необходимую сумму и сделать ее равной нулю. В опции сброса злодей имеет возможность спокойно ввести тест способности в строках 258-259, сделав вычитание в строке 261 полностью устаревшим.

В результате, как показано в строках 262-265, баланс 2 кошельков будет обогащен на большую сумму. Любопытно, что если, по словам разработчиков, для этого эпизода большинство 10-ка контрактов ERC20 бывальщины все же уязвимы к batchOverflow.

По словам команды, тогда они испробовали все возможные методы взаимодействия с разработчиками более тесно, но после введения принципа «код-закон» в блокчейн Ethereum не было известно ни одного предварительного устройства для сохранения безопасности данных для уничтожения уязвимых контрактов. «Наличие нецентрализованных бирж с независимыми торговыми предложениями дает возможность начать опрос, так как у них также нет всех шансов остановить злоумышленников от отмывания собственных токенов. С другой стороны, мы можем столкнуться с некоторыми серьезными трудностями. В частности, вполне возможно, что злодей владеет большим количеством токенов, используя эти уязвимые контракты. А что, если они переключатся на вероятность обмена криптовалюты и обменяют эти токены на ETH, BTC или даже USD?»,- задала тогда вопрос бригада, нашедшая сумку.

Блудный, скупой, самоубийственный-главные свойства smart-контрактов Ethereum?

В начале 2018 года пятеро старателей из Англии и Сингапура при поддержке своего устройства maian, которое служит для обнаружения несовершенств именно через b-код и не запрашивает доступ к исходному коду, обнаружили 34 200 смарт-контрактов, которые имеют все шансы иметь вероятные баги и хранить информацию о транзакциях на необходимую сумму в определенное количество миллионов долларов в эфире.

Они разделили уязвимые контракты на относительные 3 категории: самоубийственные, блудные и скупые.

Блудные контракты

Образец блудного контракта.

Функция отвода перекрывает эфир, так как ограничение в строке 4 Никогда больше не имеет возможности существовать. Однако авторская оптимизация солидности не позволяет этого сделать, так как для вызова функции используется вход самого 20в.по степени байт-кода EVM сможет накапливать только куски из 32 б входящих данных. В строке 3 1-й 20 b присваивается неустойчивому prev, а остальные 12 b элементарно игнорируются. Такая опечатка появляется, так как EVM в строке 4 Аккуратно комбинируется на недостающих 12 b prev. Это соглашение потеряло 5.0001 эфир с различных адресов в блокчейне Ethereum.

Самоубийственный договор

Образец самоубийственного договора.

Контракт имеет возможность существовать прихлопнутым методом применения беззащитной суицидальной аннотации. Очевидным примером может служить, вероятно, функция публичной ликвидации, в которой находится аннотация самоубийства. Время от времени самоубийство становится непроницаемым из-за слабого ограничения. Это соглашение позволяет пользователям принимать токены или вводить свои собственные лекарства. Логика суда медицины исполняется функцией суда. Но эта функция имеет аннотацию self_destruct, которая имеет возможность существовать выполненной в версии, если экстремальные препараты бывальщины принесли ей максимум 4 недели назад. Следовательно, если «игрок «активирует эту функцию через 4 недели после истечения крайнего срока, то все лекарства переходят к владельцу контракта, а все записи» игроков » стираются из блокчейна.

Скупые договоры

Образец скупого контракта.

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

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

Выполняя испытания собственной службы, ученые пришли к довольно плачевному результату. «Анализируя 970 898 контрактов, наш свежий майанский аппарат обнаружил тысячи уязвимых контрактов. Не считая этого, 6239 эфиров (около $5,6 млн) закрыты в посмертных контрактах, которые в настоящее время находятся на блокчейне, из которых 313 эфиров были отправлены в мертвые контракты после их убийства», — заявили они.

Разрешатся ли эти трудности?

Конечно, как бы в силу гуманных причин, связанных с использованием Ethereum Solidity, и рядом других проблем, которые, впрочем, не исчезнут никак, в том числе и после пребывания и уничтожения всех багов, недостатки Ethereum smart contracts, конечно же, останутся. Однако полностью сокращать их действительно не стоит. Команда находится ближе к источнику, чтобы загипнотизировать выпер-похожий на солидность, но самый простой в использовании язык. Кроме того, Ethereum 2.0 никак не приближается из — за американских горок-в 2018 году блокчейн-общество заметит «вторую фазу» созревания системы. Есть ли возможность существовать, конкретно эти меры приведут к заключению основных проблем его смарт-контрактов?

bit44.org

Обязательно подпишитесь на наш Telegram канал

ПОДПИСЫВАЮСЬ
ПОТОМ