You Shall Not Join: A Measurement Study of Cryptocurrency Peer-to-Peer Bootstrapping Techniques

著:Angelique Faye Loe, Elizabeth Anne Quaglia

論文はこちら

Abstract


暗号通貨におけるブートストラップ(新規ピアが新たに P2P ネットワークに参加する)メソッドにおいて中央管理リソースを使用しない方法はまだ解決されていない課題である。この論文では 74 種類の暗号通貨のブートストラップ技術を調査し、DNS シードやハードコーディングなどの検閲傾向のあるメソッドが最も使われていることがわかった。また、Tor と ZMap を使った検閲の影響を受けにくいメソッドについてもテストを行なった。次に、分散した RIPE Atlas ネットワークを使って 42 ヶ国で見つけた 92 の DNS シードの DNS レスポンスの国際的計測研究を行なった。これによって各暗号通貨の P2P ネットワークトポロジーの詳細を提供し、ブートストラップ処理に影響するクエリ操作と DNS 障害の実例を強調する。調査では、調査された暗号通貨のソースコードは 5 つの主なリポジトリからのものであることが明らかになった。最後に、発見したことの影響について議論し、リスクを軽減するための推奨を提供する。

1. Introduction


はじめに、検閲に耐える能力を元に3つのカテゴリに分類し、各メソッドの利点と欠点を述べる。(DNS シーディングや IP ハードコーディングなどの検閲傾向のあるメソッド、IRC や Tor などの検閲を軽減するメソッド、ZMap を使った IPv4 スキャンなどの検閲に耐性のあるメソッド)次に、調査結果を提示して、調査した暗号通貨で使用されているブートストラッピング手法を特定する。調査では 95 % の暗号通貨は検閲傾向にあるメソッドを使用していることを強調した。さらに、32 % の暗号通貨は単一の DNS プロバイダを使用しており、単一障害点を晒している。また、88 % の暗号通貨は固有の宛先ポートを使用しているため、トラフィックの特定を簡単にしている。これらの発見に基づいて、既存の暗号通貨にブートストラップのフォールバック技術が存在するかどうか確かめた。残念なことに、1つを除いてフォールバック技術は基本的な検閲の傾向があることがわかった。これによって Tor を使用した検閲軽減ブートストラッピングの実現性のテストを行い、接続の成功に関する様々な結果をもたらした。最後に ZMap IPv4 スキャンを使用した検閲耐性技術を通したブートストラップの能力をテストした。残念なことに、この技術は大きなオーバーヘッドのレイテンシによって制限されており、単一の暗号通貨はこのメソッドで接続できない。

調査の第2部では、ブートストラッピング方式としてのDNSシードの普及を強調した結果として、このサイドチャネルを利用して、暗号通貨のピアツーピアネットワークに関する詳細を数か月にわたって測定した。RIPE Atlas 調査のグローバルな分散ネットワークを用いて、我々の調査はブートストラッピング調査中に発見した 92 個の DNS シードへの DNS クエリレスポンスの詳細を含んでいる。我々の調査は各暗号通貨の P2P ネットワークのトポロジーを明らかにし、いくつかの暗号通貨は接続戦略の一部として中央集権化ランデブーサーバーを使用している一方で、DNSクエリ応答の収集を通じて意図せずにピアのIPを公開していることを強調している。この測定調査を通じて、暗号通貨ごとおよび国ごとに見られるピアIPの数に関する統計の範囲を特定し、複数の暗号通貨にわたってアクティブなIPの数を強調表示した。私たちのデータは、DNSシード停止とクエリ応答操作が、調査対象国の60%でブートストラップ処理にどのように影響するかを明らかにしている。

さらに我々の研究は、検閲傾向のブートストラッピング技術が流布している主な原因はソースコードをコピーすることの習慣が広まったからである。我々の発見は調査したすべての暗号通貨はたった 5 つのソースコードリポジトリから派生したと強調している。

2. Background and related work


この章では P2P ブートストラッピングの概念について紹介する。次に、様々な P2P ブートストラッピング技術の概要を示す関連研究の分析を実施し、検閲に耐える能力に基づいて分類する。最後に、暗号通貨のトレードと収穫を円滑にするためにどのようにして暗号通貨交換所は P2P ブートストラッピングのプロセスに適合させるか議論する。

2.1 Peer-to-Peer Bootstrapping

ブートストラッピングは ”P2P ネットワークに参加したい新しいピアが、既存のネットワークに存在する他のピアについての情報を発見するために使うプロセス” として簡単に述べることができる。集中化したリソースを使用せずに P2P オーバーレイネットワークにブートストラップする能力は未解決の困難とされている。しかし、困難は他のピアに関する知識がない新しいピアがネットワークに参加したい時に生じる。そのようなピアは自身がネットワークの最初のピアかどうかを決定しなければならない。もし、そうでなかったらそのピアは既存のネットワークに参加するために少なくとも1つの他ピアを発見して接続しなければならない。

2.2 Censorship-Prone Bootstrapping

この章では、非常に検閲の傾向のある P2P ブートストラッピングの2つのメソッドを評価する。1つ目はハードコーティングである。ハードコーディングは、ピアのリストはすぐに古くなり攻撃者に P2P ネットワークの詳細を教えるためのメソッドを与えてしまうため理想的ではない。2つ目は DNS シードを使用することである。DNS はドメイン名と IP アドレスをマッピングする階層的なサーバクライアントプロトコルである。例えば、新しいピアが Cryptonex 暗号通貨の DNS シードノード london.cryptonex.org を DNS サーバにクエリする場合は、A レコードで単一もしくは複数の IP アドレスを得る。その後、そのピアはネットワークにブートストラップするときにその IP アドレスに接続しようとする。DNS シードは、DNS がその中央集権な性質と主に平文の通信メカニズムによって簡単に検閲ができるサーバクライアントプロトコルであるため、理想的ではない。

