zkSync — это ориентированная на пользователя накопительная платформа zk от Matter Labs. Это решение для масштабирования Ethereum, уже работающее в основной сети Ethereum.
ZkSync создан с использованием технологии zkRollup от Matter Labs: сочетание передовых исследований в области доказательств с нулевым разглашением с доступностью данных в сети. Этот подход может похвастаться впечатляющими свойствами безопасности: при правильной реализации средства, размещенные в zkRollup, так же безопасны, как и в базовом L1.
В то время как безопасность была и всегда будет высшим приоритетом архитектуры zkSync, мы одержимо ищем самые элегантные дизайнерские идеи, чтобы обеспечить непревзойденный UX и плавный опыт разработчиков.
Некоторые из основных особенной zkSync:
- Плата за транзакцию спроектирована так, чтобы быть предсказуемо низкой в долгосрочной перспективе (< 0,01 доллара США за транзакцию).
- Плата за перевод токена (без проблем с газом для пользователей).
- Нулевая стоимость создания учетной записи вне сети.
- Переводы L2 на любой адрес Ethereum (включая контракты, которые еще не развернуты!)
- Мгновенные подтверждения транзакций и окончательность в течение нескольких минут.
- Вывод на L1 через 15 минут после заполнения блока.
- Интуитивно понятный интерфейс, который работает с любым кошельком Ethereum.
Преимущества
Максимальная пропускная способность
После обновления от 9 февраля 2021 года (открывается в новом окне), которое обеспечило поддержку рекурсии в zkSync в основной сети, пропускная способность протокола ограничивается в основном только необходимостью публиковать изменения состояния для каждой транзакции через calldata Ethereum, чтобы обеспечить доступность данных. При текущем лимите блочного газа в 12,5 млн zkSync может обрабатывать более 2000 транзакций в секунду.
Завершение транзакции
Транзакции в zkSync достигают окончательности Ethereum после того, как SNARK-доказательство блока zkSync будет сгенерировано и принято смарт-контрактом. Ожидается, что время генерации доказательства составит около 10 минут, т.е. через 10 минут после отправки транзакция zkSync (доказательство) является такой же окончательной, как и любая транзакция L1 Ethereum, включенная в тот же блок Ethereum, что и транзакция с доказательством. В момент, когда пользователь отправляет транзакцию, мы ждем заполнения блока, поэтому сразу не генерируем доказательство. При более высокой пропускной способности системы zkSync время между блоками будет уменьшаться.
Напротив, основанные на масштабирование решения (например, optimistic) требуют как минимум 2 недели периода блокировки для более или менее безопасной работы, что приводит к 2-недельному объективному времени завершения транзакций.
Следует добавить, что Matter Labs и другие компании, занимающиеся доказательством с нулевым разглашением (ZKP), постоянно работают над повышением эффективности доказывающего, что приведет к сокращению времени окончательности (потенциально до 1 минуты).
Мгновенные подтверждения
Несмотря на то, что время до завершения составляет около 10 минут, это не влияет на удобство использования сети. Транзакции, отправленные пользователями в zkSync, мгновенно подтверждаются, мгновенно отображаются принимающей стороне в пользовательском интерфейсе и API (хотя они помечаются как неподтвержденные), а переданные активы могут быть немедленно использованы для дальнейших переводов (которые могут даже закончиться в тот же блок zkSync).
На данный момент мгновенные подтверждения являются чистым обещанием со стороны валидаторов zkSync включить транзакцию в следующий блок. Пользователи, которые не доверяют валидатору, должны дождаться полной окончательности, прежде чем считать активы полученными.
В будущем валидаторы добавят залог в zkSync. Это обеспечит мгновенные гарантии экономической завершенности. Это будет работать следующим образом.
Валидаторы, выбранные для участия в производстве блоков zkSync, должны будут внести значительный залог безопасности в смарт-контракт zkSync в основной сети. Консенсус, проводимый валидаторами, предоставляет пользователю подтверждение того, что его транзакция будет включена в следующий блок zkSync за доли секунды, подписанный подавляющим большинством (более чем) ⅔ участников консенсуса (взвешенных по доле).
Если новый блок zkSync создается и отправляется в основную цепочку, его нельзя отменить. Однако, если он не содержит обещанных транзакций, залог пересечения сторон, подписавших исходную квитанцию, и подписавших новый блок будет сокращен. На этом перекрестке гарантированно будет более ⅓ доли. Это гарантирует, что по крайней мере ⅓ залога безопасности может быть сокращено и что только злонамеренные валидаторы будут наказаны.
Часть урезанных средств будет использована для компенсации получателю транзакций. Остальные будут сожжены
Низкая нагрузка сети
Периодически чрезвычайные события приводят к очень высоким уровням перегрузки в сети Ethereum (яркими примерами являются кризис Cryptokitties и DOS-атака в Шанхае. Во время таких пиковых нагрузок цены на газ резко растут, и перемещение криптоактивов может стать чрезмерно дорогим, что делает некоторые службы неработоспособными или предотвращает возможность арбитража.
Более того, некоторые системы обычно могут выходить из строя в экстремальных обстоятельствах, что приводит к каскадным сбоям (отличным примером является недавний Черный четверг DeFi. Это особенно тревожно для решений масштабирования, основанных на защите от мошенничества (платежные каналы, оптимистичные свертки), потому что существует риск того, что их автоматизированные боты безопасности не смогут получить свои защищенные от мошенничества транзакции в случае атаки во время высокой перегрузки, тем самым ставя под угрозу безопасность всех активов, находящихся под контролем таких систем. Что усугубляет проблему для этих систем, вы никогда не узнаете, пока не возникнет ситуация (точно так же, как это произошло с ликвидационным ботом Maker).
Напротив, zkSync имеет исключительно хорошие возможности для работы в среде с высокой перегрузкой.
Прежде всего, перегруженная сеть (как и в случае целенаправленной DOS-атаки) никогда не создаст угрозы для активов в zkSync. Любое движение средств внутри или вне zkSync требует доказательства достоверности с нулевым разглашением, и на него просто никак не влияет цензура L1.
Во-вторых, нормальная работа zkSync тоже вряд ли будет нарушена, даже при меньших суммах. Узел валидатора настроен на автоматическое повышение цены газа до уровня выше среднего, чтобы получить блоки zkSync, добытые с высоким приоритетом. Поскольку стоимость транзакции составляет примерно 1/100 стоимости соответствующей простой транзакции на L1, пользователи zkSync пострадают меньше всего.
Технология zkSync
Основная технология zkSync — zkRollup — является единственным подходом к масштабированию L2, который может обеспечить те же пассивные гарантии безопасности, что и L1. Это означает, что как только вы получите подтверждение того, что средства поступили на вашу учетную запись zkSync, вы можете выйти из сети на год, вернуться и быть уверенными, что сможете восстановить свои активы без какой-либо внешней помощи. Ваш депозит zkSync полностью защищен от любых манипуляций или атак на операторов zkSync.
Это абсолютно уникально среди существующих решений масштабирования L2: все остальные подходы требуют активных усилий по обеспечению безопасности, а это означает, что их операторам необходимо выполнять некоторую постоянную работу для обеспечения безопасности средств. Это увеличивает поверхность атаки и угрозы других видов (например, в некоторых случаях ваша учетная запись может быть заморожена или конфискована операторами).
Безопасность активов пользователей zkSync имеет для нас первостепенное значение. Мы следуем очень строгим правилам разработки и безопасности DevOps, провели тысячи транзакций в нагрузочных тестах и широко покрыли наш код модульными и интеграционными тестами.
Кроме того, протокол zkSync, смарт-контракты и схемы с нулевым разглашением были проверены одной из самых уважаемых экспертных групп в области с нулевым разглашением: ABDK Consulting (команда, которая является соавтором хеш-функций Poseidon, Equihash и Argon2 и провела проверку). криптоанализ шифра Джарвиса, хеш-функции Friday, AES, ALE, Catena, RC4, IDEA и многих других криптографических схем и протоколов).
zkSync меняет правила игры
• Надежная установка сложна, она требует большого количества экспертов и внимания сообщества для обеспечения безопасности. Предыдущее поколение SNARK требовало доверенных настроек для конкретных приложений, что значительно снижало безопасность и применимость технологии zkRollup.
•zkSync — это первый zkRollup с универсальной надежной настройкой. Мы повторно используем результаты самой безопасной церемонии MPC из когда-либо проводившихся.
• Это позволяет нам легко и безопасно повторять дизайн zkSync, добавлять расширения, увеличивать пропускную способность, добавлять смарт-контракты и реализовывать конфиденциальность.
Предыдущее поколение технологии блокчейна на основе SNARK (Zcash, Tornado cash, Loopring) использовало систему доказательства под названием Groth16. Хотя на момент выпуска в 2016 году это был современный протокол, за последний год мы наблюдаем кембрийский взрыв протоколов с доказательством с нулевым разглашением, которые значительно улучшились по сравнению с Groth16, особенно в отношении настройки протокола. Общая ссылочная строка (CRS).
CRS более известен как «надежная установка». Прежде чем можно будет сгенерировать доказательства SNARK, необходимо один раз создать CRS, обычно в ходе церемонии многосторонних вычислений (MPC) с несколькими участниками. Если хотя бы один из этих участников был честным и надежно удалил энтропию (случайность) своего вклада, SNARK, созданные с использованием этой CRS, считаются безопасными.
Надежная установка MPC — это огромная логистическая и операционная проблема безопасности. Но Groth16 превращает его в кошмар с точки зрения логистики и безопасности, требуя надежной настройки для конкретного приложения. Это означает, что доверенную настройку необходимо выполнять отдельно для каждого приложения и каждого обновления логики в этом приложении (каждое изменение, каждое исправление). Рассмотрим следующее:
Доверенный протокол установки должен пройти экспертную оценку с высокой степенью тщательности. Ошибка в спецификации протокола доверенной установки для Zcash’s Sprout привела к серьезной уязвимости системы безопасности. Вы хотите, чтобы ваша надежная установка привлекала большое внимание общественности. Это трудно делать часто, особенно при привязке к одному приложению.
Код реализации доверенной установки должен быть тщательно проверен для устранения бэкдоров и слабых мест. В идеале вам нужно несколько независимых реализаций.
Участники доверенной установки должны следовать строгим процедурам безопасности, чтобы убедиться, что они не были скомпрометированы: запускайте ее в безопасной среде (определенно не в браузере), в идеале на только что купленных машинах с воздушным зазором.
Ваши пользователи хотят видеть участников, которых они знают лично и считают заслуживающими доверия, а также подкованных в вопросах безопасности. Этого трудно достичь с помощью настроек, специфичных для проекта.
Наконец, явная логистическая сложность процедуры (для доверенной установки, ориентированной на масштабируемость, вам потребуется много гигабайт загрузки/выгрузки и часы вычислений при обеспечении безопасности) очень затрудняет постоянное участие людей.
Идеальная ситуация — избавиться от него полностью или, по крайней мере, сделать это только один раз.
Наша цель — масштабируемая, сохраняющая конфиденциальность, устойчивая, справедливая, полностью не требующая разрешения технология блокчейна для миллиардов людей. Сегодня мы начнем с масштабируемого решения, которое отвечает всем этим требованиям, но не требует конфиденциальности. После масштабирования мы сделаем то же самое для конфиденциальности в Ethereum.
Официальные ресурсы проекта
Website — https://zksync.io/
Medium — https://blog.matter-labs.io/
Telegram — https://t.me/zksync
Twitter — https://twitter.com/zksync