Выходные игры для валидных EVM: возвращение Плазмы

СреднийMar 01, 2024
В этой статье Виталик рассказывает о работе Plasma, проблемах, с которыми сталкиваются NFT, проблемах, с которыми сталкивается EVM, и о том, как доказательство валидности может смягчить многие из этих проблем.
Выходные игры для валидных EVM: возвращение Плазмы

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

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

Появление доказательств достоверности (они же ZK-SNARK) дает нам повод переосмыслить это решение. Самая большая проблема, связанная с использованием Plasma для платежей, - хранение данных на стороне клиента - может быть эффективно решена с помощью доказательств достоверности. Кроме того, доказательства достоверности предоставляют широкий набор инструментов, которые позволяют нам создать цепочку, подобную Plasma, которая управляет EVM. Гарантии безопасности Plasma не покроют всех пользователей, поскольку фундаментальные причины невозможности распространения игр выхода в стиле Plasma на многие виды сложных приложений все еще остаются. Тем не менее, на практике очень большой процент активов может быть сохранен в безопасности.

В этом посте описывается, как можно расширить идеи Plasma, чтобы сделать это.

Обзор: как работает плазма

Самая простая для понимания версия Plasma - это Plasma Cash. Plasma Cash работает, рассматривая каждую отдельную монету как отдельный НМТ и отслеживая отдельную историю для каждой монеты. У цепочки Plasma есть оператор, который отвечает за создание и регулярную публикацию блоков. Транзакции в каждом блоке хранятся в виде разреженного дерева Меркла: если транзакция передает право собственности на монету k, она появляется в позиции k дерева. Когда оператор цепочки Plasma создает новый блок, он публикует корень дерева Меркла в цепочке и напрямую отправляет каждому пользователю ветви Меркла, соответствующие монетам, которыми владеет этот пользователь.

Предположим, что это последние три дерева транзакций в цепочке Plasma Cash. Затем, предполагая, что все предыдущие деревья верны, мы узнаем, что Ева в настоящее время владеет монетой 1, Дэвид - монетой 4, а Джордж - монетой 6.

Главный риск в любой системе Plasma - это неправильная работа оператора. Это может произойти двумя способами:

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

Если оператор ведет себя неадекватно по отношению к активам пользователя, пользователь обязан немедленно выйти из игры (в частности, в течение 7 дней). Когда пользователь ("выходящий") выходит из игры, он предоставляет ветвь Меркла, доказывающую включение транзакции, в результате которой монета перешла от предыдущего владельца к нему. Это начинает 7-дневный период оспаривания, в течение которого другие могут оспорить этот выход, предоставив доказательство Merkle, подтверждающее одну из трех вещей:

  1. Не последний владелец: более поздняя сделка, подписанная выбывшим, передающая монету выбывшего кому-то другому
  2. Double spend: транзакция, в результате которой монета перешла от предыдущего владельца к другому, который был включен до транзакции, передающей монету бывшему владельцу.
  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

К сожалению, обобщить информацию о платежах на EVM гораздо сложнее. Одна из ключевых проблем заключается в том, что многие объекты состояния в EVM не имеют четкого "владельца". Безопасность Plasma зависит от того, что у каждого объекта есть владелец, который отвечает за то, чтобы следить за данными в цепочке и выходить из нее, если что-то пойдет не так. Однако многие приложения Ethereum работают иначе. Пулы ликвидности Uniswap, например, не имеют единого владельца.

Еще одна проблема заключается в том, что EVM не пытается ограничить зависимость. ETH, находящийся на счете A в блоке N, мог быть получен из любого места в блоке N-1. Чтобы выйти из непротиворечивого состояния, цепочка EVM Plasma должна иметь игру выхода, в которой, в крайнем случае, кто-то, желающий выйти, используя информацию из блока N, должен будет заплатить за публикацию всего состояния блока N в цепочке: стоимость газа может исчисляться миллионами долларов. Плазменные схемы на основе UTXO не имеют этой проблемы: каждый пользователь может выводить свои активы из любого блока, который является самым последним блоком, для которого у него есть данные.

