Retitle - Sin7Y Tech Review (19): Концепция дизайна и применение нестандартных ворот
24 февраля 2022 г.Мы изучаем концепцию дизайна и план решения для ZKEVM, для которого требуются специальные ворота. В результате мы потратили некоторое время на его изучение и надеемся, что вы получите некоторое представление после прочтения этой статьи:
- Зачем использовать нестандартные ворота?
- Что такое нестандартные ворота?
Почему?
Масштабируемость уровня 2 в Ethereum всегда была горячей темой. В настоящее время накопительное решение является наиболее приемлемым, так как оно сочетает в себе вычисления вне цепочки и проверку в цепочке. Короче говоря, переход состояния будет происходить вне цепочки. Доказывающая будет нести ответственность за создание доказательства правильности перехода, как показано ниже:
Для конкретного контракта соответствующая конкретная функция перехода состояния (STF) должна выполнять обширные вычисления, включая, помимо прочего, глобальное изменение состояния и проверку подписи транзакции. Все приведенные выше расчетные процедуры необходимо преобразовать в схему, состоящую из простых вентилей сложения и вентилей мультиплексирования. Доказывающая может сгенерировать доказательство и отправить его верификатору для проверки, используя эту схему. Форма выражения схемы выглядит следующим образом:
Как указывалось ранее, схема фиксирована, представляет только один расчет и, следовательно, не может представлять дополнительные расчеты. Другими словами, если доказывающая сторона хочет проверить дополнительные операторы расчета, схема должна быть переработана, чтобы разрешить повторное развертывание контракта проверки. Это нежелательно. Мы надеемся, что пользователи смогут самостоятельно определять свои контракты, а не повторно развертывать контракт проверки. Это концепция ZKRollup, совместимая с EVM. Хотя реализовать эту концепцию сложно и требует много времени, многие люди прилагают значительные усилия для ее достижения. MatterLabs — хороший пример. Мы высоко ценим их и пользуемся их знаниями.
Каков наилучший способ достижения универсальности? Во-первых, нам нужно понять принцип TinyRam. TinyRam — это фреймворк для обеспечения точности расчета. Его недостаток состоит в том, что если вычисление чрезмерно сложно, связанное с ним вычисление TinyRam становится более сложным. В результате трудно согласиться с простым использованием TinyRam для проверки правильности функции STF во время процесса. Сравнение сложности TinyRam выглядит следующим образом:
Следовательно, общие вычисления не могут быть реализованы исключительно на TinyRam. Мы принимаем пользовательские ворота для упрощения расчетов. Мы знаем, что на расчет логики контракта приходится небольшая часть потребления транзакции, тогда как на подпись и хэш приходится значительная часть. В результате выделение этих действий из транзакции в качестве рабочего компонента (OP), аналогичного ADD/MUL/SUB и т. д., упрощает общий расчет.
Точно так же в текущем фиксированном сценарии, который не является универсальным, можно создать собственный вентиль для минимизации масштаба схемы, за исключением add-gate и mul-gate. Вот почему мы изучаем индивидуальные ворота.
Что такое настраиваемый шлюз?
Например, схема алгоритма Plonk состоит из вентиля добавления и вентиля мультиплексирования, как показано ниже:
Поскольку константы затвора могут быть равны нулю, два затвора можно объединить в один. Основываясь на значении констант Гейтса, определите, является ли определенное ограничение добавочным или множественным, как показано ниже:
Когда qM = 0, qL = 1, qR = 1 и qO = 1, соответствующий вентиль является адд-гейтом.
Когда qM = 1, qL = 0, qR = 0 и qO = 1, вентиль является мультигейтом.
Учтите, что если входных проводов вентиля больше двух, связанный вентиль может выполнять операции, отличные от сложения и умножения. В настоящее время команда AZTEC разработала несколько логических блоков с малыми схемами, как показано ниже:
Например, если схема требует более эффективного вычисления функции MiMc, после добавления x3custom gate ограничение схемы станет следующим:
qM·WL· WR + qL·WL + qR·WR + qO·WO + qL3WL3 + qC = 0
При qM = 0, qL = 0, qR = 0, qL3 = 1, qo = 1 ограничение реагирует на вентиль «MiMc». Если это вентиль «Xor», схема sha256 будет намного меньше.
Пользовательский вентиль позволяет значительно уменьшить масштаб схемы (количество вентилей) и повышает гибкость конструкции схемы. На практике многочисленные операции, такие как сложение точек и скалярное вычисление для эллиптических кривых, могут быть построены как пользовательские вентили. Именно этим мы и занимаемся в данный момент.
В дополнение к пользовательскому вентилю для уменьшения масштаба схемы можно использовать справочную таблицу. В сочетании они могут обеспечить захватывающий опыт. Позже мы обсудим, как использовать таблицу поиска в ZKP. В общем, мы называем алгоритм Plonk, использующий пользовательский вентиль, турбо-Plonk. Если также используется поиск, алгоритм Plonk называется Ultra Plonk.
Оригинал