Співзасновник Ethereum Віталік Бутерін опублікував есе, в якому згадав про технологію Plasma і розповів про способи її застосування в поточних реаліях.
- Бутерін пояснив принцип роботи та недоліки Plasma.
- Інтеграція із ZK-SNARK може вирішити багато проблем технології.
Як влаштована Plasma
Plasma — презентоване 2017 року рішення для масштабування блокчейну Ethereum, яке дає змогу зберігати всі дані та обчислення поза ланцюжком, за винятком інформації про депозити, виведення коштів і коріння дерева Меркла.
Згодом технологія «обросла» кількома ітераціями — Minimal Viable Plasma, Plasma Cash, Plasma Cashflow і Plasma Prime. Усі вони виконували одне завдання, але працювали за дещо різними принципами.
На думку Бутеріна, розробка відкривала двері для прориву в масштабованості мережі. Однак пізніше через високі витрати на зберігання даних на стороні клієнта і технологічні обмеження ролапи витіснили Plasma.
Найпростіша для ознайомлення версія Plasma Cash працює, розглядаючи кожну окрему монету як невзаємозамінний токен і відстежуючи історію переміщень для кожної з них.
У ланцюзі Plasma є оператор, який відповідає за створення і регулярну публікацію блоків, транзакції в яких зберігаються у вигляді сепарованого дерева Меркла. Таким чином можна точно знати, якому користувачеві належала конкретна монета в певний момент часу.
Проблеми Plasma
Хоча подібний метод зберігання даних у теорії підходив для масштабування мейннету, рішення поставало перед технічними труднощами. Основним ризиком у будь-якій екосистемі Plasma Бутерін назвав неправильну поведінку оператора, наприклад через публікацію «неприпустимого» або «недоступного» блоку.
У таких випадках виникає безліч помилок, включно з подвійною витратою. Згодом самим учасникам мережі необхідно було проводити перевірку і збирати докази порушень.
За словами співзасновника Ethereum, вищезгадана конструкція працює для NFT, але щоб застосувати її до взаємозамінних токенів, необхідно вносити зміни в алгоритми. Він припустив, що можна відстежувати окремо тільки частину монети (не 1 ETH, а 0,01 ETH), але тоді виникають занадто великі витрати на газ.
Одним із рішень є оптимізація протоколів, які розглядають безліч сусідніх монет як цілу одиницю з можливістю передати або вивести їх одночасно.
«Однак обидва ці підходи стикаються з проблемою фрагментації. Якщо ви отримуєте по 0,001 ETH від сотень людей, які купують у вас каву, у вас буде 0,001 ETH у багатьох місцях дерева Меркла. А виведення цих ETH, як і раніше, вимагає створення безлічі окремих точок виходу, що зробить плату за газ непомірно високою. Протоколи дефрагментації продумані, але їх складно імплементувати», — пояснив Бутерін.
Крім того, технологію практично неможливо реалізувати в рамках EVM. Одна з ключових проблем полягає в тому, що багато об’єктів в екосистемі не мають чіткого «власника», а основа безпеки Plasma якраз полягає в обов’язковому підтвердженні права власності.
Чим допоможе ZK-SNARK
На думку Бутеріна, поява доказів правдивості (також відомих як ZK-SNARK) дає привід переосмислити принципи Plasma.
Основне, чим може допомогти ZK-SNARK, це спрощення верифікації кожного блоку в ланцюзі Plasma. Такий підхід скорочує кількість станів, які користувачеві необхідно завантажити з конкретної гілки Меркла для певної монети.
Якщо оператор і кінцевий власник були чесними, виведення коштів з самого останнього стану не підлягає перевірці і його можна здійснити «миттєво».
У EVM-мережах Бутерін запропонував використовувати ZK-SNARK у поєднанні з моделлю «виведення невитрачених транзакцій» (UTXO) для реалізації паралельного графа токенів ETH і ERC-20. Така система зможе перевіряти та доводити історію володіння певною монетою.
За словами співзасновника Ethereum, використання Plasma в EVM все ще не опрацьовано до кінця і має потенційні проблеми конфіденційності.
«Подібні схеми є потужними, але не здатні надати повні гарантії безпеки всім користувачам Найбільш явно вони руйнуються в ситуаціях, коли конкретний об’єкт стану не має чіткого власника», — пояснив розробник.
Однак Бутерін вважає Plasma «недооціненим дизайнерським простором», який може спростити роботу програмістів, позбавляючи їх необхідності думати про графіки володіння всередині програми.
Нагадаємо, у жовтні засновник Ethereum розповів, як абстракція облікових записів здатна зробити акаунти користувачів стійкими до злому за допомогою квантових комп’ютерів.
Раніше Бутерін поділився своїми поглядами на майбутнє Ethereum.