Специализация и параллелизация вычислений способствуют повышению эффективности и безопасности. Об этом в новом эссе написал сооснователь Ethereum Виталик Бутерин.
По мнению криптографа, это открывает возможности для увеличения децентрализации и упрощения аудита кода.
Согласно Бутерину, любые ресурсоемкие вычисления можно разделить на две части:
- Относительно небольшое количество сложной, но не требующей больших затрат бизнес-логики.
- Большое количество интенсивной, но высокоструктурированной «дорогой работы».
В Для просмотра ссылки Войди
«Дорогая работа» запускается опкодами EVM (SLOAD и т. д.), но свыше 99 % фактических вычислений производится в специализированных модулях непосредственно внутри клиентского кода (или даже библиотек).
По мнению Бутерина, все чаще встречается архитектура, которую он называет «клей и сопроцессор». В ней есть некий центральный компонент — «клей» — с высокой общностью, но низкой эффективностью, который отвечает за передачу данных между одним или несколькими компонентами сопроцессора. Последний обладает низкой общностью, но высокой эффективностью.
Соучредитель Ethereum пояснил, что представленная выше схема упрощена, поскольку на практике, к примеру в архитектуре Для просмотра ссылки Войди
Согласно Бутерину, вычисления только недавно стали настолько быстрыми, что затраты на бизнес-логику стали действительно незначительными. Это создало предпосылки для оптимизации VM, в которой выполняется бизнес-логика, для целей, отличных от эффективности — удобства для разработчиков, привычности, безопасности и т. п.
При этом специализированные «сопроцессорные» модули могут продолжать разрабатываться с учетом эффективности и получать свои свойства безопасности и удобства для разработчиков из относительно простого «интерфейса», который они имеют с «клеем», добавил он.
Становится все более очевидным, какие операции являются наиболее важными и дорогостоящими. Это наиболее заметно в криптографии, но актуально и для ИИ, и других областей.
Продолжая повествование, Бутерин делает вывод, что «клей» следует оптимизировать для улучшения его свойств, равно как и сопроцессоры.
Соучредитель Ethereum убежден, что EVM не обязательно должны быть эффективными, они просто должны быть знакомыми. Вычисления в неэффективной VM можно улучшить за счет добавления нужных сопроцессоров («прекомпиляторов»).
По его словам, оптимизирующие EVM команды порой приходят к выводу, что отсутствие параллелизации зачастую не является основным препятствием для масштабируемости.
Бутерин считает лучшими способами улучшения виртуальной машины:
- добавление оптимальных прекомпиляций или специализированных опкодов;
- совершенствование компоновки хранилища.
- Увеличить эффективность специализации на стороне клиента, это улучшает способность выполнять чувствительные и требовательные к производительности вычисления локально на аппаратном обеспечении пользователя.
[*]Открывает возможность для участия небольших и новых игроков. Если вычисления становятся менее монолитными и более модульными, это значительно снижает барьер для входа. Даже имея ASIC для одного типа вычислений, можно добиться успеха. То же самое будет происходить и в областях ZKP и оптимизации EVM. Написание кода с эффективностью, близкой к «пограничной», становится намного проще и доступнее. Это облегчает его аудит и формальную верификацию. [/LIST]
Напомним, в августе разработчики проекта StarknetДля просмотра ссылки Войди
Ранее ForkLogДля просмотра ссылки Войди
- Источник новости
- forklog.com