Третья проблема заключается в том, что из-за неограниченных зависимостей в EVM гораздо сложнее создать согласованные стимулы для подтверждения достоверности. Действительность любого состояния зависит от всего остального, и поэтому доказательство какого-либо одного факта требует доказательства всего остального. Сортировка неудач в такой ситуации, как правило, не может быть сделана с учетом стимулов из-за проблемы доступности данных. Особенно неприятной проблемой является то, что мы теряем гарантию, присутствующую в системах на основе UTXO, что состояние объекта не может измениться без согласия его владельца. Эта гарантия невероятно полезна, поскольку означает, что владелец всегда знает о последнем доказанном состоянии своих активов, и упрощает игры по выходу из игры. Без этого создавать выездные игры становится намного сложнее.

Как доказательства достоверности могут облегчить многие из этих проблем

Самое основное, что могут сделать доказательства действительности для улучшения дизайна цепочек Plasma, - это доказать действительность каждого блока Plasma в цепочке. Это значительно упрощает пространство проектирования: это означает, что единственная атака со стороны оператора, о которой мы должны беспокоиться, - это недоступные блоки, а не недействительные блоки. В Plasma Cash, например, это избавляет от необходимости беспокоиться о проблемах с историей. Это сокращает количество загружаемых пользователем данных - с одной ветки на блок за последнюю неделю до одной ветки на актив.

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

Расширение до EVM: параллельные графики UTXO

В случае EVM доказательства достоверности также позволяют нам сделать кое-что умное: их можно использовать для реализации параллельного графа UTXO для токенов ETH и ERC20 и SNARK-доказательства эквивалентности между графом UTXO и состоянием EVM. Как только Вы получите это, Вы сможете реализовать "обычную" систему Plasma над графиком UTXO.

Это позволяет нам избежать многих сложностей, связанных с EVM. Например, тот факт, что в системе, основанной на счёте, кто-то может редактировать Ваш счёт без Вашего согласия (посылая ему монеты и тем самым увеличивая его баланс), не имеет значения, поскольку конструкция Plasma строится не над самим состоянием EVM, а скорее над состоянием UTXO, которое живёт параллельно EVM, где любые монеты, которые Вы получаете, будут отдельными объектами.

Расширение до EVM: полный выход из состояния

Были предложены и более простые схемы создания "плазменного EVM", например. Plasma Free, а до этого - этот пост от 2019 года. В этих схемах любой человек может отправить сообщение на L1, чтобы заставить оператора либо включить транзакцию, либо сделать доступным определенное отделение государства. Если оператор не сделает этого, цепочка начнет возвращать блоки. Цепочка перестаёт меняться, как только кто-то размещает полную копию либо всего состояния, либо, по крайней мере, всех данных, которые пользователи отметили как потенциально отсутствующие. Для снятия средств может потребоваться размещение вознаграждения, которое оплатит долю пользователя в расходах на газ, связанную с размещением такого большого количества данных.

Слабость подобных схем заключается в том, что они не позволяют мгновенно снимать деньги в обычном случае, поскольку всегда есть вероятность того, что цепочке потребуется вернуть последнее состояние.

Пределы плазменных схем EVM

Схемы, подобные этой, являются мощными, но НЕ могут обеспечить полные гарантии безопасности для всех пользователей. Случай, в котором они наиболее ярко проявляются, - это ситуации, когда у конкретного государственного объекта нет четкого экономического "владельца".

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

Другой пример - система конфиденциальности, например. Бассейны Tornado Cash или Privacy Pools. Рассмотрим систему конфиденциальности с пятью вкладчиками:

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

