Bitget App
Cмартторгівля для кожного
Купити криптуРинкиТоргуватиФ'ючерсиEarnWeb3ЦентрДокладніше
Торгувати
Cпот
Купуйте та продавайте крипту
Маржа
Збільшуйте капітал й ефективність коштів
Onchain
Going Onchain, without going Onchain!
Конвертація
Без комісій за транзакції та прослизання
Огляд
Launchhub
Скористайтеся перевагою на старті і почніть заробляти
Копітрейдинг
Копіюйте угоди елітних трейдерів в один клац
Боти
Простий, швидкий і надійний торговий бот на базі ШІ
Торгувати
Фʼючерси USDT-M
Фʼючерси, розрахунок за якими відбувається в USDT
Фʼючерси USDC-M
Фʼючерси, розрахунок за якими відбувається в USDC
Фʼючерси Coin-M
Фʼючерси, розрахунок за якими відбувається в різни
Огляд
Посібник з фʼючерсів
Шлях фʼючерсної торгівлі від початківця до просунутого трейдера
Фʼючерсні промоакції
На вас чекають щедрі винагороди
Bitget Earn
Різноманітні продукти для примноження ваших активів
Simple Earn
Здійснюйте депозити та зняття в будь-який час, щоб отримувати гнучкий прибуток без ризику
Ончейн Earn
Отримуйте прибуток щодня, не ризикуючи основним капіталом
Структуровані продукти Earn
Надійні фінансові інновації для подолання ринкових коливань
VIP та Управління капіталом
Преміальні послуги для розумного управління капіталом
Позики
Безстрокове кредитування з високим рівнем захисту коштів
Vitalik: нова концепція архітектури glue та coprocessor для підвищення ефективності та безпеки

Vitalik: нова концепція архітектури glue та coprocessor для підвищення ефективності та безпеки

Vitalik ButerinVitalik Buterin2025/09/04 17:45
Переглянути оригінал
-:Vitalik Buterin

З'єднувачі повинні бути оптимізовані для того, щоб бути хорошими з'єднувачами, а співпроцесори — для того, щоб бути хорошими співпроцесорами.

Клей має бути оптимізований для того, щоб бути хорошим клеєм, а співпроцесор — для того, щоб бути хорошим співпроцесором.


Оригінальна назва: «Glue and coprocessor architectures»

Автор: Vitalik Buterin, засновник Ethereum

Переклад: Deng Tong, Jinse Finance


Особлива подяка Justin Drake, Georgios Konstantopoulos, Andrej Karpathy, Michael Gao, Tarun Chitra та різним учасникам Flashbots за відгуки та коментарі.


Якщо ви з середнім рівнем деталізації проаналізуєте будь-які ресурсоємні обчислення в сучасному світі, ви знову і знову виявите одну особливість: обчислення можна розділити на дві частини:


  • Відносно невелика кількість складної, але не надто ресурсоємної «бізнес-логіки»;
  • Велика кількість інтенсивної, але високо структурованої «дорогої роботи».


Ці дві форми обчислень найкраще обробляти по-різному: перша може бути менш ефективною, але вимагає дуже високої універсальності; друга може бути менш універсальною, але повинна бути дуже ефективною.


Які приклади такого підходу існують на практиці?


Спочатку давайте розглянемо середовище, з яким я найбільше знайомий: Ethereum Virtual Machine (EVM). Ось нещодавній geth debug trace моєї транзакції в Ethereum: оновлення IPFS-хешу мого блогу на ENS. Ця транзакція спожила загалом 46924 gas, які можна класифікувати наступним чином:


  • Базова вартість: 21,000
  • Дані виклику: 1,556
  • Виконання EVM: 24,368
  • Операційний код SLOAD: 6,400
  • Операційний код SSTORE: 10,100
  • Операційний код LOG: 2,149
  • Інше: 6,719


Vitalik: нова концепція архітектури glue та coprocessor для підвищення ефективності та безпеки image 0

Трасування EVM для оновлення ENS-хешу. Передостанній стовпець — споживання gas.


Мораль цієї історії: більшість виконання (якщо брати лише EVM — близько 73%, якщо враховувати базову вартість, що покриває обчислення — близько 85%) зосереджена на дуже невеликій кількості структурованих дорогих операцій: читання та запис у сховище, логування та криптографія (базова вартість включає 3000 для оплати перевірки підпису, EVM також включає 272 для оплати хешування). Решта виконання — це «бізнес-логіка»: перестановка calldata для отримання ID запису, який я намагаюся встановити, і хешу, на який я його встановлюю, тощо. У токен-трансферах це включає додавання та віднімання балансів, у більш складних додатках це можуть бути цикли тощо.


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


