Паралельне виконання: Наступне покоління блокчейнів

Розширений5/10/2024, 10:43:24 AM
Дослідницький інститут Shoal Research, спеціалізується на дослідженні шифрування, проаналізував поточні пов'язані проекти в паралельній галузі блокчейн, включаючи прогрес Solana (SVM), паралельний EVM (Sei, Monad) та MoveVM (Aptos, Sui, Movement), і проаналізував виклики, з якими зіштовхнулася ця галузь, та можливості.

Прелюдія

1.0 Транзакції блокчейну

Блокчейни - це віртуальні машини, програмно-заснована обчислювальна модель, яка працює поверх розподіленої мережі фізичних комп'ютерів, до якої може приєднатися кожен, але дуже складно контролювати будь-якій окремій сутності. Концепцію блокчейна вперше було викладено на папері в славетному біткоїн-білі від Сатоші Накомото в 2008 році, як основна інфраструктура, що дозволяє криптографічно захищені безпосередні платежі в біткоїнах. Транзакції для блокчейнів - це те, що логи для соціальних медіа та інтернет-компаній; вони служать як записи діяльності для цієї конкретної мережі, основною відмінністю є те, що транзакції на блокчейні неможливі для змін і часто громадсько спостережувані.

Але що саме таке транзакція?

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

Приклад транзакції, яку може спостерігати будь-хто на блокчейн-досліднику, такому як SeiTrace

1.1 Як працюють транзакції блокчейну

Коли транзакція ініціюється, тобто Боб надсилає деякі токени Еліс, транзакція Боба транслюється в мережу базового блокчейну. Після цього кластери спеціалізованих вузлів в мережі починають перевіряти та підтверджувати транзакцію як законну. Як тільки достатня кількість цих вузлів перевірила вміст транзакції, транзакція додається до блоку разом з іншими користувацькими транзакціями. Як тільки блок заповнений, він додається до ланцюжка, отже назва 'блокчейн'. Транзакція Боба тепер є частиною безпечного та прозорого реєстру, і він і Еліс можуть перевірити його вміст.

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

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

1.1.1 Mempool

Пул пам'яті, або mempool, є поширеною функцією дизайну блокчейнів, реалізованою в традиційних мережах блокчейнів, таких як Bitcoin та Ethereum. Mempools - це просто буферні зони або 'покої очікування' для транзакцій, які ще не були додані до блоку та виконані.

Для кращого розуміння ми можемо розкласти життєвий цикл транзакції на блокчейні, який використовує мемпул;

  1. Користувач ініціює та підписує транзакцію.
  2. Спеціалізовані вузли, які беруть участь у мережі блокчейн, перевіряють вміст транзакції на законність та наявність відповідних параметрів.
  3. Після перевірки транзакція направляється до загальної пам'яті разом з іншими очікуючими транзакціями.
  4. Зрештою, залежно від комісії gas, сплаченої за транзакцію відносно інших транзакцій у мемпулі, транзакція нашого користувача, що очікує на розгляд, вибирається з кластером інших транзакцій, що очікують на розгляд, щоб сформувати наступний блок у блокчейні. На цьому етапі статус нашої транзакції буде звучати як «Успішна».
  5. Після того, як пройшов певний час або поріг, заснований на блоках, сам блок фіналізується, а транзакція стає незмінним журналом, записаним у блокчейні, який може бути підданий компрометації лише у разі атаки 51%, завдання, яке в іншому випадку дуже важко виконати.

1.1.2. Немає Mempool (Solana)

Важливо зауважити, що деякі блокчейни, такі як Solana, не використовують пам'ятку та можуть надсилати транзакції безпосередньо виробнику блоків як засіб забезпечення високої швидкості та пропускної здатності через постійне виробництво блоків.

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

  1. Користувач ініціює та підписує транзакцію для застосунку, яким вони користуються.
  2. Додаток маршрутизує інформацію про транзакцію на сервер віддаленого виклику процедури (RPC).
  3. Постачальник RPC відправляє транзакцію поточному призначеному виробнику блоків та наступним трьом виробникам; це запобіжний крок у випадку, якщо поточний лідер не може виконати транзакцію вчасно. Solana використовує розклад лідера слота, який допомагає постачальникам RPC легше маршрутизувати транзакції.
  4. Виробник блоків відправляє підписану транзакцію вузлам консенсусу для перевірки.
  5. Вузли консенсусу голосують, щоб підтвердити вміст транзакції, і після завершення статус транзакції повертається до RPC > програми > користувача як 'успішно' або 'не вдалося'.
  6. Подібно до блокчейнів на основі пам'яті, сам блок фіналізується після того, як пройшло певний час або досягнуто блоковий поріг.

