Worldcoin Foundation menyediakan sumber terbuka untuk komponen inti dari perangkat lunak Orb

Mar 22, 2024 6 Minute Read

Orb dibangun untuk memberi individu cara untuk membuktikan kehumanan mereka secara online dengan privasi dan keamanan maksimal. Sekarang, komponen inti dari perangkat lunak Orb tersedia secara publik di GitHub di bawah lisensi ganda MIT/Apache 2.0. Untuk konteks lebih lanjut tentang mengapa open source pada Orb penting, lihat bagian perangkat keras dari Worldcoin Tech Tree.

Komponen-komponen terbuka baru ini melengkapi perangkat keras dan pengakuan iris yang sebelumnya telah dirilis, dan ketersediaan publiknya menandai kemajuan signifikan dalam membuat pemrosesan gambar Orb menjadi transparan dan klaim privasinya dapat diverifikasi. Rilis hari ini mencakup semua kode pada Orb yang penting untuk menangkap gambar dan mentransfernya dengan aman ke World App[1].

Postingan ini mengulas persyaratan desain perangkat lunak Orb, menyoroti detail implementasi kunci, dan melihat ke masa depannya.

Jika Anda tertarik untuk mengerjakan perangkat lunak Orb, lihat peran terbuka di kontributor proyek Tools for Humanity di sini.

Gambaran umum perangkat lunak Orb

Persyaratan tingkat tinggi

Orb menyediakan tingkat verifikasi tertinggi untuk World ID guna membedakan manusia dari AI[2]. Hal ini dilakukan dengan terlebih dahulu memeriksa bahwa pemegang World ID adalah manusia menggunakan gambar mata dan wajah. Jika pemeriksaan kemanusiaan ini lolos, Orb kemudian melakukan proses verifikasi iris dan mengirimkan kode iris yang dihasilkan ke layanan yang memverifikasi keunikan orang tersebut. Proses ini diselesaikan dalam beberapa detik. Untuk informasi lebih lanjut tentang bagaimana World ID yang diverifikasi oleh Orb dapat digunakan, lihat di sini

Figure

Satu-satunya kasus penggunaan Orb untuk memverifikasi ke-manusia-an mengarah pada persyaratan tingkat atas berikut, yang belum pernah terjadi sebelumnya untuk perangkat biometrik:

  1. Privasi: Saat verifikasi World ID, Orb harus memproses gambar secara lokal di perangkat dan kemudian mentransfernya dengan aman ke penjagaan pengguna. Ini menghilangkan persyaratan untuk menyimpan gambar di Orb atau mengunggahnya ke backend pusat untuk pemrosesan[3].
  2. Keamanan: Protokol Worldcoin mengharapkan Orbs hanya memverifikasi World ID dari manusia asli. Ini berarti Orb harus sangat tahan terhadap spoofing dan perusakan, bahkan di lingkungan yang bermusuhan[4]. Perangkat yang dimodifikasi atau dipalsukan harus ditolak oleh protokol. 
  3. Transparansi & Verifikasi: Orb harus dirancang untuk memerlukan kepercayaan minimal pada produsennya dan operatornya. Harus ada cara bagi publik untuk mengaudit Orbs, termasuk memeriksa keadaan perangkat lunak dan kunci kriptografi. Lihat bagian whitepaper yang relevan untuk lebih jelasnya.

Persyaratan ini mendorong desain Orb dan mempengaruhi hampir semua aspek perangkat lunaknya.

Figure

Tumpukan komputasi Orb

Tools for Humanity (TFH), kontributor dari proyek Worldcoin, telah menghabiskan bertahun-tahun membangun lingkungan komputasi yang aman dan kuat untuk Orb. Desainnya berpusat di sekitar NVIDIA Jetson, yang memproses secara lokal lima aliran kamera Orb untuk memverifikasi World ID dalam hitungan detik. Setiap Orb juga memiliki dua Arm Cortex M4 mikrokontroler (menjalankan Zephyr RTOS) untuk menangani hal-hal seperti manajemen daya, kontrol waktu nyata, dan deteksi gangguan. Akhirnya, setiap Orb memiliki secure element khusus yang, seperti hardware wallet, menyimpan kunci tanda tangan pribadi dalam wadah tahan gangguan.

