Matrix (プロトコル)

Matrixは、リアルタイム通信のためのオープン標準で軽量な通信プロトコルである。ある通信サービスプロバイダのアカウントを持つユーザが、チャット、VoIP及びテレビ電話を介して、別のサービスプロバイダのユーザとコミュニケーションを行うことができるように設計されている。つまり、標準的なSMTPによる電子メールがストアアンドフォワード型の電子メールサービスで提供されているように、異なるサービスプロバイダ間でリアルタイム通信をシームレスに機能させることを目的としている。

技術的な観点から見ると、Matrixは連合 リアルタイム通信のためのアプリケーション層の通信プロトコルである。Matrixはサーバのオープンな連合を介してのJSON形式のメッセージの安全な配布及び永続化のためのHTTP API及びオープンソースのリファレンス実装を提供している。WebRTCを介して標準的なWebサービスと統合することができ、ブラウザ間での応用が容易である。

1. 歴史
-----

初期のプロジェクトは、Matthew HodgsonとAmandine Le Papeによって "Amdocs Unified Communications" と呼ばれるチャットツールを構築しながらAmdocs内で作成された。その後、Amdocsは2014}}から2017-10}}までの開発作業の殆どに資金提供をした。MatrixはWebRTC 2014 Conference & Expoでイノベーション賞を受賞し、2015}}のWebRTC Worldで "Best in Show" 賞を受賞した。このプロトコルは2014}}に登場した後、幾つかの指摘を交えて賞賛を受けた。レビュアーはこの種のオープンなインスタントメッセージやマルチメディアシグナリング・プロトコルを定義する試みXMPPや[[Internet Relay Chatは、広く採用されることが困難であり、これは技術的及び政治的に関連する課題を強調していると述べた。プロバイダ間で相互運用するサービスに対するユーザの十分な需要があるかは不明だった。2015}}、Amdocsの子会社の "Vector Creations Limited" が設立され、Matrixのスタッフが移動した。

2017}}、Amdocsからの資金提供が削減されることが発表され、翌週にコアチームはイギリスを拠点とするMatrixとElementのサポートのための独自の会社である "New Vector" を設立した。この期間中、コアチームの賃金の一部の支援のために、Matrixを基盤とするコミュニティ及び企業へのサポートに対する複数の連絡があった。開発速度を維持するためにPatreon及びLiberapayのクラウドファンディングアカウントが作成され、コアチームはMatrix "Live" と呼ばれるビデオポッドキャストを開始した。これは "This Week in Matrix" と呼ばれる週間ブログ形式に拡張され、関心のあるコミュニティメンバーは、Matrix関連のニュースを読んだり、関連するニュースを投稿することができる。New VectorはMatrixにITコンサルティングサービスを提供し、Matrixサーバの有料ホスティングを提供し、収入を得ることを目的に設立された。

New Vectorの設立から数週間後、MatrixチームとPurismはLibrem 5 スマートフォンの作成で協力する計画を発表した。Librem 5はMatrixネイティブのスマートフォンを意図しており、デフォルトのプリインストールメッセージングアプリと電話アプリは、VoIP、テレビ電話及びインスタントメッセージにMatrixを使用する必要がある。

2017}}、KDEはIRCクライアントのKonversationをMatrixに対応させることを取り組んでいることを発表した。2018-01}}下旬、New VectorはEthereumを基盤とするベンチャーであるStatusから500万米ドルの投資を受けた。

2018-04}}、フランス共和国政府は独自のインスタントメッセージングツールを作成する計画を発表した。"Tchap"クロード・シャップに由来する。}} と呼ばれるElementとMatrixをベースとするアプリの開発を2018}}初頭に開始し、2019-04}}にiOS及びAndroid向けにオープンソースとしてリリースされた。

2018-10}}、標準の更なる発展のための法的に中立的な法人として、"The Matrix.org Foundation C.I.C." と呼ばれるコミュニティ利益会社が設立された。

2019-02}}、KDEコミュニティはTelegram、Slack及びDiscordなどの他の最新ツールの分散型の代替として、コミュニティ内部でのコミュニケーションにMatrixを採用し、独自のサーバインスタンスを運用することを発表した。

