Yayasan Worldcoin membuka sumber komponen teras perisian Orb

Mar 22, 2024 6 Minute Read

Orb dibina untuk memberi individu cara untuk membuktikan kemanusiaan mereka dalam talian dengan privasi dan keselamatan maksimum. Kini, komponen teras perisian Orb tersedia untuk umum di GitHub di bawah lesen dwi MIT/Apache 2.0. Untuk konteks lebih lanjut tentang mengapa membuka sumber Orb penting, lihat bahagian perkakasan dalam Pokok Teknologi Worldcoin.

Komponen terbuka baharu ini melengkapi perkakasan yang telah dikeluarkan pengesahan iris, dan ketersediaan umumnya menandakan kemajuan yang besar dalam menjadikan pemprosesan imej Orb teserlah dan tuntutan privasinya dapat disahkan. Keluaran hari ini merangkumi semua kod pada Orb yang penting untuk menangkap imej dan memindahkannya dengan selamat ke Aplikasi World[1].

Post ini mengulas keperluan reka bentuk perisian Orb, menyoroti butiran pelaksanaan utama, dan meninjau masa depannya.

Jika anda berminat untuk bekerja pada perisian Orb, lihat peranan yang dibuka di penyumbang projek Tools for Humanity di sini.

Gambaran keseluruhan perisian Orb

Keperluan peringkat tertinggi

Orb menyediakan tahap pengesahan tertinggi untuk World ID bagi membezakan manusia daripada AI[2]. Ia melakukan ini dengan terlebih dahulu memeriksa bahawa pemegang World ID adalah manusia menggunakan imej mata dan muka. Jika pemeriksaan kemanusiaan ini diluluskan, Orb kemudian menjalankan proses pengesahan iris dan menyerahkan kod iris yang dihasilkan kepada perkhidmatan yang mengesahkan keunikan orang itu. Proses ini diselesaikan dalam beberapa saat. Untuk maklumat lanjut mengenai bagaimana World ID yang disahkan Orb boleh digunakan, lihat sini

Figure

Kegunaan tunggal Orb untuk mengesahkan keaslian manusia membawa kepada keperluan peringkat atas berikut, yang belum pernah berlaku bagi peranti biometrik:

  1. Privasi: Semasa pengesahan World ID, Orb mesti memproses imej secara tempatan pada peranti dan kemudian memindahkannya dengan selamat kepada penjagaan pengguna. Ini menghapuskan sebarang keperluan untuk menyimpan imej di Orb atau memuat naiknya ke backend pusat untuk diproses[3].
  2. Keselamatan: Protokol Worldcoin mengharapkan Orbs hanya mengesahkan World ID manusia yang asli. Ini bermaksud bahawa Orb mesti sangat tahan terhadap spoofing dan manipulasi, walaupun dalam persekitaran yang bermusuhan[4]. Peranti yang diubahsuai atau palsu mesti ditolak oleh protokol. 
  3. Ketelusan & Kebolehpercayaan: Orb mesti direka bentuk untuk memerlukan kepercayaan yang minimum terhadap pengeluar dan pengendalinya. Harus ada cara untuk orang awam mengaudit Orbs, termasuk memeriksa keadaan perisian dan kunci kriptografi. Lihat bahagian whitepaper yang berkaitan untuk maklumat lanjut.

Keperluan ini mempengaruhi reka bentuk Orb dan memberi kesan hampir sepenuhnya kepada semua aspek perisiannya.

Figure

Tumpukan komputasi Orb

Tools for Humanity (TFH), penyumbang kepada projek Worldcoin, telah bertahun-tahun membina persekitaran pengkomputeran yang selamat dan berkuasa untuk Orb. Reka bentuknya berpusat pada NVIDIA Jetson, yang memproses tempatan lima aliran kamera Orb untuk mengesahkan World ID dalam beberapa saat. Setiap Orb juga mempunyai dua Arm Cortex M4 mikropengawal (mengendalikan Zephyr RTOS) untuk mengendalikan perkara seperti pengurusan kuasa, kawalan masa nyata, dan pengesanan gangguan. Akhirnya, setiap Orb mempunyai elemen keselamatan berdedikasi yang, seperti dompet perkakasan, menyimpan kunci tandatangan persendirian dalam bekas yang tahan gangguan.

Orb menjalankan beberapa aplikasi Rust pada Jetson, dengan penggunaan async Rust yang tinggi. Aplikasi-aplikasi ini mengendalikan fungsi teras seperti memproses data sensor, berinteraksi dengan rangkaian neural, dan menerapkan kemas kini sistem. Untuk inferens rangkaian neural, Orb menggunakan enjin TensorRT NVIDIA untuk memanfaatkan sepenuhnya GPU 384-teras Jetson. 

