
Orb는 최대한의 프라이버시와 보안을 제공하여 개인이 온라인에서 자신의 인간성을 증명할 수 있도록 설계되었다. 이제, Orb 소프트웨어의 핵심 구성 요소들은 MIT/Apache 2.0 듀얼 라이선스 하에 GitHub에서 공개적으로 이용할 수 있다. 오브의 오픈 소스화가 중요한 이유에 대한 더 많은 맥락은 월드코인 기술 트리의 하드웨어 섹션을 참조하십시오.
이 새로운 오픈 컴포넌트는 이전에 출시된 하드웨어 및 홍채 인식 저장소를 보완하며, 이들의 공개 사용 가능성은 Orb의 이미지 처리를 투명하게 만들고 개인정보 보호 주장을 검증 가능하게 만드는 데 중요한 진전을 나타냅니다. 오늘의 릴리스에는 World App에 이미지를 캡처하고 안전하게 전송하는 데 필수적인 모든 코드가 포함되어 있습니다[1].
이 글은 Orb 소프트웨어의 설계 요구 사항을 검토하고, 주요 구현 세부 사항을 강조하며, 향후 전망을 살펴봅니다.
Orb 소프트웨어 작업에 관심이 있다면 프로젝트 기여자 Tools for Humanity에서 열린 역할을 확인하십시오 여기.
Orb 소프트웨어 개요
최상위 요구사항
Orb는 World ID가 인간과 AI를 구별할 수 있도록 가장 높은 검증 수준을 제공합니다[2]. 이는 먼저 World ID 보유자가 눈과 얼굴 이미지를 사용하여 인간인지 확인함으로써 이루어집니다. 만일 이러한 인간성 검사에 통과하면, Orb는 홍채 인증 과정을 수행하여 결과로 나오는 홍채 코드를 사람의 독특성을 확인하는 서비스에 제출합니다. 이 과정은 몇 초 안에 완료됩니다. Orb로 인증된 World ID의 사용 방법에 관한 더 자세한 정보는 여기를 참조하세요.

Orb의 유일한 인간성 확인 용도는 생체 인식 장치로서는 전례 없는 다음과 같은 최상위 요구 사항을 초래합니다:
- 프라이버시: World ID 인증 중에 Orb는 이미지를 로컬 장치에서 처리한 후 사용자의 보관에 안전하게 전달해야 합니다. 이를 통해 이미지를 Orb에 저장하거나 중앙 백엔드에 업로드하여 처리할 필요가 없습니다[3].
- 보안: Worldcoin 프로토콜은 Orbs가 진정한 인간의 World ID만을 검증하도록 기대합니다. 이는 Orb가 심지어 적대적인 환경에서도 스푸핑 및 변조에 매우 강력해야 함을 의미합니다[4]. 수정되거나 위조된 장치는 프로토콜에 의해 거부되어야 합니다.
- 투명성 및 검증 가능성: Orb는 제조업체 및 운영자에 대한 신뢰를 최소화하도록 설계되어야 합니다. 대중이 소프트웨어 상태와 암호화 키를 확인하는 것을 포함하여 Orbs를 감사할 수 있는 방법이 있어야 합니다. 자세한 내용은 해당 화이트페이퍼 섹션을 참조하세요.
이러한 요구 사항은 Orb의 설계에 영향을 미치며, 소프트웨어의 거의 모든 측면에 영향을 미칩니다.