両者のメソッドは設定と実装が簡単であることに利点がある。開発者はソースコードに関連する IP アドレスか DNS シードをハードコーディングすることだけ必要である。また、DNS シードでは DNS ゾーンやレコードに追加の設定も要求される。

2.3 Censorship-Mitigated Bootstrapping

この章では、IP ハードコーディングと DNS シードの欠点を対処した2つのブートストラッピングメソッドについて説明する。

最初のメソッドは IRC サーバに依存したものである。IRC は分散したチャットサーバを通して他のクライアントとチャットメッセージを送ることができるサーバクライアントプロトコルである。このメソッドは分散した IRC サーバをブートストラッピングのランデブーポイントとして利用するものである。これによって、最初のピア接続の単一障害点を取り除くことができるが、このメソッドの問題は接続する IRC サーバを見つけることが必要であることにある。残念なことに IRC サーバを見つけることもハードコーディングや DNS シードを使用することに依存している。この依存によって IRC ブートストラッピングは広く展開されなかった。

2つ目は隠れた Tor サーバを使用したブートストラッピング技術である。このメソッドは Tor ネットワークを通して P2P トラフィックを送っている。Tor はボランティアベースのオーバーレイネットワークであり、ユーザに匿名のインターネットブラウズを可能にする。このメソッドの利点は P2P トラフィックは Tor トラフィックに現れるということである。残念なことにいくつかの国では、Tor や他の VPN トラフィックを検知しブロックするためにインターネットアクセスを検閲し規制したいようだ。Tor を検閲することは、Tor のデフォルト設定は宛先ポートの使用法や Tor クライアントとエントリリレー間の特徴的な TLS ハンドシェイクなどに基づいて簡単に特定できるため可能である。すべての Tor リレーは Tor ディレクトリ当局に保存された公に入手可能な情報によって特的できるため、IP レベルでの検閲が可能である。

Tor はプラグ可能トランスポートや Tor ブリッジを導入することでこれらの欠点を対処する。プラグ可能トランスポートは Tor トラフィックが通常の TLS トラフィックとして現れるように試みることでセキュリティのステガのグラフィックを利用している。このように、P2P トラフィックを特定するのがより困難になるため、プラグイン可能トランスポートには利点がある。

Tor ブリッジは、Tor ディレクトリ機関で公に入手可能な IP アドレスを持たないエントリリレーである。残念ながら、デフォルトのTorブリッジは、TorブラウザーバンドルへのIPのハードコーディングに依存しているため、検閲の影響を受けやすくなっている。

P2P ブートストラッピングに Tor を利用する最も大きな欠点の1つは、バンド幅の制限とレイテンシである。これは、3ホップの暗号化されたリレー設計のオーバーヘッドによるものである。大きなブロックチェーンをダウンロードする必要のある P2P 暗号通貨のブートストラッピングの場合、前者の欠点は重大な操作的問題をもたらす。最後に、他の論文では Tor は特に暗号通貨を考慮する際に匿名性の万能薬ではないことを明らかにしていることを覚えておいてもらいたい。

2.4 Censorship-Resistant Bootstrapping

最後に IPv4 スキャニングに基づいた最も検閲に耐性のあるブートストラッピング方法について議論する。スキャンベースの最初の P2P ブートストラッピングメソッドは地理的にターゲットを絞った IP スキャニングである。このメソッドのアイデアはすでにネットワークの一部になっている IP のプロファイルの作成である。一度 IP が決定されると、DNS から学習した分散情報に基づいてターゲットスキャンが作成される。このメソッドの利点は、ブートストラッピングの集中化要素や IP ハードコーディングの必要を取り除くことに焦点を当てたことである。残念ながらこのメソッドはまだ集中化された DNS プロトコルに依存しており、P2P ネットワークはすでに確立されていることを仮定しているため、ピアの IP アドレスの詳細を学習することは可能である。

ただし、重要なことはこの方法では他のピアについて学習するために、IPv4アドレススペースのピアが開始したスキャンを探索することである。IPv4 アドレス空間全体をスキャンすることの計算実現性は ZMap ネットワークスキャナーの発展によって今では可能である。ZMap は 10Gbps の Ethernet 接続で、IPv4 空間全体の単一ポートのスキャンに 4.5 分かかる。このスキャニングメソッドの利点は中央集権依存の排除である。しかし、4.5 分のスキャン時間は高バンド幅であることを仮定しており、ブートストラピングのこの技術はとてもバンド幅が必要である。ブートストラップするには、各ピアに対して 4.6 Gbps のトラフィックを発生させる。さらに、典型的なブロードバンドスピードは 10 Gbps を下回っている。特定国のバンド幅の制限は、特定のピアが暗号通貨を取得する動機に基づいて検討する重要なポイントである。

3. Research Methodology Overview


この章では、我々が調査する暗号通貨を選択するプロセスを説明し、調査ステップの概要を示す。

3.1 Selection of Cryptocurrencies

2018 年 2 月 28 日、USD 資本市場においてトップ 100 の暗号通貨が選ばれた。これらの暗号通貨は4つのカテゴリに分類できる。マイニング可能コイン、マイニング不可コイン、マイニング可能トークン、マイニング不可能トークンである。コインとトークンの違いは、コインは自身のネイティブブロックチェーンがあり、トークンは既存のブロックチェーンを使用して作られたものである。トークンにとってブートストラッピングを含んだ P2P 接続性のコア要素は基盤となるコインによって使用されているメソッドに依存している。

