Chuyển đến nội dung chính
Proof-of-Personhood · Biometric Identity · ZK Protocol

World ID & Worldcoin
Iris Scan, ZK Proof-of-Personhood & Nullifier Mechanism

Phân tích kỹ thuật từ Orb hardware đến ZK circuit — cách World ID chứng minh bạn là người thật mà không tiết lộ bạn là ai.
Câu hỏi cốt lõi: Trong thế giới AI có thể giả mạo danh tính số, làm sao chứng minh "đây là người thật" mà không cần tiết lộ tên, ngày sinh, hay bất kỳ thông tin định danh nào? World ID giải quyết bài toán này bằng iris biometric + zero-knowledge proof — và cả hai đều có trade-off cần phân tích thẳng thắn.
Cần biết: Hash function cơ bản Cần biết: Khái niệm ZK proof Thời gian: ~20 phút Cấp độ: Kỹ thuật trung-cao
📅07/03/2026
✍️ ZRO Research
📍wld.vn/world-id-worldcoin/
TL;DR — Đọc trong 90 giây

World ID: Proof-of-Personhood không cần tiết lộ danh tính

World ID là hệ thống chứng minh "bạn là người thật và chưa đăng ký trước" bằng iris biometric + zero-knowledge proof. Bạn scan mắt tại Orb → nhận ZK credential → dùng credential này để chứng minh tính duy nhất trong bất kỳ ứng dụng nào mà không tiết lộ tên hay thông tin định danh.

Cơ chế cốt lõi: Iris không bao giờ được lưu — chỉ có commitment (hash của IrisCode). Khi dùng World ID, bạn tạo nullifierGiá trị hash dùng một lần để ngăn double-vote/double-spend. Không link về identity gốc. — định danh duy nhất cho từng context — ngăn double-use mà không thể liên kết các lần dùng với nhau.

Orb

Hardware scan iris NIR + liveness detection. Tạo IrisCode 2048-bit.

IrisCode

Binary pattern của iris → hash → commitment lưu vào registry.

ZK Proof

Prove "iris trong registry + chưa đăng ký" không reveal iris.

NullifierGiá trị hash dùng một lần để ngăn double-vote/double-spend. Như serial number trên tiền — không link về identity gốc.

Hash(secret + context) — chống double-use, không link được giữa contexts.

World ID Là Gì — bối cảnh ra đời và sứ mệnh

World ID là lớp proof-of-personhood thuộc Worldcoin protocol — dự án được Sam Altman (CEO OpenAI) đồng sáng lập, với luận điểm xuất phát: khi AI ngày càng không thể phân biệt được với người thật online, thế giới cần một cơ chế chứng minh tính người (proof-of-personhood) có thể mở rộng quy mô toàn cầu.

Đây không phải là identity verification thông thường. World ID không hỏi bạn là ai — chỉ hỏi bạn có phải là người thật và đây có phải lần đầu tiên không. Sự phân biệt này có ý nghĩa kỹ thuật rất lớn và ảnh hưởng toàn bộ thiết kế của hệ thống.

Bài toán World ID giải quyết

Trước World ID, các hệ thống public goods, UBI crypto, hay governance protocol đều đối mặt với cùng một vấn đề không giải được: Sybil attackTấn công bằng cách tạo nhiều danh tính giả để chiếm đa số trong hệ thống phân tán. Tên từ cuốn sách về bệnh nhân có 16 nhân cách (1973).. Không thể phân phối "một người một phần" vì không có cách nào biết ai là người thật và ai tạo nhiều tài khoản.

  • Gitcoin Grants: Matching pool bị Sybil accounts farming
  • Airdrop protocol: Một người tạo 100 wallets nhận 100x token
  • DAO governance: Whale tạo nhiều địa chỉ để bypass voting power cap
  • UBI scheme: Không thể distribute "mỗi người một phần" nếu không biết uniqueness