Щоб краще зрозуміти цю модель, давайте розглянемо інший контекст: AI-код, написаний на Python із використанням torch.


Vitalik: нова концепція архітектури glue та coprocessor для підвищення ефективності та безпеки image 1

Пряме проходження одного блоку трансформерної моделі


Що ми тут бачимо? Ми бачимо відносно невелику кількість «бізнес-логіки», написаної на Python, яка описує структуру виконуваних операцій. На практиці буде ще один тип бізнес-логіки, який визначає такі деталі, як отримання вхідних даних і обробка вихідних. Але якщо ми заглибимося у кожну окрему операцію (self.norm, torch.cat, +, *, окремі кроки всередині self.attn...), ми побачимо векторизовані обчислення: одна й та сама операція паралельно виконується над великою кількістю значень. Як і в першому прикладі, невелика частина обчислень йде на бізнес-логіку, а основна частина — на виконання великих структурованих матричних і векторних операцій — насправді, здебільшого це просто множення матриць.


Як і у прикладі з EVM, ці два типи роботи обробляються по-різному. Вища бізнес-логіка пишеться на Python — це дуже універсальна і гнучка мова, але дуже повільна, і ми просто приймаємо неефективність, бо вона стосується лише невеликої частини загальних обчислювальних витрат. Тим часом інтенсивні операції пишуться на високо оптимізованому коді, зазвичай CUDA-коді, що виконується на GPU. Ми навіть дедалі частіше бачимо, як LLM-inference виконується на ASIC.


Сучасна програмована криптографія, така як SNARK, знову дотримується подібної моделі на двох рівнях. По-перше, доказувач може бути написаний на високорівневій мові, де важка робота виконується через векторизовані операції, як у наведеному вище AI-прикладі. Мій круговий STARK-код демонструє це. По-друге, сама програма, що виконується всередині криптографії, може бути написана так, щоб розділятися між універсальною бізнес-логікою та високо структурованою дорогою роботою.


Щоб зрозуміти, як це працює, можна подивитися на одну з останніх тенденцій у STARK-доказах. Для універсальності та зручності команди дедалі частіше створюють STARK-доказувачі для широко використовуваних мінімальних віртуальних машин, таких як RISC-V. Будь-яка програма, яку потрібно довести, може бути скомпільована у RISC-V, а доказувач може довести виконання цього коду на RISC-V.


Vitalik: нова концепція архітектури glue та coprocessor для підвищення ефективності та безпеки image 2

Діаграма з документації RiscZero


Це дуже зручно: це означає, що нам потрібно написати логіку доказу лише один раз, і з того моменту будь-яку програму, яку потрібно довести, можна написати на будь-якій «традиційній» мові програмування (наприклад, RiskZero підтримує Rust). Але є проблема: цей підхід створює великі накладні витрати. Програмована криптографія вже дуже дорога; додавання накладних витрат на виконання коду в інтерпретаторі RISC-V — це занадто багато. Тому розробники вигадали хитрість: визначити конкретні дорогі операції, які складають більшу частину обчислень (зазвичай це хешування та підписи), а потім створити спеціалізовані модулі для дуже ефективного доведення цих операцій. Потім ви просто комбінуєте неефективну, але універсальну систему доказів RISC-V із ефективною, але спеціалізованою системою доказів — і отримуєте найкраще з обох світів.


Крім ZK-SNARK, програмована криптографія, така як багатосторонні обчислення (MPC) та повністю гомоморфне шифрування (FHE), також може бути оптимізована подібним чином.


Яке загальне явище?


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


Vitalik: нова концепція архітектури glue та coprocessor для підвищення ефективності та безпеки image 3


Це спрощення: на практиці компроміс між ефективністю та універсальністю майже завжди має більше ніж два рівні. GPU та інші чипи, які в індустрії зазвичай називають «співпроцесорами», менш універсальні, ніж CPU, але універсальніші, ніж ASIC. Компроміси спеціалізації складні й залежать від прогнозів і інтуїції щодо того, які частини алгоритму залишаться незмінними через п’ять років, а які зміняться через шість місяців. У ZK-доказових архітектурах ми часто бачимо подібну багаторівневу спеціалізацію. Але для широкої моделі мислення достатньо розглядати два рівні. У багатьох обчислювальних сферах спостерігається подібна ситуація:


Vitalik: нова концепція архітектури glue та coprocessor для підвищення ефективності та безпеки image 4


З наведених вище прикладів видно, що обчислення дійсно можна розділити таким чином, і це здається природним законом. Насправді, ви можете знайти приклади спеціалізації обчислень за десятки років. Однак, я вважаю, що це розділення зростає. І на це є причини:


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


Швидкість обчислень лише нещодавно стала настільки високою, що вартість обчислень бізнес-логіки стала дійсно незначною. У такому світі оптимізація VM для виконання бізнес-логіки з метою, відмінною від ефективності, також має сенс: зручність для розробників, знайомість, безпека та інші подібні цілі. Тим часом спеціалізовані модулі «співпроцесорів» можуть і далі проектуватися для ефективності, отримуючи свою безпеку та зручність для розробників із відносно простого «інтерфейсу» з клеєм.


Стає дедалі зрозуміліше, які саме операції є найдорожчими. Це найбільш очевидно в криптографії, де найбільш ймовірно використовуються певні типи дорогих операцій: модульні обчислення, лінійні комбінації еліптичних кривих (також відомі як множинне скалярне множення), швидке перетворення Фур’є тощо. В AI це також стає дедалі очевидніше: вже понад двадцять років більшість обчислень — це «переважно множення матриць» (хоча з різною точністю). Подібні тенденції спостерігаються й в інших сферах. Порівняно з 20 роками тому, у (ресурсоємних) обчисленнях набагато менше невідомих невідомих.


Що це означає?


Ключовий момент у тому, що клей (Glue) має бути оптимізований для того, щоб бути хорошим клеєм, а співпроцесор (coprocessor) — для того, щоб бути хорошим співпроцесором. Ми можемо дослідити значення цього у кількох ключових сферах.


EVM


Віртуальні машини блокчейну (наприклад, EVM) не повинні бути ефективними, вони повинні бути знайомими. Просто додайте правильні співпроцесори (також відомі як «precompile»), і обчислення в неефективній VM насправді може бути настільки ж ефективним, як і в нативній ефективній VM. Наприклад, накладні витрати EVM через 256-бітні регістри відносно невеликі, а переваги знайомості EVM та існуючої екосистеми розробників величезні та довготривалі. Команди, які оптимізують EVM, навіть виявили, що відсутність паралелізації зазвичай не є основною перешкодою для масштабування.


Найкращий спосіб покращити EVM, ймовірно, просто (i) додати кращі precompile або спеціалізовані операційні коди — наприклад, якась комбінація EVM-MAX і SIMD може бути розумною, а також (ii) покращити розміщення сховища, наприклад, зміни Verkle tree як побічний ефект значно знижують вартість доступу до сусідніх слотів сховища.


Vitalik: нова концепція архітектури glue та coprocessor для підвищення ефективності та безпеки image 5

Оптимізація сховища у пропозиції Ethereum Verkle tree, яка групує сусідні ключі сховища разом і коригує вартість gas відповідно. Такі оптимізації, разом із кращими precompile, можуть бути важливішими, ніж зміни самої EVM.


Безпечні обчислення та відкритий hardware


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


Люди продовжують працювати над більш відкритими та безпечними альтернативами з різних сторін. Деякі обчислення дедалі частіше виконуються у довірених середовищах виконання, зокрема на телефонах користувачів, що вже підвищило безпеку користувачів. Рух за більш відкритий consumer hardware триває, і нещодавно були досягнуті певні перемоги, наприклад, ноутбук на RISC-V під Ubuntu.


Vitalik: нова концепція архітектури glue та coprocessor для підвищення ефективності та безпеки image 6

Ноутбук на RISC-V під Debian


Однак ефективність все ще є проблемою. Автор статті за наведеним вище посиланням пише:


Нові відкриті чип-дизайни, такі як RISC-V, не можуть зрівнятися з процесорними технологіями, які існують і вдосконалюються десятиліттями. Прогрес завжди має початок.


