Worldcoin 基金會開源 Orb 軟件的核心組件

Mar 22, 2024 1 Minute Read

Orb的構建旨在為個人提供一種在線證明其人性的方式,實現最大化的隱私和安全。 現在,Orb 軟體的核心組件已在 MIT/Apache 2.0 雙重許可下,在 GitHub 上公開可用。 有關開源 Orb 為何重要的更多背景資訊,請參見 Worldcoin 科技樹 硬體部分

這些新的開放組件補充了先前發布的 硬體以及 虹膜識別 儲存庫,其公開可用標誌著在使 Orb 的 影像處理 透明化和其隱私聲明 可驗證性 方面取得了重大進展。 今天的發布 包括 Orb 上所有對於捕捉影像和安全地 傳送至 World App 的必要程式碼[1]

這篇文章回顧了 Orb 軟體的設計需求,重點介紹了一些關鍵實施細節,並展望了其未來。

如果您有興趣參與 Orb 軟體的開發,請查看項目貢獻者 Tools for Humanity 的開放職位 這裡

Orb軟體概述

高層次要求

Orb 提供最高等級的 驗證等級,以區分 World ID 中的人類與 AI[2]。 它首先通過檢查 World ID 持有者的眼睛和面部圖像來確認其為人類。 如果這些 人類特徵檢查通過,則 Orb 會進行 虹膜驗證過程,並提交所得的 虹膜代碼至一個服務,該服務會 驗證此人的獨特性。 這個過程在幾秒鐘內完成。 有關 Orb 驗證的 World ID 用途的更多信息,請參見 這裡。 

Figure

Orb 驗證人類特徵的唯一使用情境導致了以下的高級要求,這在生物識別設備中是前所未有的:

  1. 隱私: 在 World ID 驗證過程中,Orb 必須在本地設備上處理圖像,然後安全地轉移到 用戶的保管中。 這消除了將圖像存儲在 Orb 或上傳至中央後端進行處理的需求[3]
  2. 安全性: Worldcoin 協議期望 Orb 只驗證真正人類的 World ID。 這意味著 Orb 必須在對抗性環境中高度防止欺騙和篡改[4]。 協議必須拒絕修改或偽造的設備。 
  3. 透明性與可驗證性: Orb 必須設計成對其製造商和操作員的信任需求最小化。 必須要有一種方法讓公眾可以審核 Orb,包括檢查軟體狀態和密鑰。 詳情請見 相關白皮書章節

這些要求推動了 Orb 的設計,並幾乎影響其軟體的所有方面。

Figure

Orb的計算堆棧

Tools For Humanity (TFH),Worldcoin 項目的一個貢獻者,多年來一直致力於為 Orb 建立一個安全且功能強大的計算環境。 設計圍繞 NVIDIA Jetson,該設備本地處理 Orb 的五個攝像頭流,能在數秒內驗證 World ID。 每個Orb額外具有兩個Arm Cortex M4 微控制器(運行Zephyr RTOS),用於處理電源管理、即時控制和防篡改檢測等工作。 最後,每個Orb都有一個專用的安全元件,其功能類似於硬體錢包,將私有簽名金鑰儲存在防篡改的盒子中。

Orb在Jetson上運行多個Rust應用程式,並大量使用異步Rust。 這些應用程式處理核心功能,如處理感測器數據、與神經網絡接口和應用系統更新。 為了進行神經網路推理,Orb使用NVIDIA的TensorRT引擎,充分利用Jetson的384核GPU

將所有這些連結在一起的是Orb OS[5]:基於Debian和Ubuntu的定制GNU/Linux發行版,針對安全性進行了優化。 Orb OS包括全系統完整性檢查、加強安全性的Linux配置、穩健的空中更新系統以及支持可重現建構。 對於關鍵的密碼操作(例如,驗證到後端),Orb OS 與 Jetson 上的 受信任的執行環境(TEE)以及專用的安全元件進行通信。

代碼導覽

今天釋出的 Orb 軟體的關鍵組成部分之一是 do_signup 功能位於 orb-core, w中,該功能為每個 World ID 驗證編碼了 Orb 的高級流程。 此函數調用 影像捕捉階段生物識別處理階段,然後 提交 簽署的 虹膜代碼 給獨特性服務。 此外, do_signup 調用了 upload_custody_images 以安全地將用戶的圖像發送到他們的 World App。

