
Orb ถูกสร้างขึ้นเพื่อให้บุคคลสามารถพิสูจน์ความเป็นมนุษย์ของพวกเขาออนไลน์ด้วยความเป็นส่วนตัวและความปลอดภัยสูงสุด ตอนนี้ องค์ประกอบหลักของซอฟต์แวร์ของ Orb มีอยู่อย่างเปิดเผยบน GitHub ภายใต้ใบอนุญาตคู่ MIT/Apache 2.0 สำหรับบริบทเพิ่มเติมเกี่ยวกับเหตุผลที่การโอเพ่นซอร์ส Orb มีความสำคัญ โปรดดู ส่วนฮาร์ดแวร์ ของ Worldcoin Tech Tree
ส่วนประกอบใหม่เหล่านี้สนับสนุนฮาร์ดแวร์และระบบการจดจำม่านตาที่เคยปล่อยออกมาก่อนหน้านี้ และการเปิดตัวในที่สาธารณะนี้ถือเป็นความก้าวหน้าที่สำคัญในการทำให้กระบวนการประมวลผลภาพของ Orb มีความโปร่งใสและการอ้างสิทธิ์เกี่ยวกับความเป็นส่วนตัวสามารถตรวจสอบได้ การปล่อยวันนี้รวมถึงโค้ดทั้งหมดใน Orb ที่จำเป็นสำหรับการจับภาพและการส่งภาพไปยัง World App อย่างปลอดภัย[1].
โพสต์นี้ทบทวนข้อกำหนดการออกแบบของซอฟต์แวร์ Orb เน้นรายละเอียดการดำเนินการที่สำคัญ และมองไปข้างหน้าในอนาคตของมัน
หากคุณสนใจที่จะทำงานกับซอฟต์แวร์ของ Orb ดูบทบาทที่เปิดรับที่ผู้ร่วมโครงการ Tools for Humanity ที่นี่
ภาพรวมของซอฟต์แวร์ Orb
ข้อกำหนดระดับสูงสุด
Orb มอบระดับการยืนยันที่สูงที่สุดสำหรับ World ID เพื่อแยกแยะมนุษย์จาก AI[2]. มันทำอย่างนี้โดยการตรวจสอบก่อนว่าถือครอง World ID นั้นเป็นมนุษย์โดยใช่ภาพตาและใบหน้า. ถ้าการตรวจสอบนี้ผ่าน Orb จะทำการกระบวนการตรวจสอบม่านตาและส่งรหัสม่านตาที่ได้ไปยังบริการที่ยืนยันความเป็นหนึ่งเดียวของบุคคล. กระบวนการนี้เสร็จสิ้นในไม่กี่วินาที. สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการใช้ World ID ที่ยืนยันโดย Orb โปรดดูที่นี่.

กรณีการใช้งานเดียวของ Orb ในการตรวจสอบความเป็นมนุษย์นำไปสู่ข้อกำหนดระดับสูงต่อไปนี้ ซึ่งไม่เคยมีมาก่อนสำหรับอุปกรณ์ชีวมาตร:
- ความเป็นส่วนตัว: ระหว่างการตรวจสอบ World ID, Orb ต้องประมวลผลภาพในอุปกรณ์ในเครื่องและจากนั้นโอนย้ายอย่างปลอดภัยไปยัง การครอบครองของผู้ใช้. นี่กำจัดความต้องการใด ๆ สำหรับการจัดเก็บภาพบน Orb หรืออัปโหลดไปยังแบ็กเอนด์ศูนย์กลางเพื่อประมวลผล[3].
- ความปลอดภัย: โปรโตคอลของ Worldcoin คาดหวังว่า Orbs จะตรวจสอบเฉพาะ World IDs ของมนุษย์จริงๆ เท่านั้น. นี่หมายความว่า Orb ต้องมีความต่อต้านสูงต่อการปลอมตัวและการดัดแปลง แม้แต่ในสภาพแวดล้อมที่เป็นศัตรู[4]. อุปกรณ์ที่ถูกแก้ไขหรือลอกเลียนแบบต้องถูกปฏิเสธโดยโปรโตคอล.
- ความโปร่งใส & ความสามารถในการตรวจสอบได้: Orb ต้องถูกออกแบบให้ต้องการความไว้วางใจน้อยที่สุดในผู้ผลิตและผู้ดำเนินการ. ต้องมีวิธีสำหรับสาธารณะในการตรวจสอบ Orbs รวมถึงการตรวจสอบสภาพของซอฟต์แวร์และคีย์การเข้ารหัส. ดู ส่วนไวท์เปเปอร์ที่เกี่ยวข้อง สำหรับรายละเอียดเพิ่มเติม.
ข้อกำหนดเหล่านี้เป็นตัวกำหนดการออกแบบของ Orb และส่งผลกระทบต่อทุกด้านของซอฟต์แวร์แทบทั้งหมด.

