Chuyển đến nội dung
Quay lại Nymchat

Cơ sở tri thức Dưới mui xe

Giao thức và sự kiện

Những gì Nymchat thực sự đưa ra, cho bất kỳ ai phản đối nó, kiểm tra nó hoặc đọc các sự kiện từ một ứng dụng khách Nostr khác.

Các loại sự kiện

LoạiDùng choGhi chú
0Siêu dữ liệu hồ sơProfile Nostr chuẩn: tên, hình ảnh, banner, giới thiệu, lud16.
5Yêu cầu xóaNIP-09.
7phản ứngNIP-25, với ['k', originalKind] gắn thẻ để phản hồi được gửi theo đúng loại kênh.
13Niêm phongLớp giữa của tin nhắn NIP-17.
14Tin đồn tin nhắn riêng tưChưa được ký và chưa bao giờ được xuất bản riêng.
1059Gói quàNIP-59. Điều gì thực sự đạt đến mục đích chuyển tiếp cho các tin nhắn riêng tư và trò chuyện nhóm.
1984Báo cáoNIP-56.
9734 / 9735Yêu cầu Zap và biên nhận ZapNIP-57.
10030Danh sách gói biểu tượng cảm xúc tùy chỉnhNIP-30.
20000Tin nhắn kênh GeohashPhù du, được gắn thẻ ['g', geohash].
23333Tin nhắn kênh được đặt tênPhù du, được gắn thẻ ['d', channel].
24420 / 24421Chỉ báo đánh máy công khai và biên nhận đã đọcNymchat dành riêng cho các kênh công cộng.
25051 / 25052Trạng thái báo hiệu ngang hàng và truyền tệpNymchat cụ thể.
30030Bộ biểu tượng cảm xúc tùy chỉnhNIP-30.
30078Dữ liệu ứng dụngNIP-78. Các cuộc thăm dò và đồng bộ hóa cài đặt được mã hóa.
69420Biên nhận đã đọc riêng tư và trạng thái gửiDành riêng cho Nymchat, được mang theo như một tin đồn bên trong gói quà. Một loại riêng biệt từ 14 có chủ ý, do đó các máy khách NIP-17 khác không hiển thị các tin nhắn trực tiếp trống cho mỗi lần nhận.

NIP thực hiện Nymchat

NIPNhững gì nó mang lại cho Nymchat
NIP-07Đăng nhập bằng tiện ích mở rộng của trình duyệt.
NIP-09Yêu cầu xóa.
NIP-13Bằng chứng về công việc. Tin nhắn gửi đi được khai thác tối thiểu 16 bit.
NIP-17Tin nhắn trực tiếp riêng tư và cơ sở cho các cuộc trò chuyện nhóm.
NIP-25Phản ứng.
NIP-30Biểu tượng cảm xúc tùy chỉnh.
NIP-40Dấu thời gian hết hạn - tin nhắn biến mất.
NIP-44Mã hóa theo phiên bản, được sử dụng để đồng bộ hóa con dấu, gói và cài đặt.
NIP-46Ký từ xa - bunker://.
NIP-56Báo cáo.
NIP-57Tia sét.
NIP-59Gói quà.
NIP-78Dữ liệu ứng dụng tùy ý.
NIP-98Xác thực HTTP, dành cho các điểm cuối được lưu trữ.

mật mã

Ở đâuCái gì
Danh tính và chữ kýsecp256k1 với chữ ký Schnorr (BIP-340), như Nostr chỉ định.
Tin nhắn riêng tư và trò chuyện nhómNIP-44 v2: ECDH trên secp256k1, HKDF-SHA256, ChaCha20 với HMAC-SHA256 và phần đệm để độ dài văn bản mã hóa không làm mất đi độ dài tin nhắn.
Phiên lưới BluetoothTiếng ồn XX - X25519, ChaCha20-Poly1305 (IETF), Ed25519 để thông báo chữ ký, SHA-256 và HMAC bên dưới.
Danh tính ở trạng thái nghỉ ngơiAES-GCM-256. Khóa đến từ PBKDF2-SHA256 với 310.000 lần lặp cho mật khẩu hoặc mã PIN hoặc từ đầu ra WebAuthn PRF thông qua HKDF-SHA256 cho mật khẩu hoặc sinh trắc học.
Cuộc gọi và chuyển tập tinDTLS-SRTP riêng của WebRTC, được đàm phán qua tín hiệu được bọc NIP-17.
Tính ngẫu nhiênNền tảng CSPRNG xuyên suốt - các phím, số nonces và jitter dấu thời gian gói quà.

Bảo vệ siêu dữ liệu

Hai chi tiết trong đường dẫn gói quà đáng được nhắc đến vì chúng là những gì tách biệt NIP-59 từ "được mã hóa, nhưng rõ ràng là từ bạn đến họ":

  • Mỗi gói được ký bởi một chìa khóa một lần được tạo riêng cho tin nhắn đó, nên không có hai gói nào có chung một người gửi.
  • Mỗi gói created_atlùi ngày ngẫu nhiên tối đa hai giờ sử dụng CSPRNG nên thời gian gửi và nhận không thể xếp hàng được.

Trò chuyện nhóm thêm phù du luân phiên người nhận các phím trên đó - xem Cách mã hóa nhóm hoạt động.

Đọc nguồn

Các nguyên thủy tiền điện tử đang ở trong js/nym-crypto.jsjs/modules/key-vault.js trong ứng dụng web và bên dưới android-ios-app/lib/core/crypto/lib/services/mesh/noise/ trong ứng dụng Flutter. các kho lưu trữ là AGPL-3.0 và hoàn chỉnh — không có thành phần đóng nào được tin cậy.