自分のIPアドレスを知られることなく通信を行うための通信経路の秘匿化技術にTorと呼ばれるものがあります。
自身のプライバシーを守るための技術で、プライバシー重視なブラウザBraveが対応していたりします。
身近なところですと、ビットコインノードも当たり前のように対応しています。
こんなTor技術ですが、匿名性を高める代わりに通信速度であったり通信の安定性が犠牲になっています。
Lightning Networkでの決済がタイムアウトすることの一因にTorもあるなあと、ノード運営者だと実感する今日この頃かもしれません。
さて、今回はこのTorがなぜ遅いの?というところを深堀りしてみたいと思います。
TORのしくみ
なぜ遅いの、の前にTorのしくみを簡単に俯瞰してみましょう。
[図1]
図にあるように、Torを用いた通信経路秘匿化通信では、複数の中継ノードを経由することで、アクセス元のIPアドレスを割り出しにくくする、といったしくみが導入されています。
もう少しかみ砕いた説明をすると、
- 複数のリレーノードを経由して通信が行われる
- 今の仕様では、Entry Guardノード、Middleノード、Exitノードといった3つの役割のノードを順次経由し最終地点のWebサイトのサーバーにアクセスする
- リレーノードはアクセスログを保存しない
- 最終地点のWebサイトのサーバーログには最後のExitノードのIPアドレスだけが記録される
- 本当のアクセス元を知るには、Exitノード、Middleノード、Entry Guardノードを順に辿る必要があるが、アクセスログがないのでたどり着けない
といったかたちになります。
なぜ遅いのか
おもに次の2点が大きな要因です。
1.仕組み自体がそもそも遅い(中継ノードを3つも経由する分遅くなる)
2.需要に対してリソースが足りない(1つのノードが沢山の通信を処理している)
個人的には、2021年からのLightning Networkノードでの利用増が圧倒的に要因2を推し進めたと思っています。
せっかくなので、ちょっと数字を追いかけてみましょう。