Изменения в сети Ethereum после хардфорка Byzantium
DeCenter16 октября на блоке 4,370,000 произошел хардфорк Byzantium в сети Ethereum. Byzantium – это первая часть крупного обновления Metropolis. В отличие от хардфорка Bitcoin, в ходе Byzantium не появится еще одна версия Ethereum. Также в обновление не включены ожидаемые анонимные транзакции и переход на proof-of-stake. Но есть пару нововведений, о которых стоит знать.
Сокращение вознаграждения майнеров
Вознаграждение за найденный блок будет уменьшено с 5 ETH до 3 ETH. Это изменение сделано в рамках подготовки к переходу на алгоритм proof-of-stake. Хотя вознаграждение было снижено, предыдущий план по экспоненциальному увеличению времени нахождения блоков («Ледниковый период») был отложен. Бомба сложности «Ледниковый период» предназначена для стимулирования майнеров находить блоки в новой цепи после проведения хардфорка.
Подготовка к приватным транзакциям
В Byzantium добавлены 4 функции, которые нужны для реализации Zk-Snarks –Zero Knowledge Proof – анонимных транзакцй в сети Ethereum. Некоторые из основных вычислений, необходимых для таких транзакций, теперь требуют меньше газа и работают за пределами Ethereum Virtual Machine (EVM).
Ethereum Virtual Machine представляет собой часть протокола исходной платформы, отвечающую за внутреннее состояния смарт-контрактов и соответствующие вычисления при их исполнении.
Более быстрая обработка транзакций
Транзакции теперь могут быть обработаны параллельно благодаря удалению проверки состояния Дерева Меркля.
Параметр «root» по-прежнему будет храниться в информации о транзакции, но его значение будет заменено двоичным знаком: 0x0 для неудачных транзакций и 0x1 для успешных транзакций.
Усовершенствования смарт контрактов
Раньше остановить выполнение смарт-контракта в Ethereum можно было только через throw-метод, который запускал бесконечный цикл, чтобы весь газ израсходовался. Только тогда контракт останавливался. У такого алгоритма есть два недостатка:
- Вы теряете оставшийся газ в процессе прекращения контракта.
- Без газа контракт не может вернуть сообщение об ошибке.
С добавлением opcode REVERT в Byzantium разработчики имеют возможность остановить выполнение, не сжигая оставшийся газ. Это позволяет контракту возвращать сообщение об ошибке.
Есть и другие незначительные корректировки и обновления, но выше перечислены те, которые наиболее важны.