Вихідні ігри за валіати EVM: повернення Plasma

Середній3/1/2024, 6:59:34 AM
У цій статті Віталік розповідає про роботу Плазми, проблеми, з якими стикаються НФТ, проблеми, з якими стикається EVM, і про те, як Доказ Валідності може пом'якшити багато з цих проблем.

Особлива подяка Карлу Флоершу, Георгіосу Константопулосу та Мартіну Коппельману за відгуки, рецензії та обговорення.

Plasma - це клас рішень для масштабування блокчейну, які дозволяють зберігати всі дані та обчислення, за винятком депозитів, зняття коштів та коренів Меркла, поза ланцюжком. Це відкриває двері до дуже великих переваг масштабування, які не обмежуються доступністю даних у ланцюжку. Плазма була вперше винайдена в 2017 році, а в 2018 році вона пережила багато ітерацій, зокрема, Minimal Viable Plasma, Plasma Cash, Plasma Cashflow і Plasma Prime. На жаль, відтоді Плазму значною мірою витіснили роллапи з причин, пов'язаних насамперед з (i) великими витратами на зберігання даних на стороні клієнта та (ii) фундаментальними обмеженнями Плазми, які роблять її <a href="https://medium.com/@kelvinfichter/why-evm-on-plasma-hard-bf2d99c48df7"> важкою для узагальнення, окрім платежів.

Поява підтверджень дійсності (так званих ZK-SNARK) дає нам привід переосмислити це рішення. Найбільшу проблему, пов'язану з тим, щоб змусити Плазму працювати для платежів, - зберігання даних на стороні клієнта - можна ефективно вирішити за допомогою перевірок валідності. Крім того, докази валідності надають широкий спектр інструментів, які дозволяють нам створити ланцюжок, подібний до Плазми, який запускає EVM. Гарантії безпеки Плазми не поширюватимуться на всіх користувачів, оскільки фундаментальні причини неможливості поширення ігор виходу у стилі Плазми на багато видів складних програм все ще залишаються. Однак на практиці дуже великий відсоток активів все ж таки можна було б убезпечити.

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

Огляд: як працює Плазма

Найпростіша версія Plasma для розуміння - це Plasma Cash. Plasma Cash працює, розглядаючи кожну окрему монету як окремий NFT і відстежуючи окрему історію для кожної монети. У мережі Plasma є оператор, який відповідає за створення та регулярну публікацію блоків. Транзакції в кожному блоці зберігаються у вигляді розрідженого дерева Меркла: якщо транзакція передає право власності на монету k, вона з'являється в позиції k дерева. Коли оператор ланцюжка Plasma створює новий блок, він публікує корінь дерева Меркла в ланцюжку і безпосередньо надсилає кожному користувачеві гілки Меркла, що відповідають монетам, якими володіє цей користувач.

Припустимо, що це три останні дерева транзакцій в ланцюжку Plasma Cash. Тоді, припускаючи, що всі попередні дерева дійсні, ми знаємо, що Єва наразі володіє монетою 1, Давид - монетою 4, а Джордж - монетою 6.

Основний ризик у будь-якій системі плазмового різання - це неправильна поведінка оператора. Це може статися двома шляхами:

  1. Публікація недійсного блоку (наприклад, оператор включає транзакцію, що відправляє монету 1 від Фреда до Герміони, навіть якщо Фред не володіє монетою на той момент)
  2. Публікація недоступного блоку (наприклад, оператор не надсилає Бобу гілку Merkle для одного з блоків, не даючи йому можливості довести комусь іншому, що його монета все ще дійсна і невитрачена)

Якщо оператор поводиться неправомірно, що має відношення до активів користувача, користувач зобов'язаний негайно (зокрема, протягом 7 днів) вийти з угоди. Коли користувач ("виходець") виходить, він надає гілку Merkle, що підтверджує включення транзакції, яка передала цю монету від попереднього власника до нього. Після цього починається 7-денний період оскарження, протягом якого інші можуть оскаржити цей вихід, надавши Merkle доказ однієї з трьох речей:

  1. Не останній власник: більш пізня транзакція, підписана ексетером, яка передає монету ексетера комусь іншому
  2. Подвійна витрата: транзакція, яка передала монету від попереднього власника комусь іншому, що була включена до транзакції, яка передала монету екзитеру
  3. Недійсна історія: транзакція, яка переказувала монети раніше (протягом останніх 7 днів), але не має відповідної витрати. Учасник може відреагувати, забезпечивши відповідні витрати; якщо він цього не зробить, вихід не відбудеться.

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

