Перейти до основного вмісту
Change page

Ланцюги Плазми

Ланцюг Плазми — це окремий блокчейн, прив'язаний до головної мережі Ethereum, але він виконує транзакції позамережево з власним механізмом для валідації блоку. Ланцюги Плазми іноді називають «дочірніми» ланцюгами, по суті, це менші копії головної мережі Ethereum. Ланцюги Плазми використовують (як і оптимістичні ролапи) для вирішення суперечок.

Дерева Меркла дозволяють створювати нескінченний стек таких ланцюгів, які можуть працювати для розвантаження пропускної здатності батьківських ланцюгів (включаючи головну мережу Ethereum). Однак, хоча ці ланцюги отримують певну безпеку від Етеріуму (через докази шахрайства), на їхню безпеку та ефективність впливають кілька конструктивних обмежень.

Передумови

Ви повинні добре розуміти всі базові теми та мати загальне уявлення про масштабування Етеріуму.

Що таке Плазма?

Плазма — це фреймворк для покращення масштабованості в публічних блокчейнах, таких як Етеріум. Як описано в оригінальній білій книзі Плазми (opens in a new tab), ланцюги Плазми будуються поверх іншого блокчейну (який називається «кореневим ланцюгом»). Кожен «дочірній ланцюг» відгалужується від кореневого ланцюга і зазвичай управляється смарт-контрактом, розгорнутим у батьківському ланцюзі.

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

Як працює Плазма?

Основними компонентами фреймворку Плазми є:

Позамережеві обчислення

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

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

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

Позамережеві обчислення необхідні, оскільки ланцюги Плазми можуть оптимізувати швидкість і вартість. Наприклад, ланцюг Плазми може — і найчастіше так і робить — використовувати єдиного «оператора» для управління впорядкуванням і виконанням транзакцій. Оскільки транзакції перевіряє лише одна сутність, час обробки в ланцюзі Плазми швидший, ніж у головній мережі Ethereum.

Фіксації стану

Хоча Плазма виконує транзакції позамережево, вони розраховуються на головному рівні виконання Етеріуму — інакше ланцюги Плазми не зможуть скористатися гарантіями безпеки Етеріуму. Але фіналізація позамережевих транзакцій без знання стану ланцюга Плазми порушила б модель безпеки та дозволила б поширення недійсних транзакцій. Ось чому оператор, сутність, відповідальна за створення блоків у ланцюзі Плазми, зобов'язаний періодично публікувати «фіксації стану» в Етеріумі.

Схема фіксації (opens in a new tab) — це криптографічний метод фіксації значення або твердження без розкриття його іншій стороні. Фіксації є «обов'язковими» в тому сенсі, що ви не можете змінити значення або твердження після того, як ви його зафіксували. Фіксації стану в Плазмі мають форму «коренів Меркла» (похідних від дерева Меркла), які оператор періодично надсилає до контракту Плазми в ланцюзі Етеріуму.

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

Корені Меркла важливі для надання інформації про позамережевий стан Етеріуму. Ви можете думати про корені Меркла як про «точки збереження»: оператор каже: «Це стан ланцюга Плазми в момент часу x, а це корінь Меркла як доказ». Оператор фіксує поточний стан ланцюга Плазми за допомогою кореня Меркла, тому це називається «фіксацією стану».

Входи та виходи

Щоб користувачі Етеріуму могли скористатися перевагами Плазми, потрібен механізм для переміщення коштів між Головною мережею та ланцюгами Плазми. Однак ми не можемо довільно надсилати етер на адресу в ланцюзі Плазми — ці ланцюги несумісні, тому транзакція або не вдасться, або призведе до втрати коштів.

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

Вхід у ланцюг Плазми

Щоб увійти в ланцюг Плазми, Аліса (користувач) повинна буде внести ETH або будь-який токен ERC-20 у контракт Плазми. Оператор Плазми, який стежить за депозитами контракту, відтворює суму, що дорівнює початковому депозиту Аліси, і переказує її на її адресу в ланцюзі Плазми. Аліса повинна підтвердити отримання коштів у дочірньому ланцюзі, після чого вона може використовувати ці кошти для транзакцій.

Вихід з ланцюга Плазми

Вихід з ланцюга Плазми складніший, ніж вхід до нього, з кількох причин. Найголовніша з них полягає в тому, що хоча Етеріум має інформацію про стан ланцюга Плазми, він не може перевірити, чи є ця інформація правдивою. Зловмисник може зробити неправильне твердження («У мене є 1000 ETH») і залишитися безкарним, надавши підроблені докази на підтвердження свого затребування.

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

Однак зазвичай користувачі чесні і роблять правильні затребування щодо коштів, якими вони володіють. У цьому сценарії Аліса ініціює запит на виведення в кореневому ланцюзі (Етеріум), надіславши транзакцію до контракту Плазми.

Вона також повинна надати доказ Меркла, який підтверджує, що транзакція, яка створила її кошти в ланцюзі Плазми, була включена в блок. Це необхідно для ітерацій Плазми, таких як Plasma MVP (opens in a new tab), які використовують модель невитрачених виходів транзакцій (UTXO) (opens in a new tab).