Mengikat semua ini bersama ialah Orb OS[5]: pengedaran GNU/Linux tersuai berdasarkan Debian dan Ubuntu, dioptimumkan untuk keselamatan. Orb OS termasuk semakan integriti sistem penuh, konfigurasi Linux yang diperkuatkan keselamatan, sistem kemas kini udara yang mantap dan sokongan untuk binaan yang boleh dihasilkan semula. Untuk operasi kriptografi kritikal (contohnya mengesahkan ke backend), Orb OS berkomunikasi dengan persekitaran eksekusi yang dipercayai (TEE) pada Jetson serta elemen keselamatan khusus. 

Lawatan ke kod

Antara komponen utama perisian Orb yang dikeluarkan hari ini adalah fungsi do_signup dalam orb-core, yang menyandikan aliran tahap tinggi Orb untuk setiap pengesahan World ID. Fungsi ini memanggil fasa tangkapan imej dan fasa pemprosesan biometrik , kemudian menghantar kod iris yang ditandatangani kepada perkhidmatan keunikan. Tambahan lagi, do_signup memanggil upload_custody_images untuk menghantar imej pengguna dengan selamat ke Aplikasi World mereka.

Pemungutan imej

Dalam beberapa saat, sistem optikal canggih Orb boleh mencipta imej mata dan muka berkualiti tinggi dengan pasti. Fungsi teras ini diaktifkan oleh perisian khusus dan rangkaian neural yang bekerja bersama untuk melaksanakan pengesan wajah, penjejakan mata, autofokus dan penyesuaian pendedahan automatik.

Autofokus adalah salah satu bahagian paling sukar dalam sistem imejan untuk dilaksanakan. Ia mengawal kanta cecair, yang dibina khusus untuk cepat mencari imej yang tajam pada mata seseorang. Pelaksanaan Rust mengandungi pengawal maklum balas, dengan anggaran ketajaman yang disediakan oleh rangkaian neural masa nyata. Output kawalan dihantar dari Jetson ke mikropengawal, yang melaksanakan gelung kawalan dalaman, untuk memandu arus elektrik ke kanta[6].

Sekilas pandang ke dalam gelung kawalan maklum balas luar untuk mencari nilai tumpuan yang paling tajam.

Figure

Autofokus memerintahkan lensa cecair khas Orb untuk dengan cepat mendapatkan imej iris yang tajam.

Pemprosesan imej

Sebaik sahaja Orb telah mencipta imej mata dan muka yang berkualiti mencukupi, mereka dihantar ke saluran biometrik. Saluran ini mempunyai dua matlamat: memeriksa bahawa imej adalah sahih[7] dan menghasilkan kod iris. Kedua-duanya dikendalikan oleh antaramuka Python kepada rangkaian neural tersuai, serta implementasi penapis Gabor.

Imej mata berkualiti tinggi dari fasa sebelumnya dihantar kepada Sistem Inferens Pengiktirafan Iris (IRIS). Implementasi terkini ini dibina oleh TFH dan kemudiannya dibuka sumber oleh Yayasan Worldcoin. Kod Rust dioptimumkan untuk sentiasa mengekalkan IRIS dan model-model besar lain dalam memori, mengelakkan beban tambahan memuat semula komponen besar ini secara berkala. Ini dicapai dengan reka bentuk yang diilhamkan oleh proses Zygote Android, yang mengelakkan memuat salinan berlebihan kebergantungan yang dikongsi (seperti CUDA).

Privasi dan keselamatan

Privasi dan keselamatan sentiasa menjadi keutamaan utama apabila membina Orb. Tuntutan privasi Orb[8] menjadi fokus audit white-box oleh Trail of Bits, yang telah diterbitkan baru-baru ini. Audit-audit lanjut sedang dijalankan dan, digabungkan dengan pembukaan sumber, mencerminkan hasrat Yayasan untuk mengekalkan tahap ketelusan yang tinggi secara berterusan berkaitan privasi dan keselamatan.

Satu langkah kritikal privasi ialah menghantar data individu dari Orb ke World App untuk ciri yang dipanggil "Penjagaan Peribadi". Individu boleh menggunakan data yang dipelihara sendiri ini, contohnya, untuk Pengesahan Muka dalam World App. Melihat ke hadapan, ciri ini juga mungkin mengurangkan kekerapan pengguna perlu kembali ke Orb untuk mengesahkan semula World ID mereka.

