ブログ > 2022 > August > Kachina:プライバシーを保護するスマートコントラクト

Kachina:プライバシーを保護するスマートコントラクト

zk-SNARKsを活用して、分散性という特性を損なうことなくプライバシーを保護するスマートコントラクト機能を可能に

2022年 8月 5日 Olga Hryniuk 6 分で読めます

Kachina:プライバシーを保護するスマートコントラクト

スマートコントラクトは、分散型の手段で通貨やデータの取引を望む2組以上の当事者が、複雑なやり取りを表現するための標準となるアプローチを提供します。スマートコントラクトは実質的にブロックチェーン上で自動化されたデジタル契約です。コードで作成されるスマートコントラクトは、事前設定された条件が満たされると、契約で強制されたトランザクションを追跡、検証、実行します。開発者はプログラミング言語を使用して、このような条件を表現するスマートコントラクトを作成します。コントラクトのコードは分散型ブロックチェーンネットワークに保存、分散され、透明性、そして希望に応じて不可逆性を持つことになります。

本稿では、Input Output Global(IOG)がエディンバラ大学と共同開発したプライバシーを保護するスマートコントラクトソリューションKachina(カチーナ)を紹介します。Kachinaによりユーザーは、分散性という特性を損なうことなく、プライバシーを保護する汎用性のスマートコントラクトを得ることができます。

スマートコントラクトによる契約でプライバシーを保護

ほとんどのスマートコントラクト台帳では、その透明性と公的な設定により契約条件が衆目にさらされます。透明性がブロックチェーンテクノロジーにおける最強の利点に数えられるとはいえ、機密性の高いデータを取り扱うアプリケーションにとってプライバシーはやはり重要です。

開発者は、スマートコントラクトにおいて高まるプライバシー確保のために、さまざまな暗号技術を使用することができます。ゼロ知識証明(ZKP)とセキュアコンピューティングはその2例です。このような暗号技術に触発され、プライバシーのさまざまな定義を満たし、信頼の前提を必要とする複数のソリューションが現れました。例として、Zexe、zkay、Hawk、Zether、Secret Networkなどが挙げられます。この中で最も表現力のあるソリューション、HawkとSecretは信頼前提に立脚しており、達成できる分散化レベルが大幅に限定されています。Hawkはシステムの中核に少数の固定した参加者グループを前提としており、Secretはプライバシーを損なう攻撃の膨大な履歴を含む技術TEE(Trusted Execution Envirounment:信頼できる実行環境)に依存しています。これらの技術は基本的に分散型ブロックチェーンプラットフォームの基礎理念とぶつかります。

Kachina:プライベートスマートコントラクトの基盤

Kachinaは、プライバシーを保証するスマートコントラクトとして表現可能な分散コンピューティングの大きな「クラス」を特定し、開発者は追加的な信頼前提なしにこのスマートコントラクトを実装できます。

スマートコントラクトプロトコルは、ZK-SNARKs、すなわち「ゼロ知識の簡潔でノンインタラクティブな知識の引数(zero-knowledge succinct non-interactive arguments of knowledge)」のみに依存します。このプロトコルのプライバシーの保証は、数学モデルおよび証明によってユニバーサルコンポーザビリティ(UC)セキュリティフレームワークで証明されています。プロトコルの主な目的は、新しい拡張や変更のたびに基礎となるシステムをアップグレードする必要なく、さらにプライバシーを保護するシステムのために十分に低レベルで汎用的な基盤を提供することです。

Kachinaにより、コントラクト作成者はブロックチェーンとユーザーのローカルマシン間のギャップに橋を架けることができます。ブロックチェーンとローカルマシンはそれぞれパブリックとプライベートという2つの独立したステート(状態)を表象します。コントラクトはオンチェーンの(そして共有された)パブリックステートと、オフチェーン(そしてローカル)のプライベートステートを両方一緒に更新することができます。次に、当事者は、許容される方法でパブリックステートを更新することをゼロ知識で証明します。プライベートステートの存在に関する詳細と、この更新が意味のあるものになるような入力を提供します。

Kachinaのコントラクトは以下も保証します。

  • プライバシーを保証する方法による並行性。Kachinaは、ステートオラクルトランスクリプトの新しい概念によって、より優れた並行性を実現します。これは、オラクルのクエリとやり取りするコントラクトの状態で実行される操作の記録です。コントラクト作成者は競合するトランザクションを最適化し、漏れを最小限に抑えながら再オーダーを許可することができます。
  • 効率的なモジュラー構築。Kachinaは大規模に展開できるよう設計されています。ゼロ知識を使用したこれまでの研究は、コントラクトの状態を明示的に維持していません。Kachinaは、コントラクトで指定されたオラクルによって、間接的にステートにアクセスすることを可能にします。この間接的なアクセスにより、より優れたスケーラビリティが保証され、その結果、証明すべきものの複雑性はコントラクト作成者の完全な管理下にあり、最適化が可能です。

IOGは論文でプライベートな支払いのケーススタディにおけるKachinaプロトコルの多用性を示しました。チームは遷移関数とリーケージ関数により、プライベートトークンのコントラクトを形式的に指定しています。このコントラクトは私的資金の移動、残高照会、アセット作成をサポートします。

提案された設計がほぼ理論的なものである一方、Kachinaは、実生活の制限下でプライバシーを保護するスマートコントラクトを作成する可能性を証明しています。

  • ステートオラクルの使用により、計算上最も困難またはストレージ集約型の操作をゼロ知識証明の外に移動できるため、コストが削減できる
  • ゼロ知識証明システムは依然として普遍的でなければならないが、ZKP構造は存在し、提案された設定で使用するのに実用的

詳細、事例、コントラクトのサンプルは、「Kachina – Foundations of Private Smart Contracts(Kachina - プライベートスマートコントラクトの基盤)」を参照してください。

本稿の執筆にご協力いただいた、Thomas Kerber氏に感謝します。