ブロックチェーンを安全にスケーリングする

# ブロックチェーンのスケーリングとデータ可用性の課題に対する解決策

このレポートでは、ブロックチェーンがスケーリングする際に直面するデータ可用性に関する脆弱性と、その解決策について説明します。特に、Nymのようなミックスネットがどのようにしてチェーンのコンセンサスを狙った攻撃を防ぐかに焦点を当てます。


## スケーリングのセキュリティ問題
ブロックチェーンは、第三者が干渉できない永続的かつ公開された取引台帳です。新しい取引を検証するためには（例えば、コインの二重使用を防ぐため）、この完全な台帳（ブロック（blocks）に含まれる）は常に更新され、検証される必要があります。ここに、ブロックチェーン技術における2つの未解決の問題があります。

- 検証者が自身の帯域幅やリソースを使ってコミュニティチェーンの取引を検証し続ける中で、ブロックチェーンはどのようにしてスケーリングできるのか？

- より効率的なデータ検証手段は、チェーンのセキュリティを犠牲にすることになるのか？

Celestiaの共同創設者でありコンピューターセキュリティ研究者でもあるMustafa Al-Bassam氏は、問題を次のように診断しています。ブロックサイズが大きくなるにつれて、データ可用性検証のための「フルノード」を運用することがますますリソース集約的になります。committeesやライトノード（light nodes）の導入はより効率的な代替手段ですが、これらは選択的開示（selective disclosures）攻撃と呼ばれる特定のネットワーク攻撃に対して脆弱です。

NymチームはCelestiaと緊密に協力し、Nym mixnetがこの特定の攻撃に対抗するために、ブロックチェーンの検証プロセスに匿名化層（anonymization layer）を追加できるかどうかを研究しています。これには、アンリンカブルなデータ可用性サンプリングのモードが関係します。

Nymの解決策を説明する前に、フルノードに依存せずにブロックチェーンをスケーリングする際の技術的な問題と、既存のソリューションがどのように選択的開示攻撃に対して脆弱であるかを見てみましょう。

## データ可用性検証
データ可用性（Data availability）とは、ブロックチェーン内のすべてのデータが正しく公開され、必要なときにネットワークによってアクセス可能であることを保証するものです。これにより、ブロックに関連するすべての情報がノードによってダウンロードされ、検証されるため、ネットワークがブロックの取引と状態の正確さと完全性を確認できます。

ブロックチェーンシステムでは、データ可用性を検証することが重要であり、悪意のある者がブロックの一部のデータを隠したり、公開せずにブロックを有効と主張することを防ぎます。データ可用性がなければ、不完全なデータを持つブロックがチェーンに追加され、無効な取引やセキュリティリスク、不整合な状態がネットワークに広がる可能性があります。

従来のブロックチェーンでは、ユーザー（フルノードを実行している人々）がチェーン全体を同期して、すべてのデータを検証する必要があります。しかし、ブロックサイズが大きくなるとデータ可用性を確保するのは困難です。

データ可用性サンプリング（data availability sampling）のような技術は、ライトノードがブロック全体をダウンロードせずにデータの可用性を検証できるようにし、データ可用性検証を全体的により効率的にします。現代のブロックチェーンは、より少ないリソースでデータ可用性を確認するためにこのアプローチを採用しています。Celestiaは、データ可用性を使用して最新のチェーン全体をサポートする代表的な例です。



## スケーリングのためのメカニズム：安全かつ不安全な方法
データ可用性の検証（data availability verification）には、さまざまなレベルのセキュリティを伴ういくつかの方法があります。

- **フルノード（最大のセキュリティ）**
フルノードはすべてのデータをダウンロードして検証し、不完全なブロックを拒否することで最大のセキュリティを確保します。しかし、ブロックサイズが増加するにつれて、この基礎的なソリューションは非効率になります。検証作業には物理的および財政的なリソースが必要になるためです。

- **データ可用性保証なし（ゼロセキュリティ）**
データが利用可能であるという保証はなく、IPFSのURIのように単なるコミットメントのみです。これはNFTのような安全性が求められないシナリオには十分かもしれませんが、実際のリスクを伴う多くのチェーン取引には適していません。

- **データ可用性Committee**
信頼できる多数派によって選ばれたグループが、データの可用性を保証することで、データ可用性とパフォーマンスのバランスを取ることができます。

- **データ可用性Committeeとクリプトエコノミックセキュリティ**
しかし、この方法もスケーリングの問題に直面します。グループのメンバーは、検証作業を行うために増加するデータのオーバーヘッドに対応しなければなりません。この問題を緩和するために、グループメンバーは「クリプト経済的インセンティブ」を与えられることがあります。つまり、検証作業に応じてトークンが支払われる仕組みです。
また、グループが不正を行った場合には罰則（「スラッシュ」や「停止」）が科されることがあり、これによりセキュリティ全体が強化されます。この仕組みは、グループがチェーンのコンセンサスメカニズムの一部である場合に有効です。