Orb menjalankan beberapa aplikasi Rust di Jetson, dengan penggunaan async Rust yang intensif. Aplikasi-aplikasi ini menangani fungsi inti seperti pemrosesan data sensor, berinteraksi dengan jaringan neural, dan menerapkan pembaruan sistem. Untuk inferensi jaringan neural, Orb menggunakan TensorRT dari NVIDIA untuk sepenuhnya memanfaatkan GPU 384-core Jetson

Mengikat semua ini bersama-sama adalah Orb OS[5]: distribusi GNU/Linux kustom berdasarkan Debian dan Ubuntu, dioptimalkan untuk keamanan. Orb OS mencakup pemeriksaan integritas sistem penuh, konfigurasi Linux yang diperkeras keamanan, sistem pembaruan over-the-air yang kuat dan dukungan untuk pembangunan yang dapat direproduksi. Untuk operasi kriptografi yang kritis (misalnya autentikasi ke backend), Orb OS berkomunikasi dengan lingkungan eksekusi yang terpercaya (TEE) di Jetson serta elemen aman yang didedikasikan. 

Tur kode

Di antara komponen utama perangkat lunak Orb yang dirilis hari ini adalah fungsi do_signup dalam orb-core, yang mengkode alur tingkat tinggi Orb untuk setiap verifikasi World ID. Fungsi ini memanggil fase pengambilan gambar dan fase pemrosesan biometrik, kemudian mengirimkan kode iris yang ditandatangani ke layanan keunikan. Selain itu, do_signup memanggil upload_custody_images untuk mengirimkan gambar pengguna dengan aman ke World App mereka.

Penangkapan gambar

Dalam hitungan detik, sistem optik canggih Orb dapat dengan andal menciptakan gambar mata dan wajah berkualitas tinggi. Fungsi inti ini diaktifkan oleh perangkat lunak khusus dan jaringan neural yang bekerja sama untuk mengimplementasikan deteksi wajah, pelacakan mata, autofokus dan kompensasi pencahayaan otomatis.

Autofokus adalah salah satu bagian tersulit dari sistem pencitraan untuk diimplementasikan. Ini mengontrol lensa cairan yang dirancang khusus untuk dengan cepat menemukan gambar tajam dari mata seseorang. Implementasi Rust mengandung pengendali umpan balik, dengan perkiraan ketajaman yang disediakan oleh jaringan saraf waktu nyata. Output kontrol dikirim dari Jetson ke mikrokontroler, yang mengimplementasikan loop kontrol bagian dalam untuk mengarahkan arus listrik ke lensa[6].

Mengintip ke dalam loop kontrol umpan balik luar untuk menemukan nilai fokus paling tajam.

Figure

Autofokus memerintah lensa cair khusus Orb untuk dengan cepat menemukan gambar iris yang tajam.

Pemrosesan gambar

Setelah Orb membuat gambar mata dan wajah dengan kualitas yang memadai, gambar tersebut dikirimkan ke pipeline biometrik. Pipeline ini memiliki dua tujuan: memeriksa bahwa gambar tersebut autentik[7] dan menghasilkan kode iris. Keduanya ditangani oleh antarmuka Python ke jaringan neural khusus, serta implementasi filter Gabor.

Gambar mata berkualitas tinggi dari fase sebelumnya dikirimkan ke Sistem Inferensi Pengenalan Iris (IRIS). Implementasi canggih ini dibangun oleh TFH dan kemudian dibuka sumberkan oleh Worldcoin Foundation. Kode Rust dioptimalkan untuk selalu menjaga IRIS dan model besar lainnya dalam memori, menghindari overhead dari pemuatan ulang komponen besar ini secara berkala. Ini dicapai dengan desain yang terinspirasi oleh proses Zygote Android, yang menghindari pemuatan salinan berlebih dari dependensi bersama (seperti CUDA).

Privasi dan keamanan

Privasi dan keamanan selalu menjadi prioritas utama saat membangun Orb. Klaim privasi Orb[8] menjadi fokus audit white-box oleh Trail of Bits, yang baru-baru ini diterbitkan. Audit lebih lanjut sedang berlangsung dan, dikombinasikan dengan sumber terbuka, mencerminkan tujuan Yayasan untuk mempertahankan tingkat transparansi yang terus menerus tinggi seputar privasi dan keamanan.

Satu langkah penting terkait privasi adalah mengirim data individu dari Orb ke World App untuk fitur yang disebut "Personal Custody". Individu dapat menggunakan data yang mereka kelola sendiri ini, misalnya, untuk Face Authentication di World App. Ke depan, fitur ini mungkin juga akan mengurangi frekuensi di mana pengguna perlu kembali ke Orb untuk memverifikasi ulang World ID mereka.

