Быстрее. Легче. Безопаснее
Здесь представлены лишь некоторые из преимуществ, которые Metropolis — следующее обновление блокчейна Ethereum, обещает представить к своему появлению. Долгое время являясь предметом любопытства и дебатов, Metropolis, третий из четырех этапов плана развиия Ethereum, впервые представленного в 2015 году, внесёт наиболее важные изменения в платформе криптовалюты.
Существует определенный риск в выпуске обновления
“Ethereum небезопасный и изменяющийся. Это незрелая экспериментальная технология,” — разработчик протокола Ethereum подчеркнул в своём твиттере в начале этого года. Если и есть обновление, которое перечеркнёт данный факт, им может быть Metropolis.
Поскольку существенные изменения платформы ставят реальные деньги под угрозу, разработчики Ethereum склонны тратить свое время, отвечая на жалобы пользователей и предпринимателей, которые, похоже, хотят, чтобы технология сделала свой следующий большой шаг вперед.
Хадсон Джеймсон, неофициальный менеджер по выпуску Metropolis, подчеркнул, что разработчики “всегда ошибаются из-за чрезмерной осторожности”, — нерешительность, которая хотя и рекомендуется, привела к ряду задержек. (даже в недавнем треде на r/ethereum зашли так далеко, что вопрос о дате обещанного дедлайна вызвал множество противоречий).
Сроки в сторону, грядут большие изменения!
Metropolis, когда-то задуманный как этап, на котором наконец-то появилась удобная версия технологии, увидел сдвиги, которые могли бы существенно изменить окончательный выпуск кода. Пока кто-то задумался об “абстрактном” — Виталик Бутерин назвал концепцию 2015 года “возможно, всей его сутью” — то, что может окончательно опубликоваться, является более консервативной версией кода.
Таким образом, обновление разделилось на два этапа — byzantium и Constantinople. И хотя оба этапа ещё в развитии, у нас складывается представление о том, как они могут повлиять на систему.
Byzantium
Сегодняшняя версия Byzantium включает в себя девять протоколов по улучшению Ethereum`а (так называемые EIP), каждый из которых представляет отдельный патч для кода системы. В число изменений входит устранение проблемы настройки сложности, операции “returndata”, “static call”, новые прекомпиляции, функция задержки сложности и добавление возвращаемых данных в подтверждения транзакций.
Все эти разработки приведут к улучшению производительности сети и устранят существующие уязвимости. Большая их часть имеет значение, в основном, для разработчиков. Хотя некоторые заслуживают рассмотрения.
Смарт-контракты
В результате обновления Ethereum научится лучше работать с ошибками кода в смарт-контрактах. Так, платёж не будет приниматься смарт-контрактом, если в его коде будет обнаружена ошибка. Кроме того, эти изменения коснутся природы смарт-контрактов, и обновления смарт-контракта можно будет предварительно сконфигурировать в исходный код.
Повысится и степень безопасности контрактов, которые отныне будут защищены от атак повторного входа (когда в контракт внедряется сторонний код с целью манипуляций).
Добавление возвращаемых данных в подтверждение транзакции позволит лайт-клиентам определять успешность транзакции без необходимости проверки виртуальной машиной. Это также повлияет на инструменты, не входящие в парадигму блокчейна.
Ещё одно изменение отсрочит бомбу сложности (difficulty bomb), детонирующую в сети, тем самым обеспечив адекватное время подтверждения транзакций. (Время транзакций сейчас примерно 25 секунд). Это обновление также уменьшит вознаграждения, которые получают майнеры, что поможет ускорить и удешевить процесс майнинга.
Ещё одно исправление исключит предыдущую ошибку в настройке сложности, что гарантирует стабильность времени блока Ethereum.
Новые прекомпиляции, реализованные Byzantium, позволят включить в Ethereum zn-snarks — криптографическую процедуру, которая, наконец, позволит сети Ethereumсовершать приватные транзакции. Это создается в сотрудничестве с z-cash, анонимной криптовалютой, которая является первым широко распространенным применением технологии.
Constantinople
Чего же не хватает? К сожалению, дата выхода Constantinople, второго хардфорка Metropolis`а, не объявлена. Это связано с тем, что некоторые изменения, как было установлено, угрожают целостности кода Ethereum, открывая двери ряду потенциальных эксплойтов.
Один из планируемых EIP упрощает процесс оценивания транзакций. В настоящее время оценка контрактов запрашивает как текущее состояние блокчейна, так и хеши последних 256 блоков. Для лайт-клиентов эта сложная обработка информации должна быть существенно уменьшена — и EIP 96 делает это изящнейшим способом.
Тем не менее, главной сложностью, по-видимому, считается EIP 86, планируемый центр проекта и самый сложный из всех EIP.
EIP 86 хочет добиться безопасности аккаунтов, делая учетные записи более гибкими и настраиваемыми и позволяет разработать новые функции. Пользователи смогут выбрать свою модель безопасности, вписав свои криптографические характеристики в платеж.
Но проблема с EIP 86 настолько существенна, что потребуется много времени и усилий для правильного решения.
Примечательно, что был обнаружен протокол для изменения нескольких инвариантов, открывающие бесконечные циклы проблем. Ещё в июне был обнаружен эксплойт, который позволял злоумышленнику захватить кошельки путем реорганизации блокчейна или сразу же повторить одну и ту же транзакцию.+
Однако возможно, что за время, необходимое для завершения кода, появятся новые проблемы и потенциальные улучшения.