Хард форк Ethereum Constantinople снова откладывается
Реализация хард форка Constantinople в блокчейне криптовалюты Ethereum (ETH) снова откладывается. Разработчики обнаружили баг, который приводит к самоуничтожению нескольких смарт-контрактов после применения апгрейда сети.
Сотрудник компании Ethereum Foundation Джейсон Карвер предложил применить новую функцию под названием Create2 для изменения настроек смарт-контракта:
«До хард форка Constantinople можно создать контракт с двумя возможными функциями: «контракт существует: выполнить свап токенов», «контракт самоуничтожается: потрать газ». После Constantinople будут работать 3 опции: «контракт существует: выполнить свап токенов», «контракт самоуничтожается: потрать газ», «замена контракта: все токены ERC-20, полученные контрактом, украдены».
Разработчик Мартин Хольст Свенде советует проверять опции смарт-контракта и не взаимодействовать с теми контрактами, в которых есть функция SELFDESTRUCT (самоуничтожение). Свенде считает, что далеко не все разработчики смарт-контрактов знают о функции самоуничтожения, поэтому риск для инвесторов минимален. Однако, если программисты оставят хард форк без изменений, создатели смарт-контрактов смогут воровать цифровые активы у людей. Схема работает следующим образом: вы переводите деньги на счет смарт-контракта чтобы, к примеру, купить токены в ходе ICO, получив криптовалюту, смарт-контракт самоуничтожается и не отправляет вам положенные токены.
Программисты пока еще не решили, как устранить ошибку. Они могут выбрать один из трех вариантов:
- Удалить опцию самоуничтожения.
- Модифицировать функцию самоуничтожения.
- Оставить все, как есть, и возложить ответственность за проверку функций смарт-контракта на пользователей.
На данный момент реализация Constantinople запланирована на 27 февраля, однако, запуск апгрейда, скорее всего, будет перенесен на конец марта, потому что текущая версия хард форка недоработана. Самый удивительный факт заключается в том, что разработчики не знают, можно ли уже сейчас использовать функцию самоуничтожения для мошеннических операций. Поэтому мы советуем проверять функции смарт-контрактов на наличие опции SELFDESTRUCT каждый раз перед отправкой денег на счет контракта, так как он может быть модифицирован в любой момент.
Обсудить на форуме