콘텐츠로 건너뛰기
Nymchat으로 돌아가기

지식 기반 후드 아래

프로토콜 및 이벤트

Nymchat이 실제로 반대하는 모든 사람을 위해 전선에 설치하는 것 이를 감사하거나 다른 Nostr 클라이언트에서 이벤트를 읽습니다.

이벤트 종류

친절한용도메모
0프로필 메타데이터표준 Nostr 프로필: 이름, 사진, 배너, 정보, lud16.
5삭제 요청NIP-09.
7반응NIP-25, ['k', originalKind] 태그를 지정하면 올바른 채널 유형에 대한 반응이 제출됩니다.
13밀봉하다NIP-17 메시지의 중간 계층입니다.
14비공개 메시지 소문서명되지 않았으며 자체적으로 게시되지 않았습니다.
1059선물 포장NIP-59. 비공개 메시지 및 그룹 채팅의 릴레이에 실제로 도달하는 것입니다.
1984보고NIP-56.
9734 / 9735Zap 요청 및 Zap 영수증NIP-57.
10030맞춤 이모티콘 팩 목록NIP-30.
20000Geohash 채널 메시지임시, 태그됨 ['g', geohash].
23333명명된 채널 메시지임시, 태그됨 ['d', channel].
24420 / 24421공개 입력 표시기 및 읽음 확인Nymchat 전용, 공개 채널용.
25051 / 25052P2P 신호 및 파일 전송 상태Nymchat 전용.
30030맞춤 이모티콘 세트NIP-30.
30078애플리케이션 데이터NIP-78. 설문 조사 및 암호화된 설정이 동기화됩니다.
69420비공개 수신 확인 및 배송 상태Nymchat 전용, 선물 포장 안에 소문으로 들어있습니다. 와는 별개의 종류 14 의도적으로 다른 NIP-17 클라이언트는 모든 영수증에 대해 빈 직접 메시지를 렌더링하지 않습니다.

NIP Nymchat이 구현함

집게발Nymchat이 제공하는 것
NIP-07브라우저 확장 프로그램으로 로그인하세요.
NIP-09삭제 요청.
NIP-13작업 증명. 나가는 메시지는 최소 16비트로 마이닝됩니다.
NIP-17비공개 다이렉트 메시지이자 그룹 채팅의 기반입니다.
NIP-25반응.
NIP-30맞춤 이모티콘.
NIP-40만료 타임스탬프 — 사라지는 메시지.
NIP-44봉인, 랩 및 설정 동기화에 사용되는 버전별 암호화입니다.
NIP-46원격 서명 — bunker://.
NIP-56보고.
NIP-57번개가 쳤습니다.
NIP-59선물 포장.
NIP-78임의의 애플리케이션 데이터.
NIP-98호스팅된 엔드포인트에 대한 HTTP 인증.

암호화

어디무엇
신원 및 서명Nostr이 지정한 대로 Schnorr 서명(BIP-340)이 포함된 secp256k1입니다.
비공개 메시지 및 그룹 채팅NIP-44 v2: secp256k1의 ECDH, HKDF-SHA256, HMAC-SHA256이 포함된 ChaCha20 및 암호문 길이가 메시지 길이를 나타내지 않도록 패딩합니다.
블루투스 메시 세션Noise XX — X25519, ChaCha20-Poly1305(IETF), 발표 서명용 Ed25519, SHA-256 및 HMAC.
유휴 상태의 신원AES-GCM-256. 키는 비밀번호 또는 PIN의 경우 310,000회 반복되는 PBKDF2-SHA256에서 제공되거나 비밀번호 키 또는 생체 인식의 경우 HKDF-SHA256을 통한 WebAuthn PRF 출력에서 ​​제공됩니다.
통화 및 파일 전송WebRTC의 자체 DTLS-SRTP는 NIP-17로 래핑된 신호를 통해 협상됩니다.
무작위성전체 플랫폼 CSPRNG — 키, nonce 및 선물 포장 타임스탬프 지터.

메타데이터 보호

선물 포장 경로의 두 가지 세부 사항은 NIP-59와 별개이므로 언급할 가치가 있습니다. "암호화되었지만 분명히 당신이 그들에게":

  • 모든 랩에는 다음 사람의 서명이 있습니다. 일회용 키 해당 메시지에 대해서만 생성되었으며, 따라서 두 개의 랩이 보낸 사람을 공유하지 않습니다.
  • 모든 랩의 created_at ~이다 최대 2개까지 무작위로 소급 적용 시간 CSPRNG를 사용하므로 송신 및 수신 시간을 맞출 수 없습니다.

그룹 채팅에는 임시 순환 기능이 추가됩니다. 받는 사람 그 위에 열쇠 - 참조 그룹 암호화 작동 방식.

소스 읽기

암호화 기본 요소는 다음과 같습니다. js/nym-crypto.js 그리고 js/modules/key-vault.js 웹 앱 및 아래에서 android-ios-app/lib/core/crypto/ 그리고 lib/services/mesh/noise/ Flutter 앱에서 그만큼 저장소 AGPL-3.0이며 완전합니다. 신뢰를 얻을 수 있는 폐쇄형 구성 요소가 없습니다.