Специализация и параллелизация вычислений способствуют повышению эффективности и безопасности. Об этом в новом эссе написал сооснователь Ethereum Виталик Бутерин.
Glue and coprocessor architectures:https://t.co/7CwdzKR0ix
— vitalik.eth (@VitalikButerin) September 2, 2024
По мнению криптографа, это открывает возможности для увеличения децентрализации и упрощения аудита кода.
Согласно Бутерину, любые ресурсоемкие вычисления можно разделить на две части:
В первом случае лучше подходит обработка с помощью архитектуры, которая может иметь более низкую эффективность, но должна обладать очень высокой общностью (generality), во втором — с помощью архитектуры с противоположными свойствами.
В EVM эти две формы выполнения обрабатываются по-разному. Сложная бизнес-логика пишется на языке более высокого уровня вроде Solidity, который компилируется в виртуальной машине.
«Дорогая работа» запускается опкодами EVM (SLOAD и т. д.), но свыше 99 % фактических вычислений производится в специализированных модулях непосредственно внутри клиентского кода (или даже библиотек).
По мнению Бутерина, все чаще встречается архитектура, которую он называет «клей и сопроцессор». В ней есть некий центральный компонент — «клей» — с высокой общностью, но низкой эффективностью, который отвечает за передачу данных между одним или несколькими компонентами сопроцессора. Последний обладает низкой общностью, но высокой эффективностью.
Соучредитель Ethereum пояснил, что представленная выше схема упрощена, поскольку на практике, к примеру в архитектуре ZKP, существует более двух уровней на кривой компромисса между эффективностью и общностью. Но, если упростить, достаточно думать о двух уровнях. Параллели этому есть во многих областях вычислений.
Согласно Бутерину, вычисления только недавно стали настолько быстрыми, что затраты на бизнес-логику стали действительно незначительными. Это создало предпосылки для оптимизации VM, в которой выполняется бизнес-логика, для целей, отличных от эффективности — удобства для разработчиков, привычности, безопасности и т. п.
При этом специализированные «сопроцессорные» модули могут продолжать разрабатываться с учетом эффективности и получать свои свойства безопасности и удобства для разработчиков из относительно простого «интерфейса», который они имеют с «клеем», добавил он.
Становится все более очевидным, какие операции являются наиболее важными и дорогостоящими. Это наиболее заметно в криптографии, но актуально и для ИИ, и других областей.
Продолжая повествование, Бутерин делает вывод, что «клей» следует оптимизировать для улучшения его свойств, равно как и сопроцессоры.
Соучредитель Ethereum убежден, что EVM не обязательно должны быть эффективными, они просто должны быть знакомыми. Вычисления в неэффективной VM можно улучшить за счет добавления нужных сопроцессоров («прекомпиляторов»).
По его словам, оптимизирующие EVM команды порой приходят к выводу, что отсутствие параллелизации зачастую не является основным препятствием для масштабируемости.
Бутерин считает лучшими способами улучшения виртуальной машины:
В заключение соучредитель Ethereum отметил, что перечисленные тенденции позволяют:
Напомним, в августе разработчики проекта Starknet представили механизм одновременного исполнения нескольких транзакции в решении второго уровня.
Ранее ForkLog дополнил образовательные карточки материалом на тему параллелизации и ее влияния на масштабирование блокчейнов.