Skip to main content

🎉 まとめと今後の展望

お疲れ様でした!

これで、ゼロ知識証明を利用した Serverless ZK NFT App のすべての実装が完了しました。

本当におめでとうございます!

このプロジェクトを通して、あなたは最先端のweb3技術を巧みに組み合わせ、プライバシーを保護しながらユニークなユーザー体験を提供する、非常に価値のあるdAppを構築するスキルを習得しました。

📚 学んだことの振り返り

このプロジェクトで、私たちは以下の技術スタックとコンセプトを学び、実践しました。

一つ一つが、現代のweb3開発における重要なピースです。

  • ゼロ知識証明 (Zero-Knowledge Proofs) 🧠.

    • Circomを使って算術回路を設計し、特定の知識(このプロジェクトでは秘密のパスワード)を持っていることを、その知識自体を明かすことなく証明するロジックを定義しました。

    • snarkjsを使い、ユーザーのプライバシーを守りながら クライアントサイド(ブラウザ) で安全にZK証明を生成しました。

  • スマートコントラクト開発 🔗.

    • Hardhat開発環境で、Solidityを使って堅牢なNFTコントラクト(ZKNFT.sol)を開発しました。

    • 自動生成された検証コントラクト(PasswordHashVerifier.sol)を利用し、オンチェーンでZK証明を検証するという、web3ならではの仕組みを実装しました。

  • モダンなフロントエンド開発 🖥️

    • Next.jsTypeScriptをベースに、高速でインタラクティブなUIを構築しました。

    • shadcn/uiTailwind CSSを駆使して、美しくレスポンシブなデザインを効率的に実装しました。

  • 先進的なweb3 UX (ユーザー体験) ✨.

    • Privy:
      Eメールやソーシャルログイン、外部ウォレット接続を驚くほど簡単に実装し、web3に不慣れなユーザーにも優しいシームレスなオンボーディングを実現しました。

    • Biconomy:
      アカウント抽象化(Account Abstraction)Paymasterを利用し、ユーザーがガス代を一切支払う必要のない、革命的な「ガスレス」トランザクション体験を提供しました。

これらの技術を組み合わせることで、私たちは「サーバーレス」かつ「ガスレス」で、ユーザーのプライバシーを最大限に尊重した、次世代のdAppを構築することができたのです。

🚀 プロジェクトをアップグレードする

このプロジェクトは、あなたの学びをさらに深めるための素晴らしい出発点です。

以下に、このdAppをさらに進化させるためのアイデアをいくつかご紹介します。ぜひ挑戦してみてください!

  • 一人で複数のNFTをミント可能にする

    • 現在のZKNFT.solは、学習のために一人1つしかミントできないように制限しています。
      この制限を解除し、ユーザーがコレクションできるようにしてみましょう。
  • 異なるパスワードで、異なるNFTをミントする

    • スマートコントラクトに、複数の公開ハッシュ値を登録できるように改良します。

    • ユーザーが入力したパスワードに応じて、異なる画像やプロパティを持つNFTをミントできるようにしてみましょう(例:「gold-password」で金のNFT、「silver-password」で銀のNFT)

  • 証明生成のパフォーマンス向上

    • 現在、証明生成はクライアントのブラウザで行っていますが、より複雑な回路では時間がかかることがあります。

    • バックエンドサーバーやサーバーレス関数(例: AWS Lambda, Vercel Functions)で証明を生成するアーキテクチャを検討してみましょう(⚠️ ただし、その場合はパスワードをサーバーに送信する必要があるため、プライバシーに関するトレードオフを慎重に考慮する必要があります)。

  • 他のブロックチェーンへの展開

    • このプロジェクトはEVM互換のBase Sepoliaで構築されています。

      ほんの少しの設定変更で、PolygonAvalancheArbitrumなど、他の多くのEVM互換チェーンにデプロイできます。マルチチェーン展開に挑戦してみましょう!

最後に

このプロジェクトで得た知識と経験は、あなたのweb3開発者としてのキャリアにおいて、間違いなく強力な武器となります。ゼロ知識証明アカウント抽象化は、これからのweb3業界の発展を牽引する、間違いなく最も重要な技術分野です。

ぜひ、ここで学んだことを活かして、あなた自身のユニークなアイデアを形にしてみてください。

あなたの創造性が、次の素晴らしいdAppを生み出すことを楽しみにしています!


🌍 プロジェクトをアップグレードする

UNCHAIN のプロジェクトは UNCHAIN License により運用されています。

プロジェクトに参加していて、「こうすればもっと分かりやすいのに!」「これは間違っている!」と思ったら、ぜひpull requestを送ってください。

🙋‍♂️ 質問する

ここまでの作業で何かわからないことがある場合は、Discordの#zkで質問をしてください。

ヘルプをするときのフローが円滑になるので、エラーレポートには下記の3点を記載してください ✨

  1. 質問が関連しているセクション番号とレッスン番号
  2. 何をしようとしていたか
  3. エラー文をコピー&ペースト
  4. エラー画面のスクリーンショット