Orb의 컴퓨팅 스택
Tools for Humanity (TFH), 월드코인 프로젝트에 기여하는 사람으로서, 오브를 위한 안전하고 강력한 컴퓨팅 환경을 구축하는데 수년을 보냈습니다. 설계는 NVIDIA Jetson 중심으로 이루어지며, 이를 통해 Orb의 다섯 개의 카메라 스트림을 로컬에서 처리하여 몇 초 만에 World ID를 확인할 수 있습니다. 각 Orb는 추가적으로 전력 관리, 실시간 제어 및 변조 탐지와 같은 작업을 처리하는 두 개의 Arm Cortex M4 마이크로컨트롤러(Zephyr RTOS 실행)을 가지고 있습니다. 마지막으로, 각 Orb는 전용 보안 요소를 가지고 있으며, 이는 하드웨어 지갑처럼 변조 방지 인클로저에 개인 서명 키를 저장합니다.
Orb는 Jetson에서 여러 Rust 애플리케이션을 실행하며, 비동기 Rust를 많이 사용합니다. 이 애플리케이션들은 센서 데이터 처리, 신경망과의 인터페이스, 시스템 업데이트 적용과 같은 핵심 기능을 처리합니다. 신경망 추론을 위해 Orb는 Jetson의 384-코어 GPU를 완전히 활용하기 위해 NVIDIA의 TensorRT 엔진을 사용합니다.
이 모든 것을 결합하는 것은 Orb OS[5]:보안을 최적화한 Debian 및 Ubuntu 기반의 맞춤형 GNU/Linux 배포판입니다. Orb OS는 전체 시스템 무결성 검사, 보안 강화 Linux 구성, 견고한 무선 업데이트 시스템 및 재현 가능한 빌드 지원을 포함합니다. 중요한 암호화 작업 (예: 백엔드 인증)을 위해 Orb OS는 Jetson의 신뢰할 수 있는 실행 환경 (TEE) 및 전용 보안 요소와 통신합니다.
코드 투어
오늘 출시된 Orb 소프트웨어의 주요 구성 요소 중 하나는 do_signup 기능으로, orb-core, 에 있으며 각 World ID 인증에 대한 Orb의 상위 흐름을 인코딩합니다. 이 기능은 이미지 캡처 단계와 생체 인식 처리 단계를 호출한 다음, 서명된 홍채 코드를 고유 서비스에 제출합니다. 또한, do_signup 은 사용자의 이미지를 안전하게 World App으로 보내기 위해 upload_custody_images 을 호출합니다.
이미지 캡처
몇 초 만에 Orb의 고급 광학 시스템은 신뢰할 수 있는 고품질의 눈과 얼굴 이미지를 생성할 수 있습니다. 이 핵심 기능은 얼굴 인식, 눈 추적, 자동 초점 및 자동 노출을 구현하기 위해 함께 작동하는 맞춤형 소프트웨어와 신경망에 의해 활성화됩니다.
자동 초점은 이미징 시스템에서 구현하기 가장 어려운 부분 중 하나였습니다. 목적에 맞게 제작된 액체 렌즈를 제어하여 사람의 눈을 신속하게 선명하게 찾습니다. Rust 구현에는 피드백 컨트롤러가 포함되어 있으며, 실시간 신경망이 제공하는 선명도 추정치를 사용합니다. 제어 출력은 Jetson에서 마이크로컨트롤러로 전송되며, 이는 렌즈에 전류를 공급하는 내부 제어 루프를 구현합니다[6].
가장 선명한 초점 값을 찾기 위한 외부 피드백 제어 루프를 엿보다.

