Три приклади, що демонструють, чого можуть досягти Revive та Polkadot Hub!

Ця стаття — конспект виступу Parity на конференції Sub0, підготовлений PolkaWorld.
За останні роки Polkadot перетворився на потужну та гнучку модульну систему. Але у неї є одна очевидна проблема: багато ключових функцій розподілені по різних ланцюгах.
Наприклад:
- Двигун смарт-контрактів доступний лише на деяких парачейнах;
- Системи управління, стейкінгу, нативних токенів тощо знаходяться на інших парачейнах або системних ланцюгах.
Такий розподіл призводить до значної складності. Навіть найпростіший процес може вимагати взаємодії між кількома ланцюгами та залежати від асинхронної комунікації для завершення.
Polkadot Hub докорінно змінить цю ситуацію, значно спростивши все!
Polkadot Hub: об’єднання всіх функцій в одному місці
Дозвольте представитися, я Торстен, керую командою смарт-контрактів у Parity. Сьогодні я розповім про Polkadot Hub та вбудований двигун виконання смарт-контрактів, і як ці нові можливості змінять спосіб створення додатків у Polkadot.

Згадаємо минулі труднощі, у старій архітектурі:
- Смарт-контракти можна було розгортати лише на парачейнах;
- Логіка нативних токенів, стейкінгу, управління тощо була розподілена між релейним або системними ланцюгами.
Це означало, що для будь-якої комбінації цих систем ваш додаток мав покладатися на XCM та складні асинхронні потоки повідомлень.
В результаті:
- Розробники не знали, на якому ланцюзі розгортати додаток;
- Весь процес був фрагментований, інструментарій — неуніфікований;
- Різні ланцюги працювали по-різному, що призводило до розірваного досвіду розробки.
Але тепер усе зміниться, адже Polkadot Hub вже на підході!
Polkadot Hub — це новий “центр додатків” екосистеми Polkadot. Він об’єднує всі раніше розподілені ключові функції:
- активи
- нативні токени
- стейблкоїни
- стейкінг
- управління
- смарт-контракти
Усе це зібрано в одному середовищі.
З появою Hub кордони між ланцюгами зникають, а це означає: у майбутньому додатки Polkadot будуть створюватися та розгортатися по-новому.

Смарт-контракти у двомоторній епосі: Revive змінює прикладний рівень Polkadot
Далі поговоримо про найцікавіше — двигун виконання смарт-контрактів у Hub.
Цей двигун називається Revive. Його головна особливість: Revive містить одразу два середовища виконання, які підтримують два типи систем смарт-контрактів.
- Перше — знайомий усім EVM, який дозволяє запускати контракти на Solidity;
- Друге — сучасний PVM, який підтримує Solidity або Rust.
Найцікавіше, що EVM і PVM — це не два ізольовані світи, а працюють у спільному адресному просторі та можуть викликати одне одного. Це означає, що смарт-контракти однієї системи повністю взаємодіють з іншою. Вони можуть викликати одне одного, навіть не знаючи, чи це PVM чи EVM контракт.
Крім того, Revive через precompiles дозволяє смарт-контрактам напряму звертатися до основних функцій рантайму, таких як стейкінг, управління, керування активами та XCM. Усі ці компоненти інтегровані з Revive безшовно.

Далі коротко про способи розгортання додатків на Revive. Наразі ви можете обрати одну з двох мов: Solidity або Rust.
Якщо ви використовуєте Solidity, можна застосовувати класичний компілятор Solidity для отримання байткоду EVM і запускати його на EVM-двигуні Revive. Також можна скористатися власним компілятором Resource C від Parity, який компілює Solidity-код у байткод PVM для розгортання на PVM-двигуні. І EVM, і PVM-коди можуть викликати одне одного.
Якщо ви використовуєте Rust, достатньо скомпілювати код стандартним компілятором Rust і розгорнути як PVM-контракт. Такі контракти також можуть напряму взаємодіяти з компонентами рантайму.