マイニング可能暗号通貨とマイニング不可暗号通貨は、そのコインの獲得方法によって区別する。マイニング不可暗号通貨は基本的に中央集権的交換所によって得られる。反対にマイニング可能暗号通貨は、P2P 輸送によって直接得るか、マイニングプロセスによって得られる。

下図は選択した暗号通貨の分類を示しており、このうちの 25 はマイニング不可コインで、25 がマイニング可能コインであり、50 がトークンである。(マイニング不可コインはこの研究の対象外である。)50 のトークンはそれぞれ緑色で表されている(Omni, Neo, Ethereum, Transitioning)。Omni の基盤になっているコインは Bitcoin であり、Ethereum と Transitioning トークンの基盤となっているコインは Ethereum コインである。

3.2 Summary of Research Steps

我々の最初の研究要素は 25 のマイニング可能コインとそれらの基盤となる 49 のトークンのブートストラッピング方法を調査する。この調査は仮想マシンに各マイニング可能コインのコアリファレンスクライアントをインストールし、ブートストラッピングプロセス中の接続動作を記録する。次に、各コインのオープンソースコードリポジトリに対する動作を相互参照する。 次に、ブートストラップのフォールバック方法を決定するために、IP ブラックリストや DNS シンクホールなどの基本的な検閲メカニズムを繰り返しテストした。ソースコードを検査すると、Tor を介して接続する構成可能な手段がいくつかのコインにあることがわかった。従って、我々はこのブートストラッピング技術の効率をテストし、記録した。さらに潜在的なピアをスキャンし結果を記録するために ZMap を使用した検閲耐性のあるブートストラップメソッドをテストする。

次に、42 か国で地理的に分散した 46 の RIPE Atlas 調査を介してグローバル測定調査を実行し、ブートストラップ調査で発見された 92 の DNS シードをクエリした。RIPE Atlas は地理的に広がっており、RIPE Atlas は地理的に分散したボランティアベースのプローブネットワークで、ネットワーク遅延、トレースルートパス、DNS、SSL / TLS、HTTP、NTP 応答などのインターネットメトリックを測定するために使用される。最後に、私たちの研究は多数の暗号通貨のソースコード調査を指示しているので、調査した暗号通貨のソフトウェアフォーク系統をマッピングすることにより、レガシーブートストラッピングメソッドの継承の根本原因を明らかにする。下図に我々の調査ステップの流れを概略する。

4. SURVEY OF CRYPTOCURRENCY BOOTSTRAPPING METHODS


この章では 25 のマイニング可能コインと 49 のトークンのブートストラッピングメソッドの調査を示す。調査の最も重要な部分はテストした 95% の暗号通貨は検閲傾向のブートストラッピングメソッドたけを使用していることを示している。我々は Tor を通した P2P ブートストラッピングトラフィックのチャンネリングの課題をテストし記録し、ZMap IPv4 スキャニングを使用したブートストラッピングの実現性をテストした。

4.1 Determining Bootstrapping Methods

最初のタスクは 25 個の仮想マシンにコアリファレンスクライアントソフトウェアをインストールし、ネットワーク分析ツールとアプリケーションデバッグログを使用してブートストラップの振る舞いを特定する。次に、各暗号通貨のオープンソースコードで特定の動作を相互参照する。予想通り、すべての場合においてブートストラッピングでの接続挙動はソースコードに書かれていることに反映する。P2P ブートストラップの3つの主なオプションは、DNS シード、IP シードのハードコーディング、および Tor を介したブートストラップであると判断した。下図はブートストラッピング機能のソースコードの詳細を示している。

DNS シーディングは特定された最も一般的なブートストラッピングメソッドである。従って、下図に示している発見した 92 個の DNS シードのプロバイダ多様性を評価する。DNS 名前サービスは DoS 攻撃のリスクを軽減するために冗長なプロバイダによってなされることを推奨されている。しかし、3分の1のコイン、つまり、Monero, Dogecoin, Electroneum, Zclassic, Syscoin, Cryptonex, Monacoin, Zcoin は単一の DNS プロバイダを使用している。この調査で評価された 95% の暗号通貨は特有の TCP, UDP 宛先ポート(上図)を使用しており、トラフィックを特定することが容易である。ソースコードを直接評価するか、標準のネットワークパケット分析ツールを使用することでそのポートがどの暗号通貨で操作されているか簡単に知ることができる。

4.2 Identifying Bootstrapping Resilience Through Basic Censorship Testing

我々は異なる検閲メソッドを反復的に適応することで各暗号通貨のブートストラッピング能力の耐性をテストした。DNS 検閲を模倣するため、上図に示したすべてのドメイン名を静的にマッピングさせたローカルホストファイルを仮想マシンに入れ、それらをループバック IP アドレスに向けた。後者のメソッドは DNS シンクホーリングという技術で知られている。ハードコードされたシードの検閲はソフトウェアファイヤウォールを使用した IP ブロッキングによって達成される。

我々の調査ではいくつかの暗号通貨は第一のメソッドが検閲された時にフォールバックすることを明らかにした。DNS シンクホーリングもしくは IP ブロッキングを実装し、後にアプリケーションの接続ログ、ネットワークパケットトラフィック分析機の出力を評価することでフォールバックブートストラッピングメソッドを特定する。最後に、関係するソースコードを相互参照することでフォールバックブートストラッピングメソッドを確認する。

7つのコイン(Bitcoin Gold, Dogecoin, Zclassic, Syscoin, Cryptonex, Zcoin, Vertcoin)はDNS検閲だけに基づいてブートストラップすることができない。最初の4つは第二のブートストラッピングメソッドが存在しないからブートストラップできない。Zclassic の場合、ハードコードされたシードを介したフォールバックブートストラップメカニズムの構成オプションがありますが、値は存在しない。 Zcoin および Vertcoin の場合、ソースコードで検証されたハードコードされた IP への接続試行が見られるが、24時間経過しても正常な接続は完了しなかった。

