本の虫

著者:江添亮
ブログ: http://cpplover.blogspot.jp/
メール: boostcpp@gmail.com
Twitter: https://twitter.com/EzoeRyou
GitHub: https://github.com/EzoeRyou

アマゾンの江添のほしい物リストを著者に送るとブログ記事のネタになる

筆者にブログのネタになる品物を直接送りたい場合、住所をメールで質問してください。

マストドンが直面している問題はすでにP2P技術が15年前に遭遇した問題だ

Media content caching strategy · Issue #1847 · tootsuite/mastodon

日本勢がマストドンに目をつけ始め、Pixivがマストドンのインスタンスを立ち上げてからというもの、マストドンは2つの問題に直面している。

  1. 日本国内で合法である現実に基づかない純粋な思想の表現である絵が海外基準では児童ポルノであり違法なデータである
  2. 画像投稿を主目的とするPixivの利用形態により大量のトラフィックとストレージがキャッシュとして消費されるため貧弱なインフラでは耐えられない

これにより、Pixivによるマストドンのインスタンスは海外で主流のマストドンのインスタンスから遮断された。

現在、マストドンのコミュニティではこの問題に対する議論が行われているが、この問題には見覚えがある。15年前のP2P技術が流行した時代と同じ問題だ。我々は歴史に学ぶべきである。

今をさかのぼることおよそ15年前、P2P技術があらゆる問題を解決する夢の技術として期待されていた。当時、P2P通信により、インターネット上に分散メッシュネットワークを構築し、その分散メッシュネットワーク上に、ファイル共有、掲示板、チャット、ブログ、Webページ、その他あらゆるネットワーク通信を実装していた。純粋な分散メッシュネットワークでは、すべての参加者が、計算機、ストレージ、トラフィックなどの資源の大小を別にすれば、平等である。

その実装方法は様々で、例えば特定の機能に特化した実装、例えば、ファイル共有や掲示板のWinny、ファイル共有のBitTorrent、チャットのSkypeのような実装もあれば、Webページのようなより汎用的な機能を提供するfreenetのような実装、あるいは分散メッシュネットワークを構築した上でローカルsocksプロクシーサーバーとして動作して通過的にTCP/IPをアプリケーション層に提供するような実装もあったはずだ。

その具体的な実装方法については様々な方法が乱立して試されたが、どれも同じ問題を抱えていた。現在のマストドンが抱える問題と同じだ。

  1. 著作権侵害、児童ポルノ、その他の違法なデータ(ドイツにおけるナチ党のシンボルなど)がネットワーク上に蔓延する
  2. ネットワークに参加するノードがキャッシュとしてデータを溜め込むためにネットワークに参加するための計算機、ストレージ、帯域などの資源が莫大になり、個人が参加しづらくなり、結果としてゲートウェイ経由での参加が増える

その結果どうなったか。まず、ソースコードを公開せず、プロトコルの仕様も公開しないような閉鎖的な実装であるWinnyは滅びた。純粋な分散メッシュネットワークにこだわったfreenetのような実装は問題2.によってスケールせずに非効率性によって実質的に廃れた。

当時を生き延びて今も使われている実装もある。例えばSkypeとBitTorrentだ。

Skypeは当初P2Pな分散メッシュネットワーク(完全に平等ではなく、特にトラフィックに余裕のあるノードがスーパーノードとして局所的な管理サーバーの役割を果たし、NAT超えのために通信を仲介するリレーノードも存在した)によるチャットの実装であったが、今ではMicrosoftの管理するところとなり、その実装はサーバークライアント型の中央集権的で効率的な実装に切り替わった。もはや、今のSkypeはP2Pではなくなってしまった。とはいえ、表向きの末端のユーザーに対する利便性には違いがないので、よく使われている。

BitTorrentプロトコルは当初、純粋な分散メッシュネットワークではなかった、サーバーでファイルのメタデータやファイルを保有しているシードと呼ばれるノード、ファイルをダウンロード中のピアと呼ばれるノードを管理する。ファイルをダウンロードするには、すでに完全なファイルを保有しているシードの他に、現在部分的にファイルを保有しているピアからも分散してダウンロードを行う。後にファイルのメタデータに対するハッシュ値だけで、ファイルのメタデータとピア/シードの取得も分散メッシュネットワークを介して行う実装も追加されたが、依然として最初のハッシュ値を分散メッシュネットワーク単体で検索したりする機能は提供されないので、やはり何らかの中央管理的なサーバーは必要だ。

P2P技術を利用したファイル共有には著作権侵害などの負のイメージがつきまとうが、BitTorrentプロトコルは数あるファイル共有プロトコルの中でも、特にサーバー側で多大なトラフィックが必要ないという点から、今でも自由なOSのISOイメージの配布とか、ソフトウェアのアップデートを全コンピューターに行き渡らせるためなどの目的で活用されている。

