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

Розширений5/20/2024, 4:55:29 AM
У статті досліджується застосування технології паралельного виконання в домені блокчейну, зокрема те, як вона підвищує ефективність транзакцій, знижує витрати та покращує взаємодію з користувачем. Solana, як піонер паралельного виконання, демонструє свої переваги у швидкості обробки та пропускній здатності. Стаття містить детальне пояснення того, як працюють блокчейн-транзакції, включаючи життєвий цикл транзакцій, роль мемпулу та роботу блокчейнів без мемпулу. Паралельне виконання дозволяє блокчейнам обробляти кілька неконфліктних транзакцій одночасно, тим самим збільшуючи пропускну здатність мережі та масштабованість. У статті також обговорюються різні моделі паралельного виконання, включаючи детерміновані та оптимістичні моделі, а також аналізуються команди та проекти, що сприяють паралельному виконанню на ринку, такі як Solana, Parallel EVM, Sei Network, Monad, Move language, Aptos, Sui та Movement Labs.

Прелюдія

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

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

Дякую за читання Shoal Research! Підпишіться безкоштовно, щоб отримувати нові повідомлення та підтримати мою роботу.

Підписатися

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

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


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

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

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

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

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

1.1.1 Mempool

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

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

  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За визначенням паралельне обчислення означає використання одночасно кількох обчислювальних елементів для вирішення операції, де велике та складне завдання ділиться на менші, щоб вони були виконані ефективніше, ніж у послідовному порядку.

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

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

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

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

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

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

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

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

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

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

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

Стан паралельного виконання сьогодні

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

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

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

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

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

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

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

Завдяки своїй паралельній архітектурі, Solana може обробляти велику кількість транзакцій і все ще виконувати їх швидко, що надає транзакціям майже миттєву остаточність. Сьогодні Solana обробляє в середньому від 2 000 до 10 000 транзакцій на секунду (TPS). Крім того, випадки використання для SVM повільно, але впевнено розширюються, оскільки команди, такі як Eclipse, впроваджують інфраструктуру 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-го рівня, який надає повну сумісність байткоду та RPC для додатків та інфраструктури Ethereum. Через численні інноваційні технічні реалізації Monad має на меті надавати більш інтерактивні враження, ніж існуючі блокчейни, зберігаючи при цьому низькі витрати на транзакції за рахунок оптимізації продуктивності та переносності, з часом блоку 1 секунда та остаточністю до 10 000 транзакцій на секунду.

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

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

3.3.2 Sui

Подібно до Aptos, Sui - це блокчейн рівня 1, розроблений колишніми учасниками проєкту 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 успадкує двигун паралелізації Block-STM та очікується, що в результаті буде досягнуто десятки тисяч TPS.

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

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

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

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

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

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

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

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

Розкриття. Усі дописи належать авторам, а не поглядам роботодавця. Ця публікація була спонсорована Aster Foundation. Хоча Shoal Research отримала фінансування на цю ініціативу, спонсори не впливають на аналітичний контент. У Shoal Research ми прагнемо забезпечити об'єктивність і незалежність усього контенту. Наші внутрішні процеси перевірки відповідають найвищим стандартам доброчесності, а всі потенційні конфлікти інтересів розкриваються та суворо контролюються для підтримки достовірності та неупередженості наших досліджень.

Disclaimer:

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

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

Розширений5/20/2024, 4:55:29 AM
У статті досліджується застосування технології паралельного виконання в домені блокчейну, зокрема те, як вона підвищує ефективність транзакцій, знижує витрати та покращує взаємодію з користувачем. Solana, як піонер паралельного виконання, демонструє свої переваги у швидкості обробки та пропускній здатності. Стаття містить детальне пояснення того, як працюють блокчейн-транзакції, включаючи життєвий цикл транзакцій, роль мемпулу та роботу блокчейнів без мемпулу. Паралельне виконання дозволяє блокчейнам обробляти кілька неконфліктних транзакцій одночасно, тим самим збільшуючи пропускну здатність мережі та масштабованість. У статті також обговорюються різні моделі паралельного виконання, включаючи детерміновані та оптимістичні моделі, а також аналізуються команди та проекти, що сприяють паралельному виконанню на ринку, такі як Solana, Parallel EVM, Sei Network, Monad, Move language, Aptos, Sui та Movement Labs.

Прелюдія

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

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

Дякую за читання Shoal Research! Підпишіться безкоштовно, щоб отримувати нові повідомлення та підтримати мою роботу.

Підписатися

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

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


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

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

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

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

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

1.1.1 Mempool

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

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

  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За визначенням паралельне обчислення означає використання одночасно кількох обчислювальних елементів для вирішення операції, де велике та складне завдання ділиться на менші, щоб вони були виконані ефективніше, ніж у послідовному порядку.

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

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

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

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

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

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

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

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

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

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

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

Стан паралельного виконання сьогодні

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

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

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

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

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

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

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

Завдяки своїй паралельній архітектурі, Solana може обробляти велику кількість транзакцій і все ще виконувати їх швидко, що надає транзакціям майже миттєву остаточність. Сьогодні Solana обробляє в середньому від 2 000 до 10 000 транзакцій на секунду (TPS). Крім того, випадки використання для SVM повільно, але впевнено розширюються, оскільки команди, такі як Eclipse, впроваджують інфраструктуру 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-го рівня, який надає повну сумісність байткоду та RPC для додатків та інфраструктури Ethereum. Через численні інноваційні технічні реалізації Monad має на меті надавати більш інтерактивні враження, ніж існуючі блокчейни, зберігаючи при цьому низькі витрати на транзакції за рахунок оптимізації продуктивності та переносності, з часом блоку 1 секунда та остаточністю до 10 000 транзакцій на секунду.

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

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

3.3.2 Sui

Подібно до Aptos, Sui - це блокчейн рівня 1, розроблений колишніми учасниками проєкту 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 успадкує двигун паралелізації Block-STM та очікується, що в результаті буде досягнуто десятки тисяч TPS.

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

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

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

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

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

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

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

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

Розкриття. Усі дописи належать авторам, а не поглядам роботодавця. Ця публікація була спонсорована Aster Foundation. Хоча Shoal Research отримала фінансування на цю ініціативу, спонсори не впливають на аналітичний контент. У Shoal Research ми прагнемо забезпечити об'єктивність і незалежність усього контенту. Наші внутрішні процеси перевірки відповідають найвищим стандартам доброчесності, а всі потенційні конфлікти інтересів розкриваються та суворо контролюються для підтримки достовірності та неупередженості наших досліджень.

Disclaimer:

  1. Ця стаття розміщена з [ Дослідження Шоул]. Усі авторські права належать оригінальному автору [ПАУЛ ТІМОФІЄВ, МАЙК ДЖИН І ГЕЙБ ТРЕМБЛ]. Якщо є зауваження до цього перепублікування, будь ласка, зв'яжіться Gate Навчитисякоманда, і вони вирішать це негайно.
  2. Відповідальність за відмову: Погляди та думки, висловлені в цій статті, належать виключно автору і не становлять жодної інвестиційної поради.
  3. Переклади статті на інші мови виконуються командою Gate Learn. Якщо не зазначено, копіювання, поширення чи плагіат перекладених статей заборонені.
เริ่มตอนนี้
สมัครและรับรางวัล
$100