5つのコイン(Ethereum, Ethereum Classic, Siacoin, Bitcore)は IP 検閲だけに基づいてブートストラップをすることができない。従って根底にあるトークンを考慮すると、テストした暗号通貨の 80% は耐性のあるブートストラッピングメソッドを持っていない。また、DNS 検閲と IP 検閲を組み合わせると Verge のみが Tor を用いたデフォルトのブートストラップが可能であることを明らかにした。

さらに、Syscoin は DNS シード検閲が発生した時に P2P ネットワークに再接続することができなかった。通常の操作では、以前に接続されたピアはローカルにキャッシュされるため、DNS 検閲はピアの再接続の成功に制限がある。これはブートストラッピングだけに対するこの検閲傾向リソースへの依存を制限することよりも、継続的な接続要求のための永続的な DNS の依存を示している。

下図にこの章の結果と我々が発見したブートストラッピングのフォールバックメソッドについて示している。

4.3 Results of Tor Bootstrapping

25 の暗号通貨を評価することは 20 のコインがプロキシーサーバを通して接続性をサポートするオプションを明らかにした。従って、我々は Tor を使ったブートストラッピング能力をテストした。これは検閲軽減メソッドを通したブートストラッピングの成功率を調査することを可能にする。

Windows もしくは Ubuntu 仮想マシンに Tor エキスパートもしくは tor-sock をインストールすることでテストを実施し、暗号通貨 P2P トラフィックを集めるためにローカル SOCKS プロキシーを設定した。また、ローカルピアキャッシュをクリアして、真のブートストラップエクスペリエンスを保証する。

13 の暗号通貨のみがブートストラップに成功し、5 つ(Bitcoin Gold, Zcash, Bytecoin, Dogecoin, Electroneum)が失敗した。そして 2 つ(Bitcoin Cash, Monero)は成功したが問題が発生した。Bitcoin Cash はブートストラッピングのために他のピアを見つけることは成功したが、操作してから 24 時間後に Tor を使用したフルブロックチェーンをダウンロードする推定時間は 1 年と 27 週間を示しており、実質この接続性のメソッドは実現性はない。Monero は Tor を通してその P2P トラフィックのいくつかをプロキシすることができたが、UDP ベースの DNS クエリは SOCKS プロキシの外部に漏れ、DNS_PUBLIC = tcp を設定することは接続性に様々なエラーを生じた。Monero, Electroneum, Bytecoin の Tor 使用に関するセクションでは、Tor を統合を意図していないことを明確に示している。したがって、発生した問題は、コア開発者が設定した予想の範囲内である。

Tor を用いたブートストラッピングは検閲のリスクを軽減することができるが、希望する匿名性のレベルを提供できない可能性がある。また、プロキシ接続は、大きなブロックチェーンを適時にダウンロードする機能を制限する遅延とパフォーマンスのペナルティを受け入れる必要がある。さらに、高規制環境において、Tor 自身の検閲を避けるために追加警戒が要求される。これは Tor トラフィックの特徴を目立たなくするためにプラグ可能なトランスポートの使用とプライベートブリッジ IP アドレスの手動収集を含んでいる。この章の結果を上図にまとめている。

4.4 Results of ZMap Bootstrapping

この章では、ZMap を使用した IPv4 空間のスキャニングによる検閲耐性メソッドを通したブートストラッピングの実現性をテストする。コアリファレンスソフトウェアピアの大部分は他のピアとの接続数を 8 つに制限している。従って、ZMap スキャンパラメタでは関連する TCP 宛先ポートが 8 つ見つかったらすぐに停止するように設定した。はじめに ZMap を使用してピアを発見するまでの時間を記録し、見つかった IP を使用してブートストラップの能力をテストした。

我々の結果では 8 つのピアが見つかる時間の平均値は 16 分 29 秒であった。驚くことに、このメソッドを使用してブートストラップできる暗号通貨は1つもなかった。この結果は予想できなかったため、IPv4 空間における 8333 番ポートのスキャンを行なった。このスキャンはちょうど4時間程度で終了し、241個だけの IP アドレスを発見したがいずれも Bitcoin を正常にブートストラップできるものはなかった。また、Siacoin は 101 のハードコーディングされたシードがソースコードに書かれており、これらのシードが発見されるかどうか徹底的にスキャンを実行した。残念ながら、Siacoin の宛先ポートを Listen している 221 個の IP が発見されたがハードコードされたものと一致するものはなかった。結果、発見した IP アドレスを使用してブートストラップさせることはできなかった。

この方法のブートストラッピングに影響を与えている困難の一つがタイムリーにフルスキャンを実行するためにバンド幅を必要とすることだと推測できる。さらに、宛先ポート番号は頻繁に他のサービスでも使用されているときに問題が発生することも注意した。最後に、Ethereum はピア接続性に動的ポートを使用しているためこの方法のピア検索はこのコインには互換性がない。

このブートストラッピング方法の主な利点は集中的リソースが必要ないことであるが、我々の結果は成功率が事実上ゼロであること、異なる検索時間、ポート番号によって P2P トラフィックが依然特定可能であるためこの方法は実現性のないものであることを示している。

5 GLOBAL RIPE ATLAS STUDY ON DNS SEEDS


25 コインと49 の基盤になるトークンのブートストラップ方法を決定した後、グローバル RIPE Atlas DNS シードブートストラップ調査から得られた測定に調査を向ける。はじめに DNS クエリ返答から、帰ってきた宛先 IP アドレスについての統計と見識を提供する。そして、障害やクエリ返答操作などの DNS シードブートストラッピングに影響を与える消極的な結果を明らかにする。

