Matrixとは
Matrixは、リアルタイム
通信のためのオープンな標準プロトコルであり、軽量な
通信プロトコルです。異なるサービスプロバイダのアカウントを持つユーザー同士が、チャット、
VoIP、ビデオ通話などを通じてコミュニケーションできるように設計されています。これは、異なるメールプロバイダ間でメールの送受信を可能にするSMTPのように、リアルタイム
通信をサービスプロバイダ間でシームレスに行えるようにすることを目指しています。
技術的には、Matrixは分散型リアルタイム
通信のためのアプリケーション層プロトコルです。形式のメッセージを安全に配布および永続化するために、サーバーのオープンな連合を通じてHTTP APIとオープンソースの
リファレンス実装を提供しています。また、WebRTCを介して標準的な
Webサービスと統合できるため、ブラウザ間での応用が容易です。
歴史
Matrixは、Matthew HodgsonとAmandine Le PapeがAmdocs社内でチャットツール「Amdocs Unified Communications」を開発した際に始まりました。Amdocsは2014年から2017年10月まで開発資金を提供していました。Matrixは、WebRTC 2014 Conference & Expoでイノベーション賞を受賞し、2015年のWebRTC Worldで「Best in Show」賞を受賞しました。しかし、この種のオープンなインスタントメッセージングプロトコルを定義する試みは、技術的および政治的な課題があり、広く採用されるのは困難であるという指摘もありました。また、プロバイダ間で相互運用するサービスに対するユーザーの需要が十分にあるかどうかも不透明でした。
2015年、Amdocsの
子会社として「Vector Creations Limited」が設立され、Matrixの開発チームが移動しました。2017年、Amdocsからの資金提供が削減されると発表され、コアチームは英国を拠点とする独自の会社「New Vector」を設立しました。この会社は、MatrixとElementのサポートを提供することを目的としています。開発速度を維持するために、PatreonとLiberapayでクラウドファンディングアカウントが作成され、コアチームは「Matrix Live」というビデオ
ポッドキャストを開始しました。これは後に「This Week in Matrix」という週刊
ブログ形式に拡張され、コミュニティメンバーがMatrix関連のニュースを読んだり投稿したりできるようになりました。New VectorはMatrixのコンサルティングサービスや有料ホスティングを提供することで収入を得ています。
New Vectorの設立後、MatrixチームはPurismと協力して、Matrixをネイティブサポートする
スマートフォン「Librem 5」の開発計画を発表しました。また、
KDEはIRCクライアントのKonversationをMatrixに対応させる取り組みを始めました。2018年1月には、New VectorがEthereumを基盤とする
ベンチャー企業Statusから500万米ドルの投資を受けました。
2018年4月、フランス政府はElementとMatrixをベースとした独自のインスタントメッセージングツール「Tchap」の開発を開始し、2019年4月にオープンソースとしてリリースしました。2018年10月には、標準の発展を目的とした非営利団体「The Matrix.org Foundation C.I.C.」が設立されました。2019年2月、
KDEコミュニティは
Telegram、Slack、
Discordなどの代替として、コミュニティ内のコミュニケーションにMatrixを採用し、独自のサーバインスタンスを運用することを発表しました。
2019年4月、Matrix.orgのサーバが攻撃を受けセキュリティ被害を受けましたが、これはプロトコルの問題ではなく、他のホームサーバには影響はありませんでした。2019年6月には、Matrixプロトコルが
ベータ版を終了し、すべてのAPIと
リファレンス実装のホームサーバであるSynapseがバージョン1.0に達し、The Matrix.org Foundationが正式に発足しました。2019年10月には、New VectorがMatrixの開発のために追加で850万米ドルの資金を調達しました。
2019年12月、
ドイツ連邦国防省はMatrixプロトコルをベースとしたセキュアなインスタントメッセージングツール「BwMessenger」を発表し、MozillaはIRCの代替としてMatrixの利用を開始しました。MozillaのIRCサーバは2020年3月に終了し、Matrixサーバに完全移行しました。
プロトコル
Matrixは、Web向けの一般的なメッセージングおよびデータ同期システムを目指し、
VoIP、IoT、グループコミュニケーションを含むインスタントメッセージなどの用途を対象としています。セキュリティと
レプリケーションに対応しており、単一の制御点や障害点なしに完全な会話履歴を維持します。既存の
通信サービスは、Matrixのエコシステムに統合することができます。
Matrixクライアントは、オープンな連合インスタントメッセージング、
VoIP、およびIoTの
通信に使用できます。Matrixの標準仕様は、クライアント、サーバ、サービス間でデータを安全に送受信および複製するためのRESTful HTTP APIを規定しています。クライアントはサーバ上の「room」にデータをPUTして送信し、そのroomに参加しているすべてのMatrixサーバにデータが複製されます。データは改ざんを軽減するためにGit形式の署名で署名され、なりすましを防ぐために
HTTPSで暗号化され、各サーバの秘密鍵で署名されます。複製は結果整合性の意味論に従うため、オフラインやデータ損失後でも、他の参加サーバからの欠落履歴を再同期することで機能します。
Olmライブラリは、Double Ratchetアルゴリズムの実装を通じて、ルームごとの任意のエンドツーエンド暗号化を提供します。これにより、保存された会話データは、ルームの参加者だけが読めることが保証されます。Matrixを介して送信されたデータは、Matrixサーバからは暗号化されたテキストとして見え、ルームの承認された参加者だけが復号化できます。OlmライブラリとMegolmライブラリは、NCC Groupによる暗号レビューの対象となっており、その結果は公開されており、Matrixチームによって対処されています。このレビューはOpen Technology Fundが後援しました。
ブリッジ
Matrixは、他のチャットアプリケーションからMatrixのルームへのメッセージのブリッジングをサポートしています。これらのブリッジはサーバ上で実行され、Matrix以外のサーバと
通信するプログラムです。ブリッジはパペットまたはリレーとして機能できます。前者は、個々のユーザーが目に見える形でメッセージを投稿し、後者はボットがユーザーアカウントからのメッセージを投稿します。
現在、公式にサポートされているブリッジには以下のようなものがあります。
IRC
Slack
Telegram
Discord
WhatsApp
Facebook Messenger
Signal
コミュニティによって管理されている注目のブリッジには以下があります。
Twitter
Gitter
クライアント
Elementは、クライアントのリファレンス実装です。GNOME Fractalは、GNOMEの公式クライアントです。その他にも、多数のクライアント、ボット、ブリッジ、サーバー、およびリファレンス実装以外のMatrixプロトコルの実装が存在します。
脚注
(注釈)
(出典)
関連項目
XMPP
SIP
RCS
外部リンク
公式ウェブサイト
Matrixの仕様