Предположим, что только оранжевый цвет ушел, и в этот момент оператор сети Plasma перестает публиковать данные. Предположим также, что мы используем графовый подход UTXO с правилом "первым пришел - первым ушел", так что каждая монета сопоставляется с монетой, расположенной прямо под ней. Затем оранжевые могут вывести свою монету, смешанную до и после смешивания, и система воспримет ее как две отдельные монеты. Если синие попытаются изъять свою монету, полученную до смешивания, более позднее состояние оранжевых вытеснит её; тем временем синие не будут иметь информации, чтобы изъять свою монету, полученную после смешивания.

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

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

У позиций Uniswap LP есть аналогичная проблема: если Вы обменяли USDC на ETH в позиции Uniswap, Вы можете попытаться вывести Ваши USDC до торговли и ETH после торговли. Если Вы вступите в сговор с оператором цепочки Plasma, поставщики ликвидности и другие пользователи не будут иметь доступа к пост-торговому состоянию, поэтому они не смогут вывести свои пост-торговые USDC. Для предотвращения подобных ситуаций потребуется специальная логика.

Выводы

В 2023 году Plasma - это недооцененное дизайнерское пространство. Рулоны остаются золотым стандартом и обладают свойствами безопасности, с которыми невозможно сравниться. Это особенно верно с точки зрения опыта разработчиков: ничто не может сравниться с простотой, когда разработчику приложения не нужно даже думать о графах собственности и потоках стимулов в своем приложении.

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

Отказ от ответственности:

  1. Эта статья перепечатана с сайта[vitalik], Все авторские права принадлежат автору оригинала[Виталик Бутерин]. Если у Вас есть возражения против этой перепечатки, пожалуйста, свяжитесь с командой Gate Learn, и они незамедлительно рассмотрят их.
  2. Отказ от ответственности: Мнения и взгляды, выраженные в этой статье, принадлежат исключительно автору и не являются инвестиционным советом.
  3. Перевод статьи на другие языки осуществляется командой Gate Learn. Если не указано, копирование, распространение или плагиат переведенных статей запрещены.

Выходные игры для валидных EVM: возвращение Плазмы

СреднийMar 01, 2024
В этой статье Виталик рассказывает о работе Plasma, проблемах, с которыми сталкиваются NFT, проблемах, с которыми сталкивается EVM, и о том, как доказательство валидности может смягчить многие из этих проблем.
Выходные игры для валидных EVM: возвращение Плазмы

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

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

Появление доказательств достоверности (они же ZK-SNARK) дает нам повод переосмыслить это решение. Самая большая проблема, связанная с использованием Plasma для платежей, - хранение данных на стороне клиента - может быть эффективно решена с помощью доказательств достоверности. Кроме того, доказательства достоверности предоставляют широкий набор инструментов, которые позволяют нам создать цепочку, подобную Plasma, которая управляет EVM. Гарантии безопасности Plasma не покроют всех пользователей, поскольку фундаментальные причины невозможности распространения игр выхода в стиле Plasma на многие виды сложных приложений все еще остаются. Тем не менее, на практике очень большой процент активов может быть сохранен в безопасности.

В этом посте описывается, как можно расширить идеи Plasma, чтобы сделать это.

Обзор: как работает плазма

Самая простая для понимания версия Plasma - это Plasma Cash. Plasma Cash работает, рассматривая каждую отдельную монету как отдельный НМТ и отслеживая отдельную историю для каждой монеты. У цепочки Plasma есть оператор, который отвечает за создание и регулярную публикацию блоков. Транзакции в каждом блоке хранятся в виде разреженного дерева Меркла: если транзакция передает право собственности на монету k, она появляется в позиции k дерева. Когда оператор цепочки Plasma создает новый блок, он публикует корень дерева Меркла в цепочке и напрямую отправляет каждому пользователю ветви Меркла, соответствующие монетам, которыми владеет этот пользователь.

Предположим, что это последние три дерева транзакций в цепочке Plasma Cash. Затем, предполагая, что все предыдущие деревья верны, мы узнаем, что Ева в настоящее время владеет монетой 1, Дэвид - монетой 4, а Джордж - монетой 6.