5.1 Detailed Research Methodology of Study

まず、セクション3で概説されている調査のこの要素に固有の調査手順について詳しく説明する。

5.1.1 RIPE Atlas Probe Selection

RIPE Atlas 調査を始めるために、我々の調査のために DNS クエリを実行させる RIPE Atlas 探査機を選ぶ必要がある。2か月のデータ収集間隔に基づいて、アジア太平洋、ヨーロッパ、中東アフリカ、北米、南米の 42 か国から46 のRIPE Atlas 探査機を選択する。いくつかの国は暗号通貨を得たり取引することは違法、もしくは法のもとで監視されている。したがって、可能な場合は、DNS応答操作の可能性を測定する目的で、これらの国からRIPE Atlasプローブを選択した。

5.1.2 DNS Seed Enumeration and Selection

次のステップは暗号通貨で使われている DNS シード(Table7 を参照)の数を数えることである。DNS クエリレスポンスはレスポンスの状態を表す Return Codes を含んでいる。RIPE Atlas 調査で見られた Return Codes はクエリが成功していることを示す 0-NOERROR、クエリに対してサーバが失敗を発生したことを示す 2-SERVFAIL、要求したドメイン名は存在しないことを示す 3-NXDOMAIN があった。Return Code 操作は DNS 典型的な検閲技術である。例えば、cryptotest.io に A レコードが設定されていれば、正しいクエリレスポンスは正しい IP アドレスに加えて Return Code 0 を含んでいる。しかし、検閲されている環境にあるとクエリレスポンスが Return Code 3 に操作される可能性がある。従って、IP アドレスをクライアントから隠しリソースにアクセスすることを妨げる。

5.2 DNS Seed Measurement Results

我々は各暗号通貨を調査した統計を取り込み、ピアが複数のコインをまたがってアクティブであることを強調し、これらのデジタル資産に対する異なる法的立場を持つ国で記録された個別の IP の差異を明らかにする。

5.2.1 IP Statistics Per Cryptocurrency

各暗号通貨で帰ってきた IP アドレスの数に関しての統計を取ることでデータを分析した。下図は調査した暗号通貨の総 IP アドレスと固有アドレス数を記録している。例:(プライベートアドレスを使用しており、実際のピアに関する情報は公開されていない)2つの DNS クエリが DNS シード example-seed.mycryptocurrency.org に対して作成される。最初の返答は IP アドレスの集合 $S_1 = \{10.0.0.1, 10.0.0.2, 10.0.0.3, 10.0.0.4\}$ を返し、2番目の返答は集合 $S_2 = \{10.0.0.1, 10.0.0.5\}$ を返した。この時の総 IP アドレス数が $|S_1| + |S_2| = 6$ であり、固有 IP アドレス数が $|S_1 \cup S_2| = 5$ である。

測定データは、次のコインが26未満の異なるIPを返すことを示している:Monacoin(18)、Cryptonex(21)、Zcoin(24)、Zclassic(25)。 返される個別のIPアドレスの数が最も多い残りのコインは、Bitcoin (44077), Litecoin (7393), Dash (5489), Dogecoin (2812), Bitcoin Cash (2512), Syscoin (1280), Vertcoin (967), Zcash (619), Bitcoin Gold (331), Digibyte (295), Komodo (86), SmartCash (67) である。26 未満の異なる IP を返すコインの場合、ブートストラッププロセスは、P2P ネットワークへの接続を静的サーバーセットに依存する。つまり、DNS クエリ応答は、ネットワーク上の他のピアの IP ではなく、ランデブーサーバーの IP を明らかにする。

26 未満の異なるIPを返すコインは、基本的な検閲に耐えることができるという点で不利である。 ただし、それらは無意識にサイドチャネルの情報漏洩を防止する。 対照的に、動的に変化する IP の大きなセットを DNS クエリ応答で返すコインを検討すると、 ピアの IP に関する情報を収集するために、明確なサイドチャネルが公開されている。 この情報は、コアリファレンスクライアントソフトウェアをインストールする必要なく収集できる。 つまり、DNSクエリ応答は、ネットワーク上のピアの IP を明らかにする。これは、DNS シードの意図しない結果である。

5.2.2 Peers Active Across Two or More Cryptocurrencies

我々の調査では異なる IP のうち 5.2% は2つ以上の暗号通貨でアクティブであることを明らかにした。$C$ を DNS シーディングをブートストラッピングとして使っている暗号通貨とすると、以下のようになる。

$$C = \{BTC, BTH, LTC, DASH, XMR, BTG, ZEC, DOGE, ETN, HSR,\\ZCL, KMD, SYS, DGB, CNX, MONA, XZC, VTC, SMRT\}$$

$D_i$ を $C$ に含まれる異なる IP の集合とすると、

$$\sum_{i \in C}|D_i | = |D_{BTC}| + |D_{BTH}| + |D_{LTC}| + . . . + |D_{SMRT}| = 66016$$

また、もし $I$ をデータ全体の異なる IP 集合を表すと、$|I| = 62732$であり、その差は以下のようになる。

$$\sum_{i \in C} |D_i | − |I| = 3284$$

この計測した 62732 のうちの 3284 は2つ以上の暗号通貨でアクティブということになる。複数の暗号通貨でアクティブな IP は、投資が多様化した個々のピアになる可能性がある。しかし、それらは暗号通貨交換所の IP であり、多数のピアのプロキシとして機能する。交換所として使用されている IP の特定と検閲は多くのピアのデジタル資産の取引と獲得に深刻な影響を与える。

