EIP-2537: Долгий путь предкомпилированной инструкции BLS12-381 для Ethereum
EIP-2537 является недавно определенной предкомпилированной инструкцией EVM, добавленной в процессе последнего обновления форка Pectra. Эта инструкция добавляет множество вычислительных функций для кривой BLS12-381 в EVM, включая вычисления пар на области кривой и т.д.
EIP-2573 был впервые предложен в 2020 году и подтвержден для включения в обновление Ethereum только в 2025 году. В этой статье будет рассмотрен процесс управления EIP-2537 и обсуждено, почему это предложение было окончательно включено в обновление только через 5 лет.
Фон предложения
В январе 2017 года Виталик Бутерин впервые представил алгоритм парного сопоставления и кривую alt_bn128. Затем Виталик и Кристиан Рейтвиссер предложили EIP-196 и EIP-197, чтобы добавить поддержку вычислений с использованием кривой alt_bn128 в EVM. Эти предложения были официально приняты в ходе обновления Byzantium в октябре 2017 года, что позволило осуществлять вычисления в области кривой в EVM, благодаря чему проверка доказательств ZK-Snarks может выполняться внутри EVM.
С развитием криптографии команда Zcash в ноябре 2017 года предложила кривую BLS12-381. По сравнению с alt_bn128, BLS12-381 обладает более высокой безопасностью и лучшей производительностью. Многие блокчейн-протоколы начали использовать кривую BLS12-381 вместо кривой alt_bn128.
В мае 2018 года Джастин Дрейк отметил, что будущие обновления PoS и шардирования Ethereum могут использовать алгоритм BLS-мультиподписей на основе кривой BLS12-381. Это сделало первоначальный план EIP-1011 устаревшим. Как оказалось, позднее обновление ETH2 действительно использовало кривую BLS12-381.
С развитием ETH2 растет призыв к внедрению BLS12-381 в исполняемый слой ETH. В феврале 2020 года исследователи предложили EIP-2537, надеясь, что это предложение будет протестировано вместе с тестовой сетью ETH2. Автор EIP-2537 Алекс Стокс призвал включить EIP-2537 в хард-форк Berlin.
Стоит отметить, что автор EIP-2537 также является соучредителем разработчика ZKSync Matter Labs.
Перед тем как представить последующий контент, нам необходимо сначала понять EIP-1962. Это первое предложение о предкомпиляции пар эллиптической кривой, предложенное Matter Labs в апреле 2019 года, которое поддерживает три кривые: BLS12, BN и MNT4/6.
EIP-1962 планирует однократное увеличение на 10 предопределенных команд для обработки различных кривых. Но это предложение слишком сложное, разработчикам трудно его реализовать. Кроме того, из-за высокой универсальности, инженерам смарт-контрактов также сложно его использовать. Однако Matter Labs уже завершила разработку алгоритма эллиптической кривой и предоставила несколько языков для ссылочных реализаций.
Для решения проблемы EIP-1962, Matter Labs в феврале 2020 года предложила несколько EIP, разделяющих EIP-1962, часть из которых унаследовала его интерфейс. Эти EIP включают:
EIP-2537: предоставляет поддержку BLS12-381
EIP-2539: Предоставление поддержки BLS12-377
PR#2541: Предоставление поддержки кривой BLS12-377 (Zexe ), но EIP номер не получен
Среди них EIP-2537 является наиболее важным, так как уровень консенсуса также использует кривую BLS12-381. Основная цель EIP-1962 и EIP-2537 заключается в реализации проверки BLS-подписей на уровне консенсуса в основной сети. В то время ETH2 разрабатывал контракт на депозит, и поскольку уровень исполнения не имел алгоритма проверки BLS, контракт на депозит не будет проверять подписи. Конкретные BLS-подписи будут проверены уровнем консенсуса после внесения депозита пользователем; если будет обнаружена ошибка, это может привести к потере средств пользователя.
В этом контексте основные разработчики надеются внедрить предварительную компиляцию BLS12-381 для реализации проверки подписей в контракте на депозит, чтобы избежать возможных потерь средств пользователей ETH2. Это была причина, по которой в то время большое количество разработчиков обращали внимание на EIP-1962 и EIP-2537.
После предложения EIP-2537 Виталик немедленно указал на ряд проблем, в основном сосредоточенных на содержании документа EIP. Авторы EIP затем ответили и обсудили. На встрече основных разработчиков 6 марта 2020 года Виталик высказал мнение, что EIP-2537 и другие EIP очень эффективны для рекурсивных SNARK-доказательств и в долгосрочной перспективе не нанесут ущерба Ethereum. На встрече было подтверждено приоритетное значение EIP-2537, все клиенты согласились реализовать его как можно скорее и запланировали завершение разработки до обновления Berlin.
С тех пор EIP-2537 стал задачей высокого приоритета. На заседании 20 марта было подтверждено, что EIP-2537 заменяет EIP-1962 как основное предложение BLS и входит в предварительный список обновления Berlin. На апрельском заседании EIP-2537 официально включили в обновление жесткой форки Berlin, определив сроки реализации в апреле и тестирования в мае-июне, и поставили его в список задач высшего приоритета.
Затем EIP-2537 вошел в стадию активной разработки и тестирования, и обсуждался на почти 20 последующих встречах основных разработчиков.
На 85-й конференции разработчики обсудили вопросы кодирования ABI для EIP-2537. Клиент Besu сообщил, что основная функциональность реализована, но со стороны Geth никто еще не начал соответствующую работу.
На 86-й конференции Geth заявил, что часть работы завершена, но еще много работы предстоит.
87-е заседание сосредоточилось на вопросах реализации EIP-2537. Разработчики Geth заявили, что существует PR из 16000 строк, реализующий EIP-2537, но нельзя с уверенностью определить его безопасность и эффективность, можно лишь судить по простому фузз-тестированию. Разработчики Geth считают, что не смогут завершить разработку EIP-2537 до запланированного срока в Берлине.
Совещание решило увеличить тестирование сети YOLO специально для тестирования EIP-2537. В это время важность EIP-2537 значительно снизилась, разработчики Geth считают, что этот EIP, скорее всего, не сможет быть включен в обновление Berlin.
На 88-й встрече разработчики Geth обнаружили ряд проблем с реализацией PR EIP-2537, которые требуют дальнейшего тестирования и исправления. В системе Geth существует две реализации EIP-2537: одна содержит оптимизацию ассемблера, другая полностью написана на Go. Некоторые предложили использовать версию на Go, чтобы упростить проверку кода.
На 89-й встрече возникла более серьезная проблема: на тестовой сети YOLO произошла аномалия, подозревают, что это вызвано BLS-подписями, но разработчики EIP-2537 это опровергли. Хорошая новость заключается в том, что контракт на депозит, основанный на EIP-2537, в основном завершен и ожидает аудита.
90-е заседание установило срок выхода обновления Berlin на июль. На заседании также обсуждался вопрос о доминировании Geth, кто-то предложил заморозить текущую реализацию EIP, чтобы снизить затраты на разработку других клиентов.
92-е заседание по-прежнему подтверждает EIP-2537 как необходимый EIP для обновления Берлин.
На 96-й встрече Matter Labs выразила надежду включить EIP-2539 в тестирование YOLO v2 и в обновление Berlin. Однако разработчики Geth выступили против, полагая, что EIP-2537 все еще не был полностью протестирован в Geth. В конечном итоге было решено не добавлять 2696 в обновление Berlin.
99-е заседание решило исключить EIP-2537 из тестовой сети YOLO v3 и обновления Berlin, основная причина заключается в том, что это отняло слишком много времени у основных разработчиков, что повлияло на разработку других EIP. Второстепенной причиной является предложение фонда Ethereum использовать EVM384 в качестве альтернативы.
В апреле 2021 года Ethereum завершил обновление Berlin, ключевые элементы, такие как EIP-2565, на самом деле несложны, и обновление кажется скромным, потому что самый сложный EIP-2537 был исключен.
Обновление London после обновления Berlin внедрило EIP-1559. Что касается EIP-2537, который ранее был ключевым предложением, последующие обновления вряд ли смогут его включить.
Лондон на стадии обновления, разработчики рассматривали возможность добавления EIP-2537. На 109-м заседании была синхронизирована информация о разработке EIP-2537, обсуждались вопросы использования газа, кто-то предложил заменить EIP-2537 на EVM384. Однако на 111-м заседании EIP-2537 был исключен из обновления Лондон из-за сложности. Основная причина заключается в том, что стандарт EIP-2537 изменил библиотеку зависимостей, что могло повлиять на ценообразование газа, и всем клиентам необходимо переоценить потребление газа.
В июне 2021 года официально было предложено включить EIP-2537 в обновление Shanghai. Однако обновление Merge заняло много времени разработчиков. После завершения Merge в сентябре 2022 года разработчики уровня исполнения только тогда получили возможность продолжить обсуждение целей обновления Shanghai.
В ноябре 2022 года на 150-м заседании кратко обсуждалось, следует ли включить EIP-2537 в обновление Shanghai, но было решено отложить это. Основная цель обновления Shanghai заключается в поддержке вывода средств PoS. В конечном итоге EIP-2537 не был включён в обновление Shanghai, основное внимание в котором уделялось функции вывода средств.
Обновление Cancun до сих пор не обсуждало EIP-2537, поскольку его основа поддерживает EIP-4844, предоставляя слой доступных Blob-данных для второго уровня.
Февраль 2024 года, на 181-м заседании обсуждалось внедрение EIP-2537 в обновление Pectra, было признано, что реализация больше не является проблемой, существует только проблема ценообразования на газ.
19 декабря 2024 года на 202-й встрече разработчики Nethermind определили модель ценообразования EIP-2537. Изначальный предложитель Matter Labs к этому моменту почти вышел из обсуждения. На 203-й встрече в январе 2025 года обсуждалось повторное ценообразование BLS предкомпиляции, разработчики Geth предложили увеличить стоимость газа на 20%, получив поддержку от команды Besu в бенчмаркинге.
История разработки EIP-2537 можно кратко описать следующим образом:
Февраль 2020 года: Разделение EIP-1962 официально предложено EIP-2537
Апрель-октябрь 2020 года: Многочисленные обсуждения проблем реализации, в конечном итоге из-за невозможности реализации были отказаны от обновления Berlin.
Март-апрель 2021 года: обсуждение проблемы стоимости газа, из-за сложности было принято решение отказаться от обновления Лондон.
Ноябрь 2022 года: обсуждение вопроса о включении обновления Shanghai, безрезультатно
Февраль 2024 года: считаю, что проблем не будет, но все еще существует проблема с газовыми затратами, может быть включено в обновление Pectra
Декабрь 2024 - Январь 2025: обсуждение конкретной модели затрат, официальное решение проблемы затрат
Возможность включения EIP в обновление Ethereum зависит не только от собственных усилий, но и от исторического процесса. Каждое обновление имеет свою тему, EIP-2537 был ключевым элементом обновления Berlin, но был отменен из-за сложности. Затем Ethereum сосредоточился на PoS, и EIP, касающиеся чисто исполнительного уровня, не получили должного внимания, что привело к длительному непринятию EIP-2537. Только недавно разработчики снова обратили на него внимание и решили его оставшиеся проблемы.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
25 Лайков
Награда
25
8
Репост
Поделиться
комментарий
0/400
DefiPlaybook
· 7ч назад
Еще один пятилетний проект уровня бога. Срочно нужен der?
Посмотреть ОригиналОтветить0
LayerZeroHero
· 7ч назад
Пять лет прошло, а основная сеть так и не запущена. Что за медлительность?
Посмотреть ОригиналОтветить0
SchrodingerAirdrop
· 9ч назад
Что такого медленно идти по дороге? Постепенное улучшение не лучше, чем кричать о быстроте.
Посмотреть ОригиналОтветить0
UncleLiquidation
· 08-09 22:46
Пять лет только для того, чтобы запуститься, темп разработки Ethereum действительно очень медленный.
Посмотреть ОригиналОтветить0
Anon32942
· 08-09 22:45
Играл и ждал пять лет, недавно возникла разница в цене.
Посмотреть ОригиналОтветить0
GasWrangler
· 08-09 22:39
на самом деле им потребовалось 5 лет, чтобы оптимизировать что-то такое математически тривиальное... смh по поводу неэффективности layer1
Эфир BLS предкомпилированная инструкция EIP-2537 была принята спустя 5 лет.
EIP-2537: Долгий путь предкомпилированной инструкции BLS12-381 для Ethereum
EIP-2537 является недавно определенной предкомпилированной инструкцией EVM, добавленной в процессе последнего обновления форка Pectra. Эта инструкция добавляет множество вычислительных функций для кривой BLS12-381 в EVM, включая вычисления пар на области кривой и т.д.
EIP-2573 был впервые предложен в 2020 году и подтвержден для включения в обновление Ethereum только в 2025 году. В этой статье будет рассмотрен процесс управления EIP-2537 и обсуждено, почему это предложение было окончательно включено в обновление только через 5 лет.
Фон предложения
В январе 2017 года Виталик Бутерин впервые представил алгоритм парного сопоставления и кривую alt_bn128. Затем Виталик и Кристиан Рейтвиссер предложили EIP-196 и EIP-197, чтобы добавить поддержку вычислений с использованием кривой alt_bn128 в EVM. Эти предложения были официально приняты в ходе обновления Byzantium в октябре 2017 года, что позволило осуществлять вычисления в области кривой в EVM, благодаря чему проверка доказательств ZK-Snarks может выполняться внутри EVM.
С развитием криптографии команда Zcash в ноябре 2017 года предложила кривую BLS12-381. По сравнению с alt_bn128, BLS12-381 обладает более высокой безопасностью и лучшей производительностью. Многие блокчейн-протоколы начали использовать кривую BLS12-381 вместо кривой alt_bn128.
В мае 2018 года Джастин Дрейк отметил, что будущие обновления PoS и шардирования Ethereum могут использовать алгоритм BLS-мультиподписей на основе кривой BLS12-381. Это сделало первоначальный план EIP-1011 устаревшим. Как оказалось, позднее обновление ETH2 действительно использовало кривую BLS12-381.
С развитием ETH2 растет призыв к внедрению BLS12-381 в исполняемый слой ETH. В феврале 2020 года исследователи предложили EIP-2537, надеясь, что это предложение будет протестировано вместе с тестовой сетью ETH2. Автор EIP-2537 Алекс Стокс призвал включить EIP-2537 в хард-форк Berlin.
Стоит отметить, что автор EIP-2537 также является соучредителем разработчика ZKSync Matter Labs.
! Ethereum Governance Watch: EIP-2537 перед сборкой
Проблемы обновления Берлина
Перед тем как представить последующий контент, нам необходимо сначала понять EIP-1962. Это первое предложение о предкомпиляции пар эллиптической кривой, предложенное Matter Labs в апреле 2019 года, которое поддерживает три кривые: BLS12, BN и MNT4/6.
EIP-1962 планирует однократное увеличение на 10 предопределенных команд для обработки различных кривых. Но это предложение слишком сложное, разработчикам трудно его реализовать. Кроме того, из-за высокой универсальности, инженерам смарт-контрактов также сложно его использовать. Однако Matter Labs уже завершила разработку алгоритма эллиптической кривой и предоставила несколько языков для ссылочных реализаций.
Для решения проблемы EIP-1962, Matter Labs в феврале 2020 года предложила несколько EIP, разделяющих EIP-1962, часть из которых унаследовала его интерфейс. Эти EIP включают:
Среди них EIP-2537 является наиболее важным, так как уровень консенсуса также использует кривую BLS12-381. Основная цель EIP-1962 и EIP-2537 заключается в реализации проверки BLS-подписей на уровне консенсуса в основной сети. В то время ETH2 разрабатывал контракт на депозит, и поскольку уровень исполнения не имел алгоритма проверки BLS, контракт на депозит не будет проверять подписи. Конкретные BLS-подписи будут проверены уровнем консенсуса после внесения депозита пользователем; если будет обнаружена ошибка, это может привести к потере средств пользователя.
В этом контексте основные разработчики надеются внедрить предварительную компиляцию BLS12-381 для реализации проверки подписей в контракте на депозит, чтобы избежать возможных потерь средств пользователей ETH2. Это была причина, по которой в то время большое количество разработчиков обращали внимание на EIP-1962 и EIP-2537.
После предложения EIP-2537 Виталик немедленно указал на ряд проблем, в основном сосредоточенных на содержании документа EIP. Авторы EIP затем ответили и обсудили. На встрече основных разработчиков 6 марта 2020 года Виталик высказал мнение, что EIP-2537 и другие EIP очень эффективны для рекурсивных SNARK-доказательств и в долгосрочной перспективе не нанесут ущерба Ethereum. На встрече было подтверждено приоритетное значение EIP-2537, все клиенты согласились реализовать его как можно скорее и запланировали завершение разработки до обновления Berlin.
С тех пор EIP-2537 стал задачей высокого приоритета. На заседании 20 марта было подтверждено, что EIP-2537 заменяет EIP-1962 как основное предложение BLS и входит в предварительный список обновления Berlin. На апрельском заседании EIP-2537 официально включили в обновление жесткой форки Berlin, определив сроки реализации в апреле и тестирования в мае-июне, и поставили его в список задач высшего приоритета.
Затем EIP-2537 вошел в стадию активной разработки и тестирования, и обсуждался на почти 20 последующих встречах основных разработчиков.
На 85-й конференции разработчики обсудили вопросы кодирования ABI для EIP-2537. Клиент Besu сообщил, что основная функциональность реализована, но со стороны Geth никто еще не начал соответствующую работу.
На 86-й конференции Geth заявил, что часть работы завершена, но еще много работы предстоит.
87-е заседание сосредоточилось на вопросах реализации EIP-2537. Разработчики Geth заявили, что существует PR из 16000 строк, реализующий EIP-2537, но нельзя с уверенностью определить его безопасность и эффективность, можно лишь судить по простому фузз-тестированию. Разработчики Geth считают, что не смогут завершить разработку EIP-2537 до запланированного срока в Берлине.
Совещание решило увеличить тестирование сети YOLO специально для тестирования EIP-2537. В это время важность EIP-2537 значительно снизилась, разработчики Geth считают, что этот EIP, скорее всего, не сможет быть включен в обновление Berlin.
На 88-й встрече разработчики Geth обнаружили ряд проблем с реализацией PR EIP-2537, которые требуют дальнейшего тестирования и исправления. В системе Geth существует две реализации EIP-2537: одна содержит оптимизацию ассемблера, другая полностью написана на Go. Некоторые предложили использовать версию на Go, чтобы упростить проверку кода.
На 89-й встрече возникла более серьезная проблема: на тестовой сети YOLO произошла аномалия, подозревают, что это вызвано BLS-подписями, но разработчики EIP-2537 это опровергли. Хорошая новость заключается в том, что контракт на депозит, основанный на EIP-2537, в основном завершен и ожидает аудита.
90-е заседание установило срок выхода обновления Berlin на июль. На заседании также обсуждался вопрос о доминировании Geth, кто-то предложил заморозить текущую реализацию EIP, чтобы снизить затраты на разработку других клиентов.
92-е заседание по-прежнему подтверждает EIP-2537 как необходимый EIP для обновления Берлин.
На 96-й встрече Matter Labs выразила надежду включить EIP-2539 в тестирование YOLO v2 и в обновление Berlin. Однако разработчики Geth выступили против, полагая, что EIP-2537 все еще не был полностью протестирован в Geth. В конечном итоге было решено не добавлять 2696 в обновление Berlin.
99-е заседание решило исключить EIP-2537 из тестовой сети YOLO v3 и обновления Berlin, основная причина заключается в том, что это отняло слишком много времени у основных разработчиков, что повлияло на разработку других EIP. Второстепенной причиной является предложение фонда Ethereum использовать EVM384 в качестве альтернативы.
В апреле 2021 года Ethereum завершил обновление Berlin, ключевые элементы, такие как EIP-2565, на самом деле несложны, и обновление кажется скромным, потому что самый сложный EIP-2537 был исключен.
! Ethereum Governance Watch: EIP-2537 перед компиляцией
Последующее развитие
Обновление London после обновления Berlin внедрило EIP-1559. Что касается EIP-2537, который ранее был ключевым предложением, последующие обновления вряд ли смогут его включить.
Лондон на стадии обновления, разработчики рассматривали возможность добавления EIP-2537. На 109-м заседании была синхронизирована информация о разработке EIP-2537, обсуждались вопросы использования газа, кто-то предложил заменить EIP-2537 на EVM384. Однако на 111-м заседании EIP-2537 был исключен из обновления Лондон из-за сложности. Основная причина заключается в том, что стандарт EIP-2537 изменил библиотеку зависимостей, что могло повлиять на ценообразование газа, и всем клиентам необходимо переоценить потребление газа.
В июне 2021 года официально было предложено включить EIP-2537 в обновление Shanghai. Однако обновление Merge заняло много времени разработчиков. После завершения Merge в сентябре 2022 года разработчики уровня исполнения только тогда получили возможность продолжить обсуждение целей обновления Shanghai.
В ноябре 2022 года на 150-м заседании кратко обсуждалось, следует ли включить EIP-2537 в обновление Shanghai, но было решено отложить это. Основная цель обновления Shanghai заключается в поддержке вывода средств PoS. В конечном итоге EIP-2537 не был включён в обновление Shanghai, основное внимание в котором уделялось функции вывода средств.
Обновление Cancun до сих пор не обсуждало EIP-2537, поскольку его основа поддерживает EIP-4844, предоставляя слой доступных Blob-данных для второго уровня.
Февраль 2024 года, на 181-м заседании обсуждалось внедрение EIP-2537 в обновление Pectra, было признано, что реализация больше не является проблемой, существует только проблема ценообразования на газ.
19 декабря 2024 года на 202-й встрече разработчики Nethermind определили модель ценообразования EIP-2537. Изначальный предложитель Matter Labs к этому моменту почти вышел из обсуждения. На 203-й встрече в январе 2025 года обсуждалось повторное ценообразование BLS предкомпиляции, разработчики Geth предложили увеличить стоимость газа на 20%, получив поддержку от команды Besu в бенчмаркинге.
! Ethereum Governance Watch: EIP-2537 перед сборкой
Резюме
История разработки EIP-2537 можно кратко описать следующим образом:
Возможность включения EIP в обновление Ethereum зависит не только от собственных усилий, но и от исторического процесса. Каждое обновление имеет свою тему, EIP-2537 был ключевым элементом обновления Berlin, но был отменен из-за сложности. Затем Ethereum сосредоточился на PoS, и EIP, касающиеся чисто исполнительного уровня, не получили должного внимания, что привело к длительному непринятию EIP-2537. Только недавно разработчики снова обратили на него внимание и решили его оставшиеся проблемы.
! Ethereum Governance Watch: путешествие перед компиляцией EIP-2537