Pelaksanaan pada Orb memastikan individu sentiasa mengawal data mereka. Setiap pakej data ditandatangani dengan kunci peribadi Orb, kemudian dihashekan, kemudian disulitkan dengan kunci[9][10] awam yang disediakan oleh pengguna sebelum dihantar ke telefon bimbit individu. Menandatangani dilakukan oleh elemen selamat khas, yang secara kriptografi dipasangkan dengan Jetson semasa pembuatan[11]. Pelaksanaan penyulitan menggunakan kotak yang dimeterai untuk memastikan hanya individu yang dapat menyahsulit data biometrik ini[12]. Sebaik sahaja data yang disulitkan dihantar dari Orb ke World App individu, tidak ada salinan data yang tidak disulitkan di mana-mana. 

Melihat ke hadapan: ketelusan dan kebolehverifikasian

Pelepasan awal perisian Orb ini adalah langkah penting ke arah matlamat[13] untuk memperbaiki ketelusan dan kebolehpercayaan Orb. Untuk langkah seterusnya, Yayasan Worldcoin dan komuniti Worldcoin yang lebih luas berhasrat untuk memberi tumpuan pada bidang berikut yang berkaitan dengan perisian Orb:

  1. Pembangunan yang terbuka sepenuhnya. Kebanyakan komponen yang dilepaskan hari ini sudah mempunyai pembangunan terbuka dalam repositori awam mereka. Walau bagaimanapun, beberapa komponen (terutamanya orb-core dan orb-secure-element) dilepaskan sebagai cabang daripada versi dalaman, dengan beberapa kod sensitif[14] secara manual dikeluarkan. Mengikut misi protokol, matlamat komuniti adalah untuk menghapuskan perbezaan ini dan memindahkan semua kod tidak sensitif kepada pembangunan terbuka.
  2. Komponen sumber tertutup tidak dipercayai. Untuk meminimumkan keperluan kepercayaan pada komponen sumber tertutup, mereka dijalankan dalam “kotak pasir” untuk mengehadkan akses sistemnya. Konfigurasi kotak pasir semasa sedang aktif diperbaiki untuk menghalang semua model ML daripada mengakses rangkaian dan storan berterusan. Pentingnya, pelaksanaan kotak pasir itu sendiri adalah sumber terbuka.
  3. Sokong pengauditan terdesentralisasi.  Pohon Teknologi Worldcoin termasuk sokongan untuk mengesahkan sifat-sifat Orb tertentu, seperti perisian tepat yang mereka jalankan. Sesiapa sahaja sepatutnya boleh melakukan akuan ini dan mengumumkan hasilnya kepada umum. Infrastruktur ini diperlukan untuk mengurangkan keperluan kepercayaan kepada pembekal Orb. Beberapa projek kejuruteraan sedang dijalankan untuk menyokong pengesahan tersebut, termasuk laporan versi yang selamat dan binaan boleh perihal awam.

Akhirnya, komponen-komponen ini bertujuan untuk membantu membawa keselamatan, privasi, dan ketelusan kepada banyak projek lain, terutama yang menjalankan pembelajaran mesin pada peranti tepi. Sebagai contoh, persekitaran pembelajaran yang dikuasakan oleh AI (seperti ini) datang dengan cabaran privasi data yang serupa dengan Orb. Adalah harapan Yayasan Worldcoin bahawa komuniti akan, untuk membantu menjadikan dunia yang dikuasakan oleh AI selamat, sentiasa memperbaiki komponen yang dibuka sumber hari ini untuk memaksimumkan kegunaannya untuk projek lain.

Butiran pelepasan

Komponen yang Tersedia Hari Ini

Nama KomponenPenerangan
orb-core Aplikasi utama pada Orb, yang merangkumi aliran pengesahan World ID.

Keluaran hari ini adalah percabangan daripada versi dalaman, dengan pemeriksaan penipuan dikeluarkan.
orb-attestMenggunakan elemen selamat untuk menjana token pengesahan sementara untuk komunikasi backend.
orb-secure-elementAntaramuka ke elemen selamat khusus.
orb-firmwareFirmware yang berjalan pada MCU utama Orb.
orb-messagesDefinisi Protobuf untuk berkomunikasi dengan MCU utama.
orb-uiMengurus lampu dan bunyi pada Orb.
orb-canPembungkus Rust untuk menggunakan CAN pada Linux.
orb-security-utilsPustaka untuk tugas-tugas sensitif keselamatan biasa dalam Rust.
orb-backend-stateMendapatkan keadaan Orb dari backend. Kini tidak digunakan.
orb-slot-ctrlMengurus slot boot Orb melalui pembolehubah EFI.
seek-cameraPembungkus Rust yang selamat untuk kamera thermal.
thermal-cam-utilAlat utiliti untuk pengurusan kamera thermal.