影像捕捉

在短短幾秒內,Orb 的先進光學系統可以可靠地創建高品質的眼睛和面部圖像。 此核心功能由自定義軟體和神經網絡啟用,這些軟體和網絡協同工作以實現人臉識別眼球追蹤自動對焦自動曝光

自動對焦是成像系統中最難實現的部分之一。 它控制專用的液態鏡片,以便快速找到個人眼睛的清晰圖像。 Rust 實作包含一個回饋控制器,其清晰度估計由一個實時神經網絡提供。 控制輸出從Jetson 送出微控制器,該微控制器實施一個內部控制迴路來驅動電流到鏡片[6]

窺探外部反饋控制迴路以尋找最清晰的焦點值。

Figure

自動對焦指示Orb的定制液態鏡片迅速找到清晰的虹膜圖像。

圖像處理

一旦Orb創建了足夠質量的眼部和面部圖像,它們被傳送生物識別管道。 這個流程有兩個目標:檢查圖片的真實性[7] 並生成虹膜代碼。 這兩者都由自訂神經網絡的Python接口處理,還有Gabor濾波器的實現

來自上一階段的高品質眼部圖像被傳送虹膜識別推理系統(IRIS)。 這一先進實施由TFH建造,隨後由Worldcoin基金會開源發布。 Rust代碼經過優化,始終將IRIS和其他大型模型保存在內存中,避免定期重新加載這些大型組件的開銷。 這是通過受Android的Zygote進程啟發的設計來實現的,該設計避免加載冗餘的共享依賴項副本(例如CUDA)。

隱私和安全

構建Orb時,隱私和安全性一直是最優先考慮事項。 Orb 的隱私聲明[8]Trail of Bits 進行白箱審計的重點,該審計報告 最近已發布。 進一步的審計正在進行中,並且結合開源,反映了基金會旨在圍繞隱私和安全保持持續高透明度的目標。

一個隱私關鍵步驟是將個人數據從 Orb 發送到 World App,用於一個名為「個人保管」的功能。 個人可以使用這些自我保管的數據,例如,用於 World App 的 面部認證。 展望未來,這項功能還可能減少用戶需要返回Orb重新驗證他們的World ID的頻率。

Orb 上的實施確保了個人始終掌控自己的數據。 每個數據包都是用Orb的私鑰簽署,然後用用戶提供的公鑰加密[9][10] ,再傳輸到個人的手機上。 簽名由專用的 安全元件執行,該元件在製造過程中與 Jetson 加密配對[11]加密實作使用一個密封盒以確保只有個人能夠解密這些生物特徵數據[12]。 一旦加密數據從Orb發送到個人World App,這些數據的未加密副本將不會在任何地方存在。 

展望未來:透明性和可驗證性

這是Orb軟體的初次發布,是改善Orb透明度和可驗證性目標[13] 的重要一步。 接下來的步驟中,Worldcoin基金會和更廣泛的Worldcoin社區計劃將重點放在與Orb軟體相關的以下領域:

  1. 最大限度地開放開發。 今天發布的大多數組件已經在其公共庫中進行開放開發。 然而,一些組件(特別是 orb-coreorb-secure-element))作為內部版本的分支發布,其中一些敏感[14]代碼已被手動移除。 為了符合協議的使命,社區的目標是消除這種差異,並將所有非敏感代碼移至開放開發。
  2. 不受信任的閉源組件。 為了最大限度地減少對閉源組件的信任要求,這些組件在“沙箱”中運行,以限制其系統訪問。 目前的沙箱配置正在積極改進,以防止所有ML模型訪問網絡和持久存儲。 關鍵的是,沙箱的實施本身是開源的。
  3. 支持去中心化審計。  Worldcoin技術樹包括支持證明特定Orb屬性的功能,例如它們運行的精確軟體。 任何人都應該能夠執行這些驗證並公開化結果。 這種基礎設施對於減少對Orb供應商的信任要求至關重要。 若干工程項目正在進行,以支持此類驗證,包括安全版本報告和公共可重現構建。