1.2 Послідовне виконання

Старі блокчейни, а саме Bitcoin та Ethereum, використовують послідовний механізм виконання транзакцій. Кожна транзакція, додана до блокчейну, викликає зміну стану мережі, і ВМ структурований таким чином, щоб обробляти лише одну зміну стану одночасно з метою забезпечення безпеки.

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

Паралельне виконання

2.0 Що таке Паралельне Виконання?

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

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

Цей архітектурний стандарт застосовується до блокчейнів у багато в чому такий же спосіб, тільки що основне завдання, яке комп'ютери вирішують, - обробка та виконання транзакцій, або передача вартості від смарт-контракту A до смарт-контракту B, отже термін паралельного виконання.

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

Для простішої аналогії. розгляньте ефективність продуктового магазину з кількома поличками для покупців, які розраховуються. проти лише одного для всіх.

Чому важливе паралельне виконання?

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

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

Як працює паралельне виконання?

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

Паралельне виконання на блокчейнах можна класифікувати як детерміноване або оптимістичне. Детерміноване паралельне виконання, використовуване блокчейнами, такими як Solana, вимагає, щоб транзакції заздалегідь вказували всі пам'яті залежності, тобто які частини глобального стану вони хочуть використовувати заздалегідь. Хоча цей крок створює додаткове навантаження для розробників, більш широко він дозволяє мережі сортувати та ідентифікувати транзакції, які не конфліктують до виконання, створюючи оптимізовану систему, яка є передбачуваною та ефективною. Натомість, оптимістичне паралельне виконання структуроване таким чином, щоб обробляти всі транзакції паралельно, працюючи на передумові, що конфліктів немає. Це дозволяє базовому блокчейну забезпечувати швидше виконання транзакцій, хоча за рахунок можливого повторного виконання після конфлікту. Якщо виявлено, що подано дві конфліктні транзакції, система може переробити та повторно виконати їх паралельно або послідовно.

Для кращого розуміння наслідків цих дизайнерських витонченостей корисно проаналізувати паралельне виконання через призму команд, що сьогодні просувають фронт паралельного виконання.

Стан Паралельного Виконання Сьогодні

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

3.1 Віртуальна машина Solana (SVM)

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

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

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

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

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

Благодаря своїй паралельній архітектурі, Solana може обробляти велику кількість транзакцій і все ж виконувати їх швидко, надаючи транзакціям майже миттєву остаточність. Сьогодні Solana обробляє від 2,000 до 10,000 транзакцій на секунду (TPS) в середньому. Крім того, використання SVM повільно, але впевнено розширюється, оскільки команди, такі як Eclipse, запускають інфраструктуру Layer 2, яка спрямована на використання SVM як середовища виконання.

3.2 Паралельний EVM

Паралельний EVM описує нове середовище виконання для блокчейнів, яке має на меті поєднати "краще з обох світів" з дизайнами Solana та Ethereum, зі швидкістю та продуктивністю Solana, та безпекою та ліквідністю Ethereum. Шляхом обробки транзакцій паралельно, а не послідовно, згідно з традиційним дизайном EVM, паралельні EVM дають розробникам можливість будувати додатки на високопродуктивній мережі, зберігаючи зв'язки з ліквідністю та інструментарієм для розробників EVM.

3.2.1 Мережа Sei

Sei Network - це сумісна з EVM, відкрита блокчейн-платформа 1-го рівня, на якій розміщено різноманітні децентралізовані додатки, побудовані на високій продуктивності. Sei був створений для забезпечення швидкості за низьку ціну для користувачів та розробників, причому паралельне виконання є ключовою складовою для досягнення цієї продуктивності та UX. На даний момент Sei надає час підтвердження блоку 390 мс і обробив понад 1,9 млрд транзакцій на своєму тихоокеанському головному мережеві.

