見出し画像

Web3におけるプライバシー【前編】


はじめに

こんにちは!本郷Web3バレーです。
Stanford Blockchain Reviewシリーズになります。

このシリーズではStanford Blockchain clubの業界レポートであるStanford Blockchain Reviewを日本語に翻訳したものを要約と我々の観点とともに発信していくものとなっています。
前編では本文とその要約を、後編では我々の議論内容と観点を発信します。前編を追いながら後編を見ていただけるとわかりやすいのかなと思います。

今回扱うテーマは「Web3におけるプライバシー問題」です。
本記事では、ZKP(ゼロ知識証明)を使ったプロダクト紹介や、マネーロンダリング、KYC問題などが叫ばれる現状のWeb3での課題。規制が整っていない状態での、ブロックチェーン技術を駆使したプロダクト開発といった内容を扱っています。

イントロダクション


”分散化、匿名性、トラストレス”はブロックチェーン技術の特長であり原則です。
ブロックチェーン技術をベースとするWeb3において、プライバシーはあまり注目されているように思えません。
また、KYC問題、簡単に追跡可能なPII(Personally Identifiable Information/個人を特定できるデータ)、透明性によるプライバシーの欠如、これらがWeb3における最大のペインポイントです。

残念ながら、これは大きく誤解されている話題でもある。
多くの人がクリプトにおける「プライバシー保護」を、テロリストに資金を提供し、マネーロンダリングを行うための口実とみなしています。

クリプト民のTwitterは「アノン文化」を誇り、主流メディアがしばしば(意図的であれ無意識であれ)こうした偏見を強化するという事実は、「アンチプライバシー保護」の固定観念を強化します。

【注:アノン文化】
匿名性を重視するインターネット上のサブカルチャーの一つ。自分の身元を隠し、匿名であることで、自由な意見表明や情報共有の場を提供できる。


Web3のプライバシーは、BAYCといったPFP系のNFTから暗号技術やゼロ知識証明に至るまで、すべての分散化の思想をもつ技術を包含する概念です。
”Web3”を話す上では、さまざまな小さなセグメントにする必要があります。

【注:セグメント】
共通の特徴や属性を持つ要素を分類して区別すること

このエッセイでは、まずWeb3の「プライバシー」インフラを、ネットワークレベルのプライバシー、プロトコルレベルのプライバシー、ユーザーレベルのプライバシーという3つのレベルに分けて分析した。
その上で、ゼロ知識証明のような技術的ソリューションが、Web3のプライバシーに関する未来に果たす役割を探っていく。


ネットワークレベルのプライバシー

プライバシーの最初で最も古い(最も初期にプロダクト化された)概念は、ネットワークレベルです。
ネットワークレベルのプライバシーとは、あるブロックチェーン・ネットワーク上の暗号資産のすべての取引が、コンセンサスアルゴリズムとネットワークレベルの設計上の選択によってプライバシーが保証されることを指します。
そのため、これらはプライバシーコインとも呼ばれます。
このようなプライバシーの概念は、Bitcoinプロトコル、および160ビットの暗号ハッシュとして「ウォレットアドレス」を匿名化するにまでさかのぼります。
ビットコインでの取引自体は完全に透明であり、どのユーザーもネットワーク上のあらゆる取引を検査することができます。
「分散化」と「匿名性」というビットコインの根本的な特徴が、「ネットワークレベルのプライバシー」を保証し、プライバシーファーストなブロックチェーンの開発の動機となりました。

【注:ビットコインプロトコル】
ビットコインのネットワークを運営する仕組み。
その1つとしてPoSが挙げられる。


160ビットの暗号ハッシュ SHA-1(Secure Hash Algorithm 1)のこと
-入力データを一定の手順で計算を行い、入力値のデータの長さに関わらず決まった長さの文字列を出力するハッシュ関数の一つ
同じ原文からは必ず同じ値が得られる