Implementasi pada Orb memastikan individu selalu mengontrol data mereka. Setiap paket data ditandatangani dengan kunci pribadi Orb, lalu dienkripsi dengan kunci publik yang disediakan pengguna[9][10] sebelum dipindahkan ke ponsel individu. Penandatanganan dilakukan oleh elemen aman khusus, yang dipasangkan secara kriptografis ke Jetson selama pembuatan[11]. Implementasi enkripsi menggunakan sealed box untuk memastikan hanya individu yang dapat mendekripsi data biometrik ini[12]. Begitu data terenkripsi dikirim dari Orb ke World App milik individu, tidak ada salinan data tidak terenkripsi yang ada di mana pun. 

Melihat ke depan: transparansi dan verifiabilitas

Rilis awal perangkat lunak Orb ini adalah langkah penting menuju tujuan[13] untuk meningkatkan transparansi dan verifikasi Orb. Untuk langkah selanjutnya, Worldcoin Foundation dan komunitas Worldcoin yang lebih luas berencana untuk fokus pada area berikut terkait perangkat lunak Orb:

  1. Pengembangan yang terbuka untuk umum semaksimal mungkin. Sebagian besar komponen yang dirilis hari ini sudah memiliki pengembangan terbuka di repositori publik mereka. Namun, beberapa komponen (terutama orb-core dan orb-secure-element) dirilis sebagai cabang dari versi internal, dengan beberapa kode sensitif[14] yang dihapus secara manual. Sesuai dengan misi protokol, tujuan komunitas adalah untuk menghilangkan perbedaan ini dan memindahkan semua kode yang tidak sensitif ke pengembangan terbuka.
  2. Komponen tertutup yang tidak dipercaya. Untuk meminimalkan kepercayaan yang diperlukan pada komponen sumber tertutup, komponen tersebut dijalankan di “sandbox” untuk membatasi akses sistem mereka. Konfigurasi sandbox saat ini sedang ditingkatkan secara aktif untuk mencegah semua model ML mengakses jaringan dan penyimpanan permanen. Yang terpenting, implementasi sandbox itu sendiri bersumber terbuka.
  3. Mendukung audit terdesentralisasi.  Pohon Teknologi Worldcoin mencakup dukungan untuk membuktikan sifat dari Orbs tertentu, seperti perangkat lunak yang tepat yang mereka jalankan. Siapa pun harus dapat melakukan pembuktian ini dan mempublikasikan hasilnya. Infrastruktur ini diperlukan untuk mengurangi kepercayaan yang diperlukan pada pemasok Orb. Beberapa proyek rekayasa sedang berlangsung untuk mendukung pembuktian semacam itu, termasuk pelaporan versi yang aman dan pembuatan reproduksi publik yang dapat diverifikasi.

Akhirnya, komponen-komponen ini bertujuan untuk membantu membawa keamanan, privasi, dan transparansi ke banyak proyek lainnya, terutama yang menjalankan pembelajaran mesin pada perangkat tepi. Misalnya, lingkungan pembelajaran yang didukung AI (seperti ini) datang dengan tantangan privasi data yang mirip dengan Orb. Adalah harapan dari Worldcoin Foundation bahwa komunitas akan, untuk membantu membuat dunia yang didukung AI aman, terus meningkatkan komponen yang bersumber terbuka hari ini untuk memaksimalkan kegunaannya untuk proyek-proyek lainnya. 

Rincian rilis

Komponen Tersedia Hari Ini

Nama KomponenDeskripsi
orb-core Aplikasi utama pada Orb, yang mencakup alur verifikasi World ID.

Rilisan hari ini adalah fork dari versi internal, dengan pemeriksaan kecurangan dihapus.
orb-attest Menggunakan elemen aman untuk menghasilkan token otentikasi sementara untuk komunikasi backend.
orb-secure-element Antarmuka untuk elemen aman yang didedikasikan.
orb-firmware Firmware yang berjalan pada MCU utama Orb.
orb-messages Definisi Protobuf untuk berkomunikasi dengan MCU utama.
orb-ui Mengelola lampu dan suara pada Orb.
orb-can Wrapper Rust untuk menggunakan CAN di Linux.
orb-security-utils Pustaka untuk tugas umum yang sensitif keamanan di Rust.
orb-backend-state Mendapatkan status Orb dari backend. Saat ini tidak digunakan.
orb-slot-ctrl Mengelola slot boot dari Orb melalui variabel EFI.
seek-camera Pembungkus Safe Rust untuk kamera termal.
thermal-cam-util Alat utilitas untuk manajemen kamera termal.