Більш параноїдальні ідеї, такі як ця конструкція комп’ютера на RISC-V на FPGA, стикаються з ще більшими накладними витратами. Але що, якщо архітектура клею та співпроцесора означає, що ці накладні витрати насправді не мають значення? Що, якщо ми приймемо, що відкриті та безпечні чипи будуть повільнішими за закриті, і навіть відмовимося від таких поширених оптимізацій, як спекулятивне виконання та передбачення гілок, якщо потрібно, але спробуємо компенсувати це, додаючи (якщо потрібно, закриті) ASIC-модулі для найбільш інтенсивних типів обчислень? Чутливі обчислення можуть виконуватися на «головному чипі», оптимізованому для безпеки, відкритості та стійкості до побічних каналів. Інтенсивніші обчислення (наприклад, ZK-докази, AI) виконуватимуться на ASIC-модулях, які знатимуть менше про виконувані обчислення (можливо, через криптографічне засліплення, у деяких випадках навіть нуль інформації).


Криптографія


Ще один ключовий момент — усе це дуже оптимістично для криптографії, особливо для програмованої криптографії, яка стає мейнстрімом. Ми вже бачили деякі надоптимізовані реалізації для певних високо структурованих обчислень у SNARK, MPC та інших налаштуваннях: накладні витрати для деяких хеш-функцій лише в кілька сотень разів перевищують пряме виконання, а накладні витрати для AI (переважно множення матриць) дуже низькі. Подальші вдосконалення, такі як GKR, можуть ще більше знизити цей рівень. Повністю універсальне виконання VM, особливо у інтерпретаторі RISC-V, може й надалі мати накладні витрати близько десяти тисяч разів, але з причин, описаних у цій статті, це не має значення: якщо найбільш інтенсивні частини обчислень обробляються окремо за допомогою ефективних спеціалізованих технологій, загальні накладні витрати залишаються контрольованими.


Vitalik: нова концепція архітектури glue та coprocessor для підвищення ефективності та безпеки image 7

Схематичне зображення MPC, спеціалізованого для множення матриць — найбільшого компонента інференсу AI-моделей. Дивіться цю статтю для деталей, зокрема про те, як зберігати конфіденційність моделі та вхідних даних.


Винятком із ідеї «клейовий шар має бути знайомим, а не ефективним» є затримка, а меншою мірою — пропускна здатність даних. Якщо обчислення включає десятки повторних інтенсивних операцій над одними й тими ж даними (як у криптографії та AI), будь-яка затримка, спричинена неефективним клейовим шаром, може стати основним вузьким місцем у часі виконання. Тому клейовий шар також має вимоги до ефективності, хоча ці вимоги більш специфічні.


Висновок


Загалом, я вважаю, що наведені вище тенденції є дуже позитивним розвитком з багатьох точок зору. По-перше, це розумний спосіб максимізувати ефективність обчислень, зберігаючи зручність для розробників, і отримати більше обох для всіх. Зокрема, спеціалізація на стороні клієнта для підвищення ефективності підвищує нашу здатність виконувати чутливі та вимогливі до продуктивності обчислення (наприклад, ZK-докази, LLM-inference) локально на апаратному забезпеченні користувача. По-друге, це створює величезне вікно можливостей для того, щоб прагнення до ефективності не шкодило іншим цінностям, найочевиднішими з яких є безпека, відкритість і простота: безпека від побічних каналів і відкритість у комп’ютерному hardware, зниження складності схем у ZK-SNARK, зниження складності у віртуальних машинах. Історично прагнення до ефективності відсувало ці інші фактори на другий план. З архітектурою клею та співпроцесора це більше не потрібно. Одна частина машини оптимізує ефективність, інша — універсальність та інші цінності, і вони працюють разом.


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


По-третє, ця тенденція відкриває можливості для менших і новіших учасників. Якщо обчислення стають менш монолітними, а більш модульними, це значно знижує бар’єр для входу. Навіть ASIC для одного типу обчислень може мати значення. Це також стосується сфери ZK-доказів та оптимізації EVM. Написання коду з майже передовою ефективністю стає простішим і доступнішим. Аудит і формальна верифікація такого коду також стають простішими і доступнішими. Нарешті, оскільки ці дуже різні обчислювальні сфери зближуються до спільних моделей, між ними з’являється більше простору для співпраці та навчання.

0

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

PoolX: Заробляйте за стейкінг
До понад 10% APR. Що більше монет у стейкінгу, то більший ваш заробіток.
Надіслати токени у стейкінг!