- **ライトノード**
このフレームワークにライトノードを導入することで、データ可用性チェックを行い、さらにリソース要件を減らすことができます。これには2つの方法があります。

1. **誠実な少数派なしでのデータ可用性サンプリング**
ライトノードはサンプリング技術を使用してデータを検証しますが、全ブロックをダウンロードせずにデータを確認するため、一部のデータが欠落している場合、完全なデータ復旧を保証できません。この方法は、データ可用性委員会とサンプリングインターフェースに依存します。

2. **誠実な少数派を伴うデータ可用性サンプリング**
誠実な少数派が存在する場合、いずれかのデータが隠蔽されたとしても、ブロックを再構築してセキュリティを強化できます。ノードが効果的にデータを共有するためには同期ネットワークが必要です。



**unlinkableなデータ可用性サンプリング**

この高度なレベルでは、ライトノードのリクエストをunlinkableかつ均一にランダム化することで、選択的開示攻撃（elective share disclosures、後述）などの標的型攻撃を防止します。この技術の発展にはさらなる匿名化技術が必要であり、Nymの解決策がここで役立ちます。

では、これらの従来のソリューションがどのように不十分で脆弱であるのかを見ていきましょう。


## 問題：選択的開示攻撃
選択的開示攻撃は、悪意のある攻撃者がブロックのデータが完全に利用可能であるとノード（または複数のノード）に信じ込ませようとするデータ可用性攻撃の一種です。実際には一部のデータが隠されており、ブロックは不完全または復元不可能な状態になります。

攻撃者の目的は、ブロックデータに関する問い合わせに対してピアツーピアネットワークで選択的に応答し、検証プロセスを操作することです。最終的に、これによりコンセンサスが崩れ、チェーンがフォークし、取引の信頼性が損なわれます。

では、最新の理解に基づいて、これがどのように機能するかを説明します。

### 攻撃の概要
この攻撃には、2つの同時進行する要素があります。

攻撃者は、ブロックの一部のデータシェアを隠し、ネットワークがそのブロックを再構築できないようにして、ブロックを利用不可能にします。

同時に、攻撃者はターゲットとなるライトノードのクエリに対して選択的に応答し、ブロックが利用可能であると信じ込ませます。

### 攻撃のメカニズム
ネットワークはデータ可用性サンプリング（data availability sampling (DAS)）に依存しており、ライトノードは他のノードからランダムにブロックデータのサンプルをリクエストして、データの可用性を確認します。

・選択的開示攻撃では、攻撃者はブロックのデータの一部を隠し、ブロックが再構築できないようにします。
・しかし、攻撃者は隠されていないデータシェアから応答することで、正直なノード（例えばライトクライアント）のクエリに選択的に応答します。これにより、ブロックが完全に利用可能であるかのような誤った印象を与えます。

### 誠実なノードにとっての課題
・悪意のあるノードは、誠実なノードと区別できず、正しく応答するため、検出されるまではブラックリストに登録されません。
・誠実なノードがサンプルを要求しても、攻撃者の応答は一見正当であり、隠されたデータは誠実なノードの特定のクエリから隠されています。

## 2つの解決策
1. 匿名化層の追加
各サンプルリクエストの送信元がクライアント（ライトノード）にリンクされず、ネットワーク全体でリクエストがランダムに処理される匿名化層（anonymization layer）を追加することが提案されています。これにより、攻撃者が特定のノードに対して選択的開示攻撃を仕掛けるのを防ぐことができます。

2. 十分な数のクエリの実行
各ノードが十分な数のクエリを実行する（隠されたデータを検出する可能性を高める）か、十分な数のノードに依存して隠されたデータシェアをカバーすることも有効です。

### シミュレーション結果
・クライアントが少数のクエリ（例：15回）しか行わない場合、攻撃が成功する確率は比較的高く（約0.0133）、攻撃者は約75回の試行でクライアントを欺ける可能性があります。
・しかし、クライアントあたりのクエリ数が増加（例：50回）すると、攻撃の成功確率は大幅に低下し、ほぼ0になります。
・同様に、より多くのクライアントをターゲットにすると攻撃成功率は上がりますが、クエリ数が増えると成功確率は下がります。


## シミュレーション結果
- クエリ数が少ないと攻撃が成功する確率が高まりますが、クエリ数を増やすことで成功確率が低下します。
- クライアントあたりのクエリ数が多いほど、攻撃の成功率は低くなります。