Спочатку Sei використовувала детерміновану паралельну модель виконання, де розумні контракти заздалегідь оголошували свій необхідний доступ до стану, щоб система могла одночасно виконувати несуперечливі транзакції. З початком оновлення V2, Sei переходить до оптимістичної паралельної моделі, що означає, що всі транзакції будуть оброблятися паралельно після їх подання в мережу (етап виконання), а потім будуть переглядатися на предмет конфліктної інформації з попередніми транзакціями (етап перевірки). У випадку двох або більше конфліктуючих транзакцій, тобто транзакцій, які намагаються отримати доступ до того ж мережевого стану, Sei визначає цю точку конфлікту, а потім перезапускає транзакції паралельно або послідовно в залежності від характеру конфлікту.

Для зберігання та підтримки даних про транзакції Sei також введе SeiDB, власну базу даних, яка спрямована на виправлення недоліків у v1 шляхом оптимізації для паралельного виконання. SeiDB має на меті зменшити накладні витрати на зберігання зайвих даних і забезпечити ефективне використання диска для покращення мережевої продуктивності. V2 зменшує кількість метаданих, необхідних для відстеження та зберігання, та дозволяє вести журнал попереднього запису для допомоги у відновленні даних у разі аварії.

Наприкінці, Sei також недавно оголосив про запуск свого Parallel Stack, відкритої рамки для впровадження рішень масштабування 2-го рівня, тобто rollups, для використання та отримання користі від паралельного виконання.

3.2.2 Монада

Monad - це майбутній паралельний блокчейн рівня 1 EVM, який принесе повну сумісність з байткодом та RPC для додатків та інфраструктури Ethereum. За допомогою численних інноваційних технічних реалізацій Monad має на меті забезпечити більш інтерактивний досвід, ніж існуючі блокчейни, знижуючи при цьому витрати на транзакції за рахунок оптимізації продуктивності та переносності, з часом блоку 1 секунда та остаточністю до 10 000 TPS.

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

Важливо зауважити, що для підтримки синхронізації з Ethereum Monad упорядковує транзакції в блоку в лінійному порядку, при цьому кожна транзакція оновлюється послідовно.

Для того щоб зберігати та отримувати дані блокчейну ефективніше, ніж це пропонує поточний стан клієнтів Ethereum, Monad створив власну власну MonadDB, спеціально побудовану для блокчейнів. Monad DB використовує передові функції ядра Linux для ефективних асинхронних дисків, усуваючи обмеження синхронного введення/виведення. MonadDB пропонує асинхронний доступ до введення/виведення (async I/O), ключову функцію для можливості паралельного виконання, де система може почати обробку наступної транзакції, чекаючи на зчитування стану попередньої транзакції.

Для простого аналогії, розгляньте приготування багатогранного обіду (спагеті з котлетами). Кроки, які включають 1) приготування соусу, 2) приготування котлет і c) варіння пасти. Ефективний шеф-кухар почав би з кип'ятіння води для пасти, потім підготовки інгредієнтів для соусу, потім закидання пасти у зараз киплячу воду, потім готування соусу, і, нарешті, котлет, на відміну від виконання кожного кроку по черзі, завершуючи одне завдання повністю перед переходом до наступного.

3.3 Перемістити

Move - це мова програмування, спочатку розроблена командою Facebook у 2019 році для їхнього тепер вже неіснуючого проєкту Diem. Move була розроблена для обробки даних розумного контракту та транзакцій надійним способом, усуваючи вектори атак, властиві іншим мовам, такі як атаки на повторність.

MoveVM служить ​​в якості внутрішнього середовища виконання для блокчейнів на основі Move, використовуючи паралелізацію для забезпечення швидкості виконання транзакцій та загальної ефективності.

3.3.1 Aptos

Aptos - це блокчейн на основі Move, розроблений учасниками колишнього проекту Diem, який реалізує паралельне виконання для створення високопродуктивного середовища для розробників додатків. Aptos використовує Block-STM, модифіковану реалізацію механізму контролю конкурентності STM (Software Transactional Memory).

Block-STM є багатопотоковим паралельним двигуном виконання, який дозволяє оптимістичне паралельне виконання. Транзакції попередньо впорядковані та стратегічно послідовно розташовані всередині блоків, що є ключовим для ефективного вирішення конфліктів та повторного виконання цих транзакцій. Дослідження, проведені Aptos, показали, що за допомогою паралелізації Block-STM може бути теоретично підтримано до 160K TPS.

3.3.2 Sui

