真にプライベートで分散型のウェブという目標に向けて、一歩前進しました。Internet Computer Protocol ($ICP) 上で vetKeys 機能がリリースされ、Niobium milestone が実現したことで、開発者は信頼できる新しいオンチェーンサービスを構築するためのツールを手に入れ、新しいdappsの幅広い分野を切り開くことができるようになりました。
ブロックチェーンのオープンな性質は大きな強みですが、多くのユースケースにおけるプライバシーのニーズとは相容れません。これは、ブロックチェーン技術において長らく考慮されてきたことです。DFINITY Foundationの開発エバンジェリストであるKristofer Lund氏が指摘するように、これは多くの人にとって決定的な問題でした。「ブロックチェーン上でアプリケーションを構築することについて現実世界の人と話すと、データが公開されることを知った時点で、会話は100%止まります」と彼は言います。多くの組織、特にEUの一般データ保護規則(GDPR)のような法律を扱う組織にとって、これはパブリックブロックチェーン上での構築を不可能にしています。
現在、vetKeysはこの懸念に対する答えを提供します。
vetKeysの中核は、「分散型環境で暗号鍵を作成し、それを安全にユーザーに転送できるようにすること」であると、Kristofer氏は言います。彼はこれを「ゲームチェンジャー」と呼んでいます。なぜなら、パブリックネットワーク上で情報をどのようにプライベートに保つかという問題を解決するからです。
言い換えれば、vetKeysは両方の世界の良いところ取りを可能にします。すべてのデータを公開する必要なく、パブリックブロックチェーンの信頼性と稼働時間を利用できます。これにより、開発者はユーザー情報を秘密に保つためのツールキットを手に入れることができます。重要なことに、集中管理された第三者が鍵を管理する必要もありません。
このエンジンとなっているのは、verifiably encrypted threshold key derivation (vetKD)と呼ばれるものです。実際にどのように使用されるかを見るために、それを可能にする安全なプロセスの例を見ていきましょう。
この設定により、IDベースの暗号化(IBE)のようなアイデアを実用的に使用できます。たとえば、暗号化されたチャットアプリでは、通常、何らかの鍵交換を行う必要があります。しかし、vetKeysを使用すると、Kristofer氏は「あなたの公開鍵を派生させることができ、ユーザー名を識別子として使用するだけなので、もう必要ありません」と説明します。
vetKeysを使用すると、Internet Computer上のスマートコントラクトはゲートキーパーとして機能できます。つまり、誰がいつ鍵を取得できるかというルールを強制できます。vetKeysとcanisterのこの強力な組み合わせにより、開発者はまったく新しいアプリケーションを作成する機会を得ることができます。以下にほんの数例を示します。
vetKeysは、純粋に個人のプライバシーのためのアプリケーションを可能にします。これは、Kristofer氏が「私自身が自分のvetKeyを派生させ、それを安全に自分自身に転送するだけ」と強調するパターンです。
このモデルでは、安全なオンチェーンの日記、パスワードマネージャー、またはプライベートなメモ帳のようなものを構築できます。ユーザーは、自分だけがアクセスできる独自のIDに基づいて秘密鍵を派生させます。これにより、最も機密性の高い個人データを暗号化し、自分が唯一のキーホルダーであるという自信を持ってブロックチェーンに保存できます。
これは、機密ファイルを扱うdappsの古典的な問題を解決します。ユーザーは、鍵を危険にさらすことなく、さまざまなデバイスから暗号化されたドキュメントにどのようにアクセスするのでしょうか?vetKeysを使用して、自分のIDに基づいて一貫した鍵を派生させることで、ユーザーはどのデバイスからでも自分のデータに安全にアクセスできます。これは、高セキュリティのドキュメント管理にとって重要な機能です。
vetKeysを使用すると、ユーザーが完全にプライベートにコミュニケーションを取り、情報を共有できるシステムを構築できます。アクセス制御はオンチェーンで管理されます。
上記のように、基本的なユースケースはエンドツーエンドの暗号化されたチャットです。開発者は、ユーザーが別の人のユーザー名を使用するだけでその人の公開鍵を取得し、秘密のメッセージを書いて送信するdappを作成できます。メッセージを受け取った人は、自分が誰であるかを証明した後、自分の秘密鍵を取得してそれを読むことができます。canisterはゲートキーパーとして機能し、適切なユーザーのみが自分の鍵を取得できるようにします。
この機能は、情報が一定時間が経過した後にのみ公開されるアプリケーションをアンロックします。これはすべてブロックチェーンによって強制されます。
オークションや投票の場合、入札が秘密に保たれるようにしたい場合があります。Kristofer氏が言うように、「誰も他の人の入札を知ることを利用できないように」するためです。vetKeysを使用すると、入札者はオークションの終了時間に関連付けられた鍵を使用して入札をロックできます。時間が来ると、canisterは鍵を取得し、すべての入札を一度にアンロックして、結果を表示できます。
もう1つの重要なユースケースは、デッドマンズスイッチです。たとえば、機密情報を持つジャーナリストは、タイマー付きの鍵でそれをロックできます。Kristofer氏が説明するように、「24時間ごとにインターフェースにアクセスし...ボタンを押すと、タイムロックが延長されます」。何らかの理由でそうしない場合、タイマーが切れ、鍵が見つかり、情報が世界に公開されます。
DeFiの世界では、vetKeysテクノロジーは、フロントランニングやその他の形態の市場操作から保護されたアプリケーションを構築するためのツールを提供します。
DeFiの大きな問題は、maximal extractable value(MEV)です。ほとんどのブロックチェーン取引は、確認される前に公開の待合室にブロードキャストされるため、アクターはこの情報を確認し、利益のために悪用することができます。vetKeysを使用して取引の詳細を暗号化することにより、これらのアクターは盲目になります。取引の内容はブロックで確定するまで秘密に保たれるため、待合室で機会を見ることができません。
この強制されたプライバシーの単純な行為は、この悪用の経路全体を遮断し、DeFiをより公正にします。
vetKeysはまた、結果がランダムであり、すべての参加者にとって証明可能な公正である必要があるゲームまたはシステムの作成を可能にします。
優れた例は、vetKeysを検証可能なランダム関数(VRF)として使用することです。これは、ランダムであるだけでなく、誰でもチェックして公正であることを証明できる結果を作成できることを意味します。これは、正直なカジノゲーム、宝くじ、およびレアアイテムのドロップにとって重要です。
このテクノロジーは、スマートコントラクトに独自の暗号化された「ペン」を与えてデータに署名し、他のブロックチェーンと権威を持ってやり取りしたり、外部の世界に事実を証明したりできるようにします。
vetKeysを使用すると、canisterはサブネットのノードに標準のBLS署名を生成するように指示できます。これは、複数の個々の署名を単一のコンパクトな署名に集約することをサポートするか、マルチ署名プロトコル内で使用できます。
これにより、canister自体が分散型署名者になります。この機能は、より相互接続され信頼できるマルチチェーン世界の重要な構成要素であり、Internet Computer上のcanisterが別のチェーンに送信されるトランザクションに署名したり、集中型ブリッジなしで検証可能なオンチェーンクレデンシャルをユーザーに発行したりできるようにします。
Chain Fusionでは、canisterはすでにトランザクションに署名できます。他のスキーム、つまりthreshold ECDSA, Schnorr and EdDSAを使用します。vetKeysを使用すると、canisterは追加の署名スキームを自由に使用できるようになり、開発者のための新しい可能性が開かれます。
$ICPエコシステム内のプロジェクトは、安全なメッセージングやファイルストレージアプリケーションから、新しい形態の分散型ガバナンスまで、これらの可能性をすでに探求しています。
1つの例は、Internet Computer上で実行されているコミュニティ所有のチャットアプリケーションであるOpenChatです。OpenChatの共同創設者であるHamish Peebles氏が説明するように、「OpenChatはvetKeysを使用してメッセージのエンドツーエンド暗号化をサポートします。vetKeysを使用することで、ユーザーがデバイスを紛失した場合、暗号化キーを安全に再生成し、メッセージへのアクセスを取り戻すことができます。これは、他の暗号化されたメッセージングサービスでは不可能です。」
vetKeysを統合しているもう1つのプロジェクトはDiode.ioです。Diode.ioのCEOであるHans Rempel氏によると、「vetKeysを使用すると、帯域外の暗号化方法を最初に作成しなくても、canisterにプライベートデータをすばやく保存できます。これにより、ユーザーに自己管理、プライベートな接続手段、およびコミュニケーションを提供し続けながら、迅速に行動できます。」
Diode.ioの共同創設者兼CTOであるDominic Letz氏も、ユーザーのプライバシーに対するvetKeysの価値を強調しています。「すべてのデータは、canisterに保存されている場合でも、完全にエンドツーエンドで暗号化されています。私たちはそれを読むことができず、$ICPの人々も読むことができません。データを読むことができ、それを復号化できるのは、データの所有者、つまりアプリのユーザーだけです。」
これらの例は、vetKeysの即時的かつ実用的な価値を示しており、さらに多くのことが期待できます。
Unleashing the power of vetKeys — first public demo and developer bounties
vetKeysは多くの扉を開きますが、開発者はそれらを開くために新しい方法で考える必要があります。Kristofer氏が警告するように、「Web2で行うのと同じ方法でアプリケーションを構築できるという考え方でアプローチすると、間違った方法で構築することになります。」
新しい構築方法が必要です。データの保存と鍵の作成にはオンチェーンコストがかかるため、大きなファイルを処理したり、鍵を頻繁に変更したりする必要があるアプリは、慎重に計画する必要があります。成功するプロジェクトは、テクノロジーの強みを利用し、それがもたらす機会をうまく活用する方法を見つけます。たとえば、有料ブログでは、コストを抑えるために、毎月すべての投稿に対して1つの新しい鍵を作成できます。Kristofer氏は、時間が経つにつれて、「これらの新しい設計パターンが登場するでしょう」と言います。エキサイティングなのは、これらの機会が存在し、開発者がそれらをつかむのを待っていることです。
vetKeysのプライバシー保証がどこに適用されるかに注意することが重要です。ロックが解除される瞬間まで、データのセキュリティを提供します。現在、最高のセキュリティを得るには、ユーザーのWebブラウザでのみデータのロックを解除する必要があります。スマートコントラクトがデータのロックを解除すると、その情報がプライベートであると想定することはできなくなります。Kristofer氏は、「canisterで復号化すると、再び公開されます」と述べています。
しかし、これは次の大きな飛躍、Trusted Execution Environments (TEEs)を示しています。TEEを使用すると、canisterはノードの安全な壁で囲まれた部分内でデータのロックを解除し、それを操作し、ノードが生のデータを見ることなくロックバックすることができます。
その日が来ると、Kristofer氏は「あらゆる通常のWeb2エンタープライズユースケース」がパブリックブロックチェーン上で完全にプライベートに実行できるようになるだろうと示唆しています。
オンチェーンプライバシーの時代が真に始まりました。構築を開始する時が来ました。
vetKeysでの構築を開始する準備はできていますか? ガイドと例については、 Developer Docsをご覧ください。
Onchain Privacy in Action: A Guide to vetKeys Use Cases は、MediumのThe Internet Computer Reviewで最初に公開されました。そこでは、人々がこのストーリーを強調し、応答することで会話を続けています。