지식 기반 후드 아래
프로토콜 및 이벤트
Nymchat이 실제로 반대하는 모든 사람을 위해 전선에 설치하는 것 이를 감사하거나 다른 Nostr 클라이언트에서 이벤트를 읽습니다.
이 페이지는 편의를 위해 기계 번역되었습니다. 영문 원본이 적용되는 버전입니다.
이벤트 종류
| 친절한 | 용도 | 메모 |
|---|---|---|
0 | 프로필 메타데이터 | 표준 Nostr 프로필: 이름, 사진, 배너, 정보, lud16. |
5 | 삭제 요청 | NIP-09. |
7 | 반응 | NIP-25, ['k', originalKind] 태그를 지정하면 올바른 채널 유형에 대한 반응이 제출됩니다. |
13 | 밀봉하다 | NIP-17 메시지의 중간 계층입니다. |
14 | 비공개 메시지 소문 | 서명되지 않았으며 자체적으로 게시되지 않았습니다. |
1059 | 선물 포장 | NIP-59. 비공개 메시지 및 그룹 채팅의 릴레이에 실제로 도달하는 것입니다. |
1984 | 보고 | NIP-56. |
9734 / 9735 | Zap 요청 및 Zap 영수증 | NIP-57. |
10030 | 맞춤 이모티콘 팩 목록 | NIP-30. |
20000 | Geohash 채널 메시지 | 임시, 태그됨 ['g', geohash]. |
23333 | 명명된 채널 메시지 | 임시, 태그됨 ['d', channel]. |
24420 / 24421 | 공개 입력 표시기 및 읽음 확인 | Nymchat 전용, 공개 채널용. |
25051 / 25052 | P2P 신호 및 파일 전송 상태 | 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이며 완전합니다. 신뢰를 얻을 수 있는 폐쇄형 구성 요소가 없습니다.