Unlock $300K in Grants: Enter WaveHack Global Now!
ZKWordle

ZKWordle

フルオンチェーンのWordleです。Wordleは5文字の単語をヒントを得ながら当てるゲームです。ZKPを使って、回答を明かすことなく、回答を知っていることを証明します。
ZKWordle
ZKWordle

何をするのか

フルオンチェーンのWordleです。Wordleは5文字の単語をヒントを得ながら当てるゲームです。ZKPを使って、回答を明かすことなく、回答を知っていることを証明します。


最速で正解するとかっこいいフルオンチェーンのNFTを取得することができます。



ぶつかった課題

・ZKPの回路がデカすぎて、コンパイルだけでめちゃくちゃ時間がかかった

・最新技術すぎてHow toがない



使用した技術

・Zokrates(ZKP): ZKPの回路の開発設計やテスト、Verifyのためのコントラクトの生成

・Cloudflare Workes: CDNを利用しエッジでヒントAPIを返すことで、全世界で共通のレスポンスタイムになるように

・Superflare: Wokers用のフレームワーク

・Remix: Reactのフレームワーク


どのように作ったか

・4人のチームで作りました


・serinuntius#3314: ZKP周り、全体設計、動画、スライド

・jhcoder(y_orita)#9353: フロント

・Soma#0714: フルオンチェーンNFT周り、API

・kobayashi#1195: ZKP周り、フロント


私たちが学んだこと

・ZKPのノウハウ(テスト高速化、public/private inputの使い分け、solidityの変数の変換、回路開発、回路をコンパクトにする方法)

・SuperflareやWokers周り



次をどうするか?

・Hint ZKP有効化

・他所のチェーンでも動くように、drandとLitで乱数オラクル作成

・作問自動化Bot


デモ

・動くのですが、ゲームの仕様上誰かが回答すると、運営が作問コントラクトを叩く必要があります(もし動いてなさそうであれば、連絡ください)


ツッコまれそうなところ

・Q. 総当たりで解けるよね? A. PoC優先で、コア機能じゃないので対策に時間をかけなかったですが、総当たりできないように変更することは可能です。

・Q. ZKP遅くね? A. Hash関数を最適化し、もう少し早くもできそうです。

・Q. マスターデータ公開していいの? A. ハッカソンだから公開してます、本来は公開しません。


コントラクトとか

・https://testnets.opensea.io/ja/collection/zkwordlenft-1

・ lib deployed to: https://goerli.etherscan.io/address/0x54cF2B9f899202D32B773edE959894C3126ec1fd

・ zkWordleNFT deployed to: https://goerli.etherscan.io/address/0xe7850330229ab5304a7Bb74b6af1e06BAAc55467

・ zkWordle deployed to: https://goerli.etherscan.io/address/0xEF7AaeCE5d11e0BE9a3065a67bD8Ede62F8a783d