ブロックチェーンのデータは公開情報です。誰でもトランザクション結果やウォレット残高などを参照できます。このようなシステムの透明性はブロックチェーンの大きな特徴であり、魅力です。
一方でイーサリアムの共同創設者であるVitalik Buterin氏はブロックチェーンの透明性にプライバシーの課題があると提唱しています。オンチェーン情報を全て公開することはサイバーセキュリティにおいて重大なリスクとなる可能性があるからです。
本記事ではイーサリアムプロジェクトにおける「プライバシーの移行」について解説します。
この記事の構成
イーサリアム
イーサリアムはDApps※1やスマートコントラクト※2を実行するためのプラットフォームです。ブロックチェーン技術を活用し、中央集権的な管理にかかるコストを削減します。
イーサリアムのエコシステムは独自のネイティブトークン「ETH」を用いて稼働します。
※1 DApps(Decentralized Applications)はブロックチェーン上で動作する分散型アプリケーションです。
※2 スマートコントラクトはブロックチェーン上で動作するプログラムです。あらかじめ決められたプログラムに基づいて契約を締結して履行します。
イーサリアムの課題
- L2スケーリングへの移行
- ウォレットのセキュリティ移行
- プライバシーの移行
イーサリアムの創設者、Vitalik Buterin氏はイーサリアムの主な課題として「L2スケーリングへの移行」、「ウォレットのセキュリティ移行」、「プライバシーの移行」を挙げています。
「L2スケーリング」はトランザクション処理能力の向上を目指し、ユーザー数の増加に対応します。「ウォレットのセキュリティ移行」はユーザーの資産保護を強化するものです。「プライバシーの移行」はユーザーのデータ保護を重視し、個人情報の安全性を向上させます。
本記事では「プライバシーの移行」にフォーカスして解説をします。「L2スケーリングへの移行」、「ウォレットのセキュリティ移行」の解説については別途専門記事を参照頂ければ幸いです。
プライバシーの移行とは?
「プライバシーの移行」はステルスアドレスなどでイーサリアムのトランザクション情報を秘匿し、個人情報保護を追求することです。
ステルスアドレスを用いることでユーザーは取引履歴を非公開にできます。保有資産の詳細も非公開となるので犯罪のターゲットとなるリスクを減らすことが可能です。
ブロックチェーンによって公開される情報
ブロックチェーンは全ての取引情報を公開し、資金移動の透明性を確保します。一方で、プライベートな活動が推測されるというリスクもあります。
ここではブロックチェーンによって公開される情報を具体的に解説します。
トランザクション情報
送金者と受取人のアドレス、送金額、ガス代※3、トランザクションがブロックに追加された時間などが公開されます。
※3 トランザクションを処理するための手数料です。イーサリアムであればETHで支払います。
アカウント残高
各ウォレットのETH残高も公開されます。ERC-20※4であれば、個別のWeb3.0プロジェクトのガバナンストークン量なども公開情報となります。
※4 ERC-20(Ethereum Request for Comments-20)はイーサリアムブロックチェーン上で暗号資産を発行するための標準規格です。
NFT所有権
ERC-721※5(NFT)などの規格を使用した場合、各ウォレットの所有するNFTの種類や数が公開されます。
※5 ERC-721(Ethereum Request for Comments-721)はNFT(Non-Fungible Token)の規格です。
「プライバシーの移行」の狙い
- ユーザーアイデンティティの保護
- 悪意ある攻撃の回避
- ファイナンシャルデータの秘匿
ユーザーアカウントの保護
Web3.0においてウォレットはアカウント機能も果たします。ステルスアドレスを用いることでユーザーアカウント情報を暴露させることなく、メタバース活動を続けることができます。
悪意ある攻撃の回避
詐欺グループなどはブロックチェーン上の公開情報を利用してフィッシング攻撃を行うことがあります。プライバシー技術は詐欺グループなどが特定のユーザーや取引をターゲットにすることを難しくします。
ファイナンシャルデータの秘匿
ユーザーが自身の財務情報を秘密に保つことができるようにすることで、ファイナンシャルデータが保護されます。ユーザーが自身の財務状況をコントロールし、独裁的な金融機関や政府から独立して行動する能力を高めます。
ステルスアドレスとは?
Vitalik Buterin氏は特にプライバシーのソリューションとして「ステルスアドレス」の採用を提案しています。
ステルスアドレスはブロックチェーン上の取引において、送金元や送金先のアドレスを秘匿するための技術です。ステルスアドレスを使用することで取引の透明性が低下し、プライバシーが保護されます。
ステルスアドレスの仕組み
- 送金者がステルスアドレス生成
- 資金送金
- 受取人がステルスアドレス識別
- 受取人に着金
送金者がステルスアドレス生成
送金者は受取人の公開鍵と秘密トランザクションキー(1回限定で使用されるランダム数)を使用してステルスアドレスを計算、生成します。
資金送金
送金者は生成されたステルスアドレスに資金を送ります。ブロックチェーン上ではステルスアドレスに送金が記録されます。
受取人がステルスアドレス識別
受取人は自身の秘密鍵と公開されているステルスアドレスを使用して、ブロックチェーン上のトランザクションから自分宛てのものを識別します。
受取人に着金
識別されたトランザクションを受け取るためには、受取人は秘密トランザクションキーを知る必要があります。送金者は受取人へ秘密トランザクションキーを秘密裏に通知します。
ステルスアドレスの利点
- 取引ごとにアドレス生成
- アドレスの再利用防止
- 取引の関連性を遮断
ステルスアドレスでは取引ごとにアドレスが生成され、一度使用されたアドレスは再利用されません。さらに、ユーザーが行った2つの異なる取引を関連付けることはできません。
ユーザーはFT※6、NFTのやり取りにおいて極めて高いプライバシーを確保できます。
※6 FT(Fungible Token)は代替性、交換性に特化した暗号資産です。決済手段として機能します。
ステルスアドレスの注意点
- 専門知識の理解
- ウォレットの互換性
- リソースの増加
専門知識の理解
ステルスアドレスにはECC※7やDiffie-Hellman※8鍵交換などの高度な暗号技術が採用される場合があります。その仕組みを理解するには専門知識が必要です。
※7 ECC(Elliptic Curve Cryptography)は楕円曲線暗号です。楕円曲線上の離散対数問題を利用して暗号化を行います。
※8 Diffie-Hellman鍵交換は公開鍵暗号方式です。秘密鍵をやり取りする必要がないため、秘密鍵暗号方式と比べてネットワーク上の盗聴などに耐性があります。
ウォレットの互換性
ステルスアドレスをサポートするウォレットは限られており、特定の暗号通貨ネットワークやウォレットだけで使用できます。
ステルスアドレスをサポートしているウォレットには、Samourai Wallet※9があります。
※9 Samourai WalletではPayNymという名称のステルスアドレスを使用します。PayNymは公開されてもウォレットの残高や取引履歴などは秘匿します。
エンドユーザーへの負荷
エンドユーザー(送金者または受取人)のデバイスはその生成と解読を行う必要があります。エンドユーザーのデバイスにも一定の計算負荷が生じることになります。特にモバイルデバイスや低スペックPCでのユーザビリティに影響を及ぼす可能性があります。
ステルスアドレスとゼロ知識証明
ステルスアドレスを用いることで、送信者と受信者のアドレスはブロックチェーン上で秘匿されます。さらに、ゼロ知識証明を用いることで取引が正当であることを証明します。
ステルスアドレスはゼロ知識証明の一種である「zk-SNARKs」によって実現が期待されています。
zk-SNARKsの特徴
- Zero-Knowledge(ゼロ知識)
- Succinct(簡潔)
- Non-Interactive(非対話的)
- Argument of Knowledge(知識の主張)
zk-SNARKs(Zero-Knowledge Succinct Non-Interactive Argument of Knowledge)は特定の情報が正しいことを証明するためのゼロ知識証明です。ゼロ知識証明には下記のような特徴があります。
Zero-Knowledge(ゼロ知識)
証明者が何かを知っていることを示すことができますが、その具体的な情報を明らかにする必要はありません。つまり「ゼロ知識」で証明することができます。
Succinct(簡潔)
zk-SNARKsの証明は非常にコンパクト(数百バイト程度)で簡潔です。証明を転送、保存、検証する際のオーバーヘッド※10が大幅に削減されます。
※10 オーバーヘッドは証明や検証には直接関係のない余分な処理や手続きのことです。
Non-Interactive(非対話的)
証明者と検証者の情報交換は一度だけです。検証者は証明者からの生成証明を受け取るだけで検証を完了できます。
Argument of Knowledge(知識の主張)
証明者が特定の情報を知っていることを公開せずに検証者に主張できます。秘密トランザクションキーを知っていることを、特定の入力をせずに検証者に示せます。
ゼロ知識証明の重要性
ゼロ知識証明、特にzk-SNARKs形式はL2(Layer 2)スケーリング※11でも非常に重要な役割を果たします。1L(Layer 1)からロールアップ(rollups)をする際にソリューションの一部として機能します。
イーサリアムのイノベーションに備える上でゼロ知識証明を理解することは大切です。
※11 L2スケーリング、ロールアップに関しては別途専門記事にて細部を解説しています。ご参照頂ければ幸いです。
ステルスアドレス以外での取り組み
ブロックチェーンのプライバシー問題を解決する手段はステルスアドレスだけではありません。ブロックチェーン全般に通じるプライバシーへのソリューションを解説します。
Mixing(ミキシング)
Mixingはイーサリアム内の匿名性を高めるために使用される手法です。複数のユーザーからトークンをプールし、再分配します。トークンの追跡は不明確になり、プライバシーが向上します※12。
※12 ミキシングはプライバシー強化の性質上、不正行為や犯罪活動に利用される可能性があります。米国ではミキシングサービスに関する規制が進んでいます。
Ring Signatures(リングシグネチャー)
Ring Signaturesは署名者が特定のグループに所属していることを証明します。一方で、署名者がグループの中で誰であるかを特定することはできません。Ring Signaturesは署名者のプライバシーを保護するための手段となり、Monero※13などのプライバシーコイン※14で採用されています。
※13 Monero(モネロ)は、プライバシーに特化した暗号通貨であり、トランザクションの送信者、受信者、金額などの詳細情報を隠すことができます。
※14 プライバシーコインはプライバシーを重視したコインです。犯罪行為に悪用される可能性があるため、一部の国や取引所では規制されている場合があります。
CoinJoin(コインジョイン)
CoinJoinは複数のユーザーが自分たちのトランザクションを混ぜ合わせて一つのトランザクションを作り出す方法です。個々の支払いに関する入力と出力のトラッキングを困難にします。
CoinJoinは主にビットコインのプライバシーを強化するために使用されています。CoinJoinを利用するウォレットとしてWasabi Walletが有名です。
Bulletproofs(バレットプルーフ)
Bulletproofsはトランザクションの詳細を秘匿しながら、そのトランザクションが正当であることを証明するための非対話型ゼロ知識証明システムです。
Bulletproofsの主な利点は証明データのサイズが非常に小さく、検証速度が速いことです。BulletproofsのシステムはMoneroなどのプライバシーコインで使われています。
まとめ
イーサリアムプロジェクトにおける「プライバシーの移行」はユーザーの信頼獲得のために非常に重要です。主要なソリューションとされるステルスアドレスへの理解を深め、イーサリアムのイノベーションに備えていきましょう。
本記事では「プライバシーの移行」について概要や狙い、ソリューションなどを分かりやすく解説しました。Web3.0における皆様のプライバシー保護に向け、お役に立てる情報となれば幸いです。