5.3 DNS Manipulation

このセクションでは、DNSシードへの依存に基づく暗号通貨のブートストラッププロセスの操作の証拠に関する結果を示す。

5.3.1 NXDOMAIN Manipulation

我々の調査では3つの探査機が存在しないドメインに対する DNS クエリ応答に操作した結果を挿入することがわかった。その他は全て NXDOMAIN を返しているが、この3つは NOERROR を返している。DNS 応答の Return Code を操作して偽造の IP アドレスを提供できる能力はブートストラッピングプロセスを変更する能力に反映する。誤った IP アドレスを提供することはそのピアを P2P ネットワークから分離することを意味しており、さらに悪いことに、操作された IP は暗号通貨の P2P ネットワークへの接続試行を記録する偵察ホストに解決される可能性がある。 これは、暗号通貨が違法である国のユーザにとって懸念事項である。

中国における DNS クエリ応答操作の動きはよく報告されているが、今回の調査ではブラジルやアメリカでも確認できた。Monero のDNS シード(中国のシードを除く)は全ての探査機に NXDOMAIN を返した。

5.3.2 TTL Manipulation

この章では、DNS クエリ応答の頻繁に操作されるパラメタ(TTL)を特定する。調査の中で捉えた操作の例とそれが暗号通貨ブートストラッピングへの影響を示す。

TTL 値は DNS サーバにネットワークトラフィックを減らし、パフォーマンスを改善するためにどれだけ長くキャッシュしておくかを教えている。DNS クエリ応答の 20% でグローバルに TTL 操作が普及していることが指摘されており、TTL操作の背後にある主な目的は、一般にパフォーマンスの考慮事項にある。例:(この例ではプライベート IP アドレスを使用しており、実際のリソースに関する情報が明らかにならないようにしている。)Web サイト ttlexample.earth は IP アドレス 10.0.0.50 (TTL = 3600s)の単一 A レコードを持っていると仮定する。DNS クエリトラフィックを減らすために ISP は TTL を 86400s に操作する可能性がある。TTL を操作することによってこの Web サイトの IP アドレスが本物のパラメタよりも 23h 長くキャッシュされる。結果として、このレコードの DNS クエリトラフィックは 24 時間にわたって最小限に抑えられる。

静的 IP アドレスセットを返す Web サイトの場合、TTL 操作はトラフィックロードを減らし、パフォーマンスを向上させる。ただし、TTLの操作は適切に行われるが、動的 IP コンテンツをホストするドメイン(セクション5.2で確認した、ピアIPアドレスを返すコインなど)には適さない場合がある。 P2P ネットワークに関連するチャーン率を考慮すると、TTL 値を高い値に操作すると、ネットワーク上でアクティブでなくなった古いピア IP が返され、ブートストラッププロセスに悪影響を与える可能性がある。

調査期間中、データは TTL 操作が Dogecoin, Bitcoin, Vertcoin, Bitcoin Gold のピアブートストラップ動作の変更を引き起こしたであろうことを明らかにしている。 Dogecoin の場合、プライマリ DNS シード seed.multidoge.org は SERVFAIL を返す。これにより、6 月 2 〜 16 日の間、選択した探索機の 93% でピア IP アドレスが返されない。しかし、ホンジュラスのエルサルバドルと米国のオハイオ州の探査機では、TTL 値が上書きされているため、6 月 2 日から 4 日の間に NOERROR 応答が引き続き表示される。 幸い、Dogecoin セカンダリシード seed2.multidoge.org はこの期間中も応答し続けます。そうしないと、Dogecoin に多様なブートストラップメカニズムが構成されていないため、ブートストラップが失敗します。

Bitcoin の場合、DNS シード dnsseed.bitcoin.dashjr.org は 2018 年 5 月 11 日 ~ 6 月 2 日までの調査で全ての探査機に SERVFAIL を返した。ただし、TTL 操作のため、中国、エルサルバドル、ホンジュラス、パナマのプローブは 5 月 11 日から 12 日まで結果を返し続け、オーストラリアは 5 月 11 日から 24 日まで結果を返し続けた。他のすべてのシードがこの期間中に結果を返していたため、このシード dnsseed.bitcoin.dashjr.org の停止は、ブートストラップ動作に影響を与える大きな問題ではない。また、Bitcoin はフォールバックメソッドとしてハードコーディングされた IP アドレスを提供している。

また、Vertcoin のシード dnsseed.pknight.ca は 7 月 4-6 日の間、反応しなかった。しかし、TTL の操作により、中国、エルサルバドル、ホンジュラス、パナマでピア IP アドレスを返す DNS 応答が引き続き見られる。 この時点で Vertcoin も不安定な立場にあった。この期間中に応答するシードは他に1つしかなく、セクション4で説明したように、Vertcoin のセカンダリブートストラップ構成でハードコードされた IP アドレスに到達できない。 最後に、セクション5.4で詳しく説明する Bitcoin Gold DNS シードの停止は、アルジェリア、アルゼンチン、バングラデシュ、中国、コロンビア、エルサルバドル、ホンジュラス、マケドニア、韓国、ウルグアイ、米国での TTL 操作を強調しています。これらすべてのケースで、ピア IP がアクティブであると想定すると、TTL の操作により、上記の国のプローブが使用する DNS サーバーからは利用できなかった DNS シードの可用性が向上した。

しかし、暗号通貨 DNS シードの TTL 値を操作する能力は悪い結果を提供する。TTL 値を非常に高く設定すると、返答する IP アドレスが全てオフラインある場合、ブートストラッピングピアをネットワークから分離することができる。Bitcoin ノードの計測研究によると多くの IP アドレスはアクティブなのは5日未満であると示している。従って、Bitcoin の場合 TTL 値を 5 日を超えるように操作すると、古くなった IP を返しブートストラッピングプロセスを割り込みすることができる。過度な TTL 操作は Table2 のフォールバックメソッドを持たないコインに最も深刻な影響を与える。