Тепер поясню, чому Revive має два двигуни виконання і які їхні переваги.
PVM: високопродуктивний, сучасний двигун виконання
PVM — це нове середовище виконання смарт-контрактів, яке забезпечує значно більшу обчислювальну потужність, ніж класичний EVM. Тому:
- Ви можете розгортати більші та складніші смарт-контракти
- Можна створювати нові типи додатків, які раніше були майже неможливі
PVM базується на інструкційному наборі RISC-V. Ethereum також розглядає RISC-V у майбутньому, але Revive вже впровадив цю технологію і дає змогу розробникам використовувати її просто зараз.
Revive підтримує два режими виконання:
- Інтерпретований режим (поточний, середня продуктивність)
- JIT-компіляція (відкриється наступного року, повністю розкриє потенціал)
У JIT-режимі можна виконувати дуже складні обчислення у смарт-контрактах, наприклад:
- складні математичні операції
- криптографічні алгоритми (що майже неможливо на EVM)
У EVM, щоб додати новий криптографічний примітив, потрібно оновлювати precompile для всієї мережі, що дуже складно; у PVM ви можете реалізувати “власний precompile” прямо у смарт-контракті, бо обчислювальної потужності достатньо.

Навіщо ж тоді потрібен EVM?
Тому що EVM має свої переваги:
- Можна напряму перенести протоколи з Ethereum чи інших EVM-ланцюгів на Revive
- Код не потрібно змінювати
- Інструменти залишаються ті ж
- Foundry, Hardhat працюють як і раніше
- Розгортання “з коробки”
Крім того, EVM- і PVM-контракти можуть безшовно викликати одне одного.
Особливо хочу підкреслити: якщо ваш протокол був скомпільований старою версією компілятора Solidity, його байткод може не працювати на PVM, але на EVM-двигуні Revive все буде гаразд.
Ось чому нам все ще потрібен EVM-двигун — він гарантує повну сумісність з EVM.

Однак наш EVM-двигун відрізняється від стандартного Ethereum у ключовому аспекті: обробка gas та ресурсів інша.
Зазвичай на всіх EVM-ланцюгах розрахунок gas однаковий, але у Polkadot це не працює. Polkadot на низькому рівні використовує зовсім іншу систему керування ресурсами:
- У Polkadot ресурси називаються weights (ваги), вони двовимірні, тобто потрібно враховувати два різних ресурси;
- Крім того, двигун смарт-контрактів Revive додає третій ресурс: депозит за зберігання (storage deposit).
Тобто всередині системи керуються трьома типами ресурсів.

Але ми хочемо зберегти для зовнішніх користувачів звичний підхід як у Ethereum, тому відображаємо їх у вигляді одного “ресурсу, схожого на gas”. Іншими словами, гаманці Ethereum не розуміють внутрішні ресурси Polkadot, тому ми імітуємо gas у стилі Ethereum. Внутрішньо три ресурси детерміновано відображаються у “gas”.
Хоча система складна і має певні відмінності від Ethereum, якщо розробники використовують правильну оцінку gas, а не жорстко закодовані значення, ці відмінності не впливають на реальне використання.
Завдяки цьому механізму ми зберігаємо сумісність з Ethereum і забезпечуємо необхідний захист смарт-контрактів від DOS-атак.
Три приклади, що демонструють можливості Revive і Polkadot Hub
Далі хочу повернутися до загальної картини Polkadot Hub.
Тут варто згадати важливий проєкт: Asset Hub Migration (міграція центру активів). Його мета — закласти фундамент для Polkadot Hub, щоб стейкінг, баланси, активи та управління працювали в єдиному середовищі.
Asset Hub Migration завершився зовсім нещодавно, буквально кілька тижнів тому.

Тепер усе готово, і Revive може повністю розкрити свої можливості у цьому середовищі.
Це ідеальне середовище, для якого ми створювали Revive, і найкраще місце для запуску смарт-контрактів у Polkadot Hub.
Далі наведу три приклади, що ілюструють можливості Revive і Polkadot Hub.
Тепер вже очевидно: у цьому єдиному середовищі смарт-контракти можуть:
- напряму звертатися до управління та стейкінгу
- напряму працювати з нативними балансами та іншими активами
- усі операції виконуються синхронно, більше не потрібна асинхронна міжланцюгова комунікація
Перший приклад: смарт-контракт може напряму читати стан управління, реагувати на зміни пропозицій та навіть запускати власну логіку у відповідь на події управління. Все це відбувається миттєво в межах однієї системи.

