- เป็น สแตกเครือข่ายที่อิงคริปโตกราฟี ทำงานได้บนสื่อหลากหลาย เช่น LoRa, packet radio, WiFi และรองรับการสื่อสารที่เสถียรแม้ในสภาพแวดล้อมที่ความเร็วต่ำมากและมี latency สูง
- มีฟีเจอร์ที่เน้นความปลอดภัย เช่น การเข้ารหัสแบบต้นทางถึงปลายทาง, ความไม่เปิดเผยตัวตนของผู้ส่ง, การเราต์แบบมัลติฮอปที่ตั้งค่าอัตโนมัติ, และ การยืนยันการส่งมอบที่ปลอมแปลงไม่ได้
- ไม่พึ่งพา IP stack และสามารถ ทำงานใน user space บนสภาพแวดล้อม Python 3 ได้โดยไม่ต้องใช้ kernel module
- มุ่งสร้าง เครือข่ายต้นทุนต่ำและเป็นอิสระ โดยสามารถเชื่อมโยงเครือข่ายอิสระหลายพันเครือข่ายเข้าด้วยกันได้โดยไม่มีการควบคุมจากศูนย์กลางหรือการเซ็นเซอร์
- เป็นเครื่องมือโอเพนซอร์สสำหรับ การสร้างโครงสร้างพื้นฐานการสื่อสารแบบกระจายศูนย์และเครือข่ายแบบ off-grid ที่มีคุณค่าสูงสำหรับนักพัฒนาและนักวิจัย
ภาพรวมของ Reticulum
- Reticulum เป็น สแตกเครือข่ายที่อิงคริปโตกราฟี ซึ่งสามารถใช้ฮาร์ดแวร์ทั่วไปเพื่อสร้างเครือข่ายทั้งในระดับท้องถิ่นและวงกว้างได้
- ทำงานได้แม้ในสภาพแวดล้อมที่ latency สูงและแบนด์วิดท์ต่ำ
- มีความสามารถด้าน การเข้ารหัสแบบต้นทางถึงปลายทาง, ความไม่เปิดเผยตัวตนของผู้ส่ง, การส่งต่อแบบมัลติฮอปที่ตั้งค่าอัตโนมัติ, การกำหนดแอดเดรสอย่างมีประสิทธิภาพ, และ การยืนยันการส่งมอบที่ปลอมแปลงไม่ได้
- เป้าหมายคือให้ทุกคนสามารถเป็น ผู้ดำเนินการเครือข่ายของตนเอง และสร้าง เครือข่ายที่เป็นอิสระและเชื่อมต่อถึงกันได้ โดยไม่มีการควบคุมจากศูนย์กลาง
- Reticulum ไม่ได้ถูกออกแบบมาให้เป็นเครือข่ายเดียว แต่เป็น เครื่องมือสำหรับสร้างเครือข่ายอิสระหลายพันเครือข่าย
- สามารถทำงานบนพื้นฐานของ IP ได้เช่นกัน จึง ทำ tunneling ผ่านอินเทอร์เน็ตหรือเครือข่ายส่วนตัว ได้
- ทำงานบนสภาพแวดล้อม Python 3 โดยไม่ต้องใช้ kernel module หรือไดรเวอร์
ฟีเจอร์หลัก
- รองรับ การกำหนดแอดเดรสที่ไม่ซ้ำกันในระดับโลก และ การเราต์แบบมัลติฮอปที่ตั้งค่าอัตโนมัติ
- ทำให้ส่งข้อมูลผ่านสื่อและโทโพโลยีทางกายภาพที่หลากหลายได้
- รับประกัน ความไม่เปิดเผยตัวตนของผู้ส่ง: แพ็กเก็ตจะไม่รวม source address
- การสื่อสารอิงกับ การเข้ารหัสแบบอสมมาตร X25519 และ ลายเซ็น Ed25519
- ใช้ชุดกุญแจ Curve25519 ขนาด 512 บิต
- รองรับ Forward Secrecy, การเข้ารหัส AES-256-CBC และการยืนยันตัวตนด้วย SHA256 HMAC
- มี ระบบอินเทอร์เฟซที่ขยายได้ ทำให้เพิ่มอินเทอร์เฟซแบบกำหนดเองได้
- มี API ที่เรียบง่าย ช่วยให้พัฒนาแอปพลิเคชันแบบกระจายศูนย์ได้ง่าย
- รองรับ การส่งข้อมูลขนาดใหญ่ พร้อมฟังก์ชันบีบอัดอัตโนมัติ, checksum และการปรับการส่งข้อมูล
- มี กลไก Request/Response แบบน้ำหนักเบา และ การตั้งค่าลิงก์ที่มีประสิทธิภาพ (3 packets, 297 bytes)
อิมพลีเมนเทชันอ้างอิงและโปรโตคอล
- โค้ด Python ในรีโพซิทอรีนี้คือ อิมพลีเมนเทชันอ้างอิงอย่างเป็นทางการ และเป็นมาตรฐานของนิยามโปรโตคอล
- เผยแพร่ภายใต้ Reticulum License และโปรโตคอลนี้ ถูกอุทิศให้เป็นสาธารณสมบัติตั้งแต่ปี 2016
- ความเข้ากันได้ถูกนิยามโดย การทำงานร่วมกันได้อย่างสมบูรณ์ กับอิมพลีเมนเทชันอ้างอิง
ตัวอย่างการใช้งาน
- rnsh: เซสชันรีโมตเชลล์บนพื้นฐาน Reticulum
- LXMF: โปรโตคอลส่งข้อความแบบกระจายศูนย์
- LXST: เฟรมเวิร์กสำหรับส่งเสียงและสัญญาณแบบเรียลไทม์
- Nomad Network: แพลตฟอร์มสื่อสารข้อความเข้ารหัสแบบ off-grid
- Sideband: แอป GUI ที่มีความสามารถด้านการส่งไฟล์, การโทรด้วยเสียง, และแผนที่
- MeshChat: ไคลเอนต์ LXMF แบบเว็บ รองรับการส่งภาพ, เสียง, และไฟล์
สื่อและอุปกรณ์ที่รองรับ
- ทำงานได้บนทุกสื่อที่รองรับ ช่องสัญญาณแบบ half-duplex ตั้งแต่ 5bps ขึ้นไป และ MTU ขนาด 500 ไบต์
- ใช้งานได้กับ LoRa, packet radio, WiFi, Ethernet, optical communication link เป็นต้น
- RNode เป็นอินเทอร์เฟซ LoRa สำหรับ Reticulum ซึ่งสามารถประกอบเองหรือซื้อแบบสำเร็จรูปได้
- สามารถผสมใช้งาน LoRa, packet radio และ WiFi บน Raspberry Pi เป็นต้น
อินเทอร์เฟซที่รองรับ
- รองรับ Ethernet, LoRa(RNode), packet radio TNC, KISS modem, serial device, TCP/UDP, stdio pipe เป็นต้น
- สามารถเพิ่ม โมดูลอินเทอร์เฟซแบบกำหนดเอง ได้ และยินดีรับ PR ที่ผ่านการพิสูจน์การใช้งานจริง
ประสิทธิภาพและสถานะ
- ช่วงประสิทธิภาพเป้าหมาย: 250bps~1Gbps ปัจจุบันอยู่ที่ประมาณ 150bps~500Mbps
- ฟังก์ชันโปรโตคอลแกนหลักถูกนำไปใช้อย่างสมบูรณ์ แล้ว และ API กับฟอร์แมตอยู่ในสถานะเสถียร
การบูตสแตรปการเชื่อมต่อ
- Reticulum เป็น เครือข่ายอิสระ ไม่ใช่ บริการแบบสมาชิก
- สามารถเชื่อมต่อเริ่มต้นผ่าน ไดเรกทอรี entrypoint สาธารณะ ที่ชุมชนเป็นผู้ดูแล
- ตัวอย่าง:
directory.rns.recipes, rmap.world
องค์ประกอบด้านคริปโตกราฟี
- ใช้ ชุดกุญแจ 512 บิตบนพื้นฐาน Curve25519, ลายเซ็น Ed25519, และการแลกเปลี่ยนกุญแจ X25519
- ใช้ HKDF, AES-256-CBC, HMAC-SHA256, SHA-256/512
- โดยค่าเริ่มต้นให้บริการผ่าน OpenSSL และ PyCA/cryptography
- มี อิมพลีเมนเทชัน Python ล้วน รวมอยู่ด้วย แต่ระดับการตรวจสอบความปลอดภัยยังต่ำ
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ฉันคลุกคลีกับ เครือข่าย Mesh ในคอมมูนิตี้หลายแห่งมาพอสมควร แต่ยังไม่เคยเห็นเครือข่ายขนาดใหญ่ที่ใช้งาน Reticulum จริง ๆ
เหตุผลหลักที่คอมมูนิตี้ไม่ค่อยเข้าร่วมคือโปรเจ็กต์นี้แทบจะขับเคลื่อนโดย นักพัฒนาเพียงคนเดียว ทำให้ประวัติการเปลี่ยนแปลงใน Git มีแต่คำอย่าง “Update”, “Better Version”, “Cleanup” จนแทบติดตามอะไรไม่ได้เลย
เขาระบุว่าจากนี้ไปจะมีเพียงอัปเดตเป็นครั้งคราวแบบคาดเดาไม่ได้ และจะ ไม่มีทั้งการซัพพอร์ตหรือการดูแลคอมมูนิตี้อีกต่อไป
สุดท้ายมันก็กลายเป็น โปรเจ็กต์โอเพนซอร์สของคนเดียวที่หมดไฟ อีกโปรเจ็กต์หนึ่ง
เป็นข้อความที่ให้ความรู้สึกเหมือนคำอำลา
Reticulum เป็น สแตกเครือข่ายเต็มรูปแบบระดับ production โดยมีการเข้ารหัสและความไม่ระบุตัวตนเป็นหัวใจสำคัญ
มันไม่ได้จำกัดแค่ LoRa แต่ เป็นอิสระจากเลเยอร์ขนส่ง
อย่างไรก็ตามมีปัญหาอยู่สองข้อ
น่าจะดีกว่าถ้าเป็นไลบรารีขนาดเล็กที่มี C API
แต่แอปอย่าง Columba ก็กำลังค่อย ๆ ปรับปรุงอยู่
ตอนนี้มีความพยายามราว 4 โปรเจ็กต์ในการสร้างเวอร์ชันภาษาระดับล่างอย่าง C++, Zig, Rust, Go
ในบรรดานั้น อิมพลีเมนเทชัน Rust ของ Beechat ดูสุกงอมที่สุด แต่แทบไม่มีตัวอย่างการใช้งานจริงเลย
“แนวทางแบบเก่า” คือการเชื่อถือ ไอคอนแม่กุญแจ ในเบราว์เซอร์ ส่วน “แนวทางแบบ Zen” คือการตรวจสอบ fingerprint ของแฮชด้วยตัวเอง
แต่แนวทางแบบนี้ UX แย่มาก
ขนาดฉันเป็นสายเทคนิคยังตั้งค่าได้ลำบาก แล้วผู้ใช้ทั่วไปจะใช้ได้อย่างไร
สุดท้ายถ้าอยากให้เข้าถึงคนหมู่มาก ก็ต้องมี ไอคอนแม่กุญแจสีเขียว นั่นแหละ
แปลกใจที่ไม่มีใครพูดถึงเลย ทั้งที่มีโปรโตคอลเราต์ชื่อ Yggdrasil อยู่
มันใช้แอดเดรสที่อิงกับคริปโต และทำงานได้ทั้งบน TCP/IP หรือ LoRa
ฉันใช้มันมาได้หลายสัปดาห์แล้วในฐานะ ตัวแทน Tailscale ซึ่งค่าหน่วงก็ใกล้เคียงกันและค่อนข้างเสถียรดี
เลยสงสัยว่ามันต่างจาก Reticulum อย่างไร
เว็บไซต์ทางการของ Yggdrasil
จริง ๆ สิ่งที่ฉันใส่ใจมากที่สุดคือ การรับประกันการส่งข้อความ
Reticulum ใช้ “Store and Forward” เป็น โหมดหลัก
ต่อให้ข้อความไม่ถูกส่งทันที พอมีการเชื่อมต่อในภายหลังก็จะถูกส่งต่อ
แต่ฉันสงสัยว่าเมื่อข้อความมาถึงไม่เรียงลำดับ ตัวไคลเอนต์มี เมทาดาทาที่เพียงพอสำหรับจัดเรียงได้ถูกต้อง หรือไม่
Reticulum ไปถึง เวอร์ชัน 1.0.0 แล้วและใช้งานได้ดีจริง
ถ้าจะเริ่มต้น ลองใช้ meshchat หรือ
Sideband สำหรับ Android ได้
แม้แต่ รูปภาพและแชตเสียง ผ่าน LoRa ก็ทำได้ และถ้าแบนด์วิดท์ไม่พอหรือลิงก์หลุด ระบบจะสลับไปใช้วิธีส่งแบบอื่นโดยอัตโนมัติ
สิ่งที่ทำให้ฉันสับสนคือ ไม่มีการเผยแพร่สเปกโปรโตคอลอย่างเป็นทางการ
ถ้าจะใช้กับชิปวิทยุอย่าง LoRa มันก็ควรต้องรันบนไมโครคอนโทรลเลอร์ได้ แต่เวอร์ชัน Python หรือ Rust std ใช้ในสภาพแวดล้อมแบบนั้นไม่ได้
ดูจากไลเซนส์แล้ว มันไม่ใช่ ซอฟต์แวร์เสรี อย่างสมบูรณ์
เพราะมีเงื่อนไขว่า “ห้ามก่ออันตรายต่อมนุษย์” และ “ห้ามใช้กับ AI”
ทั้งสามอย่างต้องการการจัดวางโหนดแบบมาสเตอร์–สเลฟที่มี โครงสร้าง multi-spanning tree คล้าย eBGP
ดูเหมือนว่าจะมีใครบางคนเป็นแฟนของ Anathem