Pekerjaan masa depan

Nama KomponenDeskripsi
orb-core Aplikasi utama pada Orb, yang mencakup alur verifikasi World ID.

Antarmuka untuk jalur kode privat diharapkan dibuat eksplisit. Kode non-privat diharapkan pindah ke pengembangan terbuka.
orb-os Membangun skrip untuk Orb OS.

Skrip-skrip ini serta gambar kontainer yang dapat dieksekusi diharapkan diterbitkan. Komponen yang sensitif terhadap keamanan diharapkan dihapus dari gambar publik.
orb-update-agent Bertanggung jawab untuk melakukan pembaruan over-the-air (OTA).
orb-supervisor Mengkoordinasikan layanan khusus lainnya di Orb.
orb-trustzone Kode yang berjalan di Trusted Execution Environment (TEE) Jetson.
orb-update-verifier Mengunci pembaruan jika berhasil.

References

  1. 1.
    World App adalah dompet pertama yang kompatibel dengan World ID, dibuat dan dioperasikan oleh kontributor proyek Tools for Humanity (TFH).
  2. 2.
    Untuk gambaran umum tentang kebutuhan akan proof of humanness, lihat blog terbaru Vitalik Buterin.
  3. 3.
    Pengguna dapat secara eksplisit memilih untuk memberikan akses kepada Worldcoin Foundation ke gambar mereka untuk tujuan memastikan kepercayaan, keamanan, dan meningkatkan sistem.
  4. 4.
    Rangkaian lengkap dari langkah-langkah deteksi penipuan meluas di luar Orb ke backend Orb dan World App. Untuk alasan keamanan, kode sumber yang tersedia secara publik untuk rilis hari ini tidak termasuk semua komponen perangkat lunak Orb yang terkait dengan pencegahan penipuan.
  5. 5.
    Sumber build OS Orb akan disertakan dalam rilis mendatang. Lihat tabel rilis untuk informasi lebih lanjut. 
  6. 6.
    Loop kontrol kedua pada mikrokontroler membantu menstabilkan osilasi alami lensa.
  7. 7.
    "Autentik" berarti gambar tersebut adalah gambar dari manusia asli. Gambar yang ditampilkan di layar di depan Orb, misalnya, akan ditolak. Pemeriksaan penipuan ini tidak termasuk dalam repositori sumber terbuka. Lihat bagian “Melihat ke depan: transparansi dan verifiabilitas” untuk detail lebih lanjut.
  8. 8.
  9. 9.
    Kunci publik individu dikirim dari World App ke Orb melalui infrastruktur backend. Backend tidak perlu dipercaya karena hash kunci publik dikirim langsung ke Orb melalui kode QR, yang digunakan untuk memverifikasi kunci sebelum digunakan. 
  10. 10.
    Kunci publik ini dihasilkan oleh World App dan hanya digunakan untuk mengenkripsi data Personal Custody. Detail tambahan ditentukan di sini.
  11. 11.
    Detail tentang desentralisasi lebih lanjut dari proses ini dapat ditemukan di sini.
  12. 12.
    Bahkan Orb tidak dapat mendekripsi paket Penjagaan Pribadi setelah mengenkripsinya.
  13. 13.
    Lihat bagian “Oracles: Orbs” dari Meningkatkan Desentralisasi.
  14. 14.
    Kode “Sensitif” terkait dengan pemeriksaan penipuan dan deteksi gangguan.

Disclaimer

Konten di atas hanya menyatakan informasi untuk tanggal yang tertera. Selain itu, konten ini mengandung risiko, ketidakpastian, dan asumsi, sehingga bisa jadi tidak benar dan dapat berubah tanpa pemberitahuan. Disclaimer lengkap dapat ditemukan di Ketentuan Penggunaan, dan Informasi Penting Pengguna dapat ditemukan di halaman Risiko kami.

Informasi dalam artikel ini berusia lebih dari 12 bulan dan mungkin sudah usang. Silakan kunjungi world.org/blog untuk informasi terbaru tentang proyek tersebut.