Подібно до Aptos, Sui - це блокчейн першого рівня, розроблений колишніми учасниками проєкту Diem, який використовує мову Move. Однак Sui використовує спеціальну реалізацію Move, яка змінює модель зберігання та дозволи на активи з оригінального дизайну Diem. Зокрема це дозволяє Sui використовувати модель зберігання стану для представлення незалежних транзакцій у вигляді об'єктів. Кожен об'єкт має унікальний ідентифікатор в середовищі виконання Sui, і це дозволяє системі легко ідентифікувати неконфліктні транзакції та обробляти їх паралельно.

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

3.3.3 Рух лабораторій

Що таке Рух?

Movement будує набір інструментів для розробників та сервісів інфраструктури блокчейну для забезпечення можливості розробників легко отримувати переваги від роботи на Move. Діючи як провайдер послуг виконання-як-сервісу, схожого на AWS для розробників Move, Movement реалізує паралелизацію як основну конструктивну особливість для забезпечення вищої пропускної здатності та загальної ефективності мережі. MoveVM є модульним середовищем виконання, яке дозволяє блокчейн-мережам розширюватися та налаштовувати свої можливості обробки транзакцій за потребою для підтримки зростаючого обсягу транзакцій, підвищуючи їх здатності обробляти та виконувати транзакції паралельно.

Архітектура MoveVM

Рух також запустить M2, ZK-rollup, який буде сумісний з EVM та клієнтами Move. M2 успадкує двигун паралелізації Блок-STM та очікується, що в результаті надасть десятки тисяч TPS.

Заключні думки

4.1 Виклики для паралельних систем сьогодні

Деякі важливі питання та розгляди, що потрібно обміркувати щодо розвитку паралельних блокчейнів;

  • Які компроміси робить мережа, щоб забезпечити кращу продуктивність через паралельне виконання?
    • Менше валідаторів, які забезпечують мережу, дозволяє швидшу перевірку та виконання операцій, але це ставить під загрозу безпеку блокчейну тим, що для валідаторів стає легше узгоджуватися проти мережі?
    • Чи є значна кількість валідаторів, розташованих разом? Це загальна стратегія для мінімізації затримок як у криптографічних, так і в некриптографічних системах, але що станеться з мережею у випадку компрометації центру обробки цих конкретних даних?
  • Для оптимістичних паралельних систем, чи створює процес повторного виконання недійсних транзакцій який-небудь bottleneck при масштабуванні мережі? Як цю ефективність тестують і оцінюють?

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

4.2 Перспективи / Можливості в майбутньому

Історія комп'ютерів показала, що паралельні системи зазвичай є ефективнішими та масштабованішими з часом, ніж послідовні системи. Зростання паралельних блокчейнів після Solana підкреслює, що цей принцип також стосується криптінфраструктури. Навіть Віталік натякнув на паралелізаціяяк один з потенційних ключових рішень для покращення масштабованості EVM rollups нещодавно. Узагальнюючи, зростання прийому криптографії / блокчейну вимагає систем, які є більш оптимальними, ніж ті, що доступні сьогодні, включаючи паралельні блокчейни. Недавні проблеми мережі Solana підкреслили, що є багато місця для покращення розробки паралельних блокчейнів. Оскільки все більше команд намагаються розширити межі фронту onchain та залучити наступну масову когорту користувачів та прийняття до блокчейн-орієнтованих додатків та екосистем, паралельні моделі виконання надають інтуїтивну структуру для побудови систем, які можуть ефективно керувати масштабами мережевої активності на такому рівні, який легко відповідає компаніям Web2.

Список використаних джерел

Disclaimer:

  1. Цю статтю перепечатано з [ мілина], Переслати оригінальну назву «Паралельне виконання: наступне покоління блокчейнів», Усі авторські права належать оригінальному автору [ПАУЛ ТІМОФЄЄВ, МАЙК ДЖИН, та GABE TRAMBLE]. Якщо є заперечення проти цього перепублікування, будь ласка, зв'яжіться з Gate Навчитисякоманда, і вони швидко з цим впораються.

  2. Відповідальність за відмови: Погляди та думки, висловлені в цій статті, є виключно тими, що належать автору і не є жодним інвестиційним порадою.

  3. Переклади статті на інші мови виконуються командою Gate Learn. Якщо не зазначено інше, копіювання, поширення або плагіатування перекладених статей заборонені.

Паралельне виконання: Наступне покоління блокчейнів