Узагальнення до взаємозамінних токенів

Описана вище схема працює для NFT. Однак набагато більш поширеними, ніж NFT, є взаємозамінні токени, такі як ETH і USDC. Один із способів застосувати Plasma Cash до взаємозамінних токенів - це просто зробити кожен маленький номінал монети (наприклад, монету). 0.01 ETH) окремий NFT. На жаль, вартість газу для виходу буде занадто високою, якщо ми це зробимо.

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

  1. Використовуйте Plasma Cash майже як є, але застосовуйте хитромудрі алгоритми для швидкого обчислення дерева Меркла для дійсно великої кількості об'єктів, якщо багато сусідніх об'єктів є однаковими. Це, на диво, не так вже й складно зробити; ви можете подивитися реалізацію на python тут.
  2. Використовуйте Plasma Cashflow, який просто представляє багато сусідніх монет як один об'єкт.

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

Крім того, ми можемо переробити систему з урахуванням більш традиційної моделі "невитрачених транзакцій" (UTXO). Коли ви виводите монету, вам потрібно буде вказати останній тиждень історії цих монет, і будь-хто може оскаржити ваш вивід, довівши, що ці історичні монети вже були виведені.

Виведення 0.2 ETH UTXO внизу праворуч можна скасувати, показавши виведення будь-якого іншого UTXO в його історії, показаного зеленим кольором. Зверніть увагу, що середній лівий і нижній лівий UTXO є предками, а верхній лівий UTXO - ні. Цей підхід схожий на ідеї розфарбовування на основі замовлення з протоколів кольорових монет приблизно 2013 року.

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

Проблеми з узагальненням до EVM

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

Інша проблема полягає в тому, що EVM не намагається обмежити залежності. ETH на рахунку A в блоці N могли надійти з будь-якого місця в блоці N-1. Для того, щоб вийти з послідовного стану, ланцюжок EVM Plasma повинен мати гру виходу, де, в крайньому випадку, хтось, хто бажає вийти, використовуючи інформацію з блоку N, повинен буде заплатити за публікацію всього стану блоку N в ланцюжку: вартість газу в багато мільйонів доларів. Схеми Плазми на основі UTXO не мають цієї проблеми: кожен користувач може виводити свої активи з того блоку, який є останнім блоком, для якого у нього є дані.

Третя проблема полягає в тому, що необмежена залежність в EVM значно ускладнює узгодження стимулів для доведення обґрунтованості. Дієздатність будь-якої держави залежить від усього іншого, і тому доведення чогось одного вимагає доведення всього. Сортування відмов у такій ситуації, як правило, не може бути сумісним зі стимулюванням через проблему доступності даних. Особливо прикрою проблемою є те, що ми втрачаємо гарантію, присутню в системах на основі UTXO, що стан об'єкта не може змінитися без згоди його власника. Ця гарантія є неймовірно корисною, оскільки означає, що власник завжди в курсі останнього доказового стану своїх активів, а також спрощує вихід з гри. Без нього створювати ігри на виході стає набагато складніше.

Як докази валідності можуть полегшити багато з цих проблем

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

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

Розширення до EVM: паралельні графіки UTXO

У випадку EVM докази валідності також дозволяють нам зробити дещо розумне: вони можуть бути використані для реалізації паралельного UTXO-графа для токенів ETH і ERC20, а SNARK - для доведення еквівалентності між UTXO-графом і станом EVM. Як тільки ви це зробите, ви зможете реалізувати "звичайну" систему Плазми на графіку UTXO.

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

Розширення до EVM: вихід із загального стану

Були запропоновані простіші схеми створення "плазмового ЕВМ", наприклад Plasma Free, а до цього - цей пост від 2019 року. У цих схемах будь-хто може надіслати повідомлення на L1, щоб змусити оператора або включити транзакцію, або зробити певну філію держави доступною. Якщо оператор цього не робить, ланцюжок починає повертати блоки. Ланцюжок припиняє повертатися, як тільки хтось публікує повну копію або всього штату, або принаймні всіх даних, які користувачі позначили як потенційно відсутні. Для виведення коштів може знадобитися виплатити винагороду, яка покриє частку користувача у витратах на газ, пов'язаних з публікацією такого великого обсягу даних.

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

