明るい未来:Minaとo1jsにおけるzkAppsの未来

リソース:https://www.o1labs.org/blog/zkapps-on-mina-and-o1js

概要

これはシリーズの最初の投稿であり、o1jsとzkAppsプラットフォームに関する計画を詳しく説明します。今後1年間、o1jsとzkAppsエクスペリエンス全体にわたるさまざまな改善、アップデート、修正の提供に焦点を当てています。これらの変更は、開発者がMina上でさらに強力で影響力のあるアプリケーションを構築できるように設計されています。

ロードマップの各項目は、皆様からの貴重なフィードバックを通じて特定された特定の課題または機会に対応しています。このブログはMinaコミュニティの声を表しており、今後の指針となります。これらのアップデートが、zkAppsとそれ以降の未来をどのように形作っているかを探ってみましょう。

これまでの成果

  • o1jsリリースv2: SDKの進化における大きなマイルストーン。外部監査を経て、今年初めにMinaのバークレーハードフォークとともにリリースされたv1.0を基盤としています。v1.0でzkAppsがメインネットで本番環境に対応できるようになりましたが、v2.0では、SDKをさらに安全、信頼性があり、開発者フレンドリーにするために改良されています。v2.0の焦点は、アプリケーションロジックを制約(ゼロ知識証明の基礎となる数学的ルール)に変換するzkAppsのコアコンポーネントである内部回路構造の強化にあります。

現在構築中のもの

  • 動的配列とランタイムテーブル: ランタイムテーブルは、ゼロ知識回路における特定の計算を最適化するための強力なツールです。これまでo1jsでの配列の扱いは、静的なサイズが必要であり、開発者が独自のヘルパーメソッドを実装する必要があり、非常に面倒でした。この問題を解決するために、Kimchiの既存のランタイムテーブルを活用して、直感的で強力な動的配列インターフェースを導入します。これにより、回路の制約効率が向上するだけでなく、o1jsでの複雑なデータ構造の扱いが大幅に向上します。

  • 許可に関する前提条件: アカウントの権限に前提条件を設定できるようにする機能です。これにより、開発者はアカウントアップデートをよりエレガントに構成し、対話するアカウントについてより正確なステートメントを作成し、複雑なシナリオでのデッドロックなどの問題を回避できます。これは、より複雑なアプリケーションを構築しながら、ロジックとデザインを完全に制御したいzkApp開発者向けに設計されています。

  • zkProgramの改善: ゼロ知識回路を扱うための主要なインターフェースの1つ。KimchiとPicklesの強みを組み合わせることで、開発者は強力な再帰的なゼロ知識回路を作成できます。コミュニティからの貴重な貢献により、クリーンで直感的なAPIインターフェース、複雑なロジックを処理するためのより強力な戻り値の型、別の回路内で直接再帰的に証明を目撃する機能など、さまざまな機能強化が導入されています。

  • EdDSA: o1jsを最も強力で汎用性の高いゼロ知識DSLおよびSDKにするための継続的な取り組みの一環として、伝統的な暗号化プロトコル、他のブロックチェーン、およびWeb2の世界で使用されるさまざまな暗号プリミティブを統合します。以前にEcDSAを統合しましたが、今回、既存の実装を更新してEdDSAもサポートすることにしました。これにより、o1jsとMinaエコシステム内で、多くの新しいユースケース、統合、アプリケーションが可能になります。

今後の予定

  • o1rs: o1jsと同様に、開発者がRustで直接回路とzkAppsを記述できるようにします。Rustは、Web3およびブロックチェーン分野で広く使用されている強力で高性能なプログラミング言語です。

  • ネイティブプルーバー: 現在、バックエンド全体がWASMにコンパイルされていますが、WASMにはメモリ制限があります。サーバー上でプルーバー(Kimchi)へのネイティブ呼び出しを有効にすることで、ネイティブRust実装を活用してパフォーマンスを向上させることができます。

  • o1jsの新しいAPI: 現在のSmartContract APIがMinaのアカウント更新モデルの最適な抽象化ではないため、より表現力豊かで直接的な方法でzkAppsを記述できるようにします。

  • 許可に関する前提条件のMIP: Minaはコミュニティによって統治されている分散型プロトコルであるため、変更はMina改善提案(MIP)で提案し、コミュニティの承認を得る必要があります。

  • 回路のパフォーマンス改善: ネイティブプルーバーの導入により、これまで技術的な制限により実現不可能だった回路サイズの増加が可能になります。また、チャンキングをよりメモリ効率の高いものに書き直すことで、将来的にはブラウザ内で直接より大きな回路をコンパイルして証明できるようになります。

  • 履歴前提条件: 開発者がMinaチェーンの過去の状態に関する前提条件を設定できるようにします。これにより、zkAppsはVRF(検証可能なランダム関数)を使用してチェーンのランダム性にアクセスしたり、トランザクションが進行するにつれて、フルマークルツリーに関するアサーションを行うことができます。


いいなと思ったら応援しよう!