Розширений5/10/2024, 10:43:24 AM
Дослідницький інститут Shoal Research, спеціалізується на дослідженні шифрування, проаналізував поточні пов'язані проекти в паралельній галузі блокчейн, включаючи прогрес Solana (SVM), паралельний EVM (Sei, Monad) та MoveVM (Aptos, Sui, Movement), і проаналізував виклики, з якими зіштовхнулася ця галузь, та можливості.

Прелюдія

1.0 Транзакції блокчейну

Блокчейни - це віртуальні машини, програмно-заснована обчислювальна модель, яка працює поверх розподіленої мережі фізичних комп'ютерів, до якої може приєднатися кожен, але дуже складно контролювати будь-якій окремій сутності. Концепцію блокчейна вперше було викладено на папері в славетному біткоїн-білі від Сатоші Накомото в 2008 році, як основна інфраструктура, що дозволяє криптографічно захищені безпосередні платежі в біткоїнах. Транзакції для блокчейнів - це те, що логи для соціальних медіа та інтернет-компаній; вони служать як записи діяльності для цієї конкретної мережі, основною відмінністю є те, що транзакції на блокчейні неможливі для змін і часто громадсько спостережувані.

Але що саме таке транзакція?

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

Приклад транзакції, яку може спостерігати будь-хто на блокчейн-досліднику, такому як SeiTrace

1.1 Як працюють транзакції блокчейну

Коли транзакція ініціюється, тобто Боб надсилає деякі токени Еліс, транзакція Боба транслюється в мережу базового блокчейну. Після цього кластери спеціалізованих вузлів в мережі починають перевіряти та підтверджувати транзакцію як законну. Як тільки достатня кількість цих вузлів перевірила вміст транзакції, транзакція додається до блоку разом з іншими користувацькими транзакціями. Як тільки блок заповнений, він додається до ланцюжка, отже назва 'блокчейн'. Транзакція Боба тепер є частиною безпечного та прозорого реєстру, і він і Еліс можуть перевірити його вміст.

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

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

1.1.1 Mempool

Пул пам'яті, або mempool, є поширеною функцією дизайну блокчейнів, реалізованою в традиційних мережах блокчейнів, таких як Bitcoin та Ethereum. Mempools - це просто буферні зони або 'покої очікування' для транзакцій, які ще не були додані до блоку та виконані.

Для кращого розуміння ми можемо розкласти життєвий цикл транзакції на блокчейні, який використовує мемпул;

  1. Користувач ініціює та підписує транзакцію.
  2. Спеціалізовані вузли, які беруть участь у мережі блокчейн, перевіряють вміст транзакції на законність та наявність відповідних параметрів.
  3. Після перевірки транзакція направляється до загальної пам'яті разом з іншими очікуючими транзакціями.
  4. Зрештою, залежно від комісії gas, сплаченої за транзакцію відносно інших транзакцій у мемпулі, транзакція нашого користувача, що очікує на розгляд, вибирається з кластером інших транзакцій, що очікують на розгляд, щоб сформувати наступний блок у блокчейні. На цьому етапі статус нашої транзакції буде звучати як «Успішна».
  5. Після того, як пройшов певний час або поріг, заснований на блоках, сам блок фіналізується, а транзакція стає незмінним журналом, записаним у блокчейні, який може бути підданий компрометації лише у разі атаки 51%, завдання, яке в іншому випадку дуже важко виконати.

1.1.2. Немає Mempool (Solana)

Важливо зауважити, що деякі блокчейни, такі як Solana, не використовують пам'ятку та можуть надсилати транзакції безпосередньо виробнику блоків як засіб забезпечення високої швидкості та пропускної здатності через постійне виробництво блоків.

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

  1. Користувач ініціює та підписує транзакцію для застосунку, яким вони користуються.
  2. Додаток маршрутизує інформацію про транзакцію на сервер віддаленого виклику процедури (RPC).
  3. Постачальник RPC відправляє транзакцію поточному призначеному виробнику блоків та наступним трьом виробникам; це запобіжний крок у випадку, якщо поточний лідер не може виконати транзакцію вчасно. Solana використовує розклад лідера слота, який допомагає постачальникам RPC легше маршрутизувати транзакції.
  4. Виробник блоків відправляє підписану транзакцію вузлам консенсусу для перевірки.
  5. Вузли консенсусу голосують, щоб підтвердити вміст транзакції, і після завершення статус транзакції повертається до RPC > програми > користувача як 'успішно' або 'не вдалося'.
  6. Подібно до блокчейнів на основі пам'яті, сам блок фіналізується після того, як пройшло певний час або досягнуто блоковий поріг.

