Автор: Мандалорец, Сетевой протокол Manta
За последний год или около того все больше и больше людей осознают мощь криптографических инструментов, таких как ZK (доказательство с нулевым разглашением). Мы также стали свидетелями роста множества приложений с доказательством с нулевым разглашением, таких как частные социальные сети, частные сети. голосование и частное DAO и т. д. На самом деле, применение доказательства с нулевым разглашением очень широко, и любое приложение, требующее конфиденциальности в цепочке, может использовать доказательство с нулевым разглашением.
На мероприятии ETHGlobal Hackathon во время только что завершившегося ETHSanFrancisco 2022 друзья команды разработчиков криптографии Manta Network всего за 36 часов создали игру в техасский холдем на базе zkSNARK. Четыре соревновательных подразделения, организованные ENS, SKALE и Optimism, получили награды.
Dark Forest, с которой многие знакомы, — это игра-стратегия в реальном времени (несовершенная информация), основанная на zkSNARK. Игры с неполной информацией — это игры, в которых игрок не знает всех состояний. Например, в покере карты на руке игрока являются частной информацией, и процесс вытягивания карт также полностью приватен. Неполная информация интересна тем, что она может привести к ряду сложных игровых стратегий.
На публичном блокчейне сложно построить игру с неполной информацией из-за открытости и прозрачности данных в цепочке. Однако благодаря технологии доказательства с нулевым разглашением игроки могут публично отправлять проверяемые действительные действия, сохраняя при этом конфиденциальность.
В рамках этого хакатона Manta Network создала систему перетасовки и раздачи покерных карт на основе zkSNARK. Эта система в основном решает две проблемы, существующие в онлайн-покерных играх: как справедливо перетасовать карты и как тайно раздавать карты между игроками (в противном случае игра может быть невозможна из-за проблем с MEV).
По сути, ончейн-покер, основанный на доказательстве с нулевым разглашением, децентрализует карточного дилера, и дилер не может контролировать карточную игру, контролируя карточного дилера.
Играя в Техасский Холдем в централизованном клиенте Web2, вы столкнетесь с ситуацией, когда вам просто раздадут карту с крайне низкой вероятностью. Есть большая вероятность, что вы сможете получить карты, но не сможете их вытащить.
Цель состоит в том, чтобы манипулировать карточной игрой путем раздачи карт, чтобы ваш противник мог просто победить вас онлайн, когда вероятность выигрыша в автономном режиме чрезвычайно низка.
Вот почему нам нужен децентрализованный покер.
Система ZKShuffle имеет три функции:
ZKShuffle.setup: каждый игрок генерирует пару ключей и объединяет соответствующие открытые ключи каждого игрока для создания совокупного открытого ключа.
ZKShuffle.shuffle_encrypt: при перетасовке каждый игрок должен по очереди вызывать shuffle_encrypt.
Чтобы обеспечить возможность выполнения шифрования и дешифрования в любом порядке, мы используем гомоморфную схему шифрования (Homomorphic Encryption Scheme). Например, в этой игре участвуют три игрока. После раунда шифрования каждая карта будет иметь три блокировки шифрования: Карта {Алиса, Боб, Чарли}.
ZKShuffle.decrypt: Если вы хотите раздать карты конкретному игроку, каждому игроку необходимо вызвать функцию расшифровки. Например, если логика игры заключается в раздаче карт Чарли, правильная последовательность должна быть такой: Алиса получает зашифрованную карту «Карта» {Алиса, Боб, Чарли}, использует свой ключ для ее расшифровки, а затем отправляет расшифрованную карту «Карта». {Боб, Чарли} отправляется в цепочку и отправляет доказательство с нулевым разглашением для проверки достоверности расшифровки.
После того, как Боб получает частично расшифрованную карту Card{Bob, Charlie}, представленную Алисой в цепочке, он расшифровывает ее своим собственным ключом и отправляет карту Card{Charlie} и ключ для проверки достоверности расшифровки в цепочке. Доказательство с нулевым разглашением. Наконец, Чарли получает карту {Чарли} и может просматривать свои карты, расшифровав их своим собственным ключом.
Команда разработчиков криптографии Manta Network создала демо-версию Техасского Холдема с использованием ZKShuffle, децентрализованного приложения, основанного на Solidity, React и Ether.js. В этой демонстрации каждый раз, когда начинается новый раунд игры, все игроки должны выполнить раунд настроек, чтобы гарантировать, что игральные карты в цепочке правильно перетасованы. Затем каждому игроку необходимо выполнить раунд расшифровки и получить две карты. Благодаря им игроки могут играть в Техасский Холдем-Покер на блокчейне EVM.
В настоящее время Manta развернула это DApp на блокчейнах Optimism Goerli, Ethereum Goerli и Skale.
Принцип реализации
Весь проект состоит из 3 частей:
цепь ЗК;
Смарт-контракты для проверки дешифрования и перетасовки, включая контракт ZKShuffle и контракт игровой логики, внешний интерфейс DApp, демо-версию, созданную с использованием React и ether.js и библиотеки Circomlib JS;
Криптографический JS-файл Circomlib.
В реализации Circcom принята схема шифрования Эль-Гамаля и используются существующие библиотеки Circcom, такие как хэши Посейдона.
Схема шифрования имеет 87308 ограничений R1CS, а время генерации доказательства в DApp составляет 4,5 секунды. Схема дешифрования имеет 1522 ограничения R1CS, а время генерации доказательства в DApp составляет 0,1 секунды. Используйте SnarkJs для создания доказательств с нулевым разглашением в DApps.
Смарт-контракт состоит из двух частей: фреймворка ZKShuffle и контракта логики игры в покер. Контракт ZKShuffle просто инкапсулирует логику проверки ZKP и две схемы. Логический контракт развертывает конечный автомат для получения текущего этапа игры и порядка хода игрока из узла RPC.
DApp реализован с использованием платформы React и Ether.js для отображения покерного стола и анимации действий каждого игрока. Когда игроку необходимо совершить действие, ему нужно всего лишь нажать кнопку в пользовательском интерфейсе и использовать метамаску для подписания транзакции.
Посмотреть демо
О сети Манта
Manta Network стремится построить лучший мир Web3 посредством защиты конфиденциальности. Дизайн продукта Manta начинается с первых принципов и обеспечивает сквозную защиту конфиденциальности пользователей блокчейна с помощью ведущих криптографических архитектур, таких как zkSNARK. Обеспечивая конфиденциальность, Manta сочетает в себе совместимость, удобство, высокую производительность и возможность аудита, позволяя пользователям осуществлять частные переводы и транзакции между любыми активами парачейна. Целью Manta является предоставление более удобных услуг по защите конфиденциальности для всего мира блокчейнов.
Команда основателей Manta состоит из нескольких ветеранов криптовалют, профессоров и ученых, чей опыт включает Гарвардский университет, Массачусетский технологический институт и Algorand. Инвестиционные институты Manta включают Polychain, ParaFi, Binance Labs, Multicoin, CoinFund, Alameda, DeFiance и Hypersphere и т. д. Манта также является официальным получателем гранта Фонда Polkadot Web3 Foundation, участником программы Substrate Builder и членом акселератора блокчейнов Университета Беркли.