Обмеження плазмових схем EVM

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

Розглянемо випадок CDP (collateralized debt position - забезпечена боргова позиція), смарт-контракту, де користувач має монети, які заблоковані і можуть бути звільнені тільки після того, як користувач сплатить свій борг. Припустимо, що користувач має 1 ETH (~$2000 на момент написання цієї статті), заблокований в CDP з боргом в 1000 DAI. Тепер ланцюжок Плазми перестає публікувати блоки, а користувач відмовляється виходити. Користувач міг просто ніколи не вийти. Тепер користувач має вільний вибір: якщо ціна ETH опускається нижче $1000, він йде і забуває про CDP, а якщо ціна ETH залишається вище, то з часом він претендує на нього. В середньому такий зловмисник заробляє на цьому гроші.

Іншим прикладом є система конфіденційності, наприклад. Tornado Cash або Пули конфіденційності. Розглянемо систему конфіденційності з п'ятьма вкладниками:

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

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

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

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

Позиції Uniswap LP мають схожу проблему: якщо ви обміняли USDC на ETH в позиції Uniswap, ви можете спробувати вивести USDC до угоди і ETH після угоди. Якщо ви вступите в змову з оператором ланцюжка Plasma, то постачальники ліквідності та інші користувачі не матимуть доступу до пост-торгового стану, тому вони не зможуть вивести свої пост-торгові USDC. Щоб запобігти подібним ситуаціям, потрібна особлива логіка.

Висновки

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

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

Відмова від відповідальності:.

  1. Ця стаття передрукована з сайту[vitalik], всі авторські права належать первинному автору[Віталіку Бутеріну]. Якщо у вас є заперечення щодо цього передруку, будь ласка, зв'яжіться з командою Gate Learn, і вони оперативно його опрацюють.
  2. Відмова від відповідальності: Погляди та думки, висловлені в цій статті, належать виключно автору і не є інвестиційною порадою.
  3. Переклади статті іншими мовами виконані командою Gate Learn. Якщо не зазначено інше, копіювання, розповсюдження або плагіат перекладених статей заборонені.

Вихідні ігри за валіати EVM: повернення Plasma

Середній3/1/2024, 6:59:34 AM
У цій статті Віталік розповідає про роботу Плазми, проблеми, з якими стикаються НФТ, проблеми, з якими стикається EVM, і про те, як Доказ Валідності може пом'якшити багато з цих проблем.

Особлива подяка Карлу Флоершу, Георгіосу Константопулосу та Мартіну Коппельману за відгуки, рецензії та обговорення.

Plasma - це клас рішень для масштабування блокчейну, які дозволяють зберігати всі дані та обчислення, за винятком депозитів, зняття коштів та коренів Меркла, поза ланцюжком. Це відкриває двері до дуже великих переваг масштабування, які не обмежуються доступністю даних у ланцюжку. Плазма була вперше винайдена в 2017 році, а в 2018 році вона пережила багато ітерацій, зокрема, Minimal Viable Plasma, Plasma Cash, Plasma Cashflow і Plasma Prime. На жаль, відтоді Плазму значною мірою витіснили роллапи з причин, пов'язаних насамперед з (i) великими витратами на зберігання даних на стороні клієнта та (ii) фундаментальними обмеженнями Плазми, які роблять її <a href="https://medium.com/@kelvinfichter/why-evm-on-plasma-hard-bf2d99c48df7"> важкою для узагальнення, окрім платежів.

Поява підтверджень дійсності (так званих ZK-SNARK) дає нам привід переосмислити це рішення. Найбільшу проблему, пов'язану з тим, щоб змусити Плазму працювати для платежів, - зберігання даних на стороні клієнта - можна ефективно вирішити за допомогою перевірок валідності. Крім того, докази валідності надають широкий спектр інструментів, які дозволяють нам створити ланцюжок, подібний до Плазми, який запускає EVM. Гарантії безпеки Плазми не поширюватимуться на всіх користувачів, оскільки фундаментальні причини неможливості поширення ігор виходу у стилі Плазми на багато видів складних програм все ще залишаються. Однак на практиці дуже великий відсоток активів все ж таки можна було б убезпечити.

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

Огляд: як працює Плазма