Future work

Nama KomponenPenerangan
orb-core Aplikasi utama pada Orb, yang merangkumi aliran pengesahan World ID.

Antaramuka kepada lintasan kod peribadi diharapkan dijelaskan dengan nyata. Kod bukan peribadi diharapkan dipindahkan ke pembangunan terbuka.
orb-os Membina skrip untuk Orb OS.

Skrip-skrip ini serta imej kontena yang boleh dijalankan dijangka akan diterbitkan. Komponen sensitif keselamatan dijangka akan dikeluarkan daripada imej awam.
orb-update-agent Bertanggungjawab untuk melaksanakan kemas kini over-the-air (OTA).
orb-supervisor Menyelaraskan perkhidmatan khas lain di Orb.
orb-trustzone Kod yang berjalan dalam Persekitaran Pelaksaan Terjamin (TEE) Jetson.
orb-update-verifier Kunci kemas kini jika ia berjaya.

References

  1. 1.
    World App adalah dompet pertama yang serasi dengan World ID, yang dicipta dan dioperasikan oleh penyumbang projek Tools for Humanity (TFH).
  2. 2.
    Untuk gambaran umum mengenai keperluan untuk proof of humanness, lihat blog post terkini Vitalik Buterin .
  3. 3.
    Pengguna boleh secara eksplisit memilih untuk memberikan akses kepada Worldcoin Foundation terhadap gambar mereka bagi tujuan memastikan kepercayaan, keselamatan, dan meningkatkan sistem.
  4. 4.
    Satu set langkah-langkah pengesanan penipuan yang lengkap melangkaui Orb ke bahagian belakang Orb dan World App. Atas alasan keselamatan, kod sumber yang tersedia untuk umum pada keluaran hari ini tidak termasuk semua komponen perisian Orb yang berkaitan dengan pencegahan penipuan.
  5. 5.
    Sumber binaan OS Orb akan disertakan dalam keluaran masa hadapan. Lihat jadual pelepasan untuk maklumat lanjut. 
  6. 6.
    Gelung kawalan kedua pada mikrokontroler membantu menstabilkan ayunan semula jadi lensa.
  7. 7.
    "Asli" bermaksud imej-imej tersebut adalah milik manusia sebenar. Imej yang dipaparkan pada skrin di hadapan Orb, sebagai contoh, akan ditolak. Pemeriksaan penipuan ini tidak termasuk dalam repositori sumber terbuka. Lihat bahagian "Memandang ke hadapan: ketelusan dan kebolehverifikasian" untuk butiran lanjut.
  8. 8.
  9. 9.
    Kunci awam individu dihantar dari World App ke Orb melalui infrastruktur belakang. Bahagian belakang tidak perlu dipercayai kerana hash kunci awam dihantar terus ke Orb melalui kod QR, yang digunakan untuk mengesahkan kunci sebelum ia digunakan. 
  10. 10.
    Kunci awam ini dijana oleh World App dan hanya digunakan untuk menyulitkan data Penjagaan Peribadi. Butiran tambahan ditentukan di sini.
  11. 11.
    Butiran mengenai desentralisasi lanjut proses ini boleh didapati di sini.
  12. 12.
    Malah Orb tidak dapat menyahsulit pakej Personal Custody selepas ia menyulitkannya.
  13. 13.
    Lihat bahagian "Oracles: Orbs" dalam Memajukan Desentralisasi.
  14. 14.
    Kod “Sensitif” berkaitan dengan pemeriksaan penipuan dan pengesanan gangguan

Penafian

Kandungan di atas hanya sah pada tarikh yang dinyatakan. Di samping itu, ia tertakluk kepada risiko, ketidakpastian dan andaian, dan oleh itu, ia ada kemungkinan untuk menjadi tidak tepat dan mungkin berubah tanpa notis. Penafian penuh boleh didapati di halaman Terma Penggunaan kami, dan Maklumat Penting Pengguna boleh didapati di halaman Risiko kami.

Maklumat dalam artikel ini sudah lebih 12 bulan dan mungkin sudah lapuk. Sila lawati world.org/blog untuk maklumat terkini tentang projek ini.