Почему смарт-контракты Ethereum уязвимы
-
Авторы портала Trust Nodes нашли причину, из-за которой смарт-контракт Эфириума становится уязвимым.
Бэкдор смарт-контрактов Эфириума, посредством которого владелец смарт-контракта может менять его условия, делает контракт уязвимым, поскольку позволяет изменять код, получив доступ к роли владельца. Специалисты считают, что проблему можно решить, если бэкдор заменить механизмом голосования держателей токена за/против изменения в коде смарт-контракта.
В смарт-контрактах Ethereum можно программировать практически все, включая отказ от исполнения. Такой отказоустойчивый механизм, считается уязвимым. Известно, что такой бэкдор был создан после бага в смарт-контракте Slockit DAO.
Недавно администрацию децентрализованного приложения FunFair обвинили в том, что владелец его смарт-контракта мог отменять транзакции и выпускать новые монеты. Правда, по словам представителя FunFair, это был не баг и не уязвимость, а «апгрейд».
Криптомир взволновала и история, связанная с покупкой токенов Oyster на ICO по цене, доступной только основателю. Смарт-контракты требуют мониторинга, однако доступ к частному ключу дает право менять условия контракта после его запуска. Тогда смарт-контракт дал владельцу возможность повторно провести ICO. Почему была добавлена такая функция, не вполне понятно. Владелец мог удалить её из смарт-контракта, но не сделал этого.
Недавно сооснователь Ethereum Виталик Бутерин признался, что сожалеет об использовании термина «смарт-контракт» в своём проекте.
«Честно говоря, сейчас я очень сожалею о том, что мы приняли термин «смарт-контракт». Нужно было выбрать более скучное техническое название, что-то типа неизменных скриптов», — заметил Бутерин.
-
любой код является уязвимым, потому что всегда найдется лазейка, благодаря которой можно будет изменить назначение программы.
-
Участник @ivan-ivanov написал в Почему смарт-контракты Ethereum уязвимы:
любой код является уязвимым, потому что всегда найдется лазейка, благодаря которой можно будет изменить назначение программы.
Просто с умом нужно подходить ко всему, тогда и не будет таких вещей. А то вон одному было лень что то изменять там.
-
@casio естественно, что когда что-то ломают преднамеренно - это одно, а другое дело, когда разработчики не хотят устранять очевидные ошибки.
-
Участник @ivan-ivanov написал в Почему смарт-контракты Ethereum уязвимы:
@casio естественно, что когда что-то ломают преднамеренно - это одно, а другое дело, когда разработчики не хотят устранять очевидные ошибки.
пока не будет ответственности , такое будет продолжаться ...
-
@casio уже есть первые намеки на то, что смарт-контракты должны быть юридически ответственны, поэтому к их созданию будут подходить ответственно.
-
Участник @ivan-ivanov написал в Почему смарт-контракты Ethereum уязвимы:
@casio уже есть первые намеки на то, что смарт-контракты должны быть юридически ответственны, поэтому к их созданию будут подходить ответственно.
Ну по идеи их должны юр лица только выпускать. Но и тут всегда могут сказать, мы виноватые , но извините денег убытки покрыть нет.
-
как я понимаю просто код ломает каждый под себя что ли? или я вообще ничего не понимаю?(
-
Участник @andrei1990bit написал в Почему смарт-контракты Ethereum уязвимы:
как я понимаю просто код ломает каждый под себя что ли? или я вообще ничего не понимаю?(
Да зачем его ломать, если там двери без замков есть. Заходи и делай все что хочу.
-
@casio всегда есть замена административной ответственности уголовной. не хотят сидеть - придется компенсировать потери. или пусть не занимаются смарт-контрактами, если не могут толком код написать.
-
Участник @ivan-ivanov написал в Почему смарт-контракты Ethereum уязвимы:
@casio всегда есть замена административной ответственности уголовной. не хотят сидеть - придется компенсировать потери. или пусть не занимаются смарт-контрактами, если не могут толком код написать.
ну допустим вы вышли и дверь не закрыли в доме. Зашел вася пупкин и вынес все. Так кто тут виноват?
-
@casio я понимаю, что если ошибка самих пользователей, то пусть сами несут ответственность. но если дыра в коде по вине разработчиков, то почему заказчик должен страдать?
-
Участник @ivan-ivanov написал в Почему смарт-контракты Ethereum уязвимы:
@casio я понимаю, что если ошибка самих пользователей, то пусть сами несут ответственность. но если дыра в коде по вине разработчиков, то почему заказчик должен страдать?
Ну если заказчик не провел аудит продукта , то тут он виноват сам. Другое дело если писаки контракта намерено потом эту дырку использовали.
-
@casio насколько я понимаю, то аудит смарт-контракта должен быть согласован при передаче выполненного заказа, чтобы в случае чего можно было доделать работу.
-
Участник @ivan-ivanov написал в Почему смарт-контракты Ethereum уязвимы:
@casio насколько я понимаю, то аудит смарт-контракта должен быть согласован при передаче выполненного заказа, чтобы в случае чего можно было доделать работу.
Ну тут все определяет думаю договор между заказчиком и исполнителем. Что там пропишут , так там и будет.
-
@casio прописать можно все красиво, а вот как все это выполнить, чтобы потом не было никаких претензий?
-
Участник @ivan-ivanov написал в Почему смарт-контракты Ethereum уязвимы:
@casio прописать можно все красиво, а вот как все это выполнить, чтобы потом не было никаких претензий?
Ну эти вопросы тоже должны в договоре быть прописаны. А не так чтобы один листик договор был.
-
@casio эта сфера смарт-контрактов, блокчейна и криптовалют достаточно узкопрофильная и не каждый юрист может ее понять, поэтому ошибок может быть много.
-
Участник @ivan-ivanov написал в Почему смарт-контракты Ethereum уязвимы:
@casio эта сфера смарт-контрактов, блокчейна и криптовалют достаточно узкопрофильная и не каждый юрист может ее понять, поэтому ошибок может быть много.
Ну тут хоть и слова новые, по сути это одно и то же что в жизни бывает. Только отношения где то в компьютерах происходят.
-
@casio есть множество нюансов, которые понятны разве что специалистам в области блокчейн и которые могут сыграть важную роль.