Найпростіша версія Plasma для розуміння - це Plasma Cash. Plasma Cash працює, розглядаючи кожну окрему монету як окремий NFT і відстежуючи окрему історію для кожної монети. У мережі Plasma є оператор, який відповідає за створення та регулярну публікацію блоків. Транзакції в кожному блоці зберігаються у вигляді розрідженого дерева Меркла: якщо транзакція передає право власності на монету k, вона з'являється в позиції k дерева. Коли оператор ланцюжка Plasma створює новий блок, він публікує корінь дерева Меркла в ланцюжку і безпосередньо надсилає кожному користувачеві гілки Меркла, що відповідають монетам, якими володіє цей користувач.

Припустимо, що це три останні дерева транзакцій в ланцюжку Plasma Cash. Тоді, припускаючи, що всі попередні дерева дійсні, ми знаємо, що Єва наразі володіє монетою 1, Давид - монетою 4, а Джордж - монетою 6.

Основний ризик у будь-якій системі плазмового різання - це неправильна поведінка оператора. Це може статися двома шляхами:

  1. Публікація недійсного блоку (наприклад, оператор включає транзакцію, що відправляє монету 1 від Фреда до Герміони, навіть якщо Фред не володіє монетою на той момент)
  2. Публікація недоступного блоку (наприклад, оператор не надсилає Бобу гілку Merkle для одного з блоків, не даючи йому можливості довести комусь іншому, що його монета все ще дійсна і невитрачена)

Якщо оператор поводиться неправомірно, що має відношення до активів користувача, користувач зобов'язаний негайно (зокрема, протягом 7 днів) вийти з угоди. Коли користувач ("виходець") виходить, він надає гілку Merkle, що підтверджує включення транзакції, яка передала цю монету від попереднього власника до нього. Після цього починається 7-денний період оскарження, протягом якого інші можуть оскаржити цей вихід, надавши Merkle доказ однієї з трьох речей:

  1. Не останній власник: більш пізня транзакція, підписана ексетером, яка передає монету ексетера комусь іншому
  2. Подвійна витрата: транзакція, яка передала монету від попереднього власника комусь іншому, що була включена до транзакції, яка передала монету екзитеру
  3. Недійсна історія: транзакція, яка переказувала монети раніше (протягом останніх 7 днів), але не має відповідної витрати. Учасник може відреагувати, забезпечивши відповідні витрати; якщо він цього не зробить, вихід не відбудеться.

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

Узагальнення до взаємозамінних токенів

Описана вище схема працює для NFT. Однак набагато більш поширеними, ніж NFT, є взаємозамінні токени, такі як ETH і USDC. Один із способів застосувати Plasma Cash до взаємозамінних токенів - це просто зробити кожен маленький номінал монети (наприклад, монету). 0.01 ETH) окремий NFT. На жаль, вартість газу для виходу буде занадто високою, якщо ми це зробимо.

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

  1. Використовуйте Plasma Cash майже як є, але застосовуйте хитромудрі алгоритми для швидкого обчислення дерева Меркла для дійсно великої кількості об'єктів, якщо багато сусідніх об'єктів є однаковими. Це, на диво, не так вже й складно зробити; ви можете подивитися реалізацію на python тут.
  2. Використовуйте Plasma Cashflow, який просто представляє багато сусідніх монет як один об'єкт.

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

Крім того, ми можемо переробити систему з урахуванням більш традиційної моделі "невитрачених транзакцій" (UTXO). Коли ви виводите монету, вам потрібно буде вказати останній тиждень історії цих монет, і будь-хто може оскаржити ваш вивід, довівши, що ці історичні монети вже були виведені.

Виведення 0.2 ETH UTXO внизу праворуч можна скасувати, показавши виведення будь-якого іншого UTXO в його історії, показаного зеленим кольором. Зверніть увагу, що середній лівий і нижній лівий UTXO є предками, а верхній лівий UTXO - ні. Цей підхід схожий на ідеї розфарбовування на основі замовлення з протоколів кольорових монет приблизно 2013 року.

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

Проблеми з узагальненням до EVM

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

Інша проблема полягає в тому, що EVM не намагається обмежити залежності. ETH на рахунку A в блоці N могли надійти з будь-якого місця в блоці N-1. Для того, щоб вийти з послідовного стану, ланцюжок EVM Plasma повинен мати гру виходу, де, в крайньому випадку, хтось, хто бажає вийти, використовуючи інформацію з блоку N, повинен буде заплатити за публікацію всього стану блоку N в ланцюжку: вартість газу в багато мільйонів доларів. Схеми Плазми на основі UTXO не мають цієї проблеми: кожен користувач може виводити свої активи з того блоку, який є останнім блоком, для якого у нього є дані.