💡
Worldcoin vs World ID — Phân biệt quan trọng
Worldcoin là tên protocol/công ty. World ID là hệ thống proof-of-personhood. WLD là token kinh tế. Ba thứ này liên quan nhưng không đồng nhất. Bài phân tích này tập trung vào kiến trúc kỹ thuật của World ID — không phải economics của WLD token hay governance của Worldcoin Foundation.

Điểm khác biệt so với các tiếp cận khác

Tiếp cậnVí dụCơ chế uniquenessPrivacyScale
Iris biometricWorld IDIris là biological uniqueTrung bìnhCao
Social graphBrightIDWeb of trust — N người xác nhậnCaoThấp
In-person ceremonyProof of HumanityVideo + community vouchingTrung bìnhThấp
Stake-basedToken gatingEconomic costCaoCao
Government IDeKYC truyền thốngState-issued documentThấpTrung bình

World ID chọn iris biometric vì: (1) iris pattern là biologically unique với error rate cực thấp (~10⁻⁶), (2) tương đối khó giả mạo so với face hay voice, (3) có thể verify nhanh hơn social graph cần manual review. Trade-off: phải tin tưởng Orb hardware và cần physical presence tại điểm scan.

🌐
📌 Key Takeaway

World ID giải quyết uniqueness bằng iris biometric — mạnh nhất về anti-Sybil, nhưng tập trung nhất về data. Trade-off này không có đáp án đúng/sai tuyệt đối — phụ thuộc use case và risk tolerance của từng tổ chức.

Orb Hardware — cơ chế iris scanning và liveness detection

Orb là thiết bị phần cứng chuyên dụng — hình cầu khoảng 100mm, chứa camera multispectral chụp iris ở điều kiện ánh sáng kiểm soát. Không phải camera điện thoại thông thường. Thiết kế phần cứng là lựa chọn có chủ đích: tạo barrier đủ cao chống spoofing.

Các cảm biến trong Orb

  • NIR camera (Near-Infrared, 850nm): Iris texture hiện rõ dưới NIR — melanin trong iris absorb NIR, tạo pattern contrast cao. Ảnh NIR không bị ảnh hưởng bởi màu mắt hay điều kiện ánh sáng ambient.
  • RGB camera: Dùng cho face detection và liveness verification tầng đầu.
  • 3D depth sensor: Stereo vision hoặc structured light — verify đây là mắt 3D thật, không phải ảnh phẳng hay màn hình.
  • NIR illuminator: LED chiếu NIR kiểm soát để đảm bảo consistent illumination cho mọi người và mọi điều kiện sáng.

Liveness Detection — chống spoofing

Đây là lớp bảo vệ đầu tiên và quan trọng nhất:

  • Pupil response: Orb thay đổi độ sáng và đo pupillary light reflex — đồng tử co/giãn theo pattern kỳ vọng. Ảnh in, màn hình, hay glass eye không có phản xạ này.
  • 3D geometry: Depth sensor verify độ cong của nhãn cầu. Flat print hoặc flat screen bị detect ngay.
  • Texture analysis: NIR reveal micro-texture của iris không thể reproduce bằng print hay display thông thường.
  • Motion analysis: Yêu cầu micro-saccade tự nhiên — chuyển động mắt không chủ ý mà con người tạo ra tự động.
⚠️
Attack Surface thực sự của Orb
Liveness detection của Orb rất mạnh với attack vector thông thường (ảnh, video, mask). Attack surface thực sự không phải ở sensor mà ở firmware và supply chain. Orb được manufacture bởi bên thứ ba và distribute toàn cầu — nếu firmware bị compromise, attacker có thể inject fake IrisCode trước khi hash mà không cần bypass liveness detection.

Processing pipeline trong Orb

