Почему смарт-контракты Ethereum уязвимы

Автор:

  • новости
  • реклама на сайте

12.11.2018 12:55
547
Александра Берлизева

Почему смарт-контракты Ethereum уязвимы

Авторы портала Trust Nodes нашли причину, из-за которой смарт-контракт Эфириума становится уязвимым.

поделиться в
поделиться в
поделиться в
поделиться в

Почему смарт-контракты Ethereum уязвимы

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

В смарт-контрактах Ethereum можно программировать практически все, включая отказ от исполнения. Такой отказоустойчивый механизм, считается уязвимым. Известно, что такой бэкдор был создан после бага в смарт-контракте Slockit DAO.

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

Криптомир взволновала и история, связанная с покупкой токенов Oyster на ICO по цене, доступной только основателю. Смарт-контракты требуют мониторинга, однако доступ к частному ключу дает право менять условия контракта после его запуска. Тогда смарт-контракт дал владельцу возможность повторно провести ICO. Почему была добавлена такая функция, не вполне понятно. Владелец мог удалить её из смарт-контракта, но не сделал этого.

Недавно сооснователь Ethereum Виталик Бутерин признался, что сожалеет об использовании термина «смарт-контракт» в своём проекте.

«Честно говоря, сейчас я очень сожалею о том, что мы приняли термин «смарт-контракт». Нужно было выбрать более скучное техническое название, что-то типа неизменных скриптов», — заметил Бутерин.

Оставьте комментарий к этой записи ↓

Ваше имя *

Ваш email *

Ваш сайт

Ваш отзыв *

* Обязательные для заполнения поля