Автор: Мандалорец, Сетевой протокол 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 и членом акселератора блокчейнов Университета Беркли.