Matrix to platforma do organizowania zdecentralizowanej komunikacji, który jest rozwijany jako projekt, który korzysta z otwartych standardów i przywiązuje dużą wagę do zapewnienia bezpieczeństwa i prywatności użytkowników.
Matrix zapewnia kompleksowe szyfrowanie w oparciu o własny protokół, w tym wykorzystanie algorytmu Double Ratchet (część protokołu sygnałowego). Ostateczne szyfrowanie jest używane zarówno w bezpośrednich wiadomościach, jak i na czatach (przy użyciu mechanizmu Megolm).
Wdrożenie metod szyfrowania zostało skontrolowane przez organizację NCC Group. Od transportu korzystamy z protokołu HTTPS + JSON z możliwością korzystania z protokołu WebSockets lub w oparciu o COAP.
O Matrix
System Tworzy się jako społeczność serwerów, które mogą wchodzić ze sobą w interakcje i łączyć się we wspólną zdecentralizowaną sieć.
Wiadomości są replikowane na wszystkie serwery, z którymi są połączeni uczestnicy przesyłania wiadomości. Wiadomości są dystrybuowane między serwerami w taki sam sposób, w jaki są dystrybuowane między repozytoriami Git.
W przypadku tymczasowego wyłączenia serwera wiadomości nie są tracone, lecz są przesyłane do użytkowników po wznowieniu pracy serwera. Obsługiwane są różne opcje identyfikatora użytkownika, w tym adres e-mail, numer telefonu, konto na Facebooku itp.
W sieci nie ma pojedynczego punktu awarii ani kontroli komunikatów. Wszystkie serwery omówione w dyskusji są takie same.
Każdy użytkownik może uruchomić własny serwer i podłączyć go do sieci publicznej. Możliwe jest tworzenie bramek do interakcji Matrixa z systemami opartymi o inne protokołynp. usługi są przygotowane do dwukierunkowego przesyłania wiadomości na IRC, Facebook, Telegram, Skype, Hangouts, e-mail, WhatsApp i Slack.
Oprócz wiadomości błyskawicznych i czatu, system może służyć do przesyłania plików, wysyłania powiadomień, organizowania telekonferencji, wykonywania połączeń głosowych i wideorozmów. Matrix umożliwia korzystanie z wyszukiwania i nieograniczone przeglądanie historii korespondencji.
Obsługuje również zaawansowane funkcje, takie jak powiadomienie o zapisie, ocena obecności użytkownika online, potwierdzenie odczytu, powiadomienia push, wyszukiwanie po stronie serwera, synchronizacja historii i status klienta.
Fundacji Matrix.org
Koordynacja rozwoju projektu, niedawno utworzone organizacja non-profit Fundacja Matrix.org, które zagwarantują niezależność projektu, będzie rozwijać standardy związane z Matrixem i działać jako neutralna platforma do wspólnego podejmowania decyzji.
Fundacja Matrix.org jest kierowana przez radę pięciu dyrektorów niekomercyjnych ekosystemów, szanowanych w społeczności i powołanych do podtrzymywania misji projektu.
Wśród reżyserów byli John Crowcroft (Jon Crowcroft, jeden z pionierów zdecentralizowanej komunikacji), Matthew Hodgson (Matthew Hodgson, współzałożyciel Matrixa), Amandine Le Pape (Amandine Le Pape, współzałożyciel Matrixa), Ross Schulman ( Ross Schulman, prawnik Open Technology Institute specjalizujący się w Internecie i systemach zdecentralizowanych), Yuta Steiner (Jutta Steiner, współzałożycielka firmy Parity Technologies opartej na blockchainie).
również niedawno ukazała się pierwsza stabilna wersja protokołu Matrix 1.0 oraz powiązane biblioteki i specyfikacje.
W którym ta nowa wersja Matrixa jest w pełni ustabilizowana i osiągnął odpowiedni stan jako podstawę do tworzenia niezależnych implementacji klientów, serwerów, botów i bramek. Rozwój projektu jest dystrybuowany na licencji Apache 2.0.
Domyślnie do tworzenia nowych czatów używany jest protokół Room Protocol 4. Podczas migracji z poprzednich wersji należy zauważyć, że połączenie ze wspólną zdecentralizowaną siecią wymaga teraz uzyskania ważnego certyfikatu TLS.
Jako klienci możesz używać Riot (dostępny dla systemów Linux, Windows, macOS, Web, Android i iOS), Weechat (CLI na Lua), nheko (C++/Qt), Quaternion (C++/Qt) i Fractal (Rust) /Gtk).
Od kolejnych prac przy wdrożeniu serwera planowana jest optymalizacja wydajności i zmniejszenie zużycia pamięci. Oprócz serwera referencyjnego w Pythonie rozwijane są również eksperymentalne implementacje Rumy (Rust) i Dendrite (Go).