Віталік Бутерін запропонував спосіб збільшення ефективності EVM

Спеціалізація та паралелізація обчислень сприяють підвищенню ефективності та безпеки. Про це в новому есе написав співзасновник Ethereum Віталік Бутерін.

На думку криптографа, це відкриває можливості для збільшення децентралізації та спрощення аудиту коду.

Згідно з Бутеріним, будь-які ресурсомісткі обчислення можна розділити на дві частини:

  1. Відносно невелика кількість складної, але такої, що не потребує великих витрат бізнес-логіки.
  2. Велика кількість інтенсивної, але високоструктурованої «дорогої роботи».

У першому випадку краще підходить обробка за допомогою архітектури, яка може мати нижчу ефективність, але повинна мати дуже високу загальність (generality), у другому — за допомогою архітектури з протилежними властивостями.

У EVM ці дві форми виконання обробляються по-різному. Складна бізнес-логіка пишеться мовою вищого рівня на кшталт Solidity, яку компілюють у віртуальній машині.

«Дорогу роботу» запускають опкодами EVM (SLOAD тощо), але понад 99% фактичних обчислень проводять у спеціалізованих модулях безпосередньо всередині клієнтського коду (або навіть бібліотек).

На думку Бутеріна, все частіше зустрічається архітектура, яку він називає «клей і співпроцесор». У ній є якийсь центральний компонент — «клей» — з високою спільністю, але низькою ефективністю, який відповідає за передачу даних між одним або кількома компонентами співпроцесора. Останній має низьку спільність, але високу ефективність.

Джерело: vitalik.eth.limo.

Співзасновник Ethereum пояснив, що представлену вище схему спрощено, оскільки на практиці, приміром, в архітектурі ZKP, існує більш як двох рівнів на кривій компромісу між ефективністю і спільністю. Але, якщо спростити, достатньо думати про два рівні. Паралелі цьому є в багатьох галузях обчислень.

Джерело: vitalik.eth.limo.

Згідно з Бутеріним, обчислення тільки нещодавно стали настільки швидкими, що витрати на бізнес-логіку стали дійсно незначними. Це створило передумови для оптимізації VM, у якій виконується бізнес-логіка, для цілей, відмінних від ефективності — зручності для розробників, звичності, безпеки тощо.

При цьому спеціалізовані «співпроцесорні» модулі можуть продовжувати розроблятися з огляду на ефективність і отримувати свої властивості безпеки та зручності для розробників з відносно простого «інтерфейсу», який вони мають з «клеєм», додав він.

Стає дедалі очевиднішим, які операції є найбільш важливими і дорогими. Це найпомітніше в криптографії, але актуально і для ШІ, й інших галузей.

Продовжуючи розповідь, Бутерін робить висновок, що «клей» слід оптимізувати для поліпшення його властивостей, так само як і співпроцесори.

Співзасновник Ethereum переконаний, що EVM не обов’язково мають бути ефективними, вони просто мають бути знайомими. Обчислення в неефективній VM можна поліпшити шляхом додавання потрібних співпроцесорів («прекомпіляторів»).

За його словами, команди, які оптимізують EVM, часом доходять висновку, що відсутність паралелізації часто не є основною перешкодою для масштабованості.

Бутерін вважає найкращими способами поліпшення віртуальної машини:

  • додавання оптимальних прекомпіляцій або спеціалізованих опкодів;
  • вдосконалення компонування сховища.

Насамкінець співзасновник Ethereum зазначив, що перелічені тенденції дають змогу:

  1. Збільшити ефективність спеціалізації на стороні клієнта, це покращує здатність виконувати чутливі та вимогливі до продуктивності обчислення локально на апаратному забезпеченні користувача.
  2. Створюють широкі можливості для того, щоб прагнення до ефективності не порушувало інші цінності, насамперед безпеку, відкритість і простоту. Це несе користь для криптографії, оскільки вона уособлює «дорогі структуровані обчислення», які прискорюються завдяки подібній тенденції. Останнє створює передумови для підвищення безпеки та більшого фокуса на оптимізації прекомпіляцій та інших функцій, які «живуть» разом із VM.
  3. Відкриває можливість для участі невеликих і нових гравців. Якщо обчислення стають менш монолітними і більш модульними, це значно знижує бар’єр для входу. Навіть маючи ASIC для одного типу обчислень, можна домогтися успіху. Те ж саме відбуватиметься і в галузях ZKP та оптимізації EVM. Написання коду з ефективністю, близькою до «прикордонної», стає набагато простішим і доступнішим. Це полегшує його аудит і формальну верифікацію.

Нагадаємо, у серпні розробники проєкту Starknet представили механізм одночасного виконання кількох транзакцій у рішенні другого рівня.

Читайте ForkLog UA в соціальних мережах

Знайшли помилку в тексті? Виділіть її та натисніть CTRL+ENTER

Матеріали за темою

Ми використовуємо файли cookie для покращення якості роботи.

Користуючись сайтом, ви погоджуєтесь з Політикою приватності.

OK