# 問題の概要

選択的開示攻撃は、データ可用性サンプリングを操作し、特定のノードに対して選択的にデータを公開することで、ブロックが完全に利用可能であるかのように誤認させる攻撃です。対策としては、(1) 匿名化技術の活用、(2) クライアントが十分なランダムなクエリを行い、欠落データを検出することが必要です。

# 検討された解決策

「Celestiaのプライベートネットワークの評価」では、Celestiaのブロックチェーンに匿名化レイヤーを追加するためのいくつかの解決策が検討されました。可能なプライベートネットワークソリューションには以下が含まれます。

- TorネットワークとSnowflakeを使用し、WebRTCを通じてTorトラフィックを隠蔽し盗聴を防ぐ

- トラフィックの匿名化を目的としたNymのLoopixなどのミックスネットの統合

- クライアントのクエリを非同期化するためのランダム化された遅延を実装するレイテンシ耐性

- 実際のクエリパターンを隠すためのダミートラフィック

- 追加の保護を提供するためのVPNの利用

これらの解決策には、それぞれ利点と欠点があります（例えば、レイテンシの可能性について）。

Torオーバーレイによる利点や多くの問題を脇に置くと、多くのコアソリューションがNymミックスネットで既に運用されているネットワーク技術（例えば、カバートラフィックやランダム化された遅延）であることが重要です。そこで、Nymのコアチームは、NymがCelestiaや他のプロジェクトに対して、よりプライベートなブロックチェーン体験を提供するためにどのようなことができるかを探るR&D調査を行うことに決めました。

### Nymの匿名サンプリングソリューション
Nym Technologiesは、選択的開示攻撃に対抗するために、Nymミックスネットを匿名化レイヤーとして活用し、モジュラーネットワークと統合する「プライベートデータ可用性サンプリング（Private Data Availability Sampling (P-DAS)）」を提案しています。

P-DASは、Nymミックスネットを介してリクエストを送信し、リクエストとリクエスタを分離します。これにより、リクエスタが標的にされることなくデータ可用性の検証を行うことができます。この手法により、プライバシーを保護しつつ、安全なデータ可用性サンプリングが可能になります。

Nymミックスネットの統合により、以下の主要な利点が期待できます。

- Nymミックスネットに対応した匿名化データ可用性サンプリング（Anonymized Data Availability Sampling）モジュールを提供し、プライバシーを保護したデータ検証を実現

- 暗号化されたトラフィックをNymミックスネットを通じてルーティングし、ユーザーの活動を隠蔽しつつ、カバートラフィックやタイミングの隠蔽などの技術を使用してデータの整合性を維持することで、選択的開示攻撃を防止

- シミュレーションによる最適なミックスネットパラメータの決定を通じて、パフォーマンスとセキュリティのバランスを最適化

ミックスネットの統合により、モジュラーネットワークのデータセキュリティが強化され、操作に対してより強固になりつつ、ユーザーのプライバシーも保護されます。Nymの研究は、今後もモジュラーな未来に向けた強力な保護を提供するために続けられる予定です。

# 参考リンク

- [Nym公式サイト](https://nymtech.net/)
- [Nymのミキシングネットワーク - Wikipedia](https://ja.wikipedia.org/wiki/Nymミックスネット)
- [Nymホワイトペーパー](https://nymtech.net/nym-whitepaper.pdf)
- [分散型VPN と中央集権型VPN:違いの全て](https://note.com/koko_crypto/n/n71fe7e92b68a)
- [ミックスネットとは何か？ VPNによる比類なきオンラインプライバシー](https://note.com/koko_crypto/n/n302e7516f691?magazine_key=m0129d65e3526)
- [Sphinx暗号-Nymを支える匿名データフォーマット](https://qiita.com/pseudonym2/items/107cf005e9cab0b165b6)
- [ココナッツ認証（Coconut Credentials）とは？- プライバシーを保護するゼロ知識証明技術](https://qiita.com/pseudonym2/items/b2739ae32f4fb29de0b6)

# コミュニティ

- [Nym日本コミュニティ - Telegram](https://t.me/nymjapanese)
- [Nym日本コミュニティ - Discord](https://discord.com/invite/nym)
- [Nym日本コミュニティ - LINEオープンチャット](https://line.me/ti/g2/0YGYYq4EoQZ8fL5FYQmqU4O9SRuE_a6YX19GtA?utm_source=invitation&utm_medium=link_copy&utm_campaign=default)
- [Nym 公式LINE(現在非稼働)](https://line.me/R/ti/p/@986ytsdx?from=page&accountId=986ytsdx)
- [Nymプロジェクト日本語アカウント - X](https://x.com/nymproject_jp)