Я хотів би зробити дві заяви:
Це кидає виклик як модульному, так і монолітному підходам до масштабування блокчейну. (1) - це виклик монолітному погляду, згідно з яким єдиний високопродуктивний ланцюг є найкращим способом масштабування. (2) є викликом для модульної концепції, оскільки означає, що багатоланцюгової або мультироллапсної екосистеми недостатньо для масштабування в значущому сенсі: збільшення доступу до спільного стану та ліквідності...
Якщо (1) і (2) справедливі, то вирішення проблеми масштабованості вимагає масштабування доступу до спільного стану і ліквідності в багатьох ланцюжках. Рішенням Polygon є Агрегаційний шар, або "AggLayer". AggLayer забезпечує безпеку майже миттєвих транзакцій між ланцюжками і дозволяє уніфікувати стан і ліквідність у всіх ланцюжках.
У цій статті ми зануримося в те, що таке AggLayer, як він працює і чим відрізняється від спільного секвенсора або провізора.
Існує проблема з L2: ліквідність і стан фрагментовані між роллапами і L1.
Це погано з точки зору юзабіліті, тому що вносить складність, але це також дорого. Фрагментована ліквідність означає більше прослизання і гірше виконання. Оптимістичні ролпапи (OR) вимагають від користувачів оплачувати дорогі сторонні мости, щоб уникнути семиденної затримки виведення коштів. Навіть ZK Rollups (ZKR) вимагають від користувачів переходу на Ethereum в обидва кінці для здійснення ненадійних транзакцій між ланцюжками.
Ось чому на даний момент неможливі довірчі транзакції з низькою затримкою між ланцюжками.
Припустимо, що є два ланцюжки, Ланцюжок A і Ланцюжок B, які мають спільний міст до L1. Аліса з ланцюжка A хоче заплатити Бобу з ланцюжка B, тому Аліса блокує або спалює жетони на ланцюжку A, щоб передати їх на ланцюжок B.
Для того, щоб ланцюг B міг безпечно зарахувати ці токени Бобу, потрібні дві речі.
Якщо пакет, що містить транзакції Аліси, не буде фіналізовано в Ethereum, то ланцюг A може підмінити ланцюг B і подвійно витратити кошти Аліси, залишивши кошти Аліси в ланцюзі A, а кошти Боба - в ланцюзі B. Аналогічно, якщо ланцюг B не перевірить підтвердження дійсності транзакції A, то ланцюг A може включити недійсну транзакцію і викрасти кошти у ланцюга B.
(1) і (2) означають, що ненадійні транзакції між ланцюжками не можуть мати низьку затримку. (1) наразі вимагає 12 хвилин, тоді як (2) вимагає очікування протягом періоду оскарження в ОР і кілька хвилин для генерації доказів на ZKR.
Хороший UX несумісний з 20-хвилинною затримкою. Агрегаційний рівень призначений для вирішення цієї проблеми.
Polygon - це екосистема L2 на базі ZK, які переходять на Ethereum. Рівень агрегації - це децентралізований протокол, що працює на основі стейкхолдерів, який забезпечує безпеку транзакцій з низькою затримкою, крос-ланцюгових транзакцій і єдиного моста [1].
У цьому контексті "безпека" означає наступне:
Стан ланцюжка не може бути фіналізованим/встановленим в Ethereum, якщо цей стан ланцюжка залежить від недійсного або нефіналізованого стану іншого ланцюжка, або якщо він включає транзакцію з атомарного [2] пакету, яка не була успішно виконана на всіх інших ланцюжках.
Іншими словами, стан ланцюжка B не може бути завершений в Ethereum, якщо він залежить від недійсного або незавершеного стану ланцюжка A.
Ця гарантія важлива. Це дозволяє ланцюжку B безпечно взаємодіяти з ланцюжком A з наднизькою затримкою, ще до того, як стан ланцюжка A завершиться в Ethereum або буде згенеровано підтвердження.
Агрегаційний рівень функціонує в три етапи. Припустимо, що ланцюжок A - це ZK-ланцюжок, що працює в екосистемі Polygon.
Ланцюги можуть самостійно орієнтуватися в просторі компромісів між затримкою та гарантіями життєздатності. Ланцюжок може вибрати взаємодію з іншим ланцюжком після етапу попереднього підтвердження для транзакцій між ланцюжками з наднизькою затримкою, але в принципі, ця модель сумісна з ланцюжками, які очікують підтвердження або навіть фіналізації.
Гарантія безпеки для транзакцій між ланцюжками забезпечується на третьому етапі. Розглянемо докладніше, як такий дизайн забезпечує безпечну взаємодію між ланцюжками.
Візьмемо перший приклад міжланцюгового переказу. Аліса в ланцюжку А хоче заблокувати або спалити деякі токени в блоці А1, щоб викарбувати і передати їх Бобу в ланцюжку Б. Якщо ланцюжок Б не дочекається завершення роботи над блоком А1 в Ethereum з валідним доказом, то ланцюжок А може створити двозначність або надати ланцюжку Б недійсний стан.
Агрегаційний рівень вирішує цю проблему простим способом. Ланцюг B може тимчасово припустити, що A1 дійсний, і буде завершений на Ethereum, навіть не чекаючи підтвердження. Секвенсор для ланцюга B фіксує заявлений корінь стану ланцюга A A1 як залежність у заголовку для B1 (як B1A1 ) перед передачею на рівень агрегації. Час затримки, необхідний ланцюгу B для побудови B1, зменшується з 20 хвилин до, максимум, кількох секунд.
На кроці Підтвердження рівень агрегації будує графік залежності для кожного надісланого блоку/пакету. Наприклад, якщо A1 залежить від B1, який, у свою чергу, залежить від B1, то C1 підтверджується, як тільки надається доказ πC1. Але, навіть якщо отримано πA1, πA1 підтверджується лише з πC1 і πB1. Критичним аспектом цієї схеми є те, що схема агрегації доказів забезпечує узгодженість між залежностями. Якщо B1A1 не узгоджується з блоком A1, який надсилає ланцюжок A, або відсутній доказ для A1′, то B1 не може бути включений в агрегований пакет, фіналізований на Ethereum.
Цей механізм гарантує, що якщо ланцюжок A еквівалентує або надсилає недійсний блок, скажімо, A1′, то будь-яка партія, яка залежить від недійсного або еквівалентного кореня стану ланцюжка A, не може бути завершена/розподілена на Ethereum. Навіть якщо AggLayer сам є неоднозначним, ланцюжки мають криптографічну гарантію того, що будь-який блок, який залежить від недійсного або неоднозначного блоку, не може бути завершений, оскільки два докази для станів ланцюжка, які є непослідовними або недійсними, не можуть бути об'єднані разом у схемі агрегації доказів. Це гарантує, що описана вище властивість безпеки зберігається.
Механізм безпеки можна поширити і на атомний корпус. Припустимо, що користувач відправляє атомарний пакет транзакцій в декілька ланцюжків. Ця зв'язка є впорядкованою, тому результат виконання транзакції на ланцюжку A передається на ланцюжок B, і так само оновлений стан ланцюжка B передається на ланцюжок C і т.д. Якщо всі транзакції успішно виконані у всіх ланцюжках, то пакет включається, в іншому випадку - відхиляється.
Було б ідеально надати можливість включати атомарні транзакції без них:
Це піднімає аналогічну проблему безпеки, як і в асинхронному випадку: Ланцюг A може ввести в оману і відправити пакет, який насправді не містить пучка атомів, або надіслати невірний результат ланцюгу B.
На щастя, той самий механізм з асинхронного регістру може бути повторно використаний для атомного регістру. Ланцюг B бере на себе зобов'язання за пакетами та отриманими результатами транзакцій від інших ланцюгів. Рівень агрегації (і перевірочна схема агрегації) перевіряє узгодженість пачок між ланцюжками. Пакет, що містить пакет з ланцюжка B, може бути завершений/розрахований на Ethereum тільки в тому випадку, якщо всі транзакції в пакеті виконані успішно.
Рівень агрегації забезпечує наднизьку затримку міжланцюгової сумісності завдяки асинхронним міжланцюговим викликам. Це неймовірно потужний примітив: контракти можуть безпечно викликати контракти в інших ланцюжках з наднизькою затримкою, не чекаючи завершення роботи Ethereum. Користувач міг зайти через мережу OKX на Polygon і негайно внести депозит на високоліквідний ринок кредитування на Aave в іншій мережі в один клік, без необхідності свопу з обгорнутого синтетичного активу.
AggregationLayer гарантує, що майже миттєві міжланцюгові взаємодії будуть безпечними [3]. Але це лише половина справи. Як оператори ланцюга обмінюються даними про стан ланцюга та довіряють один одному? Як вони координують виробництво атомних пучків?
Мета дизайну шару AggLayer полягає в тому, що він повинен бути мінімальним. Його мета - гарантувати безпеку та забезпечити основу, яка дозволяє будь-кому побудувати інфраструктуру координації, що забезпечує життєдіяльність у різноманітних умовах.
Оператори ланцюжків можуть вільно вибирати між механізмами емерджентної координації в залежності від своїх припущень щодо довіри - це можуть бути реле, спільна інфраструктура верифікаторів або спільні кластери секвенсорів валідності [4]. Вони захищають ланцюги від проблем з життєздатністю, коли вони залежать від інших станів ланцюга або пучків.
Екосистема Polygon надає пріоритет вибору та суверенітету для ланцюжків. Ланцюги можуть запускати власні модифіковані середовища виконання, використовувати власні токени для стейкінгу та газових зборів, обирати власні механізми доступу до даних тощо. Аналогічно, ланцюги повинні вирішити, як знайти компроміс між інтероперабельністю та ризиком збоїв у життєдіяльності. Є кілька варіантів:
Важливо зазначити, що користувачі не можуть спричинити несправності в роботі, лише неправильну поведінку або несправність ланцюгів. Двозначність і подання недійсного блоку можуть бути суворо покарані, або шляхом розрізання, або шляхом викидання ланцюгів з Agg-шару, що унеможливлює їхню безперешкодну взаємодію. Тому несправність життєдіяльності повинна бути вкрай рідкісною.
Ланцюги можуть вживати додаткових заходів обережності, щоб мінімізувати ризик виникнення проблем з життєздатністю, ведучи білі або чорні списки інших ланцюгів, з якими вони взаємодіють, і встановлюючи обмеження на кількість ланцюгів, які можуть бути колективно залучені в будь-яку партію. Вони можуть покладатися на третіх осіб, які запускають повноцінні вузли, щоб гарантувати, що якщо ланцюжок вийде з ладу до того, як він зможе видати доказ, є резервний доказ.
Механізм, за допомогою якого ланцюги координуються для прийняття атомних пучків, також є гнучким. Наприклад, підмножина ланцюжків може взаємодіяти в кластері секвенування валідності зі спільною валідністю для надзвичайно низької затримки, або ж вони можуть покладатися на реле.
Криптоекономічно захищений ретранслятор може забезпечити інтероперабельність між ланцюжками A і B, запускаючи повний вузол для обох ланцюжків і засвідчуючи, що стани з кожного ланцюжка є дійсними. Навіть якщо ланцюжок A або B попередньо підтверджує нову партію, а потім переходить в автономний режим, інфраструктура спільного верифікатора може втрутитися, щоб згенерувати підтвердження.
Ви можете собі уявити нову інфраструктуру координації, що з'являється на фундаменті безпеки, який забезпечує AggLayer, забезпечуючи нові та кращі форми інтероперабельності та спільної ліквідності. Важливо, що вся екосистема Polygon не повинна мати однакову інфраструктуру або довіряти припущенням. Він не повинен працювати під управлінням єдиного спільного секвенсору валідності або компілятора. Це надзвичайно важлива перевага порівняно з операційними.
Рівень агрегації дозволяє нам створити багатоланцюгову екосистему, яка відчувається як використання одного ланцюга. Це синтез монолітних і модульних тез: єдиний стан, ліквідність і композитність, з необмеженою масштабованістю багатоланцюгової екосистеми.
Це бачення, яке в принципі доступне лише системам на основі ZK. Я розкрию цю тему в наступній статті, але оптимістичні екосистеми, які хочуть забезпечити швидку інтероперабельність, повинні покладатися на секвенсори валідності зі спільним доступом. Це погана угода для ланцюжків: вона обмежує їх у перерозподілі зборів секвенсорів і MEV, секвенсори спільної валідності змушують ланцюжки потенційно приймати обмеження на середовища виконання, а інтероперабельність в системах на основі АБО змушує ланцюжки приймати додаткові припущення про довіру в обмін на низьку латентність.
Крім того, міжланцюгова інтероперабельність порушує важливу властивість операційних. З одноланцюговими операціями будь-хто може запустити повний вузол для виконання операції і негайно підтвердити, що транзакції є дійсними і завершеними, як тільки вони будуть відправлені на L1. Це вже не так у випадку з багатоланцюжковими схемами - тепер необхідно запускати повний вузол для кожного ланцюжка, з яким взаємодіє АБО.
На противагу цьому, бачення Polygon - це бачення, в якому ланцюги є суверенними. Вони можуть використовувати будь-яке середовище виконання, покладатися на будь-які централізовані або децентралізовані секвенсори і самостійно знаходити компроміси між міжланцюговою затримкою і швидкодією.
Це бачення віддзеркалює існуючий Інтернет. Інтернет - це еластично масштабоване, бездозвільне та уніфіковане середовище. Крім того, AggLayer є масштабованим і бездозвільним - він не накладає жодних обмежень на ланцюжки-учасники - і дозволяє користувачам безперешкодно переміщати активи і стан в екосистемі, представляючи єдиний інтерфейс для шару вартості в Інтернеті.
Це майбутнє Polygon: не монолітне, не повністю модульне, а агреговане.
[1] Частиною забезпечення уніфікованої ліквідності є позбавлення від жахливого UX загорнутих синтетичних токенів на мостах. Користувачі моста LxLy від Polygon можуть безперешкодно передавати активи між ланцюжками, зберігаючи при цьому взаємозамінність. Однак, щоб зробити це безпечно, ми повинні захистити найслабшу ланку - або зловмисника, який корумпує один ланцюжок і викачує всі кошти по всіх ланцюжках мосту. Я розповім, як це зробити, в наступній публікації, але AggLayer може використовувати крок агрегації доказів для забезпечення обліку на рівні ланцюжка, уникаючи захисту найслабшої ланки.
[2] Коли я говорю про атомарні міжланцюгові транзакції, я маю на увазі можливість користувача надсилати "пакет" або набір транзакцій через декілька ланцюжків. Атомарний пучок має властивість, що його транзакції включаються в кожен відповідний ланцюжок тоді і тільки тоді, коли всі транзакції виконані успішно. Якщо одна транзакція завершилася невдачею, то пакет не може бути включений до жодного ланцюжка.
Найпростішим прикладом знову ж таки є наш міжланцюговий перенос. Припустимо, що Аліса хоче відправити 1 ETH Бобу, але Аліса знаходиться в ланцюжку A, а Боб - в ланцюжку B. Припускаючи, що для обох ролапів існує спільний нативний міст, Аліса може спалити свій ETH в ланцюжку A і надрукувати ETH в ланцюжку B, який буде передано Бобу. Але критично важливо гарантувати, що вона не зможе карбувати ETH, не спаливши його, або навпаки - або вона може втратити ETH, або недостатньо забезпечити міст.
Ось чому атомарні транзакції так важливі. Для того, щоб забезпечити взаємодію між ланцюжками з низькою затримкою і зробити використання екосистеми Polygon схожим на використання одного ланцюжка, необхідні атомарні гарантії.
[3] Це тонкий момент, але з точки зору екосистеми - AggLayer забезпечує безпеку, але з точки зору окремого ланцюга, ця конструкція надає перевагу життєздатності над безпекою, оскільки ланцюг B може залежати від стану ланцюга A, який є недійсним. У цьому випадку ланцюжок B не буде прийнятий шаром AggLayer (за допомогою схеми перевірочної агрегації), і потрібно буде побудувати новий блок без залежності від A.
[4] Наш підхід в цілому багато в чому завдячує дизайну секвенування спільної валідності від Umbra Research.
2/9/24 - Оновлено цей проект, щоб прояснити деякі порівняння між агрегацією та спільним секвенуванням. Агрегована теза залежить від таких механізмів, як спільні секвенсори, реле та білдери, що полегшують координацію між ланцюжками. Шар агроволокна, в свою чергу, гарантує безпеку.
Я хотів би зробити дві заяви:
Це кидає виклик як модульному, так і монолітному підходам до масштабування блокчейну. (1) - це виклик монолітному погляду, згідно з яким єдиний високопродуктивний ланцюг є найкращим способом масштабування. (2) є викликом для модульної концепції, оскільки означає, що багатоланцюгової або мультироллапсної екосистеми недостатньо для масштабування в значущому сенсі: збільшення доступу до спільного стану та ліквідності...
Якщо (1) і (2) справедливі, то вирішення проблеми масштабованості вимагає масштабування доступу до спільного стану і ліквідності в багатьох ланцюжках. Рішенням Polygon є Агрегаційний шар, або "AggLayer". AggLayer забезпечує безпеку майже миттєвих транзакцій між ланцюжками і дозволяє уніфікувати стан і ліквідність у всіх ланцюжках.
У цій статті ми зануримося в те, що таке AggLayer, як він працює і чим відрізняється від спільного секвенсора або провізора.
Існує проблема з L2: ліквідність і стан фрагментовані між роллапами і L1.
Це погано з точки зору юзабіліті, тому що вносить складність, але це також дорого. Фрагментована ліквідність означає більше прослизання і гірше виконання. Оптимістичні ролпапи (OR) вимагають від користувачів оплачувати дорогі сторонні мости, щоб уникнути семиденної затримки виведення коштів. Навіть ZK Rollups (ZKR) вимагають від користувачів переходу на Ethereum в обидва кінці для здійснення ненадійних транзакцій між ланцюжками.
Ось чому на даний момент неможливі довірчі транзакції з низькою затримкою між ланцюжками.
Припустимо, що є два ланцюжки, Ланцюжок A і Ланцюжок B, які мають спільний міст до L1. Аліса з ланцюжка A хоче заплатити Бобу з ланцюжка B, тому Аліса блокує або спалює жетони на ланцюжку A, щоб передати їх на ланцюжок B.
Для того, щоб ланцюг B міг безпечно зарахувати ці токени Бобу, потрібні дві речі.
Якщо пакет, що містить транзакції Аліси, не буде фіналізовано в Ethereum, то ланцюг A може підмінити ланцюг B і подвійно витратити кошти Аліси, залишивши кошти Аліси в ланцюзі A, а кошти Боба - в ланцюзі B. Аналогічно, якщо ланцюг B не перевірить підтвердження дійсності транзакції A, то ланцюг A може включити недійсну транзакцію і викрасти кошти у ланцюга B.
(1) і (2) означають, що ненадійні транзакції між ланцюжками не можуть мати низьку затримку. (1) наразі вимагає 12 хвилин, тоді як (2) вимагає очікування протягом періоду оскарження в ОР і кілька хвилин для генерації доказів на ZKR.
Хороший UX несумісний з 20-хвилинною затримкою. Агрегаційний рівень призначений для вирішення цієї проблеми.
Polygon - це екосистема L2 на базі ZK, які переходять на Ethereum. Рівень агрегації - це децентралізований протокол, що працює на основі стейкхолдерів, який забезпечує безпеку транзакцій з низькою затримкою, крос-ланцюгових транзакцій і єдиного моста [1].
У цьому контексті "безпека" означає наступне:
Стан ланцюжка не може бути фіналізованим/встановленим в Ethereum, якщо цей стан ланцюжка залежить від недійсного або нефіналізованого стану іншого ланцюжка, або якщо він включає транзакцію з атомарного [2] пакету, яка не була успішно виконана на всіх інших ланцюжках.
Іншими словами, стан ланцюжка B не може бути завершений в Ethereum, якщо він залежить від недійсного або незавершеного стану ланцюжка A.
Ця гарантія важлива. Це дозволяє ланцюжку B безпечно взаємодіяти з ланцюжком A з наднизькою затримкою, ще до того, як стан ланцюжка A завершиться в Ethereum або буде згенеровано підтвердження.
Агрегаційний рівень функціонує в три етапи. Припустимо, що ланцюжок A - це ZK-ланцюжок, що працює в екосистемі Polygon.
Ланцюги можуть самостійно орієнтуватися в просторі компромісів між затримкою та гарантіями життєздатності. Ланцюжок може вибрати взаємодію з іншим ланцюжком після етапу попереднього підтвердження для транзакцій між ланцюжками з наднизькою затримкою, але в принципі, ця модель сумісна з ланцюжками, які очікують підтвердження або навіть фіналізації.
Гарантія безпеки для транзакцій між ланцюжками забезпечується на третьому етапі. Розглянемо докладніше, як такий дизайн забезпечує безпечну взаємодію між ланцюжками.
Візьмемо перший приклад міжланцюгового переказу. Аліса в ланцюжку А хоче заблокувати або спалити деякі токени в блоці А1, щоб викарбувати і передати їх Бобу в ланцюжку Б. Якщо ланцюжок Б не дочекається завершення роботи над блоком А1 в Ethereum з валідним доказом, то ланцюжок А може створити двозначність або надати ланцюжку Б недійсний стан.
Агрегаційний рівень вирішує цю проблему простим способом. Ланцюг B може тимчасово припустити, що A1 дійсний, і буде завершений на Ethereum, навіть не чекаючи підтвердження. Секвенсор для ланцюга B фіксує заявлений корінь стану ланцюга A A1 як залежність у заголовку для B1 (як B1A1 ) перед передачею на рівень агрегації. Час затримки, необхідний ланцюгу B для побудови B1, зменшується з 20 хвилин до, максимум, кількох секунд.
На кроці Підтвердження рівень агрегації будує графік залежності для кожного надісланого блоку/пакету. Наприклад, якщо A1 залежить від B1, який, у свою чергу, залежить від B1, то C1 підтверджується, як тільки надається доказ πC1. Але, навіть якщо отримано πA1, πA1 підтверджується лише з πC1 і πB1. Критичним аспектом цієї схеми є те, що схема агрегації доказів забезпечує узгодженість між залежностями. Якщо B1A1 не узгоджується з блоком A1, який надсилає ланцюжок A, або відсутній доказ для A1′, то B1 не може бути включений в агрегований пакет, фіналізований на Ethereum.
Цей механізм гарантує, що якщо ланцюжок A еквівалентує або надсилає недійсний блок, скажімо, A1′, то будь-яка партія, яка залежить від недійсного або еквівалентного кореня стану ланцюжка A, не може бути завершена/розподілена на Ethereum. Навіть якщо AggLayer сам є неоднозначним, ланцюжки мають криптографічну гарантію того, що будь-який блок, який залежить від недійсного або неоднозначного блоку, не може бути завершений, оскільки два докази для станів ланцюжка, які є непослідовними або недійсними, не можуть бути об'єднані разом у схемі агрегації доказів. Це гарантує, що описана вище властивість безпеки зберігається.
Механізм безпеки можна поширити і на атомний корпус. Припустимо, що користувач відправляє атомарний пакет транзакцій в декілька ланцюжків. Ця зв'язка є впорядкованою, тому результат виконання транзакції на ланцюжку A передається на ланцюжок B, і так само оновлений стан ланцюжка B передається на ланцюжок C і т.д. Якщо всі транзакції успішно виконані у всіх ланцюжках, то пакет включається, в іншому випадку - відхиляється.
Було б ідеально надати можливість включати атомарні транзакції без них:
Це піднімає аналогічну проблему безпеки, як і в асинхронному випадку: Ланцюг A може ввести в оману і відправити пакет, який насправді не містить пучка атомів, або надіслати невірний результат ланцюгу B.
На щастя, той самий механізм з асинхронного регістру може бути повторно використаний для атомного регістру. Ланцюг B бере на себе зобов'язання за пакетами та отриманими результатами транзакцій від інших ланцюгів. Рівень агрегації (і перевірочна схема агрегації) перевіряє узгодженість пачок між ланцюжками. Пакет, що містить пакет з ланцюжка B, може бути завершений/розрахований на Ethereum тільки в тому випадку, якщо всі транзакції в пакеті виконані успішно.
Рівень агрегації забезпечує наднизьку затримку міжланцюгової сумісності завдяки асинхронним міжланцюговим викликам. Це неймовірно потужний примітив: контракти можуть безпечно викликати контракти в інших ланцюжках з наднизькою затримкою, не чекаючи завершення роботи Ethereum. Користувач міг зайти через мережу OKX на Polygon і негайно внести депозит на високоліквідний ринок кредитування на Aave в іншій мережі в один клік, без необхідності свопу з обгорнутого синтетичного активу.
AggregationLayer гарантує, що майже миттєві міжланцюгові взаємодії будуть безпечними [3]. Але це лише половина справи. Як оператори ланцюга обмінюються даними про стан ланцюга та довіряють один одному? Як вони координують виробництво атомних пучків?
Мета дизайну шару AggLayer полягає в тому, що він повинен бути мінімальним. Його мета - гарантувати безпеку та забезпечити основу, яка дозволяє будь-кому побудувати інфраструктуру координації, що забезпечує життєдіяльність у різноманітних умовах.
Оператори ланцюжків можуть вільно вибирати між механізмами емерджентної координації в залежності від своїх припущень щодо довіри - це можуть бути реле, спільна інфраструктура верифікаторів або спільні кластери секвенсорів валідності [4]. Вони захищають ланцюги від проблем з життєздатністю, коли вони залежать від інших станів ланцюга або пучків.
Екосистема Polygon надає пріоритет вибору та суверенітету для ланцюжків. Ланцюги можуть запускати власні модифіковані середовища виконання, використовувати власні токени для стейкінгу та газових зборів, обирати власні механізми доступу до даних тощо. Аналогічно, ланцюги повинні вирішити, як знайти компроміс між інтероперабельністю та ризиком збоїв у життєдіяльності. Є кілька варіантів:
Важливо зазначити, що користувачі не можуть спричинити несправності в роботі, лише неправильну поведінку або несправність ланцюгів. Двозначність і подання недійсного блоку можуть бути суворо покарані, або шляхом розрізання, або шляхом викидання ланцюгів з Agg-шару, що унеможливлює їхню безперешкодну взаємодію. Тому несправність життєдіяльності повинна бути вкрай рідкісною.
Ланцюги можуть вживати додаткових заходів обережності, щоб мінімізувати ризик виникнення проблем з життєздатністю, ведучи білі або чорні списки інших ланцюгів, з якими вони взаємодіють, і встановлюючи обмеження на кількість ланцюгів, які можуть бути колективно залучені в будь-яку партію. Вони можуть покладатися на третіх осіб, які запускають повноцінні вузли, щоб гарантувати, що якщо ланцюжок вийде з ладу до того, як він зможе видати доказ, є резервний доказ.
Механізм, за допомогою якого ланцюги координуються для прийняття атомних пучків, також є гнучким. Наприклад, підмножина ланцюжків може взаємодіяти в кластері секвенування валідності зі спільною валідністю для надзвичайно низької затримки, або ж вони можуть покладатися на реле.
Криптоекономічно захищений ретранслятор може забезпечити інтероперабельність між ланцюжками A і B, запускаючи повний вузол для обох ланцюжків і засвідчуючи, що стани з кожного ланцюжка є дійсними. Навіть якщо ланцюжок A або B попередньо підтверджує нову партію, а потім переходить в автономний режим, інфраструктура спільного верифікатора може втрутитися, щоб згенерувати підтвердження.
Ви можете собі уявити нову інфраструктуру координації, що з'являється на фундаменті безпеки, який забезпечує AggLayer, забезпечуючи нові та кращі форми інтероперабельності та спільної ліквідності. Важливо, що вся екосистема Polygon не повинна мати однакову інфраструктуру або довіряти припущенням. Він не повинен працювати під управлінням єдиного спільного секвенсору валідності або компілятора. Це надзвичайно важлива перевага порівняно з операційними.
Рівень агрегації дозволяє нам створити багатоланцюгову екосистему, яка відчувається як використання одного ланцюга. Це синтез монолітних і модульних тез: єдиний стан, ліквідність і композитність, з необмеженою масштабованістю багатоланцюгової екосистеми.
Це бачення, яке в принципі доступне лише системам на основі ZK. Я розкрию цю тему в наступній статті, але оптимістичні екосистеми, які хочуть забезпечити швидку інтероперабельність, повинні покладатися на секвенсори валідності зі спільним доступом. Це погана угода для ланцюжків: вона обмежує їх у перерозподілі зборів секвенсорів і MEV, секвенсори спільної валідності змушують ланцюжки потенційно приймати обмеження на середовища виконання, а інтероперабельність в системах на основі АБО змушує ланцюжки приймати додаткові припущення про довіру в обмін на низьку латентність.
Крім того, міжланцюгова інтероперабельність порушує важливу властивість операційних. З одноланцюговими операціями будь-хто може запустити повний вузол для виконання операції і негайно підтвердити, що транзакції є дійсними і завершеними, як тільки вони будуть відправлені на L1. Це вже не так у випадку з багатоланцюжковими схемами - тепер необхідно запускати повний вузол для кожного ланцюжка, з яким взаємодіє АБО.
На противагу цьому, бачення Polygon - це бачення, в якому ланцюги є суверенними. Вони можуть використовувати будь-яке середовище виконання, покладатися на будь-які централізовані або децентралізовані секвенсори і самостійно знаходити компроміси між міжланцюговою затримкою і швидкодією.
Це бачення віддзеркалює існуючий Інтернет. Інтернет - це еластично масштабоване, бездозвільне та уніфіковане середовище. Крім того, AggLayer є масштабованим і бездозвільним - він не накладає жодних обмежень на ланцюжки-учасники - і дозволяє користувачам безперешкодно переміщати активи і стан в екосистемі, представляючи єдиний інтерфейс для шару вартості в Інтернеті.
Це майбутнє Polygon: не монолітне, не повністю модульне, а агреговане.
[1] Частиною забезпечення уніфікованої ліквідності є позбавлення від жахливого UX загорнутих синтетичних токенів на мостах. Користувачі моста LxLy від Polygon можуть безперешкодно передавати активи між ланцюжками, зберігаючи при цьому взаємозамінність. Однак, щоб зробити це безпечно, ми повинні захистити найслабшу ланку - або зловмисника, який корумпує один ланцюжок і викачує всі кошти по всіх ланцюжках мосту. Я розповім, як це зробити, в наступній публікації, але AggLayer може використовувати крок агрегації доказів для забезпечення обліку на рівні ланцюжка, уникаючи захисту найслабшої ланки.
[2] Коли я говорю про атомарні міжланцюгові транзакції, я маю на увазі можливість користувача надсилати "пакет" або набір транзакцій через декілька ланцюжків. Атомарний пучок має властивість, що його транзакції включаються в кожен відповідний ланцюжок тоді і тільки тоді, коли всі транзакції виконані успішно. Якщо одна транзакція завершилася невдачею, то пакет не може бути включений до жодного ланцюжка.
Найпростішим прикладом знову ж таки є наш міжланцюговий перенос. Припустимо, що Аліса хоче відправити 1 ETH Бобу, але Аліса знаходиться в ланцюжку A, а Боб - в ланцюжку B. Припускаючи, що для обох ролапів існує спільний нативний міст, Аліса може спалити свій ETH в ланцюжку A і надрукувати ETH в ланцюжку B, який буде передано Бобу. Але критично важливо гарантувати, що вона не зможе карбувати ETH, не спаливши його, або навпаки - або вона може втратити ETH, або недостатньо забезпечити міст.
Ось чому атомарні транзакції так важливі. Для того, щоб забезпечити взаємодію між ланцюжками з низькою затримкою і зробити використання екосистеми Polygon схожим на використання одного ланцюжка, необхідні атомарні гарантії.
[3] Це тонкий момент, але з точки зору екосистеми - AggLayer забезпечує безпеку, але з точки зору окремого ланцюга, ця конструкція надає перевагу життєздатності над безпекою, оскільки ланцюг B може залежати від стану ланцюга A, який є недійсним. У цьому випадку ланцюжок B не буде прийнятий шаром AggLayer (за допомогою схеми перевірочної агрегації), і потрібно буде побудувати новий блок без залежності від A.
[4] Наш підхід в цілому багато в чому завдячує дизайну секвенування спільної валідності від Umbra Research.
2/9/24 - Оновлено цей проект, щоб прояснити деякі порівняння між агрегацією та спільним секвенуванням. Агрегована теза залежить від таких механізмів, як спільні секвенсори, реле та білдери, що полегшують координацію між ланцюжками. Шар агроволокна, в свою чергу, гарантує безпеку.