오토포커스는 Orb의 맞춤형 액체 렌즈를 명령하여 선명한 홍채 이미지를 신속하게 찾습니다.
이미지 처리
Orb가 충분한 품질의 눈과 얼굴 이미지를 생성하면, 이들은 생체 인식 파이프라인으로 전달됩니다. 이 파이프라인에는 두 가지 목표가 있습니다: 이미지가 진짜인지 확인하고[7] 홍채 코드를 생성하는 것입니다. 두 작업 모두 맞춤형 신경망과 Python 인터페이스, 그리고 가보르 필터 구현으로 처리됩니다.
이전 단계에서의 고품질 눈 이미지들은 IRIS (홍채 인식 추론 시스템)에 전달됩니다. 이 최첨단 구현은 TFH에 의해 제작되었으며 이후 Worldcoin Foundation에 의해 오픈 소스화되었습니다. Rust 코드는 항상 IRIS와 다른 대형 모델들을 메모리에 유지하도록 최적화되어 있으며, 이로 인해 이러한 대형 컴포넌트들을 정기적으로 다시 로드하는 오버헤드를 피할 수 있습니다. 이것은 안드로이드의 Zygote 프로세스에서 영감을 받은 디자인으로 이루어지며, 공유 의존성들 (예: CUDA)의 중복 로딩을 방지합니다.
프라이버시와 보안
Orb를 구축할 때 항상 프라이버시와 보안이 최우선으로 고려되었습니다. Orb의 개인정보 보호 주장[8]은 Trail of Bits의 화이트박스 감사의 초점이었으며, 이는 최근에 발표되었습니다. 추가 감사가 진행 중이며, 오픈 소스화와 결합하여 개인정보 및 보안에 대한 지속적으로 높은 수준의 투명성을 유지하려는 재단의 목표를 반영합니다.
개인정보와 관련된 중요한 단계 중 하나는 Orb에서 World App으로 데이터를 전송하여 "개인 보호"라는 기능을 수행하는 것입니다. 개인은 예를 들어 World App에서 얼굴 인증을 위해 이 자가 보호 데이터를 사용할 수 있습니다. 앞으로 이 기능은 사용자가 World ID를 재검증하기 위해 Orb으로 돌아가야 하는 빈도를 줄이는 데에도 도움이 될 수 있습니다.
Orb의 구현은 개인이 항상 자신의 데이터에 대한 통제권을 유지할 수 있도록 보장합니다. 각 데이터 패키지는 Orb의 개인 키로 서명된 다음 사용자 제공 공개 키로 암호화됩니다[9][10] 개인의 모바일 전화로 전송되기 전에. 서명은 제조 중에 Jetson과 암호학적으로 연결된 전용 보안 요소에 의해 수행됩니다[11]. 암호화 구현은 밀봉된 상자를 사용하여 오직 개인만이 이 생체 데이터를 해독할 수 있도록 합니다[12]. 암호화된 데이터가 Orb에서 개인의 World App으로 전송되면, 이 데이터의 암호화되지 않은 사본은 어디에도 존재하지 않습니다.
앞으로의 계획: 투명성과 검증 가능성
Orb의 소프트웨어 초기 버전의 출시는 Orb의 투명성과 검증 가능성을 개선하려는 목표[13] 를 향한 중요한 단계입니다. 다음 단계로, Worldcoin Foundation과 더 넓은 Worldcoin 커뮤니티는 Orb 소프트웨어와 관련하여 다음 영역에 집중할 계획입니다:
- 최대한 개방적인 개발. 오늘 출시된 대부분의 구성 요소는 이미 공공 저장소에서 개방적인 개발이 이루어지고 있습니다. 그러나 일부 구성 요소(특히 orb-core 와 orb-secure-element)는 내부 버전에서 포크되어 일부 민감한[14] 코드가 수동으로 제거되었습니다. 프로토콜의 목적에 따라, 커뮤니티의 목표는 이러한 차이를 제거하고 민감하지 않은 모든 코드를 공개 개발로 이동시키는 것입니다.
- 신뢰할 수 없는 비공개 소스 구성 요소. 비공개 소스 구성 요소에 대한 신뢰를 최소화하기 위해, 이 구성 요소들은 시스템 접근을 제한하기 위해 "샌드박스" 내에서 실행됩니다. 현재 샌드박스 구성은 모든 ML 모델이 네트워크와 지속적인 스토리지에 접근하지 못하도록 방지하기 위해 적극적으로 개선되고 있습니다. 중요하게도, 샌드박스 구현 자체는 오픈 소스입니다.
- 분산된 감사 지원. Worldcoin 기술 트리는 그들이 실행 중인 정확한 소프트웨어와 같은 특정 Orbs 속성을 증명하는 것에 대한 지원을 포함합니다. 누구나 이러한 인증을 수행하고 결과를 공개할 수 있어야 합니다. 이 인프라는 Orb 공급업체에 대한 신뢰를 줄이기 위해 필요합니다. 여러 엔지니어링 프로젝트가 이러한 인증을 지원하기 위해 진행 중이며, 여기에는 안전한 버전 보고와 공개 재현 가능한 빌드가 포함됩니다.
마지막으로, 이러한 구성 요소는 특히 엣지 디바이스에서 머신러닝을 실행하는 프로젝트를 위해 보안, 프라이버시 및 투명성을 제공하는 데 도움이 되는 것을 목표로 합니다. 예를 들어, AI 지원 학습 환경(이 것과 같은)은 Orb와 유사한 데이터 프라이버시 문제를 가지고 있습니다. 월드코인 재단은 커뮤니티가 AI가 주도하는 세계를 안전하게 만들기 위해 오늘 오픈 소스로 공개된 구성 요소를 지속적으로 개선하여 다른 프로젝트에 그 유용성을 극대화하는 데 도움이 되기를 바랍니다.
릴리스 세부사항
오늘 사용 가능한 구성 요소들
구성 요소 이름 | 설명 |
---|---|
orb-core |
World ID 인증 흐름을 포함하는 Orb의 주요 애플리케이션.
오늘 릴리스된 것은 내부 버전의 포크이며, 사기 검사 기능이 제거되었습니다. |
orb-attest | 백엔드 통신을 위한 일회용 인증 토큰을 생성하기 위해 보안 요소를 사용합니다. |
orb-secure-element | 전용 보안 요소에 대한 인터페이스. |
orb-firmware | Orb의 메인 MCU에서 실행되는 펌웨어. |
orb-messages | 주 MCU와 통신하기 위한 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 |
World ID 인증 흐름을 포함하는 Orb의 주요 애플리케이션.
개별 코드 경로에 대한 인터페이스는 명확하게 표시될 것으로 예상됨. 비개인 코드가 공개 개발로 이동될 것으로 예상됨. |
orb-os |
Orb OS를 위한 빌드 스크립트.
이 스크립트 및 실행 가능한 컨테이너 이미지는 공개될 것으로 예상됨. 보안에 민감한 구성 요소는 공개 이미지에서 제거될 것으로 예상됨. |
orb-update-agent | 무선(OTA) 업데이트를 수행하는 책임. |
orb-supervisor | Orb의 다른 사용자 지정 서비스를 조정. |
orb-trustzone | Jetson의 신뢰 실행 환경(TEE)에서 실행되는 코드. |
orb-update-verifier | 업데이트가 성공하면 잠급니다. |
References
- 1.
- 2.인간성 증명의 필요성에 대한 일반적인 개요는 비탈릭 부테린의 최근 블로그 글을 참조하십시오.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.개인의 공개 키는 백엔드 인프라를 통해 World App에서 Orb로 전송됩니다. 백엔드는 신뢰할 필요가 없습니다. 왜냐하면 공개 키의 해시가 QR 코드를 통해 Orb로 직접 전송되기 때문입니다. 이 QR 코드는 사용되기 전에 키를 검증하는 데 사용됩니다.
- 10.이 공개 키는 World App에 의해 생성되며 개인 보관 데이터 암호화에만 사용됩니다. 추가적인 세부 사항은 여기에 명시되어 있습니다.
- 11.이 프로세스의 추가적인 탈중앙화에 관한 세부 사항은 여기에서 찾을 수 있습니다.
- 12.
- 13.“Oracles: Orbs” 섹션을 참조하세요 탈중앙화 추진.
- 14.
면책 조항
위 내용은 표시된 날짜 기준으로만 유효합니다. 또한, 해당 내용은 다양한 위험, 불확실성 및 가정에 따라 달라질 수 있으므로 정확하지 않을 수 있으며, 사전 공지 없이 변경될 수 있습니다. 전체 면책 조항은 이용약관(Terms of Use) 에서 확인할 수 있으며 중요한 사용자 정보는 위험성(Risks) 페이지에서 확인할 수 있습니다.