1.2 Послідовне виконання

Старі блокчейни, а саме Bitcoin та Ethereum, використовують послідовний механізм виконання транзакцій. Кожна транзакція, додана до блокчейну, викликає зміну стану мережі, і ВМ структурований таким чином, щоб обробляти лише одну зміну стану одночасно з метою забезпечення безпеки.

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

Паралельне виконання

2.0 Що таке Паралельне Виконання?

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

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

Цей архітектурний стандарт застосовується до блокчейнів у багато в чому такий же спосіб, тільки що основне завдання, яке комп'ютери вирішують, - обробка та виконання транзакцій, або передача вартості від смарт-контракту A до смарт-контракту B, отже термін паралельного виконання.

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

Для простішої аналогії. розгляньте ефективність продуктового магазину з кількома поличками для покупців, які розраховуються. проти лише одного для всіх.

Чому важливе паралельне виконання?

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

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

Як працює паралельне виконання?

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

Паралельне виконання на блокчейнах можна класифікувати як детерміноване або оптимістичне. Детерміноване паралельне виконання, використовуване блокчейнами, такими як Solana, вимагає, щоб транзакції заздалегідь вказували всі пам'яті залежності, тобто які частини глобального стану вони хочуть використовувати заздалегідь. Хоча цей крок створює додаткове навантаження для розробників, більш широко він дозволяє мережі сортувати та ідентифікувати транзакції, які не конфліктують до виконання, створюючи оптимізовану систему, яка є передбачуваною та ефективною. Натомість, оптимістичне паралельне виконання структуроване таким чином, щоб обробляти всі транзакції паралельно, працюючи на передумові, що конфліктів немає. Це дозволяє базовому блокчейну забезпечувати швидше виконання транзакцій, хоча за рахунок можливого повторного виконання після конфлікту. Якщо виявлено, що подано дві конфліктні транзакції, система може переробити та повторно виконати їх паралельно або послідовно.

Для кращого розуміння наслідків цих дизайнерських витонченостей корисно проаналізувати паралельне виконання через призму команд, що сьогодні просувають фронт паралельного виконання.

Стан Паралельного Виконання Сьогодні

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

3.1 Віртуальна машина Solana (SVM)

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

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

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

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

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

Благодаря своїй паралельній архітектурі, Solana може обробляти велику кількість транзакцій і все ж виконувати їх швидко, надаючи транзакціям майже миттєву остаточність. Сьогодні Solana обробляє від 2,000 до 10,000 транзакцій на секунду (TPS) в середньому. Крім того, використання SVM повільно, але впевнено розширюється, оскільки команди, такі як Eclipse, запускають інфраструктуру Layer 2, яка спрямована на використання SVM як середовища виконання.

3.2 Паралельний EVM

Паралельний EVM описує нове середовище виконання для блокчейнів, яке має на меті поєднати "краще з обох світів" з дизайнами Solana та Ethereum, зі швидкістю та продуктивністю Solana, та безпекою та ліквідністю Ethereum. Шляхом обробки транзакцій паралельно, а не послідовно, згідно з традиційним дизайном EVM, паралельні EVM дають розробникам можливість будувати додатки на високопродуктивній мережі, зберігаючи зв'язки з ліквідністю та інструментарієм для розробників EVM.

3.2.1 Мережа Sei

Sei Network - це сумісна з EVM, відкрита блокчейн-платформа 1-го рівня, на якій розміщено різноманітні децентралізовані додатки, побудовані на високій продуктивності. Sei був створений для забезпечення швидкості за низьку ціну для користувачів та розробників, причому паралельне виконання є ключовою складовою для досягнення цієї продуктивності та UX. На даний момент Sei надає час підтвердження блоку 390 мс і обробив понад 1,9 млрд транзакцій на своєму тихоокеанському головному мережеві.