1
Image capture: NIR camera capture iris ở 940nm. 3D sensor capture depth map của vùng periocular. RGB camera capture face toàn bộ.
2
Liveness check: Pupil response analysis + 3D geometry verification + texture authentication. Nếu fail bất kỳ check nào → stop, không process tiếp.
3
Iris segmentation: Localize iris boundary (limbus) và pupil boundary. Loại trừ eyelid, eyelash. Normalize thành annular region chuẩn.
4
Feature extraction: Gabor wavelet hoặc equivalent transform encode texture pattern thành IrisCode — 2048-bit binary vector với 2048-bit mask (mark unreliable bits).
5
IrisCode xử lý on-device: IrisCode không rời Orb ở dạng raw. Hash commitment được tính ngay tại Orb: commitment = Hash(IrisCode || pepper). Sau bước này, IrisCode bị xóa khỏi memory.
6
Commitment upload: Chỉ commitment (không phải IrisCode) được gửi đến Worldcoin servers để kiểm tra uniqueness trong global registry.
🌐
📌 Key Takeaway

Semaphore ZK protocol: nullifier từ iris code ngăn double-voting mà không link về identity thật. Iris code không được lưu — chỉ hash commitment. Privacy-preserving ở design, tập trung ở enrollment hardware.

IrisCode & Commitment — từ sinh trắc học đến cryptographic token

IrisCode là representation kỹ thuật số của iris pattern — không phải ảnh chụp, mà là feature vector encode structure của iris texture. Concept xuất phát từ công trình của John Daugman (Cambridge) những năm 1990s, nay là foundation cho hầu hết commercial iris recognition system.

Tại sao IrisCode là 2048-bit binary?

Iris texture được phân tích bằng Gabor wavelet ở nhiều spatial frequency và orientation. Với mỗi local region của iris, wavelet response được quantize thành 2 bits (sign của real và imaginary part). 2048-bit code từ ~1000 iris regions × 2 bits/region.

Bit mask đi kèm (2048-bit) đánh dấu regions không reliable (bị eyelid che, reflection, low contrast). Khi so sánh hai IrisCode, chỉ compare các bit không bị mask ở cả hai — gọi là Hamming Distance có weighted mask.

// IrisCode matching — Hamming Distance với mask HD(IrisCode_A, IrisCode_B) = popcount( (IrisCode_A XOR IrisCode_B) AND NOT(mask_A OR mask_B) ) / popcount(NOT(mask_A OR mask_B)) // Same iris: HD ≈ 0.08–0.15 (low Hamming distance) // Different iris: HD ≈ 0.45–0.50 (near random) // Threshold: HD < 0.32 → same person // Error rate EER: ~0.1%

Từ IrisCode đến Cryptographic Commitment

IrisCode không thể dùng trực tiếp làm cryptographic input vì nó không hoàn toàn deterministic — cùng mắt người đó scan hai lần sẽ cho IrisCode hơi khác nhau (khác vì ánh sáng khác, pupil dilation khác, góc camera khác). Vấn đề này được giải quyết bằng fuzzy commitment scheme:

// Fuzzy commitment — encode secret vào error-correcting code // Enrollment (lần đầu scan): codeword = ECC.encode(secret) // secret là random 256-bit key helper_data = IrisCode XOR codeword // helper_data là public, non-sensitive commitment = Hash(secret || pepper) // commitment được lưu trong registry // Verification (lần scan lại): candidate = IrisCode_new XOR helper_data // = codeword + error secret_recovered = ECC.decode(candidate) // error-correcting code recover secret // nếu IrisCode đủ gần bản gốc if Hash(secret_recovered || pepper) == commitment → match
🔑
Tại sao pepper quan trọng
pepper là random value được generate và stored locally (trong Orb hoặc user device). Nó ngăn cross-context linking: cùng IrisCode nhưng pepper khác → commitment hoàn toàn khác. Một user không thể bị link giữa các deployment World ID khác nhau nếu mỗi deployment dùng pepper riêng.

Uniqueness Check — vì sao cần so sánh toàn bộ registry?