Інші, такі як Plasma Cash (opens in a new tab), представляють кошти як невзаємозамінні токени замість UTXO. Виведення в цьому випадку вимагає доказу права власності на токени в ланцюзі Плазми. Це робиться шляхом подання двох останніх транзакцій, пов'язаних з токеном, і надання доказу Меркла, що підтверджує включення цих транзакцій у блок.

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

Якщо період оскарження минає без надання кимось доказу шахрайства, запит Аліси на виведення вважається дійсним, що дозволяє їй повернути депозити з контракту Плазми в Етеріумі.

Вирішення суперечок

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

Доказ шахрайства — це просто твердження про те, що певний перехід стану є недійсним. Прикладом є ситуація, коли користувач (Аліса) намагається витратити одні й ті самі кошти двічі. Можливо, вона витратила UTXO в транзакції з Бобом і хоче витратити той самий UTXO (який тепер належить Бобу) в іншій транзакції.

Щоб запобігти виведенню, Боб створить доказ шахрайства, надавши докази того, що Аліса витратила згаданий UTXO в попередній транзакції, і доказ Меркла про включення транзакції в блок. Той самий процес працює в Plasma Cash — Бобу потрібно буде надати доказ того, що Аліса раніше переказала токени, які вона намагається вивести.

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

Проблема масового виходу в Плазмі

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

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

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

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

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

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

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

Тому найоптимістичнішим рішенням є спроба «масового виходу» користувачів з ланцюга Плазми. Масовий вихід уповільнює план зловмисного оператора щодо крадіжки коштів і забезпечує певну міру захисту для користувачів. Запити на виведення впорядковуються на основі того, коли був створений кожен UTXO (або токен), що запобігає випередженню чесних користувачів зловмисними операторами.

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

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

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

Плюси та мінуси Плазми

ПлюсиМінуси
Пропонує високу пропускну здатність і низьку вартість транзакції.Не підтримує загальні обчислення (не може запускати смарт-контракти). Через логіку предикатів підтримуються лише базові перекази токенів, обміни та кілька інших типів транзакцій.
Добре підходить для транзакцій між довільними користувачами (немає накладних витрат на пару користувачів, якщо обидва зареєстровані в ланцюзі Плазми)Необхідно періодично стежити за мережею (вимога активності) або делегувати цю відповідальність комусь іншому, щоб забезпечити безпеку ваших коштів.
Ланцюги Плазми можуть бути адаптовані до конкретних випадків використання, які не пов'язані з головним ланцюгом. Будь-хто, включаючи бізнес, може налаштувати смарт-контракти Плазми для забезпечення масштабованої інфраструктури, яка працює в різних контекстах.Покладається на одного або кількох операторів для зберігання даних і надання їх за запитом.
Зменшує навантаження на головну мережу Ethereum шляхом переміщення обчислень і зберігання позамережево.Виведення затримуються на кілька днів, щоб дозволити оскарження. Для взаємозамінних активів це може бути пом'якшено постачальниками ліквідності, але з цим пов'язані капітальні витрати.
Якщо занадто багато користувачів спробують вийти одночасно, головна мережа Ethereum може перевантажитися.

Плазма проти протоколів масштабування рівня 2

Хоча Плазма колись вважалася корисним рішенням для масштабування Етеріуму, відтоді від неї відмовилися на користь протоколів масштабування рівня 2 (l2). Рішення для масштабування рівня 2 усувають кілька проблем Плазми:

Ефективність

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

Підтримка смарт-контрактів

Іншою проблемою фреймворку Плазми була нездатність підтримувати виконання смарт-контрактів Етеріуму (opens in a new tab). У результаті більшість реалізацій Плазми були здебільшого створені для простих платежів або обміну токенів ERC-20.

Навпаки, оптимістичні ролапи сумісні з Віртуальною машиною Етеріуму і можуть запускати нативні для Етеріуму смарт-контракти, що робить їх корисним і безпечним рішенням для масштабування децентралізованих застосунків. Подібним чином розробляються плани щодо створення реалізації EVM з нульовим розголошенням (zkEVM) (opens in a new tab), яка дозволила б ZK-ролапам обробляти довільну логіку та виконувати смарт-контракти.

Недоступність даних

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

Проблема масового виходу

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

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

Чим Плазма відрізняється від сайдчейнів та шардингу?

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

Плазма проти сайдчейнів

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

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

Плазма проти шардингу

Як ланцюги Плазми, так і ланцюги шардів періодично публікують криптографічні докази в головній мережі Ethereum. Однак обидва мають різні властивості безпеки.

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

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

Примітка: шардинг блокчейну Етеріуму більше не входить до дорожньої карти. Його було замінено масштабуванням за допомогою ролапів та данкшардингу.

Використання Плазми

Кілька проєктів надають реалізації Плазми, які ви можете інтегрувати у свої децентралізовані застосунки (dapp):

Подальше читання

Знаєте ресурс спільноти, який вам допоміг? Відредагуйте цю сторінку та додайте його!

Посібники: Ланцюги Плазми в Етеріумі