Спочатку Sei використовувала детерміновану паралельну модель виконання, де розумні контракти заздалегідь оголошували свій необхідний доступ до стану, щоб система могла одночасно виконувати несуперечливі транзакції. З початком оновлення V2, Sei переходить до оптимістичної паралельної моделі, що означає, що всі транзакції будуть оброблятися паралельно після їх подання в мережу (етап виконання), а потім будуть переглядатися на предмет конфліктної інформації з попередніми транзакціями (етап перевірки). У випадку двох або більше конфліктуючих транзакцій, тобто транзакцій, які намагаються отримати доступ до того ж мережевого стану, Sei визначає цю точку конфлікту, а потім перезапускає транзакції паралельно або послідовно в залежності від характеру конфлікту.

Для зберігання та підтримки даних про транзакції Sei також введе SeiDB, власну базу даних, яка спрямована на виправлення недоліків у v1 шляхом оптимізації для паралельного виконання. SeiDB має на меті зменшити накладні витрати на зберігання зайвих даних і забезпечити ефективне використання диска для покращення мережевої продуктивності. V2 зменшує кількість метаданих, необхідних для відстеження та зберігання, та дозволяє вести журнал попереднього запису для допомоги у відновленні даних у разі аварії.

Наприкінці, Sei також недавно оголосив про запуск свого Parallel Stack, відкритої рамки для впровадження рішень масштабування 2-го рівня, тобто rollups, для використання та отримання користі від паралельного виконання.

3.2.2 Монада

Monad - це майбутній паралельний блокчейн рівня 1 EVM, який принесе повну сумісність з байткодом та RPC для додатків та інфраструктури Ethereum. За допомогою численних інноваційних технічних реалізацій Monad має на меті забезпечити більш інтерактивний досвід, ніж існуючі блокчейни, знижуючи при цьому витрати на транзакції за рахунок оптимізації продуктивності та переносності, з часом блоку 1 секунда та остаточністю до 10 000 TPS.

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

Важливо зауважити, що для підтримки синхронізації з Ethereum Monad упорядковує транзакції в блоку в лінійному порядку, при цьому кожна транзакція оновлюється послідовно.

Для того щоб зберігати та отримувати дані блокчейну ефективніше, ніж це пропонує поточний стан клієнтів Ethereum, Monad створив власну власну MonadDB, спеціально побудовану для блокчейнів. Monad DB використовує передові функції ядра Linux для ефективних асинхронних дисків, усуваючи обмеження синхронного введення/виведення. MonadDB пропонує асинхронний доступ до введення/виведення (async I/O), ключову функцію для можливості паралельного виконання, де система може почати обробку наступної транзакції, чекаючи на зчитування стану попередньої транзакції.

Для простого аналогії, розгляньте приготування багатогранного обіду (спагеті з котлетами). Кроки, які включають 1) приготування соусу, 2) приготування котлет і c) варіння пасти. Ефективний шеф-кухар почав би з кип'ятіння води для пасти, потім підготовки інгредієнтів для соусу, потім закидання пасти у зараз киплячу воду, потім готування соусу, і, нарешті, котлет, на відміну від виконання кожного кроку по черзі, завершуючи одне завдання повністю перед переходом до наступного.

3.3 Перемістити

Move - це мова програмування, спочатку розроблена командою Facebook у 2019 році для їхнього тепер вже неіснуючого проєкту Diem. Move була розроблена для обробки даних розумного контракту та транзакцій надійним способом, усуваючи вектори атак, властиві іншим мовам, такі як атаки на повторність.

MoveVM служить ​​в якості внутрішнього середовища виконання для блокчейнів на основі Move, використовуючи паралелізацію для забезпечення швидкості виконання транзакцій та загальної ефективності.

3.3.1 Aptos

Aptos - це блокчейн на основі Move, розроблений учасниками колишнього проекту Diem, який реалізує паралельне виконання для створення високопродуктивного середовища для розробників додатків. Aptos використовує Block-STM, модифіковану реалізацію механізму контролю конкурентності STM (Software Transactional Memory).

Block-STM є багатопотоковим паралельним двигуном виконання, який дозволяє оптимістичне паралельне виконання. Транзакції попередньо впорядковані та стратегічно послідовно розташовані всередині блоків, що є ключовим для ефективного вирішення конфліктів та повторного виконання цих транзакцій. Дослідження, проведені Aptos, показали, що за допомогою паралелізації Block-STM може бути теоретично підтримано до 160K TPS.

3.3.2 Sui