Để đảm bảo một iris chỉ đăng ký một lần, server cần kiểm tra IrisCode mới có Hamming Distance thấp với bất kỳ IrisCode nào đã có trong registry không. Với hàng triệu user, đây là một trong những thách thức kỹ thuật lớn nhất của World ID — cần approximate nearest neighbor search trên 2048-bit binary vectors ở quy mô lớn, đủ nhanh, và vẫn privacy-preserving.

Worldcoin đã publish một số research về cách dùng Locally Sensitive Hashing (LSH) và Multi-Party Computation (MPC) để phân tán uniqueness check mà không cần một server trung tâm thấy tất cả IrisCodes. Đây vẫn là active research area — chưa fully decentralized.

🌐
📌 Key Takeaway

Orb là hardware anchor cho uniqueness — layer khó fake nhất. Nhưng cũng là layer tập trung nhất: Worldcoin control hardware, protocol, và smart contract. Ba layer centralization risk cần đánh giá riêng.

ZK Circuit — chứng minh uniqueness không tiết lộ iris

Sau khi enrollment xong, user có: identity_secret (lưu trong World App), và commitment của mình trong global Merkle treeCấu trúc dữ liệu dạng cây: mỗi node là hash của 2 node con. Cho phép prove membership trong set mà không lộ toàn bộ set.. Mỗi lần muốn dùng World ID, user tạo một zero-knowledge proof chứng minh hai điều cùng lúc mà không tiết lộ gì thêm:

  1. Identity secret của mình tương ứng với một commitment trong Merkle tree (proof of membership)
  2. Commitment đó chưa được dùng trong context cụ thể này (proof of non-double-use, qua nullifier)

Semaphore Protocol — ZK circuit cơ sở

World ID dùng Semaphore (PSE / Privacy and Scaling Explorations team của Ethereum Foundation) làm ZK circuit cơ sở. Semaphore là circuit cho phép member của một group ký message ẩn danh mà không reveal identity trong group — đúng những gì World ID cần.

// Semaphore circuit (simplified) — public inputs và private inputs Private inputs: identity_secret // secret mà user giữ — từ đây derive commitment merkle_path // path trong Merkle tree chứng minh membership Public inputs: merkle_root // root của global identity set (on-chain) nullifier_hash // = Hash(identity_secret || externalNullifier) external_nullifier // context identifier: "vote_proposal_4521" hay "airdrop_round_7" signal // message muốn sign: vote choice, claim data, v.v. Circuit chứng minh: 1. commitment = Hash(identity_secret) // commitment belong to identity_secret 2. MerkleVerify(commitment, merkle_path, merkle_root) == true 3. nullifier_hash == Hash(identity_secret || external_nullifier)

Tại sao circuit này đảm bảo privacy?

Verifier (smart contract) chỉ thấy: merkle_root (public), nullifier_hash, external_nullifier, và signal. Verifier không thấy: identity_secret, commitment cụ thể của user, hay merkle_path. Proof chỉ chứng minh "tôi biết một secret mà (a) commitment của nó trong Merkle tree và (b) nullifier_hash được tính đúng" — mà không reveal secret đó là gì hay commitment nào.

🔬
ZK proof system — World ID dùng gì?
World ID dùng Groth16 (zk-SNARKSuccinct Non-interactive ARgument of Knowledge: ZK proof nhỏ gọn, verify <1ms. Cần trusted setupNghi thức khởi tạo một lần cho zk-SNARK: nhiều bên generate tham số và xóa secret. An toàn nếu ít nhất 1 bên honest. Không cần cho zk-STARK. ban đầu (Groth16, PLONK).) — proof size rất nhỏ (~200 bytes), verification nhanh (sub-millisecond), phù hợp on-chain. Nhược điểm: cần trusted setup (ceremony). World ID đã tổ chức public ceremony cho trusted setup. Xem so sánh Groth16 vs STARK trong bài về ZK Proof cơ bản →