5.4 Recorded Outages and Issues

この章では、我々の調査中で暗号通貨のブートストラッピング影響を与える DNS シードの停止を評価する。我々は Bitcoin Gold に影響を与える停止を特定し、合計で6つの暗号通貨に影響を与える14か国を横切る Google DNS サーバの問題を強調する。

5.4.1 Bitcoin Gold Outage

私たちの測定調査では、2018 年 6 月 22 〜 23 日の間に Bitcoin Goldのブートストラップがほぼ失敗したことが明らかになっている。Bitcoin Gold には、dnsseed.btcgpu.org と dnsseed.bitcoingold.org の2つの応答シードがある。 IPv6 応答の場合、両方のシードが SERVFAIL コードを返すことがわかる。 また、IPv4 応答の場合、前のシードは 6 月 22 日 19:00 から 6 月 23 日 18:00 UTC までのすべての探査機の SERVFAIL コードも返す。この期間中、AS22612 の単一の IPv4 アドレスが dnsseed.bitcoingold.org シードに返される。 通常、このシードの各クエリ応答は 29 のピアIPを返すが、この期間中 Bitcoin Gold へのブートストラップは単一の IP アドレスに依存していた。 DNS シードは、このコインに対して構成された唯一のブートストラップオプションであるため、この状況は Bitcoin Gold にとって特に不安定である。

5.4.2 Google DNS Issues

2018 年 6 月 30 日には、Table3 に示す 14 か国の Google DNS サーバーが、Zcoin、Monacoin、Litecoin、Digibyte、Dash、Cryptonex の 6 つの暗号通貨の DNS シード全体で IPv4 アドレスを返さないことがわかった。全ての場合において NOERROR 応答コードが提供されるが、IP は1つも返ってこなかった。この問題は TLD(.io, .org )のシードに関連して発生している。さらに Bitcoin Gold の場合、6 月 6 日から 7 月 6 日までの全体のデータ収集期間の間、Google DNS を使用している同じ 14 ヶ国で厳格な問題が発生した。IPv6 レコードは応答していた。従って、IPv6 機能を制限しており Google DNS を使用しているこれらの地域の Bitcoin Gold ピアはブートストラップに苦戦していた。

この章では暗号通貨に対する DNS シードブートストラッピングを使用した様々な悪い結果を強調した。DNS に依存することによって、ブートストラップは調査対象国の 60% で接続操作と停止の影響を受けることがわかった。記録された停止は、個々のコインの運用上の問題と特定の DNS プロバイダーの使用に関連している。

6 UNCOVERING BOOTSTRAPPING INHERITANCE


調査の間、我々は 25 の暗号通貨のソースコードを同時に評価し、そのコードのスタイルや文法がとても似ていることに気づいた。この発見をもとに調査した暗号通貨のソフトウェアリネージ(ソフトウェアフォーク)をマッピングするためにコードリポジトリを分析した。これは各ソースコードリポジトリの継承の鎖はたった5つのコードベースであることが明らかになった。

ソフトウェアフォークは、コインの3分の2以上で Bitcoin ソースコードが優勢であることを示している。Bitcoin のソフトウェアフォークによるブートストラッピングメソッドの類似性は chainparams.cpp (Table6)で追跡することができる。ソースコードから、Bitcoin は第一のブートストラッピングメソッドとして DNS シーディングを選択し、Bitcoin ソフトウェアフォークのコアデベロッパーは明確な設計上の決定ではなく、むしろ単なる見落としとしてのレガシーブートストラッピングメカニズムを継承しているだけである。

下図は我々が発見したソフトウェアフォークリネージを示している。ソフトウェアフォークは、検閲が発生しやすいブートストラップなどの最適以下の要素を含むソースコードの継承を表していることを反映しています。図は 25 の暗号通貨のハードフォークも示している。グラフの5色は暗号通貨のオリジナルソースコードを示している:blue–Bitcoin (17), green–Bytecoin (3), orange–Verge (2), brown–Ethereum Classic (2), and yellow–Siacoin (1)(カッコ内の数字は同じソースコードリネージを持っているコインの数を示している。)

我々の知る限りでは、この調査研究を通して暗号通貨ソースコードの変化の欠如における最初の見識を提供している。ブートストラッピングメソッドを継承することと同様に、他の脆弱性の開示は、調査されている個々の暗号通貨を超えてコインに重大な影響を与える可能性があることに注意している。

7 IMPLICATIONS OF FINDINGS


この章では、暗号通貨に固有であり、以前の測定と検閲の研究に関して新しい、調査結果のセキュリティと社会への影響について説明する。デジタルな音楽や動画を主に共有する、ファイル共有ネットワークの検閲の結果と対照的に、暗号通貨の検閲結果はより深刻であることを強調する。

7.1 Security Implications of Findings

今回の研究は大きな規模の暗号通貨を同時に調査することに焦点を当てた初めての研究である。調査した 95% の暗号通貨はブートストラップメソッドに DNS シーディングもしくは IP ハードコーディングを使用していることが明らかになった。従って、DNS シンクホーリングや IP ブラックリストなどの基本的な検閲手法が暗号通貨ネットワークへのピア接続の妨げに効果的である。DNS シードに関して、4つの暗号通貨は 26 以下の異なる IP を返すことがわかり、ピア接続のためのランデブーサーバを使用していることを強調している。これを念頭に置いて、高度なピアブートストラップ集中化により、これらの通貨は停止や検閲の影響を受けやすくなっている。

