Блокчейн (существительное): Координационная машина, которая позволяет участникам со всего мира сотрудничать в соответствии с общепризнанными правилами без участия какой-либо третьей стороны.
Компьютеры предназначены для выполнения трех функций: хранения данных, вычислений и общения друг с другом и с людьми. Блокчейны добавляют четвертое измерение: дополнительные гарантии того, что эти три функции (хранение, вычисление и общение) происходят согласованным образом. Эти гарантии обеспечивают сотрудничество между незнакомцами без доверенного посредника для облегчения этого (децентрализованно).
Эти дополнительные гарантии могут быть как экономическими (теория игр доверия и стимулы/дезинцентивы), так и криптографическими (математика доверия), но большинство приложений используют комбинацию обоих - криптоэкономика. Это является ярким контрастом с текущим статус-кво в основном на основе репутации систем.
Хотя Web3 часто описывается как «читай, пиши, владей», мы считаем, что лучшим понятием для третьей итерации интернета является «читай, пиши, проверяй», учитывая, что ключевым преимуществом публичных блокчейнов являетсягарантированные вычисленияи простая проверка того, что эти гарантии были соблюдены. Собственность может быть подмножеством гарантированного вычисления, если мы создадим цифровые артефакты, которые можно купить, продать и контролировать. Однако многие случаи использования блокчейнов выигрывают от гарантированного вычисления, но не вовлекают прямо собственности. Например, если ваше здоровье в полностью он-чейновской игре составляет 77 из 100 - вы владеете этим здоровьем или это просто обязательно к исполнению в рамках согласованных правил? Мы бы утверждали последнее, но Крис Диксонможет не согласиться.
Web3 = Читать, Писать, Проверять
Блокчейны предлагают многое, на что можно быть взволнованным, но децентрализованная модель также добавляет накладные расходы и неэффективность через дополнительные функции, такие как P2P-сообщения и консенсус. Кроме того, большинство блокчейнов по-прежнему проверяют правильность переходов состояний путем их повторного выполнения, что означает, что каждый узел в сети должен повторно выполнять транзакции для проверки правильности предлагаемого перехода состояния. Это неэффективно и является ярким противоположностью централизованной модели, где только один субъект выполняет операции. Хотя децентрализованная система всегда содержит некоторые накладные расходы и репликацию, целью должно быть приближение асимптотически ближе к централизованному эталону с точки зрения эффективности.
Несмотря на значительное улучшение основной инфраструктуры за последнее десятилетие, перед блокчейнами все еще стоит много работы, прежде чем они смогут обрабатывать масштабы интернета. Мы видим компромиссы по двум основным осям - выразительности и сложности - и считаем, что модульность позволяет быстрее экспериментировать по всей границе компромисса, в то время как ZK ее расширяет:
Модульность - это степень, до которой компоненты системы могут быть разделены и объединены. Благодаря более быстрым циклам обратной связи и более низким барьерам для входа с меньшим требуемым капиталом (как экономическим, так и человеческим) - модульность позволяет более быстрым экспериментам и специализации. Вопрос модульности против интеграции не является бинарным, а скорее спектром для экспериментов, чтобы понять, какие части имеют смысл разделить, а какие - нет.
Доказательства с нулевым разглашением, или ZKP, с другой стороны, позволяют одной стороне (доказывающему) доказать другой стороне (проверяющему), что они знают, что что-то является правдой, не раскрывая никакой дополнительной информации, кроме ее достоверности. Это может повысить масштабируемость и эффективность за счет исключения повторного выполнения (переход от модели «все выполнено к проверке» к модели «все выполняются и все проверяются»), а также выразительности за счет обеспечения конфиденциальности (с ограничениями). ZKP также повышают жесткость гарантий, заменяя более слабые криптоэкономические гарантии более сильными, что выражается в раздвигании границы компромисса наружу (см. график выше).
Мы считаем, что как модульность, так и «ZKfication of everything» - это тенденции, которые будут продолжать ускоряться. Хотя обе они предоставляют интересные ракурсы для изучения пространства индивидуально, - мы особенно заинтересованы в пересечении двух. Два ключевых вопроса, которые нас интересуют, -
Однако прежде чем мы перейдем к этим вопросам, нам нужно обновленное представление о том, как будет выглядеть модульный стек в 2024 году.
Часто используемое изображение модульного стека с четырьмя компонентами (выполнение, публикация данных, консенсус, расчет) полезно как простая умственная модель, но мы считаем, что это уже недостаточное представление, учитывая, насколько сильно развилось модульное пространство. Дальнейшее разделение приводит к появлению новых компонентов, которые ранее считались частью более крупного элемента, а также создает новые зависимости и необходимость в безопасной совместимости между различными компонентами (больше об этом позже). Учитывая темп, с которым прогрессирует это пространство, может быть сложно быть в курсе всех инноваций на разных уровнях стека.
Ранее попытки исследования стека web3 включают те, которые сделаны Кайл Самани(Мультикойн) - изначально опубликовано в2018и обновлено в2019. Он охватывает все, начиная от децентрализованного доступа к интернету последней мили (например, Гелий) to end-user key management. While the principles behind it could be recycled, some pieces, like proving and verification, are completely missing.
Принимая во внимание все вышеперечисленное, мы попытались создать обновленное представление о том, как будет выглядеть модульный стек в 2024 году, расширяя существующий четырехчастный модульный стек. Он разделен по компонентам, а не по функциональности, что означает, что, например, P2P-сети включены в консенсус, а не выделены в отдельный компонент - в основном потому, что сложно построить протокол вокруг этого.
Теперь, когда у нас есть обновленное представление о модульном стеке, мы можем начать рассматривать настоящий вопрос, т.е. какие части стека ZK уже проникли и какие открытые проблемы могут быть решены путем введения ZK (либо избегая повторного выполнения, либо функций конфиденциальности). Ниже приведено краткое изложение наших результатов, прежде чем мы углубимся в каждый компонент отдельно.
Текущим пользователям блокчейнов необходимо ориентироваться в нескольких цепочках, кошельках и интерфейсах, что является громоздким и является препятствием для более широкого принятия. Абстракция операций пользователя - это общий термин для любой попытки абстрагировать эту сложность и позволить пользователям взаимодействовать только с одним интерфейсом (например, конкретным приложением или кошельком), причем вся сложность происходит на бэкэнде. Некоторые примеры абстракций на уровне инфраструктуры включают:
Транзакции должны быть упорядочены перед добавлением в блок, что можно сделать разными способами: упорядочение по прибыльности для предложителя (сначала наиболее выгодные транзакции), в порядке их подачи (первыми поступившими, первыми обслуживаются), предоставление приоритета транзакциям из частных памятных пулов и т. д.
Еще один вопрос - кто получает заказ на транзакции. В модульном мире это могут делать несколько разных сторон, включая секвенсор rollup (централизованный или децентрализованный), L1 sequencing (основанный на rollups) и общую сеть последовательности (децентрализованная сеть секвенсоров, используемая несколькими rollups). Все они имеютразные предположения о доверии и возможности масштабированияНа практике фактическое упорядочение транзакций и их объединение в блок также может выполняться вне протокола специализированными участниками (строителями блоков).
Слой выполнения содержит логику обновления состояния и является местом выполнения смарт-контрактов. Помимо возврата вывода вычисления, zkVM также позволяет доказать, что переходы состояния были выполнены правильно. Это позволяет другим участникам сети проверить правильность выполнения, проверяя только доказательство, а не переисполняя транзакции.
Помимо более быстрой и эффективной верификации, еще одним преимуществом доказуемого выполнения является возможность осуществления более сложных вычислений, поскольку вы не сталкиваетесь с типичными проблемами газа и ограниченными ресурсами on-chain при оффчейн-вычислениях. Это открывает дверь для совершенно новых приложений, требующих вычислений более интенсивных для выполнения на блокчейнах и использующих гарантированные вычисления.
Запрос данных, или чтение данных с блокчейна, является важной частью большинства приложений. В то время как большая часть обсуждений и усилий в последние годы были сосредоточены на масштабировании записей (исполнение) - масштабирование чтения еще более важно из-за дисбаланса между ними (особенно в децентрализованной среде). Соотношение между чтением/записью различается в зависимости от блокчейна, но одним из важных аспектов являетсяпрогноз Сигаболее 96% всех вызовов к узлам на Solana были вызовами на чтение (на основе 2-летних эмпирических данных) - соотношение чтения/записи 24:1.
Увеличение чтения включает как увеличение производительности (больше чтений в секунду) с помощью выделенных клиентов валидаторов (например, Sig на Solana), так и возможность выполнения более сложных запросов (путем объединения чтения с вычислениями), например, с помощью сопроцессоров.
Другой ракурс - децентрализация методов запроса данных. В настоящее время большинство запросов на получение данных в блокчейнах осуществляются доверенными сторонними лицами (на основе репутации), такими как узлы RPC (Infura) и индексаторы (ДюнаПримеры более децентрализованных вариантов включаютГрафики операторы с доказательством хранения (которые также можно проверить). Существует также несколько попыток создания децентрализованной сети RPC, таких как Infura DINилиСеть Lava(кроме децентрализованного RPC, Lava планирует предложить дополнительные услуги доступа к данным позже).
С увеличением числа приложений, в которых используются ZKP, доказательства и верификация быстро становятся неотъемлемой частью модульного стека. Однако на сегодняшний день большинство инфраструктур для доказательств по-прежнему являются разрешенными и централизованными, и многие приложения полагаются на одного доказателя.
Хотя централизованное решение менее сложное, децентрализация архитектуры доказательств и ее разделение на отдельный компонент в модульном стеке приносит несколько преимуществ. Одним из ключевых преимуществ являются гарантии живости, которые крайне важны для приложений, зависящих от частой генерации доказательств. Пользователи также получают выгоду от более высокой устойчивости к цензуре и низких комиссий, обусловленных конкуренцией и распределением рабочей нагрузки среди нескольких доказателей.
Мы считаем, что общецелевые сети доказателей (много приложений, много доказателей) превосходят сети доказателей для одного приложения (одно приложение, много доказателей) из-за более высокого использования существующего оборудования и меньшей сложности для доказателей. Более высокое использование также приносит пользу пользователям в виде более низких комиссий, поскольку доказателям не нужно компенсировать избыточность через более высокие комиссии (тем не менее необходимо покрывать постоянные издержки).
Фигмент Капитал Предоставил хороший обзор текущего состояния цепочки поставок доказательств, которая состоит как из создания доказательства, так и из агрегирования доказательств (которое само по себе является генерацией доказательств, но просто принимает два доказательства в качестве входных данных, а не трассировку выполнения).
Источник: Фигмент Капитал
Источник: Figment Capital
Публикация данных (DP) обеспечивает доступность и легкость извлечения данных на короткий период (1-2 недели). Это критически важно как для безопасности (оптимистичные роллапы требуют ввода данных для проверки правильного выполнения путем повторного выполнения во время периода вызова, 1-2 недели), так и для живучести (даже если система использует доказательства допустимости, возможно понадобятся базовые данные транзакции для подтверждения владения активом для аварийного выхода, принудительных транзакций или для проверки соответствия входов выходам). Пользователи (такие как zk-мосты и роллапы) сталкиваются с единовременной оплатой, которая покрывает стоимость хранения транзакций и состояния на короткий период, пока оно не будет урезано. Сети публикации данных не предназначены для хранения данных в долгосрочной перспективе (вместо этого см. следующий раздел для возможных решений).
Celestiaбыл первым альтернативным уровнем DP, запустившим свою основную сеть (31 октября), но вскоре появится много альтернатив, из которых можно выбрать, так как Доступ, EigenDA, и Near DAвсе ожидаются к запуску в 2024 году. Кроме того, Ethereum’s EIP 4844обновление масштабных данных публикации на Ethereum (помимо создания отдельного рынка сбора платы за хранение блобов) и подготовка к полному шардингу. DP также расширяется на другие экосистемы - одним из примеров является @nubit_org/riema-secure-ангельская-investment-for-launching-the-first-bitcoin-native-data-availability-layer-49ccf0487380">Nubit который aims to build Native DP on Bitcoin.
Многие решения DP также предлагают услуги за пределами чистой публикации данных, включая общую безопасность для суверенных роллапов (например,СелестияиДоступно) или более плавное взаимодействие между роллапами (например, Avail’sNexusТакже есть проектыДомикониНулевая гравитация) предлагают как публикацию данных, так и долгосрочное хранение состояния, что является привлекательным предложением. Это также пример повторной сборки двух компонентов в модульном стеке, что, вероятно, мы будем видеть больше впереди (эксперименты как с дальнейшим разбиением на составные части, так и с повторной сборкой).
Хранение исторических данных важно в основном для целей синхронизации и обслуживания запросов данных. Однако нецелесообразно, чтобы каждый полный узел хранил все данные, и большинство полных узлов обрезают старые данные, чтобы сохранить аппаратные требования разумными. Вместо этого мы полагаемся на специализированные стороны (архивные узлы и индексы), чтобы хранить все исторические данные и делать их доступными по запросу пользователей.
Также существуют децентрализованные поставщики хранения, такие как FilecoinилиArweave, предлагающих долгосрочные децентрализованные решения для хранения по разумной цене. В то время как у большинства блокчейнов нет формального процесса архивного хранения (просто полагаются на кого-то, кто это хранит), протоколы децентрализованного хранения являются хорошими кандидатами для хранения исторических данных и добавления избыточности (по крайней мере, X узлов хранят данные) через встроенные стимулы хранения в сети.
Учитывая, что блокчейны являются распределенными P2P-системами, здесь нет доверенной третьей стороны, которая определяет глобальную истину. Вместо этого узлы сети соглашаются о том, какова текущая истина (какой блок является правильным) с помощью механизма, называемого консенсусом. Методы консенсуса на основе PoS могут быть классифицированы либо как основанные на BFT (где кворум валидаторов, обладающих устойчивостью к византийским ошибкам, определяет окончательное состояние), либо как основанные на цепи (где окончательное состояние определяется ретроспективно правилом выбора вилки). В то время как большинство существующих реализаций PoS-консенсуса основаны на BFT,Кардано является примером реализации с самой длинной цепочкой. Также растет интерес к механизмам консенсуса на основе DAG, таким как Narwhal-Bullshark, которые реализованы в некоторых вариациях в Aleo, Aptos и Sui.
Согласование является ключевой частью многих различных компонентов модульного стека, включая общий последователь, децентрализованное доказательство и сети публикации данных на основе блокчейна (не на основе комитетов, таких как EigenDA).
Расчёты подобны высшему суду - окончательному источнику истины, где проверяется правильность переходов состояний и разрешаются споры. Сделка считается окончательной в тот момент, когда она становится необратимой (или в случае вероятностной окончательности - в тот момент, когда ее будет достаточно сложно отменить). Время окончательности зависит от использованного базового уровня расчетов, который в свою очередь зависит от используемого конкретного правила окончательности и времени блока.
Медленная окончательность особенно проблематична в коммуникации между роллапами, где роллапы должны ждать подтверждения от Ethereum, прежде чем смогут утвердить транзакцию (7 дней для оптимистичных роллапов, 12 минут и время доказательства для валидных роллапов). Это приводит к плохому опыту пользователя. Существует несколько усилий по решению этой проблемы с использованием предварительных подтверждений с определенным уровнем безопасности. Примеры включают в себя и экосистемно-специфические решения (Polygon AggLayerилиzkSync HyperBridge) и универсальные решения, такие как Быстрый слой окончательности Nearкоторая стремится соединить несколько различных экосистем rollup, используя экономическую защиту от EigenLayer. Также есть вариантмосты нейтивного роллапа, использующие EigenLayerдля мягких подтверждений, чтобы избежать ожидания полной окончательности.
Безопасность связана с степенью гарантий и является ключевой частью ценностного предложения блокчейнов. Однако инициирование криптоэкономической безопасности сложно - повышение барьеров для входа и действие как трения для инноваций для тех приложений, которым это необходимо (различные промежуточные программы и альтернативные L1s).
Идея общей безопасности заключается в использовании существующей экономической безопасности сетей PoS и подвергании ее дополнительному риску штрафа (условия наказания), а не в том, чтобы каждый компонент пытался создать свое собственное. Были сделаны некоторые ранние попытки сделать то же самое в сетях PoW (совместное майнинг.)), но несоответствие стимулов сделало более легким для майнеров сговариваться и эксплуатировать протокол (сложнее наказать за плохое поведение, поскольку работа происходит в физическом мире, т.е. майнинг с использованием вычислительной мощности). Безопасность PoS более гибкая для использования другими протоколами, поскольку у нее есть как положительные (доход от стейкинга), так и отрицательные (срезка) стимулы.
Протоколы, основанные на принципе общей безопасности, включают в себя:
Безопасная и эффективная взаимодействия остается большой проблемой в мире мультицепей, что иллюстрируется Потери в размере $2.8 млрд в результате взлома моста. В модульных системах взаимодействие становится еще более важным - Вы общаетесь не только между другими цепями, но и модульным блокчейнам также требуется, чтобы различные компоненты общались друг с другом (например, DA и слой расчетов). Следовательно, уже невозможно просто запустить полный узел или проверить одно единственное доказательство согласия, как в интегрированных блокчейнах. Это добавляет еще больше движущихся частей к уравнению.
Взаимодействие включает как мосты для токенов, так и более общую передачу сообщений между блокчейнами. Существует несколько различных вариантов, каждый из которых делает разные компромиссы в области безопасности, задержки и стоимости. Оптимизация всех трех параметров очень сложна и обычно требует по крайней мере жертвования одним из них. Кроме того, различные стандарты между цепочками усложняют внедрение на новых цепочках.
Пока у нас все еще нет четкого определения различных типов легких клиентов (или узлов), этот пост от Dino(сооснователь Fluent & Modular Media) дает хорошее введение. Большинство легких клиентов сегодня проверяют только согласованность, но в идеале у нас должны быть легкие клиенты, которые могут проверять также выполнение и DA, чтобы сократить доверие к предположениям. Это позволило бы приблизиться к безопасности полного узла без высоких аппаратных требований.
Предполагая, что мы можем достичь состояния, когда генерация ZKPs становится очень быстрой (почти со скоростью света) и невероятно дешевой (почти бесплатной), каков конечный результат? Другими словами, когда ZK поглотил модульный стек?
В общем, мы считаем, что в этом состоянии мира две вещи будут верными:
Третьим условием будет конфиденциальность (или управление потоком информации), но это сложнее. ZKPs могут использоваться для некоторых приложений конфиденциальности с доказательством со стороны клиента, что и делают платформы типа Aleo, Aztec или Polygon Miden, однако достижение масштабной конфиденциальности для всех потенциальных случаев использования зависит от прогресса MPC и FHE - потенциальная тема для будущего блог-поста.
Что, если мы ошибаемся, и будущее не является ни модульным, ни ZK'fied? Некоторые потенциальные риски для нашей тезис включают:
Как пользователи, так и разработчики страдают от постоянно растущего количества цепочек. Пользователям необходимо управлять средствами на нескольких цепочках (и, возможно, в нескольких кошельках). Разработчики приложений, с другой стороны, имеют меньше стабильности и прогнозируемости, учитывая, насколько сильно пространство все еще развивается, что затрудняет принятие решения, на какой цепочке строить. Им также нужно думать о фрагментации состояния и ликвидности. Это особенно верно сейчас, когда мы все еще экспериментируем на грани того, какие компоненты имеют смысл отделять и какие будут снова объединены. Мы считаем, что абстрагирование операций пользователя, а также безопасные и эффективные решения для взаимодействия являются ключевыми частями решения этой проблемы.
Невозможно обойти факт того, что генерация доказательств занимает слишком много времени, а стоимость как генерации, так и верификации по-прежнему слишком высока. Конкурирующие решения, такие как доверенные исполнительные среды/TEEs (конфиденциальность) или оптимистичные/криптоэкономические решения безопасности (стоимость), по-прежнему имеют больший смысл для многих приложений сегодня.
Много работы, однако, проводится в отношении оптимизации программного обеспечения и аппаратного ускорения для ZKPs. Агрегирование доказательств поможет дополнительно снизить затраты на верификацию, распределяя их между несколькими различными сторонами (меньшие затраты на пользователя). Также есть возможность адаптации базового уровня для более оптимизированной верификации ZKPs. Одна из проблем аппаратного ускорения для ZKPs - быстрое развитие систем подтверждения. Это затрудняет создание специализированного оборудования (ASICs), поскольку они могут быстро устареть, если стандарты базовых систем подтверждения эволюционируют.
Ингонямапыталась создать некоторые показатели производительности доказательств через сравнимую метрику, называемую ZK score. Она основана на стоимости выполнения вычислений (OPEX) и отслеживает MMOPS/WATT, где MMOPS означает модулярные умножения операций в секунду. Для дальнейшего чтения по этой теме, мы рекомендуем блоги от @Cysic/BJQcpVbXn?ref=blog.succinct.xyz">Cysic and @ingonyama/revisiting-paradigms-hardware-acceleration-for-zero-knowledge-proofs-5dffacdc24b4">Ingonyama, а также этот разговор от Вэй Дай.
ZKPs могут использоваться только для обеспечения конфиденциальности личного состояния, а не для общего состояния, где несколько сторон должны вычислять данные в зашифрованном виде (например, в частном Uniswap). Для полной конфиденциальности также требуются FHE и MPC, но им необходимо улучшить многие порядки величины в терминах затрат и производительности, прежде чем они станут жизнеспособными вариантами для более масштабного использования. Тем не менее, ZKPs все еще полезны для определенных случаев использования, которые не требуют личного общего состояния, таких как решения для идентификации или платежи. Не все проблемы нужно решать одним и тем же инструментом.
Итак, что же из этого следует? В то время как мы делаем успехи каждый день, остается еще много работы. Самые насущные проблемы, которые нужно разрешить, - это то, как ценность и информация могут безопасно передаваться между различными модульными компонентами, не жертвуя скоростью или стоимостью, а также абстрагирование всего этого от конечного потребителя, чтобы им не приходилось беспокоиться о мостах между различными цепями, переключении кошельков и т. д.
В то время как мы находимся в фазе экспериментов, вещи должны стабилизироваться со временем, поскольку мы определяем, где на спектре находятся оптимальные компромиссы для каждого случая использования. Это, в свою очередь, создаст условия для стандартов (неформальных или формальных) для возникновения и обеспечит большую стабильность для строителей поверх этих цепочек.
Сегодня еще существует множество случаев использования, в которых по умолчанию используется криптоэкономическая защита из-за стоимости и сложности создания ZKPs, и некоторые требуют комбинации обоих. Однако этот объем должен уменьшаться со временем, поскольку мы разрабатываем более эффективные системы доказательств и специализированное оборудование для снижения стоимости и задержек подтверждения и верификации. С каждым экспоненциальным снижением стоимости и скорости открываются новые возможности использования.
Хотя эта статья сосредоточена на ZKPs в частности, мы также все больше интересуемся тем, как современные криптографические решения (ZKPs, MPC, FHE и TEE) будут взаимодействовать вместе - что мы уже наблюдаем.
Спасибо за чтение!
Блокчейн (существительное): Координационная машина, которая позволяет участникам со всего мира сотрудничать в соответствии с общепризнанными правилами без участия какой-либо третьей стороны.
Компьютеры предназначены для выполнения трех функций: хранения данных, вычислений и общения друг с другом и с людьми. Блокчейны добавляют четвертое измерение: дополнительные гарантии того, что эти три функции (хранение, вычисление и общение) происходят согласованным образом. Эти гарантии обеспечивают сотрудничество между незнакомцами без доверенного посредника для облегчения этого (децентрализованно).
Эти дополнительные гарантии могут быть как экономическими (теория игр доверия и стимулы/дезинцентивы), так и криптографическими (математика доверия), но большинство приложений используют комбинацию обоих - криптоэкономика. Это является ярким контрастом с текущим статус-кво в основном на основе репутации систем.
Хотя Web3 часто описывается как «читай, пиши, владей», мы считаем, что лучшим понятием для третьей итерации интернета является «читай, пиши, проверяй», учитывая, что ключевым преимуществом публичных блокчейнов являетсягарантированные вычисленияи простая проверка того, что эти гарантии были соблюдены. Собственность может быть подмножеством гарантированного вычисления, если мы создадим цифровые артефакты, которые можно купить, продать и контролировать. Однако многие случаи использования блокчейнов выигрывают от гарантированного вычисления, но не вовлекают прямо собственности. Например, если ваше здоровье в полностью он-чейновской игре составляет 77 из 100 - вы владеете этим здоровьем или это просто обязательно к исполнению в рамках согласованных правил? Мы бы утверждали последнее, но Крис Диксонможет не согласиться.
Web3 = Читать, Писать, Проверять
Блокчейны предлагают многое, на что можно быть взволнованным, но децентрализованная модель также добавляет накладные расходы и неэффективность через дополнительные функции, такие как P2P-сообщения и консенсус. Кроме того, большинство блокчейнов по-прежнему проверяют правильность переходов состояний путем их повторного выполнения, что означает, что каждый узел в сети должен повторно выполнять транзакции для проверки правильности предлагаемого перехода состояния. Это неэффективно и является ярким противоположностью централизованной модели, где только один субъект выполняет операции. Хотя децентрализованная система всегда содержит некоторые накладные расходы и репликацию, целью должно быть приближение асимптотически ближе к централизованному эталону с точки зрения эффективности.
Несмотря на значительное улучшение основной инфраструктуры за последнее десятилетие, перед блокчейнами все еще стоит много работы, прежде чем они смогут обрабатывать масштабы интернета. Мы видим компромиссы по двум основным осям - выразительности и сложности - и считаем, что модульность позволяет быстрее экспериментировать по всей границе компромисса, в то время как ZK ее расширяет:
Модульность - это степень, до которой компоненты системы могут быть разделены и объединены. Благодаря более быстрым циклам обратной связи и более низким барьерам для входа с меньшим требуемым капиталом (как экономическим, так и человеческим) - модульность позволяет более быстрым экспериментам и специализации. Вопрос модульности против интеграции не является бинарным, а скорее спектром для экспериментов, чтобы понять, какие части имеют смысл разделить, а какие - нет.
Доказательства с нулевым разглашением, или ZKP, с другой стороны, позволяют одной стороне (доказывающему) доказать другой стороне (проверяющему), что они знают, что что-то является правдой, не раскрывая никакой дополнительной информации, кроме ее достоверности. Это может повысить масштабируемость и эффективность за счет исключения повторного выполнения (переход от модели «все выполнено к проверке» к модели «все выполняются и все проверяются»), а также выразительности за счет обеспечения конфиденциальности (с ограничениями). ZKP также повышают жесткость гарантий, заменяя более слабые криптоэкономические гарантии более сильными, что выражается в раздвигании границы компромисса наружу (см. график выше).
Мы считаем, что как модульность, так и «ZKfication of everything» - это тенденции, которые будут продолжать ускоряться. Хотя обе они предоставляют интересные ракурсы для изучения пространства индивидуально, - мы особенно заинтересованы в пересечении двух. Два ключевых вопроса, которые нас интересуют, -
Однако прежде чем мы перейдем к этим вопросам, нам нужно обновленное представление о том, как будет выглядеть модульный стек в 2024 году.
Часто используемое изображение модульного стека с четырьмя компонентами (выполнение, публикация данных, консенсус, расчет) полезно как простая умственная модель, но мы считаем, что это уже недостаточное представление, учитывая, насколько сильно развилось модульное пространство. Дальнейшее разделение приводит к появлению новых компонентов, которые ранее считались частью более крупного элемента, а также создает новые зависимости и необходимость в безопасной совместимости между различными компонентами (больше об этом позже). Учитывая темп, с которым прогрессирует это пространство, может быть сложно быть в курсе всех инноваций на разных уровнях стека.
Ранее попытки исследования стека web3 включают те, которые сделаны Кайл Самани(Мультикойн) - изначально опубликовано в2018и обновлено в2019. Он охватывает все, начиная от децентрализованного доступа к интернету последней мили (например, Гелий) to end-user key management. While the principles behind it could be recycled, some pieces, like proving and verification, are completely missing.
Принимая во внимание все вышеперечисленное, мы попытались создать обновленное представление о том, как будет выглядеть модульный стек в 2024 году, расширяя существующий четырехчастный модульный стек. Он разделен по компонентам, а не по функциональности, что означает, что, например, P2P-сети включены в консенсус, а не выделены в отдельный компонент - в основном потому, что сложно построить протокол вокруг этого.
Теперь, когда у нас есть обновленное представление о модульном стеке, мы можем начать рассматривать настоящий вопрос, т.е. какие части стека ZK уже проникли и какие открытые проблемы могут быть решены путем введения ZK (либо избегая повторного выполнения, либо функций конфиденциальности). Ниже приведено краткое изложение наших результатов, прежде чем мы углубимся в каждый компонент отдельно.
Текущим пользователям блокчейнов необходимо ориентироваться в нескольких цепочках, кошельках и интерфейсах, что является громоздким и является препятствием для более широкого принятия. Абстракция операций пользователя - это общий термин для любой попытки абстрагировать эту сложность и позволить пользователям взаимодействовать только с одним интерфейсом (например, конкретным приложением или кошельком), причем вся сложность происходит на бэкэнде. Некоторые примеры абстракций на уровне инфраструктуры включают:
Транзакции должны быть упорядочены перед добавлением в блок, что можно сделать разными способами: упорядочение по прибыльности для предложителя (сначала наиболее выгодные транзакции), в порядке их подачи (первыми поступившими, первыми обслуживаются), предоставление приоритета транзакциям из частных памятных пулов и т. д.
Еще один вопрос - кто получает заказ на транзакции. В модульном мире это могут делать несколько разных сторон, включая секвенсор rollup (централизованный или децентрализованный), L1 sequencing (основанный на rollups) и общую сеть последовательности (децентрализованная сеть секвенсоров, используемая несколькими rollups). Все они имеютразные предположения о доверии и возможности масштабированияНа практике фактическое упорядочение транзакций и их объединение в блок также может выполняться вне протокола специализированными участниками (строителями блоков).
Слой выполнения содержит логику обновления состояния и является местом выполнения смарт-контрактов. Помимо возврата вывода вычисления, zkVM также позволяет доказать, что переходы состояния были выполнены правильно. Это позволяет другим участникам сети проверить правильность выполнения, проверяя только доказательство, а не переисполняя транзакции.
Помимо более быстрой и эффективной верификации, еще одним преимуществом доказуемого выполнения является возможность осуществления более сложных вычислений, поскольку вы не сталкиваетесь с типичными проблемами газа и ограниченными ресурсами on-chain при оффчейн-вычислениях. Это открывает дверь для совершенно новых приложений, требующих вычислений более интенсивных для выполнения на блокчейнах и использующих гарантированные вычисления.
Запрос данных, или чтение данных с блокчейна, является важной частью большинства приложений. В то время как большая часть обсуждений и усилий в последние годы были сосредоточены на масштабировании записей (исполнение) - масштабирование чтения еще более важно из-за дисбаланса между ними (особенно в децентрализованной среде). Соотношение между чтением/записью различается в зависимости от блокчейна, но одним из важных аспектов являетсяпрогноз Сигаболее 96% всех вызовов к узлам на Solana были вызовами на чтение (на основе 2-летних эмпирических данных) - соотношение чтения/записи 24:1.
Увеличение чтения включает как увеличение производительности (больше чтений в секунду) с помощью выделенных клиентов валидаторов (например, Sig на Solana), так и возможность выполнения более сложных запросов (путем объединения чтения с вычислениями), например, с помощью сопроцессоров.
Другой ракурс - децентрализация методов запроса данных. В настоящее время большинство запросов на получение данных в блокчейнах осуществляются доверенными сторонними лицами (на основе репутации), такими как узлы RPC (Infura) и индексаторы (ДюнаПримеры более децентрализованных вариантов включаютГрафики операторы с доказательством хранения (которые также можно проверить). Существует также несколько попыток создания децентрализованной сети RPC, таких как Infura DINилиСеть Lava(кроме децентрализованного RPC, Lava планирует предложить дополнительные услуги доступа к данным позже).
С увеличением числа приложений, в которых используются ZKP, доказательства и верификация быстро становятся неотъемлемой частью модульного стека. Однако на сегодняшний день большинство инфраструктур для доказательств по-прежнему являются разрешенными и централизованными, и многие приложения полагаются на одного доказателя.
Хотя централизованное решение менее сложное, децентрализация архитектуры доказательств и ее разделение на отдельный компонент в модульном стеке приносит несколько преимуществ. Одним из ключевых преимуществ являются гарантии живости, которые крайне важны для приложений, зависящих от частой генерации доказательств. Пользователи также получают выгоду от более высокой устойчивости к цензуре и низких комиссий, обусловленных конкуренцией и распределением рабочей нагрузки среди нескольких доказателей.
Мы считаем, что общецелевые сети доказателей (много приложений, много доказателей) превосходят сети доказателей для одного приложения (одно приложение, много доказателей) из-за более высокого использования существующего оборудования и меньшей сложности для доказателей. Более высокое использование также приносит пользу пользователям в виде более низких комиссий, поскольку доказателям не нужно компенсировать избыточность через более высокие комиссии (тем не менее необходимо покрывать постоянные издержки).
Фигмент Капитал Предоставил хороший обзор текущего состояния цепочки поставок доказательств, которая состоит как из создания доказательства, так и из агрегирования доказательств (которое само по себе является генерацией доказательств, но просто принимает два доказательства в качестве входных данных, а не трассировку выполнения).
Источник: Фигмент Капитал
Источник: Figment Capital
Публикация данных (DP) обеспечивает доступность и легкость извлечения данных на короткий период (1-2 недели). Это критически важно как для безопасности (оптимистичные роллапы требуют ввода данных для проверки правильного выполнения путем повторного выполнения во время периода вызова, 1-2 недели), так и для живучести (даже если система использует доказательства допустимости, возможно понадобятся базовые данные транзакции для подтверждения владения активом для аварийного выхода, принудительных транзакций или для проверки соответствия входов выходам). Пользователи (такие как zk-мосты и роллапы) сталкиваются с единовременной оплатой, которая покрывает стоимость хранения транзакций и состояния на короткий период, пока оно не будет урезано. Сети публикации данных не предназначены для хранения данных в долгосрочной перспективе (вместо этого см. следующий раздел для возможных решений).
Celestiaбыл первым альтернативным уровнем DP, запустившим свою основную сеть (31 октября), но вскоре появится много альтернатив, из которых можно выбрать, так как Доступ, EigenDA, и Near DAвсе ожидаются к запуску в 2024 году. Кроме того, Ethereum’s EIP 4844обновление масштабных данных публикации на Ethereum (помимо создания отдельного рынка сбора платы за хранение блобов) и подготовка к полному шардингу. DP также расширяется на другие экосистемы - одним из примеров является @nubit_org/riema-secure-ангельская-investment-for-launching-the-first-bitcoin-native-data-availability-layer-49ccf0487380">Nubit который aims to build Native DP on Bitcoin.
Многие решения DP также предлагают услуги за пределами чистой публикации данных, включая общую безопасность для суверенных роллапов (например,СелестияиДоступно) или более плавное взаимодействие между роллапами (например, Avail’sNexusТакже есть проектыДомикониНулевая гравитация) предлагают как публикацию данных, так и долгосрочное хранение состояния, что является привлекательным предложением. Это также пример повторной сборки двух компонентов в модульном стеке, что, вероятно, мы будем видеть больше впереди (эксперименты как с дальнейшим разбиением на составные части, так и с повторной сборкой).
Хранение исторических данных важно в основном для целей синхронизации и обслуживания запросов данных. Однако нецелесообразно, чтобы каждый полный узел хранил все данные, и большинство полных узлов обрезают старые данные, чтобы сохранить аппаратные требования разумными. Вместо этого мы полагаемся на специализированные стороны (архивные узлы и индексы), чтобы хранить все исторические данные и делать их доступными по запросу пользователей.
Также существуют децентрализованные поставщики хранения, такие как FilecoinилиArweave, предлагающих долгосрочные децентрализованные решения для хранения по разумной цене. В то время как у большинства блокчейнов нет формального процесса архивного хранения (просто полагаются на кого-то, кто это хранит), протоколы децентрализованного хранения являются хорошими кандидатами для хранения исторических данных и добавления избыточности (по крайней мере, X узлов хранят данные) через встроенные стимулы хранения в сети.
Учитывая, что блокчейны являются распределенными P2P-системами, здесь нет доверенной третьей стороны, которая определяет глобальную истину. Вместо этого узлы сети соглашаются о том, какова текущая истина (какой блок является правильным) с помощью механизма, называемого консенсусом. Методы консенсуса на основе PoS могут быть классифицированы либо как основанные на BFT (где кворум валидаторов, обладающих устойчивостью к византийским ошибкам, определяет окончательное состояние), либо как основанные на цепи (где окончательное состояние определяется ретроспективно правилом выбора вилки). В то время как большинство существующих реализаций PoS-консенсуса основаны на BFT,Кардано является примером реализации с самой длинной цепочкой. Также растет интерес к механизмам консенсуса на основе DAG, таким как Narwhal-Bullshark, которые реализованы в некоторых вариациях в Aleo, Aptos и Sui.
Согласование является ключевой частью многих различных компонентов модульного стека, включая общий последователь, децентрализованное доказательство и сети публикации данных на основе блокчейна (не на основе комитетов, таких как EigenDA).
Расчёты подобны высшему суду - окончательному источнику истины, где проверяется правильность переходов состояний и разрешаются споры. Сделка считается окончательной в тот момент, когда она становится необратимой (или в случае вероятностной окончательности - в тот момент, когда ее будет достаточно сложно отменить). Время окончательности зависит от использованного базового уровня расчетов, который в свою очередь зависит от используемого конкретного правила окончательности и времени блока.
Медленная окончательность особенно проблематична в коммуникации между роллапами, где роллапы должны ждать подтверждения от Ethereum, прежде чем смогут утвердить транзакцию (7 дней для оптимистичных роллапов, 12 минут и время доказательства для валидных роллапов). Это приводит к плохому опыту пользователя. Существует несколько усилий по решению этой проблемы с использованием предварительных подтверждений с определенным уровнем безопасности. Примеры включают в себя и экосистемно-специфические решения (Polygon AggLayerилиzkSync HyperBridge) и универсальные решения, такие как Быстрый слой окончательности Nearкоторая стремится соединить несколько различных экосистем rollup, используя экономическую защиту от EigenLayer. Также есть вариантмосты нейтивного роллапа, использующие EigenLayerдля мягких подтверждений, чтобы избежать ожидания полной окончательности.
Безопасность связана с степенью гарантий и является ключевой частью ценностного предложения блокчейнов. Однако инициирование криптоэкономической безопасности сложно - повышение барьеров для входа и действие как трения для инноваций для тех приложений, которым это необходимо (различные промежуточные программы и альтернативные L1s).
Идея общей безопасности заключается в использовании существующей экономической безопасности сетей PoS и подвергании ее дополнительному риску штрафа (условия наказания), а не в том, чтобы каждый компонент пытался создать свое собственное. Были сделаны некоторые ранние попытки сделать то же самое в сетях PoW (совместное майнинг.)), но несоответствие стимулов сделало более легким для майнеров сговариваться и эксплуатировать протокол (сложнее наказать за плохое поведение, поскольку работа происходит в физическом мире, т.е. майнинг с использованием вычислительной мощности). Безопасность PoS более гибкая для использования другими протоколами, поскольку у нее есть как положительные (доход от стейкинга), так и отрицательные (срезка) стимулы.
Протоколы, основанные на принципе общей безопасности, включают в себя:
Безопасная и эффективная взаимодействия остается большой проблемой в мире мультицепей, что иллюстрируется Потери в размере $2.8 млрд в результате взлома моста. В модульных системах взаимодействие становится еще более важным - Вы общаетесь не только между другими цепями, но и модульным блокчейнам также требуется, чтобы различные компоненты общались друг с другом (например, DA и слой расчетов). Следовательно, уже невозможно просто запустить полный узел или проверить одно единственное доказательство согласия, как в интегрированных блокчейнах. Это добавляет еще больше движущихся частей к уравнению.
Взаимодействие включает как мосты для токенов, так и более общую передачу сообщений между блокчейнами. Существует несколько различных вариантов, каждый из которых делает разные компромиссы в области безопасности, задержки и стоимости. Оптимизация всех трех параметров очень сложна и обычно требует по крайней мере жертвования одним из них. Кроме того, различные стандарты между цепочками усложняют внедрение на новых цепочках.
Пока у нас все еще нет четкого определения различных типов легких клиентов (или узлов), этот пост от Dino(сооснователь Fluent & Modular Media) дает хорошее введение. Большинство легких клиентов сегодня проверяют только согласованность, но в идеале у нас должны быть легкие клиенты, которые могут проверять также выполнение и DA, чтобы сократить доверие к предположениям. Это позволило бы приблизиться к безопасности полного узла без высоких аппаратных требований.
Предполагая, что мы можем достичь состояния, когда генерация ZKPs становится очень быстрой (почти со скоростью света) и невероятно дешевой (почти бесплатной), каков конечный результат? Другими словами, когда ZK поглотил модульный стек?
В общем, мы считаем, что в этом состоянии мира две вещи будут верными:
Третьим условием будет конфиденциальность (или управление потоком информации), но это сложнее. ZKPs могут использоваться для некоторых приложений конфиденциальности с доказательством со стороны клиента, что и делают платформы типа Aleo, Aztec или Polygon Miden, однако достижение масштабной конфиденциальности для всех потенциальных случаев использования зависит от прогресса MPC и FHE - потенциальная тема для будущего блог-поста.
Что, если мы ошибаемся, и будущее не является ни модульным, ни ZK'fied? Некоторые потенциальные риски для нашей тезис включают:
Как пользователи, так и разработчики страдают от постоянно растущего количества цепочек. Пользователям необходимо управлять средствами на нескольких цепочках (и, возможно, в нескольких кошельках). Разработчики приложений, с другой стороны, имеют меньше стабильности и прогнозируемости, учитывая, насколько сильно пространство все еще развивается, что затрудняет принятие решения, на какой цепочке строить. Им также нужно думать о фрагментации состояния и ликвидности. Это особенно верно сейчас, когда мы все еще экспериментируем на грани того, какие компоненты имеют смысл отделять и какие будут снова объединены. Мы считаем, что абстрагирование операций пользователя, а также безопасные и эффективные решения для взаимодействия являются ключевыми частями решения этой проблемы.
Невозможно обойти факт того, что генерация доказательств занимает слишком много времени, а стоимость как генерации, так и верификации по-прежнему слишком высока. Конкурирующие решения, такие как доверенные исполнительные среды/TEEs (конфиденциальность) или оптимистичные/криптоэкономические решения безопасности (стоимость), по-прежнему имеют больший смысл для многих приложений сегодня.
Много работы, однако, проводится в отношении оптимизации программного обеспечения и аппаратного ускорения для ZKPs. Агрегирование доказательств поможет дополнительно снизить затраты на верификацию, распределяя их между несколькими различными сторонами (меньшие затраты на пользователя). Также есть возможность адаптации базового уровня для более оптимизированной верификации ZKPs. Одна из проблем аппаратного ускорения для ZKPs - быстрое развитие систем подтверждения. Это затрудняет создание специализированного оборудования (ASICs), поскольку они могут быстро устареть, если стандарты базовых систем подтверждения эволюционируют.
Ингонямапыталась создать некоторые показатели производительности доказательств через сравнимую метрику, называемую ZK score. Она основана на стоимости выполнения вычислений (OPEX) и отслеживает MMOPS/WATT, где MMOPS означает модулярные умножения операций в секунду. Для дальнейшего чтения по этой теме, мы рекомендуем блоги от @Cysic/BJQcpVbXn?ref=blog.succinct.xyz">Cysic and @ingonyama/revisiting-paradigms-hardware-acceleration-for-zero-knowledge-proofs-5dffacdc24b4">Ingonyama, а также этот разговор от Вэй Дай.
ZKPs могут использоваться только для обеспечения конфиденциальности личного состояния, а не для общего состояния, где несколько сторон должны вычислять данные в зашифрованном виде (например, в частном Uniswap). Для полной конфиденциальности также требуются FHE и MPC, но им необходимо улучшить многие порядки величины в терминах затрат и производительности, прежде чем они станут жизнеспособными вариантами для более масштабного использования. Тем не менее, ZKPs все еще полезны для определенных случаев использования, которые не требуют личного общего состояния, таких как решения для идентификации или платежи. Не все проблемы нужно решать одним и тем же инструментом.
Итак, что же из этого следует? В то время как мы делаем успехи каждый день, остается еще много работы. Самые насущные проблемы, которые нужно разрешить, - это то, как ценность и информация могут безопасно передаваться между различными модульными компонентами, не жертвуя скоростью или стоимостью, а также абстрагирование всего этого от конечного потребителя, чтобы им не приходилось беспокоиться о мостах между различными цепями, переключении кошельков и т. д.
В то время как мы находимся в фазе экспериментов, вещи должны стабилизироваться со временем, поскольку мы определяем, где на спектре находятся оптимальные компромиссы для каждого случая использования. Это, в свою очередь, создаст условия для стандартов (неформальных или формальных) для возникновения и обеспечит большую стабильность для строителей поверх этих цепочек.
Сегодня еще существует множество случаев использования, в которых по умолчанию используется криптоэкономическая защита из-за стоимости и сложности создания ZKPs, и некоторые требуют комбинации обоих. Однако этот объем должен уменьшаться со временем, поскольку мы разрабатываем более эффективные системы доказательств и специализированное оборудование для снижения стоимости и задержек подтверждения и верификации. С каждым экспоненциальным снижением стоимости и скорости открываются новые возможности использования.
Хотя эта статья сосредоточена на ZKPs в частности, мы также все больше интересуемся тем, как современные криптографические решения (ZKPs, MPC, FHE и TEE) будут взаимодействовать вместе - что мы уже наблюдаем.
Спасибо за чтение!