Merkle Tree của World ID

Tất cả commitments của user được organize trong một Merkle tree — data structure cho phép prove một element thuộc set chỉ với O(log n) data (merkle_path), thay vì phải expose toàn bộ set. Khi có user mới, một leaf mới được thêm vào tree, root được update. Mọi proof dùng root tại thời điểm proof generation.

⚠️
Merkle root staleness — vấn đề thực tế
Nếu user generate proof với một merkle_root cũ (nhiều user mới đã join sau đó), verifier dùng root hiện tại sẽ reject proof. World ID cần cơ chế cho phép prove membership với "recent enough" root — balance giữa freshness requirement và UX.
🌐
📌 Key Takeaway

World ID protocol và WLD token là 2 thứ khác nhau. Protocol có thể dùng mà không quan tâm đến WLD token. Phân biệt này quan trọng khi evaluate World ID cho use case non-financial.

Nullifier Mechanism — một người một action, không link được giữa contexts

Nullifier là trái tim của toàn bộ privacy model của World ID. Hiểu đúng nullifier là hiểu tại sao World ID privacy-preserving khác với anonymous:

nullifier_hash = Hash(identity_secret || external_nullifier) // Ví dụ: external_nullifier = "gitcoin_grants_round_20" nullifier_hash_A = Hash(secret_user_A || "gitcoin_grants_round_20") external_nullifier = "worldcoin_airdrop_round_5" nullifier_hash_B = Hash(secret_user_A || "worldcoin_airdrop_round_5") // nullifier_hash_A và nullifier_hash_B hoàn toàn khác nhau // Không thể link "user A đã dùng Gitcoin" với "user A đã claim airdrop" // Nhưng cùng user, cùng external_nullifier → cùng nullifier → reject double-use

Tính chất quan trọng của nullifier

  • Deterministic: Cùng secret + cùng context → luôn cho cùng nullifier. Không random. Đây là by design — cho phép double-use detection.
  • Context-bound: Thay đổi context (external_nullifier) → nullifier khác hoàn toàn. Không thể link user giữa các applications khác nhau.
  • Non-reversible: Biết nullifier_hash không giúp recover identity_secret (preimage resistance của hash function).
  • Public và persistent: Nullifier được lưu on-chain sau khi dùng — đây là dữ liệu public. Bất kỳ ai cũng thấy "nullifier X đã được dùng trong context Y" — nhưng không thể biết X thuộc về ai.
🔴
Giới hạn: External Nullifier Design là trách nhiệm của Application
Nếu developer thiết kế external_nullifier quá rộng (ví dụ: dùng cùng external_nullifier cho nhiều actions), nullifier sẽ link các actions đó lại với nhau. World ID không ngăn application tự expose user nếu thiết kế kém. Đây là responsibility của developer tích hợp World ID, không phải World ID protocol.

Revocation — nếu identity_secret bị lộ?

Nếu identity_secret bị lộ, attacker có thể tạo proof nhân danh user đó. Recovery: user quét iris lại (lần này identity đã tồn tại trong registry nên hệ thống nhận ra và cho phép re-issuance với secret mới). Đây là ưu thế của biometric uniqueness — iris không thể "bị đổi" nên identity vẫn recoverable dù secret bị lộ.

🌐
📌 Key Takeaway

Regulatory risk thực tế: GDPR investigation tại EU, Kenya ban. Biometric data cross-border là vùng pháp lý chưa rõ ràng ở hầu hết jurisdiction kể cả Việt Nam — cần legal clearance trước khi deploy.

Applied Flow — từ scan mắt đến vote governance: end-to-end

Flow hoàn chỉnh từ khi chưa có World ID đến khi vote trong DAO governance, minh họa toàn bộ cơ chế đã mô tả:

1
Tìm Orb operator — User đến điểm scan (Orb được vận hành bởi operator được Worldcoin authorize). Operator không biết gì về user ngoài việc họ đang scan. Không cần tên, email, hay ID card.
2
Iris scan + liveness — Orb capture iris NIR, run liveness detection. Nếu pass: IrisCode generated (2048-bit). Nếu fail: session end, không lưu gì.
3
IrisCode → commitment — Orb compute: commitment = Hash(IrisCode || pepper). IrisCode xóa. Commitment gửi đến Worldcoin server kèm uniqueness check request.
4
Uniqueness verification — Server kiểm tra IrisCode (qua fuzzy matching trên commitments) — có iris tương tự trong registry chưa? Nếu chưa: commit được add vào Merkle tree on-chain.
5
World App nhận identity_secret — User download và store identity_secret trong World App (encrypted local storage). Đây là thứ duy nhất user cần giữ. Nếu mất → recover bằng scan lại.
6
Muốn vote trong DAO (proposal #4521) — User mở World App → chọn "Verify with World ID" → App generate ZK proof với:
• Private: identity_secret, merkle_path
• Public: merkle_root, external_nullifier="dao_proposal_4521", signal="vote_yes"
7
ZK proof verification on-chain — Smart contract:
(a) verify ZK proof valid (Groth16 verifier)
(b) nullifier_hash chưa có trong used set
(c) merkle_root được accept
→ Nếu pass cả 3: vote recorded, nullifier added to used set.
8
Kết quả — DAO biết "một người thật đã vote Yes cho proposal #4521" — không biết người đó là ai, ở đâu, hay đã dùng World ID ở application nào khác.

Privacy Model Thực Sự — World ID biết gì và không biết gì về bạn

Privacy model của World ID phức tạp hơn marketing đơn giản hóa. Cần phân tích ba layer riêng biệt: những gì protocol biết, những gì Worldcoin Inc. biết, và những gì verifying application biết.

EntityBiết gì về bạnKhông biết
Protocol (on-chain) Commitment trong Merkle tree; Danh sách nullifiers đã dùng (không link được với ai) Tên, địa chỉ, quốc tịch, link giữa các actions
Worldcoin Inc. IrisCode (hoặc commitment từ IrisCode); Vị trí gần đúng khi scan (Orb location); Thời gian scan Bạn dùng World ID ở đâu sau đó; Link với wallet address
Orb operator Bạn đã scan mắt tại thời điểm X, địa điểm Y Identity của bạn nếu bạn không cung cấp
Application (verifier) Bạn là unique human; Nullifier (không link được với identity); Signal bạn submit Bạn là ai; Bạn đã dùng app nào khác

Privacy gap quan trọng nhất

Worldcoin Inc. có IrisCode (hoặc commitment đủ để perform Hamming distance matching). Đây là tập trung dữ liệu biometric nhạy cảm nhất có thể tưởng tượng. Nếu:

  • Worldcoin Inc. bị breach: IrisCodes của hàng triệu người bị lộ (không thể thay đổi iris)
  • Worldcoin Inc. bị compel bởi chính phủ: có thể reveal IrisCode và link với identity nếu có thêm data
  • Worldcoin Inc. thay đổi policy: privacy guarantee hiện tại không được enforce bởi protocol, mà bởi business decision
🔴
Central Single Point of Failure
World ID on-chain privacy tốt. Nhưng off-chain biometric processing là centralized. Orb firmware kiểm soát bởi Worldcoin, server kiểm soát bởi Worldcoin, business model của Worldcoin incentivize data collection. Đây là fundamental tension trong thiết kế hiện tại mà chưa có giải pháp đầy đủ.

So Sánh — World ID vs BrightID vs Proof of Humanity

Ba hệ thống proof-of-personhood phổ biến nhất, mỗi cái represent một trade-off philosophy khác nhau:

Tiêu chí World ID BrightID Proof of Humanity
Cơ chế uniqueness Iris biometric (hardware) Social graph (web of trust) Video + on-chain vouching
Hardware yêu cầu Orb (specialized) Smartphone Camera thường
Chống Sybil Rất mạnh Trung bình Trung bình
Privacy protocol ZK proof Semi-private Public video
Centralization Orb + server Fully P2P Smart contract
AI-resistance NIR + 3D depth Social collusion risk Deepfake risk
Scale hiện tại ~10M+ verified ~100K verified ~30K verified
Biometric data exposure IrisCode (Worldcoin server) Không có Face video (public)
Recovery nếu mất credential Scan lại Cần vouching lại Dispute + re-submit
💡
Không có giải pháp tốt nhất — chỉ có trade-off phù hợp nhất
World ID tốt nhất về Sybil resistanceKhả năng của hệ thống chống lại Sybil attack — đảm bảo một thực thể không thể kiểm soát hệ thống bằng cách tạo nhiều identity giả. và scale, nhưng tệ nhất về centralization và biometric risk. BrightID tốt nhất về privacy và decentralization, nhưng yếu về Sybil resistance ở quy mô lớn. PoH đơn giản nhất về cơ chế, nhưng public video là privacy nightmare và deepfake-vulnerable.

Tranh Cãi & Rủi Ro Thực Sự — những gì cần biết trước khi đánh giá

1. Regulatory bans — nhiều quốc gia từ chối

Kenya, Brazil, India, và một số quốc gia châu Âu đã đình chỉ hoặc cấm hoạt động của Worldcoin/World ID vì lo ngại về thu thập biometric data không đủ consent mechanism và vi phạm GDPR. Đây không phải chỉ là FUD — là legitimate regulatory concern về việc một công ty Mỹ thu thập iris database toàn cầu.

2. Iris revocability — không thể đổi nếu bị lộ

Password bị lộ → đổi password. Private key bị lộ → generate key mới. Iris bị lộ (IrisCode bị reverse-engineer thành reconstructed iris) → không có cách nào "đổi iris". Worldcoin argue rằng IrisCode không thể reverse-engineer thành ảnh iris thực, nhưng: (1) thuật toán reverse có thể cải thiện theo thời gian, (2) quantum computing thay đổi threat model dài hạn, (3) đây là "trust us" claim từ một công ty — không được verify bởi independent cryptographers đồng thuận.

3. Orb supply chain và firmware trust

Orb được manufacture bởi Jabil (US), phân phối bởi independent operators toàn cầu. Ai verify firmware của từng Orb? Open source một phần của firmware (Tools for Humanity đã release một số code), nhưng không phải toàn bộ. Người dùng phải tin rằng Orb chạy đúng code được audit, không có hidden backdoor.

4. Business model và data incentive

Worldcoin Foundation cần revenue. Hiện tại có cam kết không bán biometric data — nhưng đây là policy, không phải protocol guarantee. Thay đổi TOS, acquisition, bankruptcy proceeding, hay government subpoena có thể change calculus này. Privacy guarantee centralized ở organizational trust, không ở mathematical proof.

5. Concentration: ai access Orb?

Orb tập trung ở các thành phố lớn ở nước giàu (và một số nước đang phát triển có incentive token cao). Người ở vùng nông thôn hay không có điều kiện đi lại bị exclude. "Universal proof of personhood" chưa universal.

⚠️
Kết luận công bằng
World ID giải quyết một bài toán thực sự quan trọng (Sybil resistance ở scale) bằng công nghệ kỹ thuật ấn tượng (ZK + biometric). Nhưng thiết kế hiện tại trao nhiều trust và data cho một công ty tư nhân — trade-off này không nhỏ. Theo dõi tiến độ decentralize uniqueness check (MPC/FHE approach) là thước đo xem World ID có thực sự fulfill privacy promise hay không.

Câu Hỏi Thường Gặp

World ID không lưu ảnh iris thô. Orb chuyển đổi iris thành IrisCode (2048-bit binary), sau đó tính commitment từ IrisCode này. Chỉ commitment được lưu trong registry, không phải IrisCode hay ảnh gốc. Tuy nhiên, IrisCode vẫn được tạo ra trong quá trình xử lý — và Worldcoin servers cần thực hiện Hamming distance matching, có nghĩa là có một dạng biometric data được xử lý tập trung. Đây là điểm tranh cãi chính về privacy của hệ thống.
eKYC thông thường: verifier biết chính xác bạn là ai (tên, CMND, số điện thoại, địa chỉ). World ID: verifier chỉ biết "đây là người thật và chưa tham gia context này lần nào". Nhờ ZK proof, không có thông tin định danh nào được tiết lộ cho verifier. Đây là privacy-preserving proof-of-personhood, không phải identity verification theo nghĩa truyền thống — khác về design goal hoàn toàn.
Nullifier là Hash(identity_secret + context_identifier). Mỗi lần dùng World ID trong một context (ví dụ: vote proposal #123), nullifier được tính và lưu on-chain. Lần sau nếu cùng user cố dùng trong cùng context → nullifier trùng → rejected. Nhưng trong context khác → nullifier khác hoàn toàn → không thể link hai lần dùng với nhau. Đây là cơ chế chống double-use mà không làm mất anonymity.
Orb dùng liveness detection đa lớp: cảm biến NIR (Near-Infrared), 3D depth map, và phân tích pupil response. Deepfake video 2D không qua được NIR sensor. Tuy nhiên, attack surface thực sự không phải ở liveness detection mà ở firmware của Orb — nếu firmware bị compromise, attacker có thể inject fake IrisCode trước khi hash mà không cần bypass liveness detection thực sự. Supply chain attack là threat model đúng hơn là deepfake attack.
World ID credential gắn với identity_secret, không phải với thiết bị cụ thể. Nếu backup seed phrase của wallet, bạn có thể recover trên thiết bị mới. Nếu mất cả seed phrase, cần quét iris lại để lấy credential mới — registry sẽ nhận ra đây là cùng iris và cho phép re-issuance với secret mới. Đây là ưu điểm của biometric uniqueness so với pure cryptographic identity.
WLD là token của Worldcoin protocol — được phân phối cho người dùng đã xác minh World ID như incentive tham gia. World ID (hệ thống proof-of-personhood) và WLD (token kinh tế) là hai component riêng biệt. Bạn có thể dùng World ID trong ứng dụng mà không nhất thiết giữ WLD token, và WLD token có thể được trade mà không liên quan đến quyền truy cập World ID service.

Tài liệu tham khảo

  1. Daugman, J. How Iris Recognition Works. IEEE Transactions on Circuits and Systems for Video Technology, 2004. — Foundation của IrisCode và Hamming Distance matching.
  2. Worldcoin Foundation. World ID 2.0: Protocol Specification. whitepaper.worldcoin.org. 2024.
  3. Semaphore Protocol. Zero-Knowledge Group Membership and Signaling. semaphore.pse.dev. — ZK circuit cơ sở của World ID.
  4. Groth, J. On the Size of Pairing-based Non-interactive Arguments. EUROCRYPT 2016. — Groth16 — proof system World ID sử dụng.
  5. Juels, A. & Wattenberg, M. A Fuzzy Commitment Scheme. ACM CCS 1999. — Nền tảng cho fuzzy biometric commitment.
  6. Dauterman, E. et al. Privacy-Preserving Iris Biometric. IEEE S&P 2022. — Privacy-preserving iris matching không tiết lộ IrisCode.
  7. Douceur, J.R. The Sybil Attack. IPTPS 2002. — Bài toán World ID được thiết kế để giải quyết.
  8. CNIL (France). Decision on Worldcoin Data Collection. 2024. — Regulatory perspective từ EU.
  9. ZRO Research. AI & Identity Research Hub. wld.vn. — Bài pillar về toàn bộ kiến trúc decentralized identity.