Новый релиз Эфириума - Metropolis - будет развертываться с помощью двух хардфорков, первый из которых, получивший название Byzantium, будет проводиться в первой декаде октября, а второй – Constantinople, состоится в первом квартале 2018 года.
Разработчики были вынуждены разделить Metropolis на две части, потому что его основной элемент – слой абстракций EIP 86, значительно упрощающий работу со следующими версиями протокола, требует еще нескольких месяцев работы, в то время как срочно необходимо нейтрализовать «бомбу сложности», уже сейчас вызывающую перегрузку сети. Кроме того, в первом форке будут активированы все готовые элементы Metropolis, сводка которых приведена ниже.
Сначала хардфорк Byzantium будет активирован на блоке 1 700 000 тестовой сети Ropsten (ориентировочно, 18 сентября), и если в течение следующих трех недель проблем не появится, будет назначен номер блока, на котором произойдет активация Byzantium в основной сети. Следовательно, активации этого хардфорка можно ожидать во второй половине октября.
Содержание Byzantium
-
EIP 649: Замедление «бомбы сложности» и снижение награды майнеров (№15028). Отсрочка «бомбы сложности» на дополнительные 18 месяцев и снижение награды майнеров с 5 до 3 ETH за блок.
-
EIP 98: Устранение промежуточных сводок состояний из выписок (#14750). Допускает более высокую степень параллелизации при обработке транзакций, так как не все транзакции требуют результатов выполнения предыдущих операций.
-
EIP 658: Расширение EIP 98 – результаты вычислений в транзакциях теперь помещаются в выписки. Это позволит легким клиентам подтверждать выполнение запроса: выполнено или прервано. Раньше это могли делать только полные узлы.
-
EIP 100: Уточнение вычислений сложности при расчете среднего времени генерации блока, включая анклы (#14733). В сети Биткойна награду получают только майнеры, нашедшие блок и успешно присоединившие его к основной цепи. Такое решение ведет к дополнительной централизации майнеров, поскольку майнеры, находящиеся ближе (в смысле физического расстояния), получают преимущество. В Эфириуме, если майнер находит правильный блок, но опаздывает, он все же получает награду (75% от полной награды). Однако, это приводило к непредсказуемому увеличению эмиссии выше, чем 5 ETH. Задержки в интернет-соединениях или перегрузки сети приводили появлению большего числа анклов, и соответственно, к дополнительной эмиссии. EIP 100 исправляет эту ситуацию.
-
EIP 198, EIP 212 (197) and EIP 213 (196): прекомпилированные контракты для модульных вычислений; добавление эллиптических кривых, скалярное умножение (#14959, #14993). Добавление ряда криптографических элементов для новых областей деятельности, в основном для zk-snark – внедрения технологий приватных транзакций от Z-Cash
-
EIP 214 (116): Расширение Виртуальной Машины Эфириума (ВМЭ). Статические запросы контрактов (#14978). Когда контракт запрашивает другой контракт в процессе выполнения функции, этот контракт получает приоритет и может командовать другим контрактом. Это может создать запутанные ситуации, поскольку есть много непредсказуемых способов изменить состояние выполнения контракта – например, история с TheDAO.
-
EIP 211: Динамически определяемый размер данных. Сейчас, делая запрос в другой контракт, необходимо заранее задать, сколько байтов будет скопировано. EIP 211 вводит два новых опкода RETURNDATASIZE и RETURNDATACOPY. Делая запрос, можно узнать, сколько байтов будет возвращено и скопировать ровно это количество. Область применения – строки с динамическим размером и массивы данных, которые смогут иметь произвольный размер.
-
EIP 206 (140): Расширение ВМЭ – снижение стоимости обратимых ситуаций с помощью функции revert (#14983). Почти в любом контракте могут возникнуть ситуации, когда нужно отказаться от совершения транзакции: (1) запрашивающий не уполномочен на проведение транзакции; (2) не наступило нужное состояние – например, краудсейл еще не начался или достигнута верхняя граница. Когда это происходит, выполнение нужно остановить и вернуть к предыдущему состоянию с помощью функции throw. Это дорого: сжигается весь газ транзакции, а пользователь так и не получает информации о причине отмены транзакции. Используя revert вместо throw, тратится только фактически использованный газ, и выдается код ошибки, сообщающий, почему сорвалась транзакция.
-
EIP 684: Предотвращение наложения контрактов (Byzantium prep) (#15039). Изменяется способ создания адреса контракта. Это должно предотвратить коллизии, возникающие когда контракт разворачивается там, где уже развернут другой.
На фоне подготовки к Byzantium, неизвестные (или неизвестный), очевидно воодушевленные историей с Эфириум Классик, призывают к отказу от участия в Metropolis, в особенности, в той части, в которой говорится об уменьшении награды майнеров, и созданию очередного форка Эфириума – CAHF (Community Activated Hard Fork). Помимо отказа от перехода на PoS и уменьшения награды, загадочные «бунтовщики» предлагают провести в своем форке дополнительный премайн 10% монет, как сказано «для разработчиков и создания ценности». Пока что эта инициатива не вызывает ничего кроме улыбок. Отвечая на вопрос по поводу CAHF, Виталик Бутерин предложил раскольникам, в противовес Metropolis, назвать свой форк Farmland (сельская местность).