Эфириум — крупнейшая криптовалюта по рыночной капитализации после Биткоина. И хотя масштабы проекта уже превышают эквивалент 200 миллиардов долларов, он продолжает развиваться и улучшаться. В последний раз разработчики масштабно обновляли сеть Ethereum в январе 2020 года. В апреле этого года блокчейн ждёт очередной апдейт. Рассказываю, что он изменит и как повлияет на владельцев криптовалюты ETH.
Для начала уточним важную деталь. Первого декабря 2020 года состоялся запуск нулевой фазы Ethereum 2.0, также известной как Beacon Chain. Данная цепочка работает на механизме консенсуса Proof-of-Work и отличается значительно большей производительностью — то есть справляется с большим количеством транзакций в секунду. При этом полноценного запуска eth2 ещё нужно дождаться.
Обновление Berlin касается не её, а нынешней сети Ethereum 1.0, в которой трудятся майнеры с видеокартами. Оно станет следующим после предыдущих апдейтов Istanbul и Muir Glacier, которые состоялись в декабре 2019 и январе 2020 года соответственно. Последнее обновление откладывало так называемую бомбу сложности и спасало сеть Эфириума от замедления.
Теперь блокчейн ждут новые улучшения. Рассказываю о них подробнее.
Детали апдейта Berlin для Эфириума
Вот самые главные подробности об апдейте Berlin:
- номер блока обновления — 12 244 000;
- дата апдейта — ориентировочно 14 апреля 2021 года;
- список предложений по улучшению (EIP) в апдейте — EIP-2565, EIP-2929, EIP-2718 и EIP-2930;
- направление улучшений — оптимизация использования газа в сети и предотвращение DoS-атак.
Изначально в апдейт предлагали включить EIP-2315, который затрагивал подпрограммы виртуальной машины Эфириума (EVM). Однако в итоге от его внедрения отказались, а в программе обновления осталось всего четыре предложения по улучшению сети.
Когда пройдёт обновление Berlin для Ethereum
Как мы уже отметили, обновление пройдёт на блоке под номером 12 244 000. Ориентироваться стоит на 14 апреля, однако поскольку время создания блоков в сети Эфириума меняется, это может произойти раньше или позже.
Изначально обновление было запланировано на лето 2020 года, однако его несколько раз откладывали. Причины были разные, причём однажды поводом для переноса стали опасения о возможной централизации и “критической зависимости” от клиента Geth.
Апдейт по традиции будет заранее активирован в тестовых сетях Эфириума. Первой стала Ropsten, в которой Berlin внедрили 10 марта, второй — Görli, где апдейт заработал накануне. Последней сетью станет Rinkeby, где обновление активируют 24 марта.
Отмечу, что детали следующего обновления после Berlin уже известны. Он будет называться London, а активируют апдейт ориентировочно в июле 2021 года. В нём содержится EIP-1559, который внедрит динамичный размер блока, изменит принцип формирования комиссий и начнёт сжигание ETH. В результате комиссии за проведение транзакций в сети должны значительно уменьшится, а сеть будет лучше справляться с активностью пользователей при пиковых нагрузках.
Что изменится после обновления Berlin в Эфириуме
Berlin состоит из четырёх EIP, то есть предложений по улучшению Эфириума. Некоторые из них затрагивают тему взаимодействия с виртуальной машиной Эфириума и могут быть сложными для понимания.
Детали EIP-2565
Первым в списке обновлений идёт EIP-2565, который также называют предложение по изменению стоимости газа для модульного возведения в степень. В целом он переоценивает предыдущий EIP-198, известный как модульное возведение в степень с большим целым числом. Его автором является Виталик Бутерин, а сам EIP-198 является функцией для модульного возведения в степень, которая внедряет широкий спектр криптографических алгоритмов для подтверждения RSA-подписей. Сам RSA является отдельным криптографическим алгоритмом с открытым ключом. Подробнее о нём можно почитать по ссылке.
В то же время EIP-2565 снижает потребление газа для предыдущего EIP-198, чтобы новый уровень соответствовал стоимости выполнения других операций.
Детали EIP-2929
Одновременно с этим Berlin включает EIP-2929, который увеличивает некоторые расходы на газ ради безопасности сети. Речь идёт об определённых кодах операции — SLOAD, *CALL, BALANCE, EXT* и SELFDESTRUCT — которые теперь будут обходиться дороже при первом взаимодействии.
Коды операции или опкоды — это набор инструкций, который используется для взаимодействия с виртуальной машиной Эфириума (EVM). Поскольку языки программирования смарт-контрактов по типу Solidity не могут выполняться EVM напрямую, для выполнения определённых заданий нужны машинные инструкции низкого уровня. То есть в итоге получается что-то типа команд в максимально простом виде, с помощью которых виртуальная машина Эфириума может нас понимать.
В частности, примером арифметического кода операции является ADD, а к кодам остановки можно отнести STOP, RETURN, SELFDESTRUCT и так далее. Всего в данный момент существует 140 опкодов. Причём для выполнения каждого из них требуется разный объём газа.
EIP-2929 увеличивает стоимость выполнения определённых кодов операций. К примеру, для функций подразделения CALL расход газа увеличится с 700 до 2600 газа. Однако это произойдёт только в первый раз для определённого адреса. При дальнейших вызовах они будут обходиться в 100 единиц газа.
Причина повышения этих затрат на газ заключается в снижении риска DoS-атак на сеть Эфириума. Данный вектор является крупнейшим из оставшихся угроз для блокчейна.
Детали EIP-2718
Когда Эфириум впервые запустился в мейннете — то есть основной сети — существовал только один тип транзакций. Он включал поля “Кому”, куда отправлялась транзакция, и “Данные”, в которое можно было включить любую желаемую информацию. Со временем стала очевидна необходимость в разных типах транзакций — особенно для создателей смарт-контрактов.
EIP-2718 станет первым шагом в этом направлении. Он окажется своего рода конвертом — или базой — для выпуска новых типов транзакций. Один из них предположительно запустят летом вместе с внедрением предложения EIP-1559.
Детали EIP-2930
Главная идея EIP-2930 заключается в том, чтобы исправить критические изменения в существующих смарт-контрактах и смягчить в некоторых случаях увеличение стоимости газа, которое случится из-за внедрения EIP-2929. EIP-2930 добавит новый тип транзакции, содержащий так называемый список доступа, то есть список адресов и ключей хранилища, к которому транзакция планирует получить доступ. Указание списка доступа упростит обработку транзакций и позволит безопасно снизить расходы на газ.
Что нужно сделать перед обновлением Berlin для Эфириума
Подготовка к апдейту сети традиционна. Если вы просто держите эфиры на криптовалютных биржах или аппаратных кошельках, делать ничего не нужно.
Исключением являются майнеры и операторы нод. Им нужно обновиться до последней версии клиентов сети Ethereum. Вот свежие релизы программ.
- Geth — Gemini Sigma (v1.10.1);
- OpenEthereum — OpenEthereum v3.2.0;
- Nethermind — v1.10.31;
- Besu — 21.1.2.
Обновление Berlin станет важным шагом в развитии Эфириума. И хотя по сути апдейт является промежуточной ступенькой для более масштабных улучшений, в данный момент он считается самым актуальным. Поэтому будем надеяться, что всё пройдёт успешно. Ждать обновления остаётся меньше месяца.