ฐานความรู้ ภายใต้ประทุน
พิธีสารและเหตุการณ์ต่างๆ
สิ่งที่ Nymchat วางอยู่บนเส้นลวดจริงๆ สำหรับใครก็ตามที่ต่อต้านมัน ตรวจสอบหรืออ่านเหตุการณ์จากไคลเอนต์ Nostr รายอื่น
หน้านี้แปลด้วยเครื่องเพื่อความสะดวก ต้นฉบับภาษาอังกฤษเป็นเวอร์ชันที่ใช้
ประเภทเหตุการณ์
| ใจดี | ใช้สำหรับ | หมายเหตุ |
|---|---|---|
0 | ข้อมูลเมตาของโปรไฟล์ | โปรไฟล์ Nostr มาตรฐาน: ชื่อ รูปภาพ แบนเนอร์ เกี่ยวกับ lud16. |
5 | คำขอลบ | เอ็นไอพี-09. |
7 | ปฏิกิริยา | NIP-25 พร้อมด้วย ['k', originalKind] แท็กเพื่อให้เกิดปฏิกิริยาต่อประเภทช่องสัญญาณที่ถูกต้อง |
13 | ผนึก | ชั้นกลางของข้อความ NIP-17 |
14 | ข่าวลือข้อความส่วนตัว | ไม่ได้ลงนามและไม่เคยเผยแพร่ด้วยตัวเอง |
1059 | ห่อของขวัญ | เอ็นไอพี-59. สิ่งที่เข้าถึงการถ่ายทอดข้อความส่วนตัวและการแชทเป็นกลุ่ม |
1984 | การรายงาน | เอ็นไอพี-56. |
9734 / 9735 | คำขอ Zap และใบเสร็จรับเงิน zap | เอ็นไอพี-57. |
10030 | รายการแพ็คอิโมจิที่กำหนดเอง | เอ็นไอพี-30. |
20000 | ข้อความช่อง Geohash | ชั่วคราว, ติดแท็ก ['g', geohash]. |
23333 | ข้อความช่องที่มีชื่อ | ชั่วคราว, ติดแท็ก ['d', channel]. |
24420 / 24421 | ตัวบ่งชี้การพิมพ์สาธารณะและใบเสร็จรับเงินการอ่าน | เฉพาะ Nymchat สำหรับช่องทางสาธารณะ |
25051 / 25052 | การส่งสัญญาณแบบเพียร์ทูเพียร์และสถานะการถ่ายโอนไฟล์ | เฉพาะ Nymchat |
30030 | ชุดอีโมจิที่กำหนดเอง | เอ็นไอพี-30. |
30078 | ข้อมูลแอปพลิเคชัน | เอ็นไอพี-78. การสำรวจความคิดเห็นและการซิงค์การตั้งค่าที่เข้ารหัส |
69420 | ใบเสร็จรับเงินการอ่านส่วนตัวและสถานะการจัดส่ง | เฉพาะ Nymchat ถือเป็นข่าวลือในกระดาษห่อของขวัญ ชนิดที่แยกจาก 14 โดยจงใจ ดังนั้นไคลเอ็นต์ NIP-17 อื่นๆ จึงไม่แสดงข้อความตรงที่ว่างเปล่าสำหรับการรับทุกรายการ |
NIPs Nymchat ดำเนินการ
| หยิก | Nymchat ให้อะไร |
|---|---|
| เอ็นไอพี-07 | เข้าสู่ระบบด้วยส่วนขยายเบราว์เซอร์ |
| เอ็นไอพี-09 | คำขอลบ |
| เอ็นไอพี-13 | หลักฐานการทำงาน ข้อความขาออกถูกขุดอย่างน้อย 16 บิต |
| เอ็นไอพี-17 | ข้อความส่วนตัวส่วนตัวและพื้นฐานสำหรับการแชทเป็นกลุ่ม |
| เอ็นไอพี-25 | ปฏิกิริยา |
| เอ็นไอพี-30 | อีโมจิที่กำหนดเอง |
| เอ็นไอพี-40 | การประทับเวลาหมดอายุ — ข้อความที่หายไป |
| เอ็นไอพี-44 | การเข้ารหัสตามเวอร์ชัน ใช้สำหรับการปิดผนึก การหุ้ม และการซิงค์การตั้งค่า |
| เอ็นไอพี-46 | การลงนามระยะไกล — bunker://. |
| เอ็นไอพี-56 | การรายงาน |
| เอ็นไอพี-57 | ฟ้าผ่า |
| เอ็นไอพี-59 | ห่อของขวัญ. |
| เอ็นไอพี-78 | ข้อมูลแอปพลิเคชันโดยพลการ |
| เอ็นไอพี-98 | การรับรองความถูกต้อง HTTP สำหรับปลายทางที่โฮสต์ |
การเข้ารหัส
| ที่ไหน | อะไร |
|---|---|
| ตัวตนและลายเซ็น | secp256k1 พร้อมลายเซ็น Schnorr (BIP-340) ตามที่ Nostr ระบุ |
| ข้อความส่วนตัวและการแชทเป็นกลุ่ม | NIP-44 v2: ECDH บน secp256k1, HKDF-SHA256, ChaCha20 พร้อม HMAC-SHA256 และการเสริมเพื่อให้ความยาวไซเฟอร์เท็กซ์ไม่ทำให้ความยาวของข้อความหายไป |
| เซสชัน Bluetooth mesh | Noise XX — X25519, ChaCha20-Poly1305 (IETF), Ed25519 สำหรับลายเซ็นประกาศ, SHA-256 และ HMAC ข้างใต้ |
| ตัวตนที่เหลือ | AES-GCM-256. คีย์มาจาก PBKDF2-SHA256 ที่ 310,000 ครั้งสำหรับรหัสผ่านหรือ PIN หรือจากเอาต์พุต WebAuthn PRF ผ่าน HKDF-SHA256 สำหรับรหัสผ่านหรือไบโอเมตริก |
| การโทรและการโอนไฟล์ | DTLS-SRTP ของ WebRTC มีการเจรจาผ่านการส่งสัญญาณที่ห่อด้วย NIP-17 |
| ความบังเอิญ | CSPRNG ของแพลตฟอร์มทั้งหมด — คีย์, noces และความกระวนกระวายใจในการประทับเวลาห่อของขวัญ |
การป้องกันข้อมูลเมตา
รายละเอียดสองประการในเส้นทางห่อของขวัญควรค่าแก่การกล่าวถึง เนื่องจากเป็นสิ่งแยก NIP-59 จาก "เข้ารหัส แต่ชัดเจนจากคุณถึงพวกเขา":
- ทุกห่อลงนามโดยก คีย์ครั้งเดียว สร้างขึ้นสำหรับข้อความนั้นเพียงอย่างเดียว ดังนั้นจึงไม่มีการห่อสองครั้งร่วมกับผู้ส่ง
- ทุกห่อ
created_atเป็น สุ่มแบ็คเดทได้ถึงสองคน ชั่วโมง โดยใช้ CSPRNG ดังนั้นจึงไม่สามารถเรียงเวลาส่งและรับได้
การแชทเป็นกลุ่มเพิ่มการหมุนเวียนชั่วคราว ผู้รับ ปุ่มที่อยู่ด้านบนสุด — ดูสิ การเข้ารหัสกลุ่มทำงานอย่างไร.
การเข้ารหัสลับแบบดั้งเดิมอยู่ในแล้ว js/nym-crypto.js และ
js/modules/key-vault.js ในเว็บแอปและต่ำกว่า
android-ios-app/lib/core/crypto/ และ
lib/services/mesh/noise/ ในแอป Flutter ที่
พื้นที่เก็บข้อมูล
เป็น AGPL-3.0 และเสร็จสมบูรณ์ — ไม่มีส่วนประกอบแบบปิดที่จะรับความไว้วางใจ