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ưUnsigned, and never published on its own. A thread reply carries a ['nymthread', rootId] thẻ bên trong tin đồn được mã hóa, tham chiếu đến ID tin nhắn được chia sẻ của root.
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]Một câu trả lời thread thêm một NIP-10 đánh dấu ['e', rootId, '', 'root'] Ngày
23333Tin nhắn kênh được đặt tênPhù du, được gắn thẻ ['d', channel]Một câu trả lời thread thêm một NIP-10 đánh dấu ['e', rootId, '', 'root'] Ngày
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. Thăm dò ý kiến, đồng bộ hóa cài đặt được mã hóa và thông báo khóa sau lượng tử (được gắn thẻ nym-pq, mang khóa công khai ML-KEM-768 có thời hạn NIP-40).
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-10Tag trả lời được đánh dấu – làm thế nào một thread kênh trả lời điểm đến thông điệp gốc của nó.
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.
Tin nhắn riêng tư và trò chuyện nhóm giữa những người dùng NymchatCùng một tải trọng NIP-44 v2, không thay đổi, được niêm phong một lần thứ hai bên trong ChaCha20-Poly1305 khóa từ một ML-KEM-768 (FIPS 203) bao bì thông qua HKDF-SHA256. pq2. tiền tố để người đọc chọn đường dẫn bằng cách kiểm tra tải trọng có thể sử dụng. Cả hai lớp phải bị phá vỡ để khôi phục một thông điệp. mã hóa kháng lượng tử.
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.