Третя проблема полягає в тому, що необмежена залежність в EVM значно ускладнює узгодження стимулів для доведення обґрунтованості. Дієздатність будь-якої держави залежить від усього іншого, і тому доведення чогось одного вимагає доведення всього. Сортування відмов у такій ситуації, як правило, не може бути сумісним зі стимулюванням через проблему доступності даних. Особливо прикрою проблемою є те, що ми втрачаємо гарантію, присутню в системах на основі UTXO, що стан об'єкта не може змінитися без згоди його власника. Ця гарантія є неймовірно корисною, оскільки означає, що власник завжди в курсі останнього доказового стану своїх активів, а також спрощує вихід з гри. Без нього створювати ігри на виході стає набагато складніше.

Як докази валідності можуть полегшити багато з цих проблем

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

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

Розширення до EVM: паралельні графіки UTXO

У випадку EVM докази валідності також дозволяють нам зробити дещо розумне: вони можуть бути використані для реалізації паралельного UTXO-графа для токенів ETH і ERC20, а SNARK - для доведення еквівалентності між UTXO-графом і станом EVM. Як тільки ви це зробите, ви зможете реалізувати "звичайну" систему Плазми на графіку UTXO.

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

Розширення до EVM: вихід із загального стану

Були запропоновані простіші схеми створення "плазмового ЕВМ", наприклад Plasma Free, а до цього - цей пост від 2019 року. У цих схемах будь-хто може надіслати повідомлення на L1, щоб змусити оператора або включити транзакцію, або зробити певну філію держави доступною. Якщо оператор цього не робить, ланцюжок починає повертати блоки. Ланцюжок припиняє повертатися, як тільки хтось публікує повну копію або всього штату, або принаймні всіх даних, які користувачі позначили як потенційно відсутні. Для виведення коштів може знадобитися виплатити винагороду, яка покриє частку користувача у витратах на газ, пов'язаних з публікацією такого великого обсягу даних.

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

Обмеження плазмових схем EVM

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

Розглянемо випадок CDP (collateralized debt position - забезпечена боргова позиція), смарт-контракту, де користувач має монети, які заблоковані і можуть бути звільнені тільки після того, як користувач сплатить свій борг. Припустимо, що користувач має 1 ETH (~$2000 на момент написання цієї статті), заблокований в CDP з боргом в 1000 DAI. Тепер ланцюжок Плазми перестає публікувати блоки, а користувач відмовляється виходити. Користувач міг просто ніколи не вийти. Тепер користувач має вільний вибір: якщо ціна ETH опускається нижче $1000, він йде і забуває про CDP, а якщо ціна ETH залишається вище, то з часом він претендує на нього. В середньому такий зловмисник заробляє на цьому гроші.

Іншим прикладом є система конфіденційності, наприклад. Tornado Cash або Пули конфіденційності. Розглянемо систему конфіденційності з п'ятьма вкладниками:

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

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

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

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

Позиції Uniswap LP мають схожу проблему: якщо ви обміняли USDC на ETH в позиції Uniswap, ви можете спробувати вивести USDC до угоди і ETH після угоди. Якщо ви вступите в змову з оператором ланцюжка Plasma, то постачальники ліквідності та інші користувачі не матимуть доступу до пост-торгового стану, тому вони не зможуть вивести свої пост-торгові USDC. Щоб запобігти подібним ситуаціям, потрібна особлива логіка.

Висновки

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

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

Відмова від відповідальності:.

  1. Ця стаття передрукована з сайту[vitalik], всі авторські права належать первинному автору[Віталіку Бутеріну]. Якщо у вас є заперечення щодо цього передруку, будь ласка, зв'яжіться з командою Gate Learn, і вони оперативно його опрацюють.
  2. Відмова від відповідальності: Погляди та думки, висловлені в цій статті, належать виключно автору і не є інвестиційною порадою.
  3. Переклади статті іншими мовами виконані командою Gate Learn. Якщо не зазначено інше, копіювання, розповсюдження або плагіат перекладених статей заборонені.
Nu Starten
Meld Je Aan En Ontvang
$100
Voucher!