## **Decentralized Private DMs**
อนาคตที่น่าจับตาระบบแชทที่อาจเข้ามาแทนที่ Telegram หรือ Signal โดยไม่มีตัวกลาง
https://i.nostr.build/FJOTaqbZGWJDeilp.jpg
ระบบแชทเป็นหนึ่งในฟีเจอร์ที่ได้รับความนิยมอย่างรวดเร็วในหมู่ผู้ใช้อินเทอร์เน็ตทั่วไปในยุคแรกๆ เพราะมันตอบโจทย์การใช้งานได้อย่างลงตัว ทุกคนสามารถพูดคุยกับคนทั่วโลกแบบเรียลไทม์ได้ฟรีๆ
แต่ระบบแชทไม่ได้มีดีแค่ความสนุกสนานเท่านั้น เรายังได้เห็นการใช้งานในเหตุการณ์สำคัญต่าง
ๆ ระบบแชทจึงมีความสำคัญทั้งในแง่ของความบันเทิงและการสร้างความเปลี่ยนแปลงในโลกแห่งความเป็นจริง
แล้วอะไรล่ะที่ทำให้ระบบแชทมีความปลอดภัย?
จริงๆ แล้ว ความปลอดภัยของระบบแชทมีอยู่ 2 ด้านคือ Private และ Confidential
Private: บุคคลภายนอกไม่สามารถรับรู้ได้ว่ากำลังมีการสนทนากันอยู่เช่น ไม่สามารถรู้ได้ว่า A กับ B กำลังคุยอะไรกันอยู่ หรือทั้งสองคุยอยู่ในกลุ่มเดียวกันถ้าเป็นระบบที่ดีจะต้องมีการปกป้องข้อมูลไม่ให้รั่วไหล
Confidential: ข้อมูลที่ส่งหากันจะต้องไม่สามารถถูกอ่านได้โดยบุคคลที่สาม
เมื่อเราลองศึกษาระบบและโปรโตคอลต่าง ๆ ของระบบแชท รวมถึง NIP บน Nostr เราจะพบว่าทุกอย่างล้วนมีข้อแลกเปลี่ยน เป็นเรื่องปกติของงานวิศวกรรม แต่ในวงการนี้ยิ่งเห็นชัดเจน เราต้องยอมเสียอะไรบางอย่างเพื่อให้ได้สิ่งที่ดีกว่ามา
แต่ยังมีอีกเรื่องที่เราได้ยินบ่อย ๆ เมื่อเราเจาะลึกถึงการเข้ารหัสของระบบแชทก็คือ Forward Secrecy และ Post-Compromise Security
Forward Secrecy: หากคีย์ถูกขโมยไป ข้อความในอดีตจะถูกถอดรหัสไม่ได้
Post-Compromise Security: หากคีย์ถูกขโมยไปจะมีวิธีการกู้คืนและใช้งานบัญชีเดิมต่อไปได้
ในอุดมคติ เราต้องการระบบแชทที่มีทั้ง Private, Confidential, Forward Secrecy, และ Post-Compromise Security ที่สามารถงานได้ทั้งแบบส่วนตัวและแบบกลุ่ม สามารถลบข้อความหรือปฏิเสธได้ว่าไม่เคยเข้าร่วมการสนทนานั้น ๆ ซึ่งมีความท้าทายอบ่างมากมีโปรโตคอลที่พยายามแก้ปัญหานี้ แต่ส่วนใหญ่ก็ต้องยอมแพ้ไป เพราะเป็นเรื่องยากที่จะสร้างระบบที่ทั้งปลอดภัยและสามารถลบร่องรอยได้
เราพอเข้าใจภาพรวมของระบบแชทแล้วงั้นเราลองมาดูระบบแชทของ Nostr กันบ้างดีกว่า
ระบบแชทของ Nostr ในยุคแรกนั้นเรียบง่ายใช้การเข้ารหัสแบบง่ายๆ โดยใช้คีย์ของผู้ส่งและผู้รับมาสร้างคีย์ร่วมกัน ซึ่งหมายความว่ามีเพียงสองคนนั้นเท่านั้นที่สามารถถอดรหัสข้อความได้นั้นคือ Nip-04
ข้อดีเราสามารถดูประวัติการสนทนาย้อนหลังได้ทั้งหมด เพราะทุกอย่างถูกเก็บไว้ด้วยคีย์เดียวกัน
ข้อเสียข้อความเหล่านี้ถูกเปิดเผยว่าใครคุยกับใครบ้าง หากคีย์ของฝ่ายใดฝ่ายหนึ่งรั่วไหล ข้อมูลทั้งหมดจะตกอยู่ในอันตรายทันที
หลายคนไม่ชอบ NIP-04 มองกันว่ามันอันตรายและมันแย่ไม่ควรใช้ อย่างไรก็ตามข้อถกเถียงนี้ทำให้เกิด NIP-44 ในเวลาต่อมาที่มีความปลอดภัยกว่าและยังมี Gift Wrapping เข้ามาเสริมเรื่องความเป็นส่วนตัว
“Gift Wrapping” เป็นเทคนิคในการซ่อนข้อมูลโดยการห่อ Event ด้วย Event อีกทีหนึ่ง
เพื่อป้องกันไม่ให้คนอื่นรู้ว่าใครกำลังคุยกับใคร Event ที่อยู่ภายในจะไม่ได้ถูกเซ็นชื่อจึงไม่สามารถเผยแพร่ไปบนรีเลย์ได้
ล่าสุดระบบแชทของ Nostr ได้ใช้ NIP-44 และ NIP-59 โดยใช้มาตรฐานการเข้ารหัสแบบใหม่และเทคนิค Gift Wrapping ทำให้ข้อมูลเมตาถูกซ่อนอย่างดี และข้อมูลถูกเข้ารหัสอย่างแน่นหนา เราสามารถดูประวัติการสนทนาย้อนหลังได้ และไม่มีใครรู้ว่าเรากำลังคุยกับใครอยู่
ระบบนี้ยังไม่มี Forward Secrecy และ Post-Compromise Security หากคีย์รั่วไหล ข้อมูลก็ยังหายอยู่ดี
เป้าหมายของ Jeff คือสร้างระบบแชทบน Nostr ที่สามารถทดแทน Telegram, Signal หรือแอปแชทอื่นๆ โดยไม่ต้องพึ่งพาเซิร์ฟเวอร์ส่วนกลางโดยใช้แบบใหม่ที่เรียกว่า Messaging Layer Security (MLS) ซึ่งใช้โครงสร้างแบบ Binary Tree ในการจัดการสมาชิกและสร้างระบบคีย์ที่ทำให้สมาชิกทุกคนมีข้อมูลเพียงพอสำหรับการเข้ารหัสและถอดรหัสข้อมูลภายในกลุ่ม
ในปัจจุบันมีไลบรารี่ดี ๆ ที่ช่วยให้ Nostr client ไม่ต้องเขียนโค้ด MLS เองทั้งหมด
ข้อดีของ MLS คือ ทำให้การจัดการกลุ่มขนาดใหญ่มีประสิทธิภาพมากขึ้น รองรับทั้งแบบส่วนตัวและแบบกลุ่มมีForward Secrecy และ Post-Compromise Security ข้อความทุกข้อความถูกเข้ารหัสด้วยคีย์ที่ต่างกัน และมีการหมุนเวียนคีย์ทุกครั้งที่มีการส่งข้อความ ไม่มีการรั่วไหลของข้อมูลมีเพียง Event เดียวที่ถูกเผยแพร่บนรีเลย์โดยใช้ Ephemeral Key และ Group ID ซึ่งสามารถหมุนเวียนได้เช่นกัน
ข้อเสียคือ MLS มันค่อนข้างซับซ้อนต้องอาศัยเครื่องมือที่ดีในเขียน Client นั้นเป็นสิ่งที่ Jeff พยายามพัฒนาอยู่ และต้องอาศัยความร่วมมือจากนักพัฒนา Nostr คนอื่น ๆ ด้วยเช่นกัน อีกข้อเสียคือไม่สามารถดูประวัติการสนทนาย้อนหลังได้ หากไม่ได้บันทึกไว้
การพัฒนาครั้งนี้เป็นสิ่งที่น่าสนใจมากอาจตอบโจทย์ที่หลายคนตามหาในโลกที่ privacy ถูกมองว่าเรื่องอันตราย
— nostr:nprofile1qqsqxapvypwtdjxcvqcujw7y4xearpyycvkgv43lcr3p3yg29hu65hgpzamhxue69uhhyetvv9ujuvrcvd5xzapwvdhk6tcpzfmhxue69uhkuenjv4kxz7fwv9c8qtcprpmhxue69uhhyetvv9ujumn0w3hhx6rf9emkjm30xeezc7
#Siamstr
ขอบคุณครับอยากอ่านเรื่องไหนบอกกันได้นะ