2019-04}}、Matrix.orgの稼働中のサーバが攻撃されセキュリティ被害を受けた。この攻撃は、Matrixプロトコルの問題ではなく、Matrix.org以外のホームサーバには直接影響は無かった。

2019-06}}、Matrixプロトコルはベータ版では無くなり、全てのAPI及びリファレンス実装のホームサーバであるSynapseのバージョンが1.0になり、The Matrix.org Foundationが正式に発足した。

2019-10}}、New VectorはMatrixの開発のために追加で850万米ドルを調達した。

2019-12}}、ドイツの連邦国防省はMatrixプロトコル、Synapseサーバ及びElementアプリケーションに基づいた安全なインスタントメッセージングツールの "BwMessenger" と呼ばれるパイロットプロジェクトを発表した。これはフランスのTchapプロジェクトをモデルとしている。連邦政府の長期的な目標は、全ての省庁及び下位当局をカバーするメッセンジャーサービスを使用できるようにすることである。

2019-12}}、MozillaはIRCの代替としてMatrixの使用を開始することを発表した。この発表で、2020-01}}下旬に移行を完了することを述べた。MozillaのIRCサーバであるirc.mozilla.orgは2020-03}}又は2021}}までに削除されると言われている。

2020-03-02}}にMozillaのIRCサーバirc.mozilla.orgが予定通り終了し、Matrixサーバーであるchat.mozilla.orgに完全に移行した。

2. プロトコル
--------

Matrixはウェブ向けの一般的なメッセージング及びデータ同期システムになるという長期的な目標と共に、VoIP、IoT及びグループコミュニケーションを含むインスタントメッセージなどの使用例を対象としている。このプロトコルはセキュリティとレプリケーションに対応しており、単一の制御点や障害無しに完全な会話記録を維持する。既存の通信サービスはMatrixエコシステムと統合することができる。

Matrixのクライアントはオープンな連合インスタントメッセージング、VoIP及びIoTの通信に使用することができる。

Matrixの標準仕様はMatrixに対応したクライアント、サーバ及びサービス間でのJSONデータを安全に送信及び複製するためのRESTful HTTP APIを明記している。クライアントはサーバ上の "room" にデータをPUTすることでデータを送信し、"room" に参加している全てのMatrixサーバにデータを複製する。このデータは改竄を軽減するためにGit形式の署名で署名され、成り済ましを防ぐために連合トラフィックはHTTPSで暗号化及び各サーバの秘密鍵で署名される。複製は結果整合性の意味論に従う。これによって、他の参加しているサーバから欠落している履歴を再同期することにより、オフライン又はデータ損失後でも機能する。

OlmライブラリはDouble Ratchetアルゴリズムの実装を介してルーム毎に任意のエンドツーエンド暗号化を提供する。保存データは、ルームの参加者だけが読めることを保証できる。これを組み合わせると、Matrixを介して送信されるデータは、Matrixサーバからは暗号文に見え、そのルームの承認された参加者だけが復号できるようになる。Olmライブラリ及びMegolmライブラリより大きなルームの需要に合わせたOlmの拡張。}}は、NCC Groupによる暗号レビューの対象となっており、その結果は公開されており、Matrixチームによって対処されている。このレビューはOpen Technology Fundが後援した。

3. ブリッジ
-------

Matrixは他のチャットアプリケーションからMatrixのルームへのメッセージのブリッジングに対応している。これらのブリッジはサーバ上で実行され、Matrix以外のサーバと通信するプログラムである。ブリッジはパペット又はリレーとして機能することができる。前者では個々のユーザが目に見える形でメッセージを投稿し、後者ではボットが操り人形でないユーザアカウントのメッセージを投稿する。

現在公式に対応しているブリッジ:

コミュニティによって管理されているその他の注目すべきブリッジ:

4. クライアント
---------

Elementはクライアントのリファレンス実装である。GNOME FractalはGNOMEの公式クライアントである。この他にも多くのクライアント、ボット、ブリッジ、サーバ及びリファレンス実装以外のMatrixプロトコルの実装が存在する。

5. 脚注
-----

5.1. 注釈
-------

5.2. 出典
-------

6. 関連項目
-------

XMPP
SIP
RCS

7. 外部リンク
--------