当時のP2P技術を考え、現在の実用化された例を参考にすると、問題の解決方法が見えてくる。

問題1.を解決するには、結局有人の検閲を設置するしかない。問題2.は解決できない。純粋な分散メッシュネットワークによりすべての参加者が平等であることを目指すのであれば、すべての参加者が平等に全ネットワークのコストを負担するので、ネットワークの規模が拡大するほど参加者の負担が増えてしまう。

さて、話をマストドンに戻そう。マストドンはOStatusプロトコルの実装で、もともとは当初StatusNetと名乗り、今はGNU Socialと名乗っているソフトウェアの互換実装だ。その目的は、単一の企業からのSNS支配の解放だ。

その思想と設計はこうだ。TwitterやFacebookのような一企業がSNSの実装とインフラを独占しているから不平等な権利格差が発生するのだ。SNSの自由な実装を提供し、誰もがSNSのインスタンス(サーバー)を立ち上げることができればこの権利格差は解消する。インスタンス同士がデータを相互にやり取りできるように互換性のあるOStatusプロトコルで通信できるようにしておけば、どのインスタンスを選ぶかという問題は、どのインスタンスが便利で信頼に値するかという問題になる。既存のインスタンスのどれもガキに食わないのであれば、自分でインスタンスを立ち上げればよい。

考えようによっては、サーバー同士がゆるくわずかにP2P風に繋がっていると考えることもできる。もちろん、分散メッシュネットワークほどの強い結びつきではない。RSSをすこし強力にしたようなデータ共有用のOStatusプロトコルでお互いにデータを共有できるという程度の薄いつながりだ。

さて、問題1.に対処するには、有人の検閲を設置するしかない。有人の検閲を設置するには、結局企業としての資本や雇用が必要だ。企業による支配から脱却することを目指しているマストドンとしては皮肉なことに、企業が必要になる。自分のインスタンス内のデータの適法性については十分な資本と労力さえかければ検閲できるが、よそのインスタンスのデータはどうしようもない。すると、外から内へのリモートフォローは無効化せざるを得ない。

問題2.に対処するには、強力なインフラが必要だ。大規模なデータセンター、ストレージ、トラフィックを提供する必要がある。これにも、企業による資本が必要だ。ネットワークの規模が大きくなっていくと、これまた皮肉なことに個人ではその規模のインフラを提供できず、企業には勝てない。そして、規模が大きくなっていくと、すべてを無制限にスクレイピングできるAPIを外部に提供することがパフォーマンス上難しくなっていくだろう。そこで、内から外へのリモートフォローも無効化せざるを得ない。

こうして、マストドンのインスタンスをまともに運営できるのは十分な資本と、最低でも数百人規模の労働者を雇用している潤沢なインフラを提供できる企業だけになるだろう。個人がマストドンのインスタンスを立ててももはやマストドン全体のデータを格納できるだけのトラフィックとストレージを用意することすら難しくなる。現在のマストドンは、個人でもインスタンスが建てられるような小規模な実装になっている。ユーザーが増えていくと、企業はマストドンを大規模なインフラ上でスケールさせるために実装を改善していくだろう。そのような大規模にスケールする実装は、個人でインスタンスを立てるのが難しくなってしまうだろう。

そして、自らが管理するインスタンスだけで何十万、何百万ものユーザーを獲得した企業は、もはや外のインスタンスと連携する必要すらない。自らのユーザーだけで自己完結できるのだから、検閲上、パフォーマンス上の理由も合わせて、外部との連携を断つ。これは企業として適切な判断ではあるが、結果としてユーザーは分断される。

その結果実現される未来は、現在のTwitterの実装が公に公開される程度の未来だ。誰でもTwitterと同じサービスを提供するサーバーを立てることは技術的に可能だ。ソフトウェア実装はすべて公開されている。ただしインフラの規模は個人で実現できる範囲を大幅に超えている。

結局、マストドンは思想的にも設計的にも、当初の目的である単一の企業からのSNS支配の解放を達成することはできないだろう。仮にマストドンがTwitterを置き換えたとしても、マストドンのインスタンス運営のためには十分な資本、労働者、インフラ、政治ロビー活動ができる企業が必要になり、現在のTwitterと同じ問題が発生する。ユーザーはマストドンが極めて抑圧的であると不満を持ち、やがて、「既存のマストドンの代替する分散型のSNS実装を公開する。これは単一のマストドンコミュニティにより我々のコミュニケーションが独占されるリスクを防ぐ!」などという運動が持ち上がることだろう。歴史は繰り返す。

唯一の救いは、マストドンのライセンスはAGPLであるので、その実装が公に公開されるということだろう。