Deep-Dive
このページではコンカレントが解決したい問題など、コンカレントに関する深い話題を取り上げていきます。
Concrntがやりたいこと
Concrntのミッションは大きく3つあります。2つは具体的な目標で、もう1つは構想段階にあります。
- ユーザーのSNSアカウントをその人のインターネット人格として確立させる
- コミュニティとの健全な接続を通じて世界と繋がる、バランスのとれたSNSを提供する
- (構想段階) このシステムの運用を持続可能にする
以下で、これらの点について詳しく説明します。
ユーザーのSNSアカウントをインターネット人格として確立させる
この目標はNostrやBlueskyにも共通していますね。 近代社会においてSNSアカウントの重要度は非常に高く、第三者によって管理され勝手に凍結されるような、殺伐とした環境ではとてもインターネット人格を確立させること困難でしょう。 ConcrntもNostrと同じように秘密鍵をユーザーが直接管理することで、そのユーザーの自己同一性を自分自身で証明できるようにします。
また、Blueskyのようにアカウントのポータビリティを確立し、一部のサーバーでBANされても、データを移行し過去の投稿や人間関係を保持したまま、活動を継続できるようにしています(バージョン1)。 この手法はサーバー管理者は法的に問題のある投稿を行うユーザーを除外したり、自己都合でサービスを閉じることができる一方で、適切な理由なくサービスを利用できなくなったユーザーは別のサーバーへ移行できる柔軟性があります。これは非常に現実的な解決方法です。
コミュニティとの健全な接続を通じて世界と繋がる、バランスのとれたSNSを提供する
かつてのTwitterは、「〇〇クラスター」といった言葉によく代表されますが、ユーザーは特定のコミュニティを中心に意識して交流していたように思います。 一方、近年になり"X"のユーザー数は膨大になりました。「多すぎる」とも思えると思います。これにより、X自体はコミュニティでの活動をするものというよりは自分と世界とが対話するツールになり、多くのコミュニティはDiscordなどの「クローズドな」環境に移行していったように感じます。 我々がTwitterがXになっても、タイムラインが「For You」タブになってもこれを見るのをやめられないように、現代社会においてこの「世界規模と繋がれる」ツールは必須のものです。
しかし、筆者は「世界と繋がりすぎる」のも問題だと思っています。現在の"X"は毎日のように世界中の問題や人々の怒り、悲しみなど大きな感情がとめどなく流れてきており、「これって本当に毎回トイレに行くたびに開きたいアプリだったんだっけ…?」といった疑問を抱かずにはいられません。 我々は本当はもっと隣人を、自分を支えてくれるコミュニティの人たちのことを知るのに時間を使うべきではないのでしょうか。 この観点から考えると、Activitypubによる分散は非常に合理的です。各サーバーが特定のコミュニティに分割され、ローカルタイムラインによって交流が行われるのは、交流のモデルとしては非常に好ましい形でしょう。
ただし一方で、人間のコミュニケーションのモデルを見つめ直すと、人間は1つのコミュニティだけに所属しているわけではありません。MastodonやMisskeyを使われている方は、連合機能があるとはいえどもそのコミュニティ性に合わせるために結局それぞれのサーバーで個別にアカウントを作成し、切り替えやマルチポストを行ったといった経験のある人は少なくないのではないのでしょうか。
もっとも、そもそも人間にとって好ましい人間関係の基本となるは、「複数のコミュニティにゆるく所属する」といったモデルです。Concrntは、この人間関係のモデルをSNSのアーキテクチャに落とし込み、 コミュニティの交流を中心としつつ、世界ともほどよい距離感でつながれるSNSとなることを目標としています。
なので、比較するとConcrntはTwitterのリプレイスメントを志向しているというよりは、会話がオープンで分散されているDiscordを志向していると言えます。一方でTwitterのような大規模な世界密接型のSNSの立ち位置はBlueskyが担ってくれると期待しています。
(構想段階)このシステムの運用を持続可能にする
何らかが持続可能である為には、時間と費用の両面での課題を解決する必要があります。
時間の課題
まず時間面ですが、Concrntはできるだけ運用にかかる労力を最小限に抑えるための設計を目指しています。(とはいえ開発中は巨大な変更が入りがちで、早期からサーバーを建ててくださっている方には多大な労力をかけていただいているという現実はあるのですが…)
例えば、Activitypubプロトコルでは、フォローしているユーザーの投稿すべてのコピーを自サーバーで持つことが前提となっており、これによりデータベースのレコードが著しく増加し、運用の負荷が大きくなります。 また、サーバー内のユーザーが投稿した場合、それを購読しているサーバーに順次配送する必要があります。ここから、ジョブキューのつまり具合を確認して、廃止されたサーバーへの配送を停止するといったオペレーションが必要になってしまいます。
Concrntでは、自分のサーバーが保有するのは自分の投稿のみに限定して保管し、外部の投稿はリアルタイムで取得するようなアーキテクチャを取っています。(詳細は次章で解説します)
また、サーバーの構成を柔軟にカスタマイズできるような構造を採用しています。例えば、画像ホスティングの必要性がサーバー運用のハードルを高めるため、Concrntはマイクロサービスのような構成をとり、メディアサーバーやActivitypub連携サーバーなどを自由に追加・撤去できるようにしています。
費用面(構想)
サービスの運用には避けて通れないのが費用の問題です。サーバーを運用するにはそれなりの費用が掛かります。とはいえ、広告はなどはつけたくないものです。 この問題の解決策の構想の1つとして、ConcrntのAPIサーバーとは別にブロックチェーンのノードをオプションで建てることを妄想しています。 ここで重要なのは、Concrntの本体自体をブロックチェーンに乗せるのではなく、任意で参加できる別モジュールとして設計する点です。 Concrntとは独立したチェーンを立ち上げ、COncurrent本体のデータはオラクルとして参照する形式を想定しています。
Proof-of-stakeのノードはオンラインである間ステーキング報酬がもらえますから、サーバーをオンラインにすることに対してインセンティブを創出します。
さらに、YouTubeのスーパーチャットのような「スーパーリプライ」や「スーパーリアクション」機能を導入し、その投げ銭の一部をユーザーをホストするサーバーに配分することも考えています。しかし、これは法的な側面が大きく、特に法定通貨と交換可能な形での導入は現実的ではありません。そのため、他のトークンとの交換が不可能であり、一定期間で自動的に消滅するなど、実質的な通貨として扱われない範囲での導入を検討しています。