最後,這些元件旨在幫助為許多其他專案帶來安全性、隱私性和透明度,特別是那些在邊緣設備上運行機器學習的專案。 例如,人工智慧支援的學習環境(如這個)帶來的資料隱私問題類似於Orb。 Worldcoin基金會希望社群將不斷改進今天開放源代碼的元件,以幫助構建一個人工智慧驅動的安全世界,並最大化其對其他專案的效用。 

發佈詳情

今天可用的組件

元件名稱產品描述
orb-core Orb 上的主要應用,包括 World ID 驗證流程。

今天發佈的是內部版本的分支,已移除欺詐檢查。
orb-attest 使用安全元件生成暫時的驗證令牌,用於後端通信。
orb-secure-element 專用安全元件的介面。
orb-firmware 運行在Orb主控單元上的固件。
orb-messages 與主控單元通信的Protobuf定義。
orb-ui 管理Orb的燈光和聲音。
orb-can 在Linux上使用CAN的Rust包裝程式。
orb-security-utils 用於Rust中常見安全敏感任務的程式庫。
orb-backend-state 從後端獲取Orb的狀態。 目前未使用。
orb-slot-ctrl 通過 EFI 變量管理 Orb 的啟動槽位。
seek-camera 用於熱成像相機的安全 Rust 包裝。
thermal-cam-util 管理熱成像相機的實用工具。

未來工作

元件名稱產品描述
orb-core Orb 上的主要應用,包括 World ID 驗證流程。

預期對私有代碼路徑的接口應明確表示。 非私有代碼預期會轉向公開開發。
orb-os 構建 Orb OS 的腳本。

這些腳本以及可執行的容器映像預期會被發布。 涉及安全的組件預期會從公眾映像中移除。
orb-update-agent 負責執行空中(OTA)更新。
orb-supervisor 協調 Orb 上的其他自定義服務。
orb-trustzone 在 Jetson 的可信執行環境(TEE)中運行的代碼。
orb-update-verifier 如果更新成功,則鎖定更新。

References

  1. 1.
    World App 是第一個兼容 World ID 的錢包,由專案貢獻者 Tools For Humanity (TFH) 創建和運營。
  2. 2.
    關於對人類身份驗證需求的一般概述,請參閱 Vitalik Buterin 的最新博客文章
  3. 3.
    用戶可以明確選擇允許 Worldcoin Foundation 訪問他們的影像,以確保信任、安全性和改善系統為目的。
  4. 4.
    完整的欺詐檢測措施套件不僅延伸至 Orb ,還包括 Orb 的後端和 World App。 出於安全原因,今天發布的公開可用源代碼不包含與欺詐預防相關的所有 Orb 軟體組件。
  5. 5.
    Orb OS 構建源將包含在未來的發布中。 有關更多信息,請查看發布表。 
  6. 6.
    微控制器上的第二個控制迴路有助於穩定鏡頭的自然振蕩。
  7. 7.
    「真實」表示影像是來自真人。 例如,顯示在Orb前方螢幕上的圖像將被拒絕。 這些欺詐檢查未包含在開源資料庫中。 查看“展望:透明性和可驗證性”一節以獲取更多詳細信息。
  8. 8.
  9. 9.
    個人的公鑰從World App透過後端基礎設施傳送至Orb。 後端不需要被信任,因為公鑰的雜湊值會直接通過QR碼傳送給Orb,該QR碼被用於驗證在使用鑰匙之前的程序。 
  10. 10.
    此公鑰由World App生成,僅用於加密個人監管資料。 更多詳細信息指定在此處
  11. 11.
    關於此過程進一步去中心化的細節可以在此處找到。
  12. 12.
    即使是Orb也無法在加密後解密個人監管包。 
  13. 13.
    請參閱推進去中心化的“神諭:Orbs”部分。
  14. 14.
    “敏感”代碼涉及欺詐檢查和防篡改檢測。

免責聲明

以上內容僅描述所示日期當下的情況, 此外,受相關風險、不確定性和推測影響,顯示的內容可能不正確,並可能在不另行通知的情況下改變。 完整的免責聲明可以在我們的使用條款中檢閱,重要的使用者訊息可以在我們的風險頁面上檢閱。

本文中的資訊已超過 12 個月,可能已過時。 請拜訪 world.org/blog,獲取有關計畫的最新消息。