Этот пост выдвигает радикальную идею для будущего уровня исполнения Ethereum, которая также амбициозна, как усилие по созданию цепочки beam для уровня консенсуса. Он направлен на значительное улучшение эффективности уровня исполнения Ethereum, устранение одного из основных узких мест масштабирования, а также на значительное улучшение простоты уровня исполнения - на самом деле, возможно, это единственный способ сделать это.
Идея: заменить EVM на RISC-V в качестве языка виртуальной машины, на котором написаны смарт-контракты.
Важные пояснения:
Это таблица количества циклов, которые Succinct ZK-EVM использует для доказательства различных частей уровня выполнения EVM:

Есть четыре части, которые занимают значительное количество времени: deserialize_inputs, initialize_witness_db, state_root_computation и block_execution.
initialize_witness_db и state_root_computation имеют отношение к дереву состояний, а deserialize_inputs относится к процессу преобразования данных блока и свидетеля во внутреннее представление; таким образом, реалистически более 50% этого пропорционально размерам свидетелей.
Эти части могут быть существенно оптимизированы путем замены текущего 16-ичного дерева Меркля Патриции keccak на бинарное дерево, использующее хэш-функцию, удобную для проверяющего. Если мы используем Poseidon, мы можем проверьте 2 миллиона хэшей в секундуна ноутбуке (по сравнению с ~15,000 хэш/сек для keccak). Есть также много вариантов, кроме Poseidon. В целом, есть возможности массово сократить эти компоненты. В качестве бонуса мы можем избавиться от accrue_logs_bloom, ну, избавление от цветения.
Остается выполнение блока, которое занимает примерно половину циклов доказателя, затраченных сегодня. Если мы хотим увеличить общую эффективность доказателя в 100 раз, нет обхода факта, что нам нужно как минимум 50 раз увеличить эффективность доказателя EVM. Одно из того, что мы могли бы сделать, это попытаться создать реализации EVM, которые намного более эффективны с точки зрения циклов доказателя. Другое, что мы можем сделать, это заметить, что доказатели ZK-EVM сегодня уже работают, доказывая реализации EVM, скомпилированные до RISC-V, и предоставляют разработчикам смарт-контрактов прямой доступ к этому RISC-V VM.
Некоторые цифры говорят, что в ограниченных случаях это может привести к повышению эффективности более чем в 100 раз:


На практике я ожидаю, что оставшееся время доказательства будет доминировать тем, что сегодня являются предварительными компиляциями. Если мы сделаем RISC-V основным VM, то газовый график будет отражать время доказательства, и поэтому будет экономическое давление прекратить использование более дорогих предварительных компиляций; но даже тем не менее, выгоды не будут настолько впечатляющими, но у нас есть веская причина верить, что они будут очень значительными.
(Кстати, приблизительно 50/50 разделение между “EVM” и “другие вещи” также появляется в обычном выполнении EVM, и мы интуитивно ожидаем, что выгоды от удаления EVM в качестве «посредника» будут такими же большими)
Более радикальный подход с точки зрения протокола заключается в преобразовании существующих контрактов EVM в контракты, которые вызывают контракт интерпретатора EVM, написанный на RISC-V, который запускает их существующий код EVM. Иными словами, если у контракта EVM есть код C, а интерпретатор EVM находится по адресу X, то контракт заменяется на логику верхнего уровня, которая, когда вызывается снаружи с параметрами вызова D, вызывает X с (C, D), а затем ожидает возвращаемого значения и перенаправляет его. Если сам интерпретатор EVM вызывает контракт, запрашивая выполнение CALL или SLOAD/SSTORE, то контракт это делает.
Промежуточным вариантом является использование второго варианта, но создание явной функции протокола для него - в основном, утверждение концепции "интерпретатора виртуальной машины" и требование, чтобы ее логика была написана на RISC-V. EVM был бы первым, но могли бы быть и другие (например, Move мог бы быть кандидатом).
Ключевым преимуществом второго и третьего предложения является то, что они значительно упрощают спецификацию уровня выполнения - действительно, такой тип идеи может быть единственным практическим способом сделать это, учитывая большую сложность даже инкрементальных упрощений, таких как удаление SELFDESTRUCT. Tinygrad имеет жесткое правило никогда не превышая 10000 строк кода; оптимальный базовый уровень блокчейна должен хорошо вписываться в эти рамки и становиться еще более компактным. Усилия по созданию цепочки Beam обещают значительно упростить уровень консенсуса Ethereum. Но для того чтобы уровень исполнения получил аналогичные выгоды, этот радикальный подход может быть единственно возможным путем.