สแต็คคอมพิวต์ของ Orb
Tools for Humanity (TFH), ผู้มีส่วนร่วมในโครงการ Worldcoin, ใช้เวลาหลายปีในการสร้างสิ่งแวดล้อมการประมวลผลที่ปลอดภัยและทรงพลังสำหรับ Orb. การออกแบบมุ่งเน้นไปที่ NVIDIA Jetson ซึ่งประมวลผลสตรีมกล้องห้าตัวของ Orb ในเครื่องเพื่อยืนยัน World ID ในไม่กี่วินาที แต่ละ Orb ยังมี Arm Cortex M4 ไมโครคอนโทรลเลอร์สองตัว (รัน Zephyr RTOS) เพื่อจัดการสิ่งต่างๆ เช่น การจัดการพลังงาน การควบคุมแบบเรียลไทม์ และการตรวจจับการงัดแงะ สุดท้ายนี้ แต่ละ Orb มี secure element โดยเฉพาะ ซึ่งเหมือนกับ hardware wallet ที่เก็บกุญแจลงนามส่วนตัวในตัวเรือนที่ทนทานต่อการงัดแงะ
Orb รันหลายแอปพลิเคชัน Rust บน Jetson โดยใช้ async Rust อย่างหนัก แอปพลิเคชันเหล่านี้จัดการฟังก์ชันสำคัญ เช่น การประมวลผลข้อมูลเซ็นเซอร์ การเชื่อมต่อกับเครือข่ายประสาท และการอัปเดตระบบ สำหรับการทำนายผ่านเครือข่ายประสาท Orb ใช้เครื่องยนต์ NVIDIA’s TensorRT เพื่อใช้ประโยชน์เต็มที่จาก GPU 384-core ของ Jetson.
การรวมทั้งหมดนี้เข้าด้วยกันคือระบบปฏิบัติการ Orb OS[5]: ระบบปฏิบัติการ GNU/Linux แบบกำหนดเองที่อ้างอิงจาก Debian และ Ubuntu ซึ่งถูกปรับแต่งเพื่อความปลอดภัย Orb OS ประกอบด้วย การตรวจสอบความสมบูรณ์ของระบบทั้งหมด การปรับแต่งการตั้งค่า Linux ให้ปลอดภัย ระบบอัปเดตผ่านอากาศที่แข็งแกร่ง และการสนับสนุนสำหรับ การสร้างซ้ำได้. สำหรับการดำเนินการคริปโตกราฟฟิกที่สำคัญ (เช่น การรับรองไปยัง backend) Orb OS สื่อสารกับสภาพแวดล้อมการประมวลผลที่เชื่อถือได้ (TEE) บน Jetson รวมถึงองค์ประกอบความปลอดภัยเฉพาะ
การทัวร์ของโค้ด
หนึ่งในองค์ประกอบสำคัญของซอฟต์แวร์ของ Orb ที่ได้เผยแพร่วันนี้คือ do_signup function ใน orb-core, ซึ่งเข้ารหัสการไหลระดับสูงของ Orb สำหรับการตรวจสอบ World ID แต่ละครั้ง ฟังก์ชันนี้เรียก ระยะถ่ายภาพ และ ระยะประมวลผลไบโอเมตริกส์ จากนั้น ส่งไปยัง iris code ที่ลงนามแล้ว ไปยังบริการความเป็นเอกลักษณ์ นอกจากนี้, do_signup เรียกใช้ upload_custody_images เพื่อส่งภาพของผู้ใช้ไปยัง World App อย่างปลอดภัย
การจับภาพ
ในเวลาไม่กี่วินาที ระบบออปติกขั้นสูงของ Orb สามารถสร้างภาพตาและใบหน้าคุณภาพสูงได้อย่างเชื่อถือได้ ฟังก์ชันหลักนี้ได้รับการสนับสนุนโดยซอฟต์แวร์และเครือข่ายประสาทเทียมแบบกำหนดเองที่ทำงานร่วมกันเพื่อใช้งาน การตรวจจับใบหน้า, การติดตามตา, การโฟกัสอัตโนมัติ และ การเปิดรับแสงอัตโนมัติ
การโฟกัสอัตโนมัติเป็นส่วนที่ยากที่สุดส่วนหนึ่งของระบบถ่ายภาพในการนำไปใช้ มันควบคุม เลนส์ของเหลวที่สร้างขึ้นเพื่อวัตถุประสงค์ เพื่อค้นหาภาพที่ชัดเจนของดวงตาของบุคคลอย่างรวดเร็ว การใช้งาน Rust ประกอบด้วย คอนโทรลเลอร์ฟีดแบ็ค, โดยมีการประมาณความคมชัดที่จัดหาโดย เครือข่ายเส้นประสาทแบบเรียลไทม์. เอาต์พุตการควบคุมจะ ถูกส่งจาก Jetson ไปยัง ไมโครคอนโทรลเลอร์, ซึ่งทำการ วนรอบควบคุมภายใน เพื่อขับเคลื่อนกระแสไฟฟ้าไปยังเลนส์[6].
การดูตัวอย่างในวงวนควบคุมการตอบสนองภายนอกสำหรับการหาค่าความคมชัดที่สุด.