Ще один приклад: PVM дозволяє працювати зі складнішими навантаженнями. Як я вже згадував, JIT-режим PVM відкриється наступного року, і тоді обчислювальна потужність буде повністю розкрита.
З PVM ви можете виконувати складні математичні обчислення на ланцюзі, що було неможливо на EVM через обмеження потужності. Наприклад, DeFi-протокол (як кредитний протокол) часто потребує складних розрахунків: переоцінки ризиків, оновлення позицій користувачів, реагування на зміни ринку тощо. Раніше ці логіки не можна було виконувати на ланцюзі, їх переносили на off-chain; але off-chain-обчислення не можна перевірити, вони не децентралізовані і вимагають довіри до третьої сторони. PVM повертає ці логіки на ланцюг, де вони виконуються децентралізовано та без довіри.

Такі протоколи навіть можуть виконувати симуляції на ланцюзі. Якщо ви хочете провести симуляцію, подивитися, що станеться у певному сценарії, тепер це можна зробити напряму на ланцюзі. Симуляції зазвичай дуже ресурсоємні, особливо з циклами, раніше це було неможливо.
Я вже згадував про криптографію. Тепер ви можете розміщувати складні криптографічні алгоритми прямо у смарт-контрактах — ці алгоритми дуже вимогливі до обчислень, і PVM ідеально підходить для цього. В криптографії особливо важливий напрямок — застосування zero-knowledge. Zero-knowledge-докази зараз дуже популярні, але через обсяг обчислень їх не можна було запускати у смарт-контрактах. З появою PVM zero-knowledge-додатки нарешті можуть бути реалізовані у смарт-контрактах.
Далі хочу поговорити про продуктові стратегії Parity.
Ви вже чули, що ми створюємо багато нових продуктів, а Revive і Polkadot Hub стануть їхньою базою. Звісно, є й інші базові рівні, але всі продукти, що потребують двигуна виконання смарт-контрактів, працюватимуть на Revive і Polkadot Hub.
Структурно це виглядає так:
- Зовнішній рівень — Polkadot Hub, у якому працює Revive;
- Ви можете обрати EVM або PVM для створення додатків залежно від потреб проекту;
- Далі — різноманітні продукти для кінцевих користувачів.

Polkadot Hub офіційно стартує у грудні
Нарешті, хочу коротко поділитися планами.
Якщо ви хочете почати розробку на Revive і Polkadot Hub, ось як це зробити.
Якщо ви хочете залишитися зі звичним підходом — наприклад, у вас вже є налагоджений процес, або ви часто використовуєте Foundry, Hardhat та інші інструменти Ethereum — просто обирайте EVM, двигун готовий до використання.
Звісно, можна обрати й PVM. Для PVM ми підготували інструменти, схожі на Foundry та Hardhat, але стандартні версії не підходять, бо не підтримують PVM і не мають компілятора PVM. Ми надали власні адаптовані версії, які використовуються майже так само.
Крім того, ви можете взаємодіяти з іншими ключовими функціями Polkadot Hub через precompiles.
Щодо запуску: Polkadot Hub і всі пов’язані компоненти будуть розгорнуті на Kusama у листопаді, це вже зовсім скоро. У грудні відбудеться офіційний запуск на основній мережі Polkadot.
Як я вже казав, уся базова робота для Revive вже виконана.
Більше розширених функцій з’явиться наступного року, особливо хочу відзначити JIT-двигун для PVM.
Ми також досліджуємо інші передові технології, наприклад, підтримку нових мов смарт-контрактів у майбутньому — про це поки не говоритиму, але слідкуйте за оновленнями.
Якщо ви хочете розробляти на Polkadot Hub і Revive, відскануйте цей QR-код.

Запрошуємо стати частиною майбутнього Parity і Polkadot! Дуже дякую всім!
Відмова від відповідальності: зміст цієї статті відображає виключно думку автора і не представляє платформу в будь-якій якості. Ця стаття не повинна бути орієнтиром під час прийняття інвестиційних рішень.
