Multi-Hop Onion Routing ในสถาปัตยกรรมกระจาย | คู่มือ dVPN
TL;DR
พื้นฐานของการเข้ารหัสแบบ Onion Routing ในโลก P2P
เคยสงสัยไหมว่าทำไม VPN "ส่วนตัว" ของคุณถึงให้ความรู้สึกเหมือนอยู่ในบ้านกระจก? หากคุณใช้เพียงเซิร์ฟเวอร์เดียว ผู้ให้บริการนั้นจะเห็นทุกสิ่งที่คุณทำ ซึ่งเป็นจุดบอดขนาดใหญ่เพียงจุดเดียว การ Routing แบบ Multi-Hop แก้ปัญหานี้โดยการส่งข้อมูลของคุณผ่านหลาย Nodes เพื่อไม่ให้ใครเห็นภาพรวมทั้งหมด
โดยพื้นฐานแล้ว แทนที่จะเป็นเส้นตรง การรับส่งข้อมูลของคุณจะเดินทางเป็นเส้นซิกแซก ซึ่งเป็นเรื่องปกติในเครือข่าย Mesh ที่ความครอบคลุมเกินกว่าระยะของ Node เดียว
- การเข้ารหัสแบบเป็นชั้น (Layered Encryption): แต่ละ Node (หรือ Hop) จะแกะ "หัวหอม" ออกเพียงชั้นเดียว โดยรู้เพียงว่า Packet มาจากไหนและกำลังจะไปที่ใดต่อไป
- ไม่จำเป็นต้องเชื่อถือศูนย์กลาง (No Central Trust): ในการตั้งค่าแบบ P2P คุณไม่ได้พึ่งพา Data Center ของบริษัทเดียว แต่คุณกำลังใช้เครือข่าย Nodes แบบกระจาย
- พลังงานและประสิทธิภาพ (Energy and Efficiency): ไม่ได้มีไว้เพื่อการซ่อนตัวเท่านั้น บางครั้งการกระโดดระหว่าง Radio Nodes ที่อยู่ใกล้กันนั้นประหยัดพลังงานมากกว่าการส่งสัญญาณไปยังเสาสัญญาณที่อยู่ไกล
ผมเคยเห็นบางคนพยายามทำสิ่งนี้ด้วยตัวเองโดยใช้ Nested Containers แต่สถาปัตยกรรมแบบกระจายอำนาจทำให้เป็นคุณสมบัติที่มีมาแต่เดิม เป็นเรื่องยากกว่ามากที่ใครจะติดตามคุณเมื่อเส้นทางเปลี่ยนแปลงอยู่ตลอดเวลา นี่คือจุดที่ DePIN (Decentralized Physical Infrastructure Networks หรือ เครือข่ายโครงสร้างพื้นฐานทางกายภาพแบบกระจายอำนาจ) เข้ามามีบทบาท ซึ่งโดยพื้นฐานแล้วก็คือการที่ผู้คนแบ่งปันฮาร์ดแวร์ของตนเพื่อสร้างเครือข่ายในโลกแห่งความเป็นจริง
ต่อไป เรามาดูในส่วนของ Crypto กัน...
การเข้ารหัสแบบหลายชั้นและ VPN แบบกระจายศูนย์
ลองนึกภาพการเข้ารหัสแบบหลายชั้นเหมือนตุ๊กตาแม่ลูกดกของรัสเซีย แต่เป็นสำหรับแพ็กเก็ตข้อมูลของคุณ เพื่อให้สิ่งนี้ทำงานได้โดยไม่ต้องเชื่อใจใคร ระบบจะใช้การจับมือ (handshake) แบบเข้ารหัสลับอสมมาตร ซึ่งมักจะเป็นอะไรบางอย่างเช่น Elliptic Curve Diffie-Hellman (ECDH) exchange ก่อนที่ข้อมูลใดๆ จะเคลื่อนที่ ไคลเอนต์ของคุณจะใช้คีย์สาธารณะของแต่ละโหนดเพื่อเจรจา "คีย์เซสชัน" ที่ไม่ซ้ำกันสำหรับทุกช่วง (hop) ด้วยวิธีนี้ คอมพิวเตอร์ของคุณจะห่อหุ้มข้อมูลด้วยการเข้ารหัสสามชั้นก่อนที่ข้อมูลจะออกจากบ้านของคุณด้วยซ้ำ โหนดแรกสามารถปลดล็อกชั้นนอกสุดเพื่อดูว่าจะส่งไปที่ใดต่อไป แต่ไม่สามารถเห็นข้อความจริงหรือปลายทางสุดท้ายได้
- คีย์เฉพาะช่วง (Hop-Specific Keys): ไคลเอนต์ของคุณจะเจรจาคีย์แยกต่างหากกับแต่ละรีเลย์ โหนดเริ่มต้นไม่สามารถเห็นสิ่งที่โหนดทางออกกำลังทำ
- ชุดนิรนาม (Anonymity Sets): โดยการผสมปริมาณการใช้งานของคุณกับผู้ใช้อื่นๆ อีกหลายพันคน ทำให้สตรีมแต่ละรายการเป็นไปไม่ได้ที่จะแยกแยะ
- ความหลากหลายของโหนด (Node Diversity): เนื่องจากสิ่งเหล่านี้ไม่ได้เป็นเจ้าของโดยบริษัทเดียว จึงไม่มี "สวิตช์หลัก" เพื่อบันทึกประวัติของคุณ
โดยปกติแล้วฉันจะบอกให้ผู้คนใช้ WireGuard เพื่อความเร็ว แม้ว่าสิ่งสำคัญคือต้องจำไว้ว่า WireGuard เป็นโปรโตคอล tunnel แบบจุดต่อจุด (point-to-point) มันไม่ได้ทำ multi-hop ด้วยตัวเองเหมือนที่ Tor ทำ หากต้องการนิรนามอย่างแท้จริง นักพัฒนาจะต้องห่อหุ้ม WireGuard ไว้ในเฟรมเวิร์กที่กำหนดเองซึ่งจัดการกับตรรกะ onion-routing หากคุณกำลังรันโหนดบนกล่อง linux คุณจะเห็น blobs ที่เข้ารหัสลับผ่านโดยไม่มีเบาะแสว่ามีอะไรอยู่ข้างใน
พื้นที่นี้เคลื่อนที่เร็วมาก โดยเฉพาะอย่างยิ่งกับตลาดแบนด์วิธที่ใช้บล็อกเชน โดยปกติแล้วฉันจะจับตาดูโครงการที่เปิดซอร์สการตรวจสอบความปลอดภัยของพวกเขา เพราะพูดตามตรง ถ้าฉันอ่านซอร์สโค้ดไม่ได้ ฉันก็ไม่เชื่อถือการอ้างสิทธิ์ความเป็นส่วนตัว
ต่อไป เราจะเจาะลึกว่าโหนดเหล่านี้ได้รับเงินสำหรับความยุ่งยากของพวกเขาได้อย่างไร...
สร้างแรงจูงใจให้เครือข่ายด้วยแบนด์วิธที่แปลงเป็นโทเค็น
ทำไมใครๆ ถึงจะเปิดคอมพิวเตอร์ทิ้งไว้ทั้งคืนเพื่อส่งต่อทราฟฟิกให้คนอื่น? สมัยก่อน คุณอาจทำเพื่อ "อุดมการณ์" แต่ตอนนี้เราใช้ แบนด์วิธที่แปลงเป็นโทเค็น เพื่อให้มันคุ้มค่ากับเวลาของคุณ มันก็เหมือนกับโมเดล Airbnb สำหรับท่ออินเทอร์เน็ตของคุณนั่นเอง
- การขุดแบนด์วิธ (Bandwidth Mining): คุณรันโหนด และเครือข่ายจะจ่ายเงินให้คุณเป็นคริปโต โดยอิงจากปริมาณข้อมูลที่คุณถ่ายทอดสำเร็จ
- Proof of Bandwidth: โปรโตคอลใช้ cryptographic challenges เพื่อพิสูจน์ว่าคุณไม่ได้โกหกเรื่องความเร็วของคุณ นี่เป็นสิ่งสำคัญอย่างยิ่งในการหยุด Sybil attacks ที่คนๆ เดียวพยายามสร้างโหนดปลอม 1,000 โหนดเพื่อควบคุมเครือข่าย การกำหนดให้มี "stake" หรือ proof of work ทำให้แฮกเกอร์ต้องเสียค่าใช้จ่ายสูงมากในการปลอมแปลงตัวตนจำนวนมาก
- การกำหนดราคาแบบไดนามิก (Dynamic Pricing): ในการแลกเปลี่ยนแบบกระจายอำนาจ หากโหนดในภูมิภาคที่มีการเซ็นเซอร์สูงออฟไลน์ รางวัลสำหรับโหนดใหม่ในภูมิภาคนั้นจะพุ่งสูงขึ้น
ผมเคยเห็นคนในวงการค้าปลีกและการเงินใช้สิ่งนี้เพื่อดึงข้อมูลโดยไม่ถูกบล็อก ต่อไป เราจะมาดูข้อดีข้อเสียและการใช้งานจริงในโลกแห่งความเป็นจริง
ข้อดีข้อเสียและการประยุกต์ใช้ในเครือข่าย DePIN
แน่นอนว่าการใช้หลายฮอป (Multi-hop) ไม่ใช่ยาวิเศษ ถ้าคุณส่งข้อมูลผ่านสามโหนดที่อยู่ทั่วโลก ค่า Ping ของคุณก็จะสูงขึ้นอย่างแน่นอน นี่คือข้อแลกเปลี่ยนแบบคลาสสิกที่คุณต้องเสียสละความเร็วเพื่อแลกกับอำนาจอธิปไตยทางดิจิทัลที่แท้จริง
แต่ละ "ฮอป" ที่เพิ่มเข้ามาจะเพิ่มความล่าช้าในระดับมิลลิวินาทีเนื่องจากค่าใช้จ่ายในการเข้ารหัสและระยะทางทางกายภาพ แม้ว่า WireGuard จะรวดเร็ว แต่เดิมทีไม่ได้สร้างขึ้นสำหรับการกำหนดเส้นทางแบบ Onion (Onion Routing) เพื่อแก้ไขปัญหานี้ โครงการ DePIN ยุคใหม่จึงกำลังปรับปรุงการเลือกโหนดโดยพิจารณาจากความใกล้ชิด หรือใช้โปรโตคอลเช่น Sphinx เพื่อให้ขนาดแพ็กเก็ตสม่ำเสมอ เพื่อไม่ให้ใครสามารถเดาได้ว่ามีอะไรอยู่ข้างในจากเวลา
การประยุกต์ใช้ในโลกแห่งความเป็นจริง:
- การดูแลสุขภาพ: การแบ่งปันบันทึกผู้ป่วยระหว่างคลินิกอย่างปลอดภัยโดยไม่มีการรั่วไหลของฐานข้อมูลกลาง
- ค้าปลีก: ป้องกันไม่ให้คู่แข่งติดตามการขูดข้อมูลสินค้าคงคลังผ่านการหมุนเวียน IP แบบกระจาย
- การเงิน: ผู้ค้าความถี่สูงใช้เครือข่าย Mesh เพื่อหลีกเลี่ยงปัญหาคอขวดของการแลกเปลี่ยนแบบรวมศูนย์
ชัยชนะที่แท้จริงคือการทำให้เครือข่ายเป็นไปไม่ได้ที่จะถูกทำลาย เนื่องจากไม่มี CEO หรือ API ส่วนกลางที่จะถูกหมายเรียก เครือข่าย ISP ทางเลือกแบบกระจายอำนาจจึงยังคงทำงานได้แม้ว่ารัฐบาลจะพยายามดึงปลั๊กออก
พูดตามตรง เรากำลังสร้างเว็บที่มีความยืดหยุ่นมากขึ้น ที่อาจจะยุ่งเหยิงหน่อย แต่ก็เป็นของเรา