ระบบออโต้โฟกัสสั่งให้ออพของเลนส์น้ำที่สร้างมาเฉพาะหาภาพม่านตาที่คมชัดได้อย่างรวดเร็ว.
การประมวลผลภาพ
เมื่อออพได้สร้าง ภาพตาและใบหน้าด้วยคุณภาพที่เพียงพอ พวกมันจะ ถูกส่งต่อไปยัง สายงานไบโอเมตริกซ์. สายงานนี้มีเป้าหมายสองประการ: ตรวจสอบว่าภาพนั้นเป็นของแท้[7] และสร้างรหัสม่านตา. ทั้งสองอย่างถูกจัดการโดยอินเทอร์เฟซ Pythonให้กับเครือข่ายประสาทที่สร้างเอง, รวมถึงการดำเนินการด้วยGabor filter.
ภาพตาคุณภาพสูงจากเฟสก่อนหน้าได้ถูก ส่งผ่าน ไปยัง ระบบการอนุมานการจดจำม่านตา (IRIS) การ implemente ระดับสูงนี้ถูกพัฒนาโดย TFH และภายหลังได้ถูก เปิดซอร์ส โดยมูลนิธิ Worldcoin Foundation โค้ดภาษา Rust ได้รับการปรับปรุงให้สามารถ รัน IRIS และโมเดลขนาดใหญ่อื่น ๆ ในหน่วยความจำ ตลอดเวลา เพื่อหลีกเลี่ยงความล่าช้าจากการโหลดส่วนประกอบขนาดใหญ่เหล่านี้ซ้ำ วิธีนี้เกิดขึ้นได้ด้วยการออกแบบที่ได้รับแรงบันดาลใจจาก กระบวนการ Zygote ของ Android ซึ่งช่วยหลีกเลี่ยงการโหลดสำเนาที่ไม่จำเป็นของการพึ่งพาที่แชร์กัน (เช่น CUDA)
ความเป็นส่วนตัวและความปลอดภัย
ความเป็นส่วนตัวและความปลอดภัยเป็นสิ่งที่ให้ความสำคัญเสมอเมื่อสร้าง Orb การอ้างสิทธิ์ความเป็นส่วนตัวของ Orb[8] เป็นจุดสนใจของการตรวจสอบแบบกล่องขาวโดย Trail of Bits, ซึ่งถูก เผยแพร่เมื่อไม่นานมานี้. การตรวจสอบเพิ่มเติมกำลังดำเนินการและเมื่อรวมกับการเปิดเผย(source code) จะสะท้อนถึงเป้าหมายของมูลนิธิในการรักษาระดับความโปร่งใสสูงในเรื่องความเป็นส่วนตัวและความปลอดภัยอย่างต่อเนื่อง.
ขั้นตอนวิกฤติทางความเป็นส่วนตัวขั้นหนึ่งคือการส่งข้อมูลแต่ละบุคคลจาก Orb ไปยัง World App สำหรับฟีเจอร์ที่เรียกว่า "Personal Custody". บุคคลสามารถใช้ข้อมูลที่ตนเองเก็บดูแลด้วยตนเองนี้ได้, เช่น สำหรับ Face Authentication ใน World App. มองไปข้างหน้า, ฟีเจอร์นี้อาจลดความถี่ที่ผู้ใช้งานจำเป็นต้องกลับไปที่ Orb เพื่อยืนยันตัวตน World ID ของพวกเขาอีกครั้ง.
การใช้งานบน Orbจะทำให้แน่ใจได้ว่าแต่ละคนสามารถควบคุมข้อมูลของตนเองได้เสมอ แต่ละชุดข้อมูลถูกเซ็นชื่อด้วยกุญแจส่วนตัวของ Orb จากนั้นเข้ารหัสด้วยกุญแจสาธารณะที่ผู้ใช้ให้มา[9][10] ก่อนที่จะถูกถ่ายโอนไปยังโทรศัพท์มือถือของผู้ใช้ การเซ็นชื่อจะทำโดยเดดิเคเต็ดอีลีเมนต์ที่ปลอดภัยซึ่งถูกจับคู่กับ Jetson โดยการเข้ารหัสในระหว่างการผลิต[11]. การการนำการเข้ารหัสไปใช้งานใช้กล่องปิดผนึกเพื่อให้มั่นใจได้ว่ามีเพียงบุคคลเดียวเท่านั้นที่สามารถถอดรหัสข้อมูลไบโอเมตริกนี้[12]. เมื่อข้อมูลที่เข้ารหัสถูกส่งจาก Orb ไปยัง World App ของบุคคลนั้น จะไม่มีสำเนาข้อมูลที่ไม่เข้ารหัสอยู่ที่ใดๆ.
มองไปข้างหน้า: ความโปร่งใสและการตรวจสอบได้
การเปิดตัวครั้งแรกของซอฟต์แวร์ Orb เป็นขั้นตอนสำคัญต่อเป้าหมาย[13] ของการปรับปรุงความโปร่งใสและการตรวจสอบของ Orb. สำหรับขั้นตอนต่อไป มูลนิธิ Worldcoin และชุมชน Worldcoin ที่กว้างขวางมีเป้าหมายที่จะมุ่งเน้นไปที่ด้านต่อไปนี้ที่เกี่ยวข้องกับซอฟต์แวร์ Orb:
- การพัฒนาแบบเปิดสูงสุด. ส่วนประกอบส่วนใหญ่ที่ปล่อยออกมาในวันนี้มีการพัฒนาแบบเปิดในที่เก็บข้อมูลสาธารณะของพวกเขาแล้ว อย่างไรก็ตาม ส่วนประกอบบางส่วน (โดยเฉพาะ orb-core และ orb-secure-element) ถูกปล่อยออกมาเป็น fork ของเวอร์ชันภายใน โดยที่มีการลบโค้ดที่ละเอียดอ่อน[14] ด้วยตนเอง เพื่อให้สอดคล้องกับภารกิจของโปรโตคอล เป้าหมายของชุมชนคือการกำจัดความแตกต่างนี้และย้ายโค้ดที่ไม่ละเอียดอ่อนไปสู่การพัฒนาแบบเปิด
- ส่วนประกอบที่ไม่เชื่อถือและไม่เปิดเผยซอร์สโค้ด เพื่อลดความจำเป็นในการเชื่อถือส่วนประกอบที่ไม่เปิดเผยซอร์สโค้ด พวกเขาถูกเรียกใช้ใน "sandbox" เพื่อจำกัดการเข้าถึงระบบของพวกเขา การกำหนดค่า sandbox ในปัจจุบัน กำลังได้รับการปรับปรุงอย่างแข็งขันเพื่อป้องกันไม่ให้โมเดล ML ทั้งหมดเข้าถึงเครือข่ายและการเก็บข้อมูลถาวร ที่สำคัญคือการนำไปใช้ใน sandbox เองเป็นแบบโอเพนซอร์ส
- สนับสนุนการตรวจสอบแบบกระจายอำนาจ. The Worldcoin Tech Tree รวมถึงการสนับสนุนการรับรองคุณสมบัติของ Orbs เฉพาะ เช่น ซอฟต์แวร์ที่พวกเขากำลังใช้งาน ใครก็ตามควรสามารถทำการรับรองเหล่านี้และเปิดเผยผลลัพธ์ได้ โครงสร้างพื้นฐานนี้จำเป็นสำหรับการลดความไว้วางใจในการจัดหา Orb โครงการวิศวกรรมหลายโครงการ กำลังดำเนินการเพื่อสนับสนุนการรับรองดังกล่าว รวมถึงการรายงานเวอร์ชันที่ปลอดภัยและการสร้างซ้ำที่สามารถสาธารณะได้
สุดท้าย ส่วนประกอบเหล่านี้มุ่งมั่นที่จะช่วยนำความปลอดภัย ความเป็นส่วนตัว และความโปร่งใสมาสู่โครงการอื่น ๆ โดยเฉพาะอย่างยิ่งผู้ที่ใช้การเรียนรู้ของเครื่องบนอุปกรณ์ปลายทาง ตัวอย่างเช่น สภาพแวดล้อมการเรียนรู้ที่ใช้ AI (เช่น อันนี้) มาพร้อมกับความท้าทายด้านความเป็นส่วนตัวของข้อมูลที่คล้ายกับ Orb. เป็นความหวังของ Worldcoin Foundation ว่าชุมชนจะช่วยในการทำให้โลกที่ขับเคลื่อนด้วย AI ปลอดภัย โดยปรับปรุงส่วนประกอบที่เปิดแหล่งที่มาในวันนี้อย่างต่อเนื่อง เพื่อมอบประโยชน์สูงสุดให้กับโครงการอื่นๆ.
รายละเอียดการปล่อย
องค์ประกอบที่มีอยู่ในวันนี้
ชื่อส่วนประกอบ | คำอธิบาย |
---|---|
orb-core | แอปพลิเคชันหลักบน Orb ซึ่งรวมถึงกระบวนการตรวจสอบ World ID. การปล่อยวันนี้เป็นการทำซ้ำของเวอร์ชันภายใน โดยการตรวจสอบการฉ้อโกงถูกนำออกไป. |
orb-attest | ใช้ส่วนประกอบที่ปลอดภัยเพื่อสร้างโทเค็นการยืนยันตัวตนชั่วคราวสำหรับการสื่อสารกับ backend |
orb-secure-element | อินเทอร์เฟซไปยังส่วนประกอบที่ปลอดภัยเฉพาะทาง |
orb-firmware | เฟิร์มแวร์ที่ทำงานบน MCU หลักของ Orb |
orb-messages | คำจำกัดความของ Protobuf สำหรับการสื่อสารกับ MCU หลัก |
orb-ui | จัดการแสงและเสียงบน Orb |
orb-can | wrapper ของ Rust สำหรับใช้ CAN บน Linux |
orb-security-utils | ไลบรารีสำหรับงานที่มีความอ่อนไหวต่อความปลอดภัยใน Rust |
orb-backend-state | รับสถานะของ Orb จาก backend ปัจจุบันยังไม่ได้ใช้. |
orb-slot-ctrl | จัดการช่องบูตของ Orb ผ่านทาง ตัวแปร EFI. |
seek-camera | แรปเปอร์ Safe Rust สำหรับกล้องถ่ายภาพความร้อน. |
thermal-cam-util | เครื่องมืออรรถประโยชน์สำหรับการจัดการกล้องถ่ายภาพความร้อน. |
งานในอนาคต
ชื่อส่วนประกอบ | คำอธิบาย |
---|---|
orb-core | แอปพลิเคชันหลักบน Orb ซึ่งรวมถึงกระบวนการตรวจสอบ World ID. อินเตอร์เฟซกับเส้นทางโค้ดส่วนตัวคาดว่าจะถูกทำให้ชัดเจน. โค้ดที่ไม่ใช่ส่วนตัวคาดว่าจะย้ายไปยังการพัฒนาเปิด. |
orb-os | สร้างสคริปต์สำหรับ Orb OS. สคริปต์เหล่านี้รวมถึงภาพคอนเทนเนอร์ที่สามารถเรียกใช้งานได้คาดว่าจะเผยแพร่ คาดว่าส่วนประกอบที่อ่อนไหวต่อความปลอดภัยจะถูกลบออกจากภาพสาธารณะ |
ตัวแทนออกอัปเดตออร์บ | รับผิดชอบในการดำเนินการอัปเดตแบบ over-the-air (OTA) |
ออบ-ซูเปอร์ไวเซอร์ | ประสานงานบริการที่กำหนดเองอื่น ๆ บนออร์บ |
ออบ-ทรัสต์โซน | โค้ดที่ทำงานในสภาพแวดล้อมที่มีการดำเนินการที่เชื่อถือได้ของ Jetson (TEE) |
ออบ-อัปเดต-เวอริฟายเออร์ | ล็อคการอัปเดตหากประสบความสำเร็จ |
References
- 1.
- 2.สำหรับภาพรวมทั่วไปเกี่ยวกับความจำเป็นในการพิสูจน์ความเป็นมนุษย์ ดูได้จาก บทความบล็อกล่าสุดของ Vitalik Buterin.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.คีย์สาธารณะของบุคคลจะถูกส่งจาก World App ไปยัง Orb ผ่านโครงสร้างพื้นฐานของเบ็คเอนด์ แบคเอนด์ไม่จำเป็นต้องได้รับความไว้วางใจ เพราะแฮชของคีย์สาธารณะถูกส่งไปยัง Orb โดยตรงผ่านรหัส QR ซึ่งถูกใช้ในการ ยืนยัน คีย์ก่อนที่จะถูกใช้.
- 10.คีย์สาธารณะนี้ถูกสร้างโดย World App และใช้สำหรับการเข้ารหัสข้อมูลการคุ้มครองส่วนบุคคลเท่านั้น รายละเอียดเพิ่มเติมระบุไว้ ที่นี่.
- 11.รายละเอียดเกี่ยวกับการกระจายอำนาจเพิ่มเติมของกระบวนการนี้สามารถพบได้ ที่นี่.
- 12.
- 13.ดูหัวข้อ “Oracles: Orbs” ใน Advancing Decentralization.
- 14.
ข้อจำกัดความรับผิดชอบ
เนื้อหาข้างต้นกล่าวถึง ณ วันที่ที่ระบุไว้เท่านั้น นอกจากนี้ยังมีความเสี่ยง ความไม่แน่นอน และสมมุติฐานต่าง ๆ ที่อาจทำให้ข้อมูลไม่ถูกต้อง และอาจเปลี่ยนแปลงได้โดยไม่แจ้งให้ทราบล่วงหน้า สามารถอ่านคำชี้แจงที่สำคัญฉบับเต็มได้ในเงื่อนไขการใช้งาน และอ่านข้อมูลผู้ใช้ที่สำคัญได้ในหน้าความเสี่ยงของเรา