| この項目では、通信プロトコルについて説明しています。その他の用法については「マトリックス (曖昧さ回避)」をご覧ください。 |
| 通信プロトコル | |
| 目的 | 分散型メッセージング及びデータ同期 |
|---|---|
| 開発者 | The Matrix.org Foundation |
| 導入 | 2014年9月 (11年前) (2014-09)[1] |
| 派生元 | |
| OSI階層 | アプリケーション層 |
Matrixは、リアルタイム通信(英語版)のためのオープン標準で軽量な通信プロトコルである。ある通信サービスプロバイダ(英語版)のアカウントを持つユーザが、チャット、VoIP及びテレビ電話を介して、別のサービスプロバイダのユーザとコミュニケーションを行うことができるように設計されている。つまり、標準的なSMTPによる電子メールがストアアンドフォワード型の電子メールサービスで提供されているように、異なるサービスプロバイダ間でリアルタイム通信をシームレスに機能させることを目的としている。
技術的な観点から見ると、Matrixは分散型(英語版)リアルタイム通信のためのアプリケーション層の通信プロトコルである。Matrixはサーバのオープンな連合を介してのJSON形式のメッセージの安全な配布及び永続化のためのHTTP API及びオープンソースのリファレンス実装を提供している[2][3]。WebRTCを介して標準的なWebサービスと統合することができ、ブラウザ間での応用が容易である。
初期のプロジェクトは、Matthew HodgsonとAmandine Le Papeによって "Amdocs Unified Communications"[4] と呼ばれるチャットツールを構築しながらAmdocs(英語版)内で作成された。その後、Amdocsは000000002014-01-01-00002014年から000000002017-10-01-00002017年10月までの開発作業の殆どに資金提供をした[5]。MatrixはWebRTC 2014 Conference & Expoでイノベーション賞を受賞し[6]、000000002015-01-01-00002015年のWebRTC Worldで "Best in Show" 賞を受賞した[7]。このプロトコルは000000002014-01-01-00002014年に登場した後、幾つかの指摘を交えて賞賛を受けた。レビュアーはこの種のオープンなインスタントメッセージやマルチメディアシグナリング・プロトコル(英語版)を定義する試み[注釈 1]は、広く採用されることが困難であり、これは技術的及び政治的に関連する課題を強調していると述べた[8]。プロバイダ間で相互運用するサービスに対するユーザの十分な需要があるかは不明だった[9][10]。000000002015-01-01-00002015年、Amdocsの子会社の "Vector Creations Limited" が設立され、Matrixのスタッフが移動した[11]。
000000002017-01-01-00002017年、Amdocsからの資金提供が削減されることが発表され、翌週にコアチームはイギリスを拠点とするMatrixとElementのサポートのための独自の会社である "New Vector" を設立した[12]。この期間中、コアチームの賃金の一部の支援のために、Matrixを基盤とするコミュニティ及び企業へのサポートに対する複数の連絡があった[13]。開発速度を維持するためにPatreon及びLiberapay(英語版)のクラウドファンディングアカウントが作成され[14]、コアチームはMatrix "Live" と呼ばれるビデオポッドキャストを開始した[15]。これは "This Week in Matrix" と呼ばれる週間ブログ形式に拡張され、関心のあるコミュニティメンバーは、Matrix関連のニュースを読んだり、関連するニュースを投稿することができる[16]。New VectorはMatrixにコンサルティング(英語版)サービスを提供し、Matrixサーバの有料ホスティングを提供し、収入を得ることを目的に設立された[17]。
New Vectorの設立から数週間後、MatrixチームとPurism(英語版)はLibrem 5(英語版)スマートフォンの作成で協力する計画を発表した[18]。Librem 5はMatrixネイティブのスマートフォンを意図しており、デフォルトのプリインストールメッセージングアプリと電話アプリは、VoIP、テレビ電話及びインスタントメッセージにMatrixを使用する必要がある[19]。
000000002017-01-01-00002017年、KDEはIRCクライアントのKonversationをMatrixに対応させることを取り組んでいることを発表した[20]。000000002018-01-01-00002018年1月下旬、New VectorはEthereumを基盤とするベンチャーであるStatusから500万米ドルの投資を受けた[21][22]。
000000002018-04-01-00002018年4月、フランス共和国政府は独自のインスタントメッセージングツールを作成する計画を発表した[23]。"Tchap"[注釈 2] と呼ばれるElementとMatrixをベースとするアプリの開発を000000002018-01-01-00002018年初頭に開始し[24]、000000002019-04-01-00002019年4月にiOS及びAndroid向けにオープンソースとしてリリースされた[25]。
000000002018-10-01-00002018年10月、標準の更なる発展のための法的に中立的な法人として[26]、"The Matrix.org Foundation C.I.C." と呼ばれるコミュニティ利益会社(英語版)が設立された[27]。
000000002019-02-01-00002019年2月、KDEコミュニティはTelegram、Slack及びDiscordなどの他の最新ツールの分散型の代替として、コミュニティ内部でのコミュニケーションにMatrixを採用し、独自のサーバインスタンスを運用することを発表した[28]。
000000002019-04-01-00002019年4月、Matrix.orgの稼働中のサーバが攻撃されセキュリティ被害を受けた[29]。この攻撃は、Matrixプロトコルの問題ではなく、Matrix.org以外のホームサーバには直接影響は無かった。
000000002019-06-01-00002019年6月、Matrixプロトコルはベータ版では無くなり、全てのAPI及びリファレンス実装のホームサーバであるSynapseのバージョンが1.0になり、The Matrix.org Foundationが正式に発足した[30][31]。
000000002019-10-01-00002019年10月、New VectorはMatrixの開発のために追加で850万米ドルを調達した[32]。
000000002019-12-01-00002019年12月、ドイツの連邦国防省はMatrixプロトコル、Synapseサーバ及びElementアプリケーションに基づいた安全なインスタントメッセージングツールの "BwMessenger" と呼ばれるパイロットプロジェクトを発表した。これはフランスのTchapプロジェクトをモデルとしている。連邦政府の長期的な目標は、全ての省庁及び下位当局をカバーするメッセンジャーサービスを使用できるようにすることである[33]。
000000002019-12-01-00002019年12月、MozillaはIRCの代替としてMatrixの使用を開始することを発表した。この発表で、000000002020-01-01-00002020年1月下旬に移行を完了することを述べた。MozillaのIRCサーバであるirc.mozilla.orgは000000002020-03-01-00002020年3月又は000000002021-01-01-00002021年までに削除されると言われている[34]。
000000002020-03-02-00002020年3月2日にMozillaのIRCサーバirc.mozilla.orgが予定通り終了し、Matrixサーバーであるchat.mozilla.orgに完全に移行した[35]。
Matrixはウェブ向けの一般的なメッセージング及びデータ同期システムになるという長期的な目標と共に、VoIP、IoT及びグループコミュニケーションを含むインスタントメッセージなどの使用例を対象としている。このプロトコルはセキュリティとレプリケーションに対応しており、単一の制御点や障害無しに完全な会話記録を維持する。既存の通信サービスはMatrixエコシステムと統合することができる[2]。
Matrixのクライアントはオープンな連合インスタントメッセージング、VoIP及びIoTの通信に使用することができる。
Matrixの標準仕様はMatrixに対応したクライアント、サーバ及びサービス間でのJSONデータを安全に送信及び複製するためのRESTful HTTP APIを明記している。クライアントはサーバ上の "room" にデータをPUTすることでデータを送信し、"room" に参加している全てのMatrixサーバにデータを複製する。このデータは改竄を軽減するためにGit形式の署名で署名され、成り済ましを防ぐために連合トラフィックはHTTPSで暗号化及び各サーバの秘密鍵で署名される。複製は結果整合性の意味論に従う。これによって、他の参加しているサーバから欠落している履歴を再同期することにより、オフライン又はデータ損失後でも機能する。
OlmライブラリはDouble Ratchetアルゴリズムの実装を介してルーム毎に任意のエンドツーエンド暗号化を提供する[1]。保存されている会話データ(英語版)は、ルームの参加者だけが読めることを保証できる。これを組み合わせると、Matrixを介して送信されるデータは、Matrixサーバからは暗号文に見え、そのルームの承認された参加者だけが復号できるようになる。Olmライブラリ及びMegolmライブラリ[注釈 3]は、NCC Group(英語版)による暗号レビューの対象となっており、その結果は公開されており[36]、Matrixチームによって対処されている[37]。このレビューはOpen Technology Fundが後援した。
Matrixは他のチャットアプリケーションからMatrixのルームへのメッセージのブリッジングに対応している。これらのブリッジはサーバ上で実行され、Matrix以外のサーバと通信するプログラムである。ブリッジはパペット又はリレーとして機能することができる。前者では個々のユーザが目に見える形でメッセージを投稿し、後者ではボットが操り人形でないユーザアカウントのメッセージを投稿する。
現在公式に対応しているブリッジ:
コミュニティによって管理されているその他の注目すべきブリッジ:
Elementはクライアントのリファレンス実装である。GNOME Fractal(英語版)はGNOMEの公式クライアントである。この他にも多くのクライアント、ボット、ブリッジ、サーバ及びリファレンス実装以外のMatrixプロトコルの実装が存在する[46]。
| プロトコル |
| ||||||||
|---|---|---|---|---|---|---|---|---|---|
| サービス | |||||||||
| クライアント |
| ||||||||
| 消滅 | |||||||||
| 関連種目 | |||||||||