Главный риск в любой системе Plasma - это неправильная работа оператора. Это может произойти двумя способами:

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

Если оператор ведет себя неадекватно по отношению к активам пользователя, пользователь обязан немедленно выйти из игры (в частности, в течение 7 дней). Когда пользователь ("выходящий") выходит из игры, он предоставляет ветвь Меркла, доказывающую включение транзакции, в результате которой монета перешла от предыдущего владельца к нему. Это начинает 7-дневный период оспаривания, в течение которого другие могут оспорить этот выход, предоставив доказательство Merkle, подтверждающее одну из трех вещей:

  1. Не последний владелец: более поздняя сделка, подписанная выбывшим, передающая монету выбывшего кому-то другому
  2. Double spend: транзакция, в результате которой монета перешла от предыдущего владельца к другому, который был включен до транзакции, передающей монету бывшему владельцу.
  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

К сожалению, обобщить информацию о платежах на EVM гораздо сложнее. Одна из ключевых проблем заключается в том, что многие объекты состояния в EVM не имеют четкого "владельца". Безопасность Plasma зависит от того, что у каждого объекта есть владелец, который отвечает за то, чтобы следить за данными в цепочке и выходить из нее, если что-то пойдет не так. Однако многие приложения Ethereum работают иначе. Пулы ликвидности Uniswap, например, не имеют единого владельца.

Еще одна проблема заключается в том, что EVM не пытается ограничить зависимость. ETH, находящийся на счете A в блоке N, мог быть получен из любого места в блоке N-1. Чтобы выйти из непротиворечивого состояния, цепочка EVM Plasma должна иметь игру выхода, в которой, в крайнем случае, кто-то, желающий выйти, используя информацию из блока N, должен будет заплатить за публикацию всего состояния блока N в цепочке: стоимость газа может исчисляться миллионами долларов. Плазменные схемы на основе UTXO не имеют этой проблемы: каждый пользователь может выводить свои активы из любого блока, который является самым последним блоком, для которого у него есть данные.

Третья проблема заключается в том, что из-за неограниченных зависимостей в EVM гораздо сложнее создать согласованные стимулы для подтверждения достоверности. Действительность любого состояния зависит от всего остального, и поэтому доказательство какого-либо одного факта требует доказательства всего остального. Сортировка неудач в такой ситуации, как правило, не может быть сделана с учетом стимулов из-за проблемы доступности данных. Особенно неприятной проблемой является то, что мы теряем гарантию, присутствующую в системах на основе UTXO, что состояние объекта не может измениться без согласия его владельца. Эта гарантия невероятно полезна, поскольку означает, что владелец всегда знает о последнем доказанном состоянии своих активов, и упрощает игры по выходу из игры. Без этого создавать выездные игры становится намного сложнее.

Как доказательства достоверности могут облегчить многие из этих проблем

Самое основное, что могут сделать доказательства действительности для улучшения дизайна цепочек Plasma, - это доказать действительность каждого блока Plasma в цепочке. Это значительно упрощает пространство проектирования: это означает, что единственная атака со стороны оператора, о которой мы должны беспокоиться, - это недоступные блоки, а не недействительные блоки. В Plasma Cash, например, это избавляет от необходимости беспокоиться о проблемах с историей. Это сокращает количество загружаемых пользователем данных - с одной ветки на блок за последнюю неделю до одной ветки на актив.

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

Расширение до EVM: параллельные графики UTXO

В случае EVM доказательства достоверности также позволяют нам сделать кое-что умное: их можно использовать для реализации параллельного графа UTXO для токенов ETH и ERC20 и SNARK-доказательства эквивалентности между графом UTXO и состоянием EVM. Как только Вы получите это, Вы сможете реализовать "обычную" систему Plasma над графиком UTXO.