ネットワークレベルのプライバシーを確立した代表的なプロジェクトの1つが、2014年に設立されたプライバシーファーストのブロックチェーンであるMonero(https://twitter.com/monero)です。ビットコインとは異なり、Moneroはユーザーのウォレットとトランザクションの両方を「リング署名」で隠します。ある「リング」内のユーザーは特定のグループ署名にアクセスでき、そのグループ署名を使用してトランザクションに署名します。したがって、Moneroネットワーク上の任意の取引について、それが特定のグループからのものであることだけはわかりますが、そのグループ内のどのユーザーが実際に取引に署名したかはわかりません。


Ring Signatures in Monero. Source: https://blog.pantherprotocol.io/ring-signatures-vs-zksnarks-comparing-privacy-technologies/ [3]


同じ領域に取り組むもう一つのプロジェクトでZCash(https://twitter.com/zcash)があります。zk-SNARKsと呼ばれるゼロ知識証明の形式の初期のパイオニアです。

【注:ゼロ知識証明】
ゼロ知識証明の基本的なコンセプトは、それ以上の情報(ここでいうそれ以上の情報とは、セキュリティやプライバシーを損なう可能性がある)を明かすことなく、何かが真実であることを証明する方法であること。

【注:zk-SNARKs(Zero-Knowledge Succinct Non-Interactive Argument of Knowledge)】
ゼロ知識証明を達成する技術の1つ。zk-STARKsも存在する。

Zero Knowledge Proof(以下ZKP)の簡単な例:Gradescope autograder(以下オートグレイダー/自動的にコードを評価するシステム)
あなたはCSの宿題が正しく行われたことを「証明」する必要がありますが、あなたのコード実装についてそれ以上の詳細をオートグレイダーに伝える必要はありません。その代わり、オートグレイダーは隠されたテストケースの数々を実行することであなたの「知識」をチェックし、あなたのコードはオートグレーダーの「期待される」出力と一致する必要があります。「期待される」出力と一致することで、実際のコード実装を見せることなく、”宿題をやった”という証明をすることができます。

ZCashの場合、トランザクションはデフォルトで透明性が担保されていますが、ユーザーはZKP技術を使用し、透明性を失わせたトランザクションを作成することを選択することができます。
ユーザーは取引を送りたいとき、送受信者の公開アドレス、取引金額を含む取引メッセージの3点を含んだトランザクションを作成し、これをzk-SNARK証明に変換して、ネットワークに送信します。

このzk-SNARK証明には、取引の実行するために必要な情報(上記3点)がすべて含まれていますが、取引そのものの詳細については一切明らかにされていません。

つまり、ネットワークレベルのプライバシーでは、誰がその取引を送ったのか、誰が受け取ったのか、あるいは関係する金額を知らなくても、その取引を検証することができるのです。

設計や実装の違いはあるものの、MoneroとZCashの両方において、取引のプライバシーはブロックチェーンレベルで保証されており、ネットワーク上で起こるすべての取引は自動的に非公開であることが保証されます。

【注:「ブロックチェーンレベルで保証」とは】
送信者・受信者の匿名性、トランザクションの詳細の秘匿性が担保される
ウォレットアドレスや送金・受信した金額が外の人(取引に参加している人以外)から見えない

ネットワークレベルでのプライバシー保証は、マネーロンダリング、テロ活動、麻薬密売を行うために悪用されやすく、Moneroは特にダークウェブでの人気で悪名高いものとなりました。
さらに、Moneroやその他の「プライバシーコイン」が不正な金融活動の代名詞となるにつれ、マネーロンダリング等の観点からこれらの「プライバシーコイン」を使用する正当なユーザーを追いやり、ダークウェブ経済圏を助長しました。

【注:ダークウェブ】
非合法な商品やサービスの売買/サイバー犯罪/政治的な活動、禁書を共有するフォーラムやコミュニティ

ダークウェブ経済圏を助長することは、ネットワークレベルでプライバシーを保証することの最大の欠点です。
設計上、取引の透明性とこの取引のプライバシーとの間にゼロサムのトレードオフが存在します。
「ネットワークレベルのプライバシー」がSEC(米証券取引委員会)からの反感をかうのは、まさにこの透明性の欠如のためであり、Coinbase、Kraken、Huobiなどの主要なCEXが、いくつかの管轄区域でMonero、ZCash、その他のプライバシーコインを上場廃止にした理由でもあります。

【注:ゼロサムのトレードオフ】
プライバシーコインでは、取引の透明性を犠牲にしてプライバシーを高めるため、取引の透明性とプライバシーの間にはトレードオフの関係を持つ。


プロトコルレベルのプライバシー

プライバシーに対する別のアプローチは、「プロトコルレベルのプライバシー」を確保することです。コンセンサスレベルにプライベートトランザクションをハードコーディングする代わりに、ブロックチェーンネットワークの上で動作する「プロトコル」または「アプリケーション」上でプライベートトランザクションを処理します。

注:ハードコーディング
トランザクションをハードコーディングする場合は、トランザクションの処理方法や条件がプログラムのコード内に直接組み込まれ、変更することができなくなる。ハードコーディングは柔軟性や拡張性に欠ける。


ビットコインなどの初期のブロックチェーンはプログラマビリティが限られていたため、「プロトコル・レベルのプライバシー」を構築することは信じられないほど難しいものでした。ビットコインネットワークをフォークして、新しいブロックチェーンとして "プライバシーコイン" という形でプライバシーを一から実装するほうがはるかに簡単でした。
しかし、イーサリアムの登場と "スマートコントラクト "の台頭により、プライバシーを守るプロトコルに全く新しい道が開かれたのです。

トルネードキャッシュ」はイーサリアム上の分散型アプリケーション(dApps)で、トランザクションのプライバシーを保証するためにトランザクションをプールに「混ぜる」もので、概念的にはモネロの「群衆に溶け込む」アプローチにやや似ています。

【注:モネロの「群衆に溶け込む」】
モネロ(Monero)は、プライバシーと匿名性を重視するプライバシーコインの一つ。モネロが「群衆に溶け込む」という表現は、モネロの取引が他の取引と混ざり合って区別されにくくなるという特性を指しています。

Tornado Cash protocol process. Source: https://messari.vercel.app/article/on-chain-privacy


トルネードキャッシュのプロトコルは、大きく分けて3つのステップで構成されています:

1,入金: ユーザーは資金をトルネードキャッシュ(プールされている)のスマートコントラクトに送ります。これにより、ランダムに生成された「匿名セット」(同時に取引を行っているユーザーのグループ)とのプライベート取引が開始されます。

2,ミキシング: トルネードキャッシュは、入金された資金を匿名セット内の他のユーザーの資金と混合し、元の送金者や受取人を追跡することを困難にします。このプロセスは "混合" または "匿名化" と呼ばれます。

3,出金: 資金が混合されると、ユーザーは、「元のアドレス」と宛先アドレスの間のリンクを解除して、自分の選択した新しいアドレスに資金を引き出すことができます。その後、ユーザーは「新しい」宛先アドレスから受取人に直接資金を送ることで、取引を完了することができます。

残念ながら、2022年8月、トルネードキャッシュは米国政府から制裁を受けました。
外国資産管理局(OFAC)は、北朝鮮のハッカーが盗んだ資金を洗浄するためにこのプロトコルを使用していると主張したためです。
この取り締まりの結果、米国のユーザー、企業、ネットワークはトルネードキャッシュを使用することができなくなりました。
USDCステーブルコインの発行元であるCircleはさらに一歩踏み込み、トルネードキャッシュのアドレスに関連する75,000ドル以上の資金を凍結し、GitHubはトルネードキャッシュの開発者のアカウントを削除しました。

大多数のユーザーはトルネードキャッシュを合法的なプライバシー保護取引に使用しており、少数派の悪行のために多くのプロトコルユーザーが罰せられるべきでないと主張したため、これはクリプト界で論争の嵐を巻き起こしました。

しかし、重要なことは、トルネードキャッシュはイーサリアム上の「プロトコルレベルのプライバシー」であり、「ネットワークレベルのプライバシー」ソリューションではないため、取り締まりと影響はネットワーク全体に影響を与えるのではなく、イーサリアムネットワーク上のこの1つのプロトコルだけに制限されたことです。
モネロやZCashとは異なり、この制裁によりイーサリアムがコインベースから上場廃止されることもありません。

Aztec Networkによって開拓された「プロトコルレベルのプライバシー」に対する別のアプローチは、ユーザーの資金を保護し、プライベートな取引をサポートする「ロールアップ」に焦点を当てています。
Aztecの主要製品はzk.moneyで、スケーリングとプライバシーの両方に2層の深い再帰的なZKPを使用しています。
最初のZKPは、シールドされたトランザクションの正しさを証明し、トランザクションはプライベートであり、情報漏洩がないことを保証します。
第二のZKPはロールアップ自体に使用され、トランザクションのバッチの計算を一緒に束ね、これらのすべてが正しく実行されたことを保証するためです。
ロールアップに基づく「プロトコルレベルのプライバシー」ソリューションはまだ初期段階にあるが、「プロトコルレベルのプライバシー」ソリューションの次の進化を示すものです。
トルネードキャッシュのようなdAppベースの「プロトコルレベルのプライバシー」ソリューションに対して、ロールアップソリューションの主要な利点は、計算のヘビーリフティングが主にオフチェーンで行われるため、スケーラビリティが向上することです。
さらに、ロールアップの研究の多くは、計算量の増加にのみ焦点が当てられているため、これらの技術をプライバシー領域に適用し、拡張するための十分な探求の余地が残されているのです。

【注:ロールアップ】
スケーラビリティ向上のため、一連のトランザクションをまとめて処理し、ブロックチェーン上にブロックを追加する前に検証や計算を行う方法。

【注:ヘビーリフティング】
(この分脈では)大量の計算処理


ユーザーレベルのプライバシー

Web3におけるプライバシーを概念化する3つ目の(そして最も新しい)アプローチは、「ユーザーレベルのプライバシー」です。
ユーザーの取引データに焦点を当てるのではなく、個々のユーザーのデータに対してプライバシー保証がなされます。
ネットワークと「プロトコル」の両レベルにおいては、ダークウェブ取引やマネーロンダリングなど、少数の悪質な人物がネットワークやプロトコルの使用に影響を与え、大多数のユーザーに影響を与えるという問題が繰り返されています。

「ユーザーレベルのプライバシー」の重要なポイントは、ネットワーク自体の個々のユーザーに焦点を当てることで、良識あるユーザーやアドレスがブロックチェーンネットワークと個人的に自由にやり取りできる一方で、悪質なユーザーを迅速にフィルタリングすることができます。

透明性とプライバシーを両立させる非常に難しいです。
このようなユーザー中心のプライバシー観は、Web3におけるプライバシーの問題が存在し、それに対応するために隣接するDID(Decentralized Identifier/分散型識別子)が注目されています。(今回の記事では、Web3におけるKYCと認証のこの問題については議論しないことにする。)

「ユーザーレベルのプライバシー」の核となる洞察は、ウォレットアドレスがブロックチェーンネットワーク上の原子識別子であることから、ユーザー自身とチェーン上のウォレットアドレスとの関係を分離して考えることです。
重要なのは、ユーザーからネットワークへの”一対大多数”のマッピングが存在することです。

【注:原子識別子】
データ要素の個々に与えられる識別番号

ユーザーはしばしば、交流する各ブロックチェーンネットワーク上で複数のウォレットアドレスを管理します。
これが "オンチェーン・アイデンティティの断片化 "という考え方です。
したがって、「ユーザーレベルのプライバシー」の肝は、PII(Personally Identifiable Information)を、分散化されたすべてのオンチェーン・アイデンティティにマッピングする安全な方法を見つけることです。

この点で重要なプロジェクトはNotebook Labsで、ゼロ知識証明を使って断片化されたアイデンティティをユーザーのPIIと結びつけることを目指しており、同時に以下のことを保証しています:

1,ユーザーは、断片化されたオンチェーン・アイデンティティ(複数のウォレットアドレス)で自分の人間性を証明することができる。
2,ユーザーの秘密鍵が流出しない限り、これらのIDを結びつけることは不可能である。
3,第三者や敵対者が、断片化されたオンチェーンIDをユーザーの実世界のIDに結びつけることは不可能である。
4,クレデンシャルは複数の断片化されたIDを集約させて通用する(これらのIDをすべて集約して結びつける。の部分)
5,各人が断片化されたオンチェーンIDを1セットずつ受け取る

【注:クレデンシャル】
身分証明、認証情報といった個人を特定する情報のこと

このプロトコルの暗号的な詳細はこのエッセイの範囲外ですが、Notebook Labsは「ユーザーレベルのプライバシー」の2つの核となる原則、すなわち、多数の断片的なオンチェーンIDと現実世界の人間のユーザーとの関係を再考することの重要性と、これらのIDをすべて集約して結びつける際にゼロ知識証明が果たす重要な役割を示しています。

「ユーザーレベルのプライバシー」という問題に対するもう一つの新たな解決策は、「ステルスウォレット」という考え方です。ここでも、"ステルスウォレット "のアイデアは、ユーザーが通常複数のアイデンティティをチェーン上に持っているという事実を利用して、チェーン上のアイデンティティの断片化を利用するものである。トルネードキャッシュやその他の「プロトコルレベルのプライバシー」ソリューションが、取引データそのものを見えなくしようとするのとは異なり、ステルスアドレスは、送信者と受信者のアドレスの背後にいる本当の人間が誰であるかを見えなくしようとするものである。これは、ユーザーの取引に対して「ワンタイムウォレット」を迅速かつ自動的に生成するアルゴリズムを本質的に見つけることによって実装されます。

「ステルスウォレット」と、MoneroやTornado Cashのような以前に議論されたプライバシーソリューションとの重要な概念の違いは、これが "群衆の中のプライバシー "という形態ではないということです。つまり、ETHといった主流なトークンの転送に対してのみプライバシーを保証できるトルネードキャッシュとは異なり、ステルスウォレットはマイナートークンやNFT、つまり溶け込むべき「群衆」を持たない独自のオンチェーン資産に対してもセキュリティ保証を提供できます。とはいえ、これまでのところ、イーサリアムにおける「ステルスウォレット」の議論は理論的な段階にとどまっており、この新しい技術的ソリューションの実装効果や法的な反響はまだ見えていないのが実状です。


ZKPとWeb3におけるプライバシーの未来

このように、Web3におけるプライバシーは複雑です。 ネットワークレベル、プロトコルレベル、ユーザーレベルなど、問題に対するさまざまなアプローチが、さまざまな解決策をもたらし、透明性とプライバシーの間のトレードオフを探ります。とはいえ、プライバシーに関する議論は、チェーンの透明性と説明責任を考慮する必要があります。

良くも悪くも、暗号資産取引にはより大きな説明責任が必要であるというSECの指摘は正しい。マネーロンダリング、テロ活動、金融詐欺に関与する悪意ある人は、取引を完了するために不換紙幣を使用するか暗号資産を使用するかにかかわらず、説明責任を負うべきである。
しかし、Web3では、政府がプライバシー・ネットワークを完全に遮断し、ブロックチェーンを "トラストレス”で使うことを強制しなくても、この説明責任を果たすことができるようにしてほしい。プライバシーは基本的な権利であり、デジタルの尊厳の尺度であるとみなされるべきです。

長い間、プライバシーと説明責任は、データを隠してプライバシーを確保するか、データを見せて透明性を確保するかというゼロサムトレードとみなされてきました。
Web3の革新性は、このゼロサムのジレンマを克服するためのエレガントな技術的ソリューション、特にZKPの早期導入にあります。
ゼロ知識証明は、プライバシーの問題に対する万能薬として宣伝されることがあまりに多いです。しかし、その数学的な魔法にもかかわらず、ZKPはWeb3のプライバシーに関するすべての懸念に対する万能薬にはほど遠く、いくつかの重大な欠点があります。

まず、ZKPは、特定の方法で構造化された情報の一部を証明するために使用される高度に特殊な回路であることが多い。一般に、ZKPはスケーラビリティと互換性の欠如に悩まされている。
第二に、ZKPは作成、実行、維持に非常にコストがかかり、同等の非ZKPプログラムよりも何桁も多くの計算能力を必要とします。

したがって、プライバシーの領域でZKPについて考える場合、重要なのは常に「何を」「なぜ」証明するのか、ということです。結局のところ、ゼロリスクではなく、ZKPの設計には常にコストがかかるのです。
ZKPがプライバシーのすべてを解決すると宣言するのは、SECがすべてのプライバシープロトコルをシャットダウンするのと同じように、技術エバンジェリストにとって無責任なことなのです。

【注:技術エバンジェリスト】
技術的知見を持ったインフルエンサー

根本的に、Web3におけるプライバシーは、単なるエンジニアリングの問題ではなく、第一原理の問題なのです。ビットコインのホワイトペーパーが発表され、ブロックチェーンが商業的に採用されて以来、Web3の基本原則の1つは、トラストレス(信頼を裏切る可能性のある相手に情報を託す必要がない)を強調することです。ネットワークは、分散化された透明で偏りのない方法でユーザーのプライバシーが保証されてこそ、真の意味でトラストレスとなり得るのです。
では、Web3におけるプライバシーはどうあるべきなのか。それは、私たちが決めるべき最も差し迫った問題です。


【参考文献】


この記事が気に入ったらサポートをしてみませんか?