Подібно до Aptos, Sui - це блокчейн першого рівня, розроблений колишніми учасниками проєкту Diem, який використовує мову Move. Однак Sui використовує спеціальну реалізацію Move, яка змінює модель зберігання та дозволи на активи з оригінального дизайну Diem. Зокрема це дозволяє Sui використовувати модель зберігання стану для представлення незалежних транзакцій у вигляді об'єктів. Кожен об'єкт має унікальний ідентифікатор в середовищі виконання Sui, і це дозволяє системі легко ідентифікувати неконфліктні транзакції та обробляти їх паралельно.

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

3.3.3 Рух лабораторій

Що таке Рух?

Movement будує набір інструментів для розробників та сервісів інфраструктури блокчейну для забезпечення можливості розробників легко отримувати переваги від роботи на Move. Діючи як провайдер послуг виконання-як-сервісу, схожого на AWS для розробників Move, Movement реалізує паралелизацію як основну конструктивну особливість для забезпечення вищої пропускної здатності та загальної ефективності мережі. MoveVM є модульним середовищем виконання, яке дозволяє блокчейн-мережам розширюватися та налаштовувати свої можливості обробки транзакцій за потребою для підтримки зростаючого обсягу транзакцій, підвищуючи їх здатності обробляти та виконувати транзакції паралельно.

Архітектура MoveVM

Рух також запустить M2, ZK-rollup, який буде сумісний з EVM та клієнтами Move. M2 успадкує двигун паралелізації Блок-STM та очікується, що в результаті надасть десятки тисяч TPS.

Заключні думки

4.1 Виклики для паралельних систем сьогодні

Деякі важливі питання та розгляди, що потрібно обміркувати щодо розвитку паралельних блокчейнів;

  • Які компроміси робить мережа, щоб забезпечити кращу продуктивність через паралельне виконання?
    • Менше валідаторів, які забезпечують мережу, дозволяє швидшу перевірку та виконання операцій, але це ставить під загрозу безпеку блокчейну тим, що для валідаторів стає легше узгоджуватися проти мережі?
    • Чи є значна кількість валідаторів, розташованих разом? Це загальна стратегія для мінімізації затримок як у криптографічних, так і в некриптографічних системах, але що станеться з мережею у випадку компрометації центру обробки цих конкретних даних?
  • Для оптимістичних паралельних систем, чи створює процес повторного виконання недійсних транзакцій який-небудь bottleneck при масштабуванні мережі? Як цю ефективність тестують і оцінюють?

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

4.2 Перспективи / Можливості в майбутньому

Історія комп'ютерів показала, що паралельні системи зазвичай є ефективнішими та масштабованішими з часом, ніж послідовні системи. Зростання паралельних блокчейнів після Solana підкреслює, що цей принцип також стосується криптінфраструктури. Навіть Віталік натякнув на паралелізаціяяк один з потенційних ключових рішень для покращення масштабованості EVM rollups нещодавно. Узагальнюючи, зростання прийому криптографії / блокчейну вимагає систем, які є більш оптимальними, ніж ті, що доступні сьогодні, включаючи паралельні блокчейни. Недавні проблеми мережі Solana підкреслили, що є багато місця для покращення розробки паралельних блокчейнів. Оскільки все більше команд намагаються розширити межі фронту onchain та залучити наступну масову когорту користувачів та прийняття до блокчейн-орієнтованих додатків та екосистем, паралельні моделі виконання надають інтуїтивну структуру для побудови систем, які можуть ефективно керувати масштабами мережевої активності на такому рівні, який легко відповідає компаніям Web2.

Список використаних джерел

Disclaimer:

  1. Цю статтю перепечатано з [ мілина], Переслати оригінальну назву «Паралельне виконання: наступне покоління блокчейнів», Усі авторські права належать оригінальному автору [ПАУЛ ТІМОФЄЄВ, МАЙК ДЖИН, та GABE TRAMBLE]. Якщо є заперечення проти цього перепублікування, будь ласка, зв'яжіться з Gate Навчитисякоманда, і вони швидко з цим впораються.

  2. Відповідальність за відмови: Погляди та думки, висловлені в цій статті, є виключно тими, що належать автору і не є жодним інвестиційним порадою.

  3. Переклади статті на інші мови виконуються командою Gate Learn. Якщо не зазначено інше, копіювання, поширення або плагіатування перекладених статей заборонені.

今すぐ始める
登録して、
$100
のボーナスを獲得しよう!