Это позволяет нам избежать многих сложностей, связанных с EVM. Например, тот факт, что в системе, основанной на счёте, кто-то может редактировать Ваш счёт без Вашего согласия (посылая ему монеты и тем самым увеличивая его баланс), не имеет значения, поскольку конструкция Plasma строится не над самим состоянием EVM, а скорее над состоянием UTXO, которое живёт параллельно EVM, где любые монеты, которые Вы получаете, будут отдельными объектами.

Расширение до EVM: полный выход из состояния

Были предложены и более простые схемы создания "плазменного EVM", например. Plasma Free, а до этого - этот пост от 2019 года. В этих схемах любой человек может отправить сообщение на L1, чтобы заставить оператора либо включить транзакцию, либо сделать доступным определенное отделение государства. Если оператор не сделает этого, цепочка начнет возвращать блоки. Цепочка перестаёт меняться, как только кто-то размещает полную копию либо всего состояния, либо, по крайней мере, всех данных, которые пользователи отметили как потенциально отсутствующие. Для снятия средств может потребоваться размещение вознаграждения, которое оплатит долю пользователя в расходах на газ, связанную с размещением такого большого количества данных.

Слабость подобных схем заключается в том, что они не позволяют мгновенно снимать деньги в обычном случае, поскольку всегда есть вероятность того, что цепочке потребуется вернуть последнее состояние.

Пределы плазменных схем EVM

Схемы, подобные этой, являются мощными, но НЕ могут обеспечить полные гарантии безопасности для всех пользователей. Случай, в котором они наиболее ярко проявляются, - это ситуации, когда у конкретного государственного объекта нет четкого экономического "владельца".

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

Другой пример - система конфиденциальности, например. Бассейны Tornado Cash или Privacy Pools. Рассмотрим систему конфиденциальности с пятью вкладчиками:

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

Предположим, что только оранжевый цвет ушел, и в этот момент оператор сети Plasma перестает публиковать данные. Предположим также, что мы используем графовый подход UTXO с правилом "первым пришел - первым ушел", так что каждая монета сопоставляется с монетой, расположенной прямо под ней. Затем оранжевые могут вывести свою монету, смешанную до и после смешивания, и система воспримет ее как две отдельные монеты. Если синие попытаются изъять свою монету, полученную до смешивания, более позднее состояние оранжевых вытеснит её; тем временем синие не будут иметь информации, чтобы изъять свою монету, полученную после смешивания.

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

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

У позиций Uniswap LP есть аналогичная проблема: если Вы обменяли USDC на ETH в позиции Uniswap, Вы можете попытаться вывести Ваши USDC до торговли и ETH после торговли. Если Вы вступите в сговор с оператором цепочки Plasma, поставщики ликвидности и другие пользователи не будут иметь доступа к пост-торговому состоянию, поэтому они не смогут вывести свои пост-торговые USDC. Для предотвращения подобных ситуаций потребуется специальная логика.

Выводы

В 2023 году Plasma - это недооцененное дизайнерское пространство. Рулоны остаются золотым стандартом и обладают свойствами безопасности, с которыми невозможно сравниться. Это особенно верно с точки зрения опыта разработчиков: ничто не может сравниться с простотой, когда разработчику приложения не нужно даже думать о графах собственности и потоках стимулов в своем приложении.

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

Отказ от ответственности:

  1. Эта статья перепечатана с сайта[vitalik], Все авторские права принадлежат автору оригинала[Виталик Бутерин]. Если у Вас есть возражения против этой перепечатки, пожалуйста, свяжитесь с командой Gate Learn, и они незамедлительно рассмотрят их.
  2. Отказ от ответственности: Мнения и взгляды, выраженные в этой статье, принадлежат исключительно автору и не являются инвестиционным советом.
  3. Перевод статьи на другие языки осуществляется командой Gate Learn. Если не указано, копирование, распространение или плагиат переведенных статей запрещены.
Начните торговать сейчас
Зарегистрируйтесь сейчас и получите ваучер на
$100
!