反対に、10 の暗号通貨は DNS レスポンスの応答で 100 や 1000 の IP を返すことがわかった。つまり故意ではない暗号通貨ピアに関する情報を集めるサイドチャネルが明らかになっている。DNS クエリ応答を介して暗号通貨のピアIPを収集する機能は、European Union’s General Data Protection Regulation (GDPR)などの個人データ保護法に関する興味深い検討事項をもたらします。GDPR は EU 内の個人データの処理を適応する。規制に応じて、IP の背後にいる個人の識別を可能にする情報が提供された場合、それは個人データと見なされる。タイムスタンプ付きの DNS クエリ応答のデータを ISP ログと組み合わせて、記録された IP を使用して個人または個人のグループを潜在的に識別することができる。

加えて、暗号通貨の 32% は DNS シードに冗長な DNS プロバイダを使用していない。さらに、調査された暗号通貨のいずれにも DNSSEC がないため、DNS 操作の証拠が見られる。これにより、DNS クエリ応答に挿入された偵察ホスト IP を使用して、暗号通貨が違法である国のピアが識別される可能性があります。また、P2P ネットワークに関連したチャーンのため、ISP の DNS サーバにキャッシュされたレコードが古くなり TTL 操作はピア接続を制約される可能性がある。調査した 88% の暗号通貨は特徴的な宛先ポートを使用しており、基本的なポートベースの検閲に対してオープンにしてしまう。

我々の調査は Tor や ZMap スキャニングを使用したブートストラッピングは実現性のある "vanilla" オプションの代替につねになるわけではないことを明らかにしている。これは、暗号通貨のブートストラップに多層防御アプローチを適用する必要があることを示している。最後に、暗号通貨のソースコードに差異がないことで、同じ親のソースコードフォークを共有するコインとトークンの脆弱性の開示に連鎖的な影響が残ることを明らかにした。

7.2 Social Implications of Censorship

省略

8 RECOMMENDATIONS AND CONCLUSIONS


この章では、我々の発見を基にブートストラッピング機能を改善するための戦術的かつ戦略的推奨と論文のまとめを記す。

8.1 Tactical Recommendations

残念ながら、戦術的な推奨事項では、検閲が発生しやすいブートストラップ手法の継続的な使用を想定している。しかし、それらは戦略的な変化が実装されるまでに明らかな設計問題を軽減する。

はじめに、現在のコードベースに不適切なところがないか確認する。ハードコードされた IP が有効ではないもしくは到達性がないものを見た。また、ブートストラッピングメソッドの多様性の欠如も見られた。従って、ハードコードされたシードの状態を定期的にアップデートするできであり、アクセスを制限する単一の形の検閲を防ぐため、多様なブートストラッピングオプションが設定されるべきである。

3つ目の戦術的推奨は、ピア IP の大きな動的なセットを返すのではなく、ランデブーサーバに小さな静的な IP アドレスのセットを返す暗号通貨をターゲットにしている。コア開発者は、集中型サーバーの IP ではなく、DNS クエリ応答でピア IP を返すことを検討することをお勧めする。 この推奨は集中化を制限するため、検討が必要である。 ただし、ピア IP を取得するためのサイドチャネルが導入されている。

4つ目の推奨は、DNS シーディングと IP ハードコーディングをブートストラッピングの後のピア再接続に永続的に使用しないことである。ピアキャッシングを使用して、再接続のためのDNSに対する継続的な要件を制限する。最後の推奨は、DNS プロバイダを複数設けることである。

8.2 Strategic Recommendations

戦略的推奨は実装、パフォーマンス、プロトコル複雑性にオーバヘッドがある。しかし、組み合わせて使うと検閲傾向のブートストラッピング手法の望ましくない結果を強力に緩和する。

1つ目の推奨は、ブートストラッピングオプションとして DNS シーディングの使用をカバーしている。残念なことに、この推奨は依然として DNS シーディングに依存しているが、欠点を対処している。DNS over TLS や DNS over HTTPS や DNSSEC はチャンネル暗号化やクエリ応答の一貫性をそれぞれ提供する。DoH は P2P ブートストラッピングトラフィックの特定を軽減する利点を追加する。DNSSEC は DNS 操作に対処する。しかし、DNSSEC を使用するときに大規模な動的 IP の暗号学的署名をする必要があるため、操作へのオーバーヘッドが大きい。

2番目の推奨事項は、Zcoin が提供するものと同様に、Tor ブートストラップ用のGUI ベースのオプションを作成し、Tor プラグ可能トランスポート接続を提供することである。 これにより、ピアは暗号通貨の P2P ネットワークへの難読化されたアクセスを持つことができる。 セクション4.3で、Tor ブートストラップは現実的な接続方法である可能性があることを確認したが、必要な技術構成により、このオプションは複数のユーザーにとって禁止される場合がある。 この推奨事項の一部として、Tor 非表示のサービス .onion アドレスを初期接続用に提供することも推奨する。

結論として、戦術的および戦略的推奨事項のいずれも、P2P ブートストラップに固有の検閲の課題に対する完全な救済策を提供し、それらが引き起こす社会的およびセキュリティへの影響に対処することはできない。 ただし、インターネットの検閲技術に関する多くの測定研究から、特定のカテゴリのトラフィックをブロックするために採用されている方法が常に効果的であるとは限らない。 したがって、私たちの測定研究では、ブートストラップに複数のオプションを提供することにより、多層防御アプローチを採用できるため、暗号通貨の P2P 機能のこの要素に回復力を提供できることが強調されている。 さらに、ソースコードの継承の程度を表示することにより、他の暗号通貨の脆弱性やリスクの露出を調査する際に、この調査結果を検討することを楽観視している。