XODE의 사람 인증

사람인지 확인하고,
그 외엔 아무것도 모르게.

Xodian은 앱의 사용자 한 명 한 명이 정품 휴대폰을 쓰는 실제 사람인지 확인해 줘요. 셀카도, 신분증 업로드도, 개인정보도 필요 없어요. 앱은 서명된 비공개 증명서를 받고, 휴대폰 한 대는 앱마다 증명서를 하나만 만들 수 있어요.

하드웨어 인증된 기기 앱마다 연결되지 않는 ID 온체인 판정 기록

왜 필요한가

휴대폰 한 대. 사람 한 명. 보상 한 번.

지갑 50개를 가진 파밍 업자는 50명의 사용자처럼 보여요. Xodian은 모든 응답을 정품 휴대폰 한 대의 하드웨어 키에 묶어서, 그 파밍 업자를 다시 한 명으로 만들어요.

Xodian 없이

지갑 하나하나가 사람으로 셈돼요. 휴대폰 팜 하나가 캠페인 예산을 다 가져가요.

0건 · 한 팜에서 받은 보상

Xodian과 함께

같은 휴대폰, 같은 사람, 같은 sub. 나머지 지갑 49개는 하나의 ID로 모여요.

0건 · 한 팜에서 받은 보상

실측이 아니라 규칙을 보여주는 예시예요. Xodian은 한 휴대폰의 모든 지갑에 같은 ID를 돌려줘요.

이런 곳에

한 사람이 한 계정이어야 하는 모든 곳

Tokens going to a queue of people while robot boxes are held behind a barrier

에어드랍과 보상

한 사람에게 한 번만 지급해요. 휴대폰 한 대에 지갑이 50개여도 보상은 한 번이에요.

A game controller with one player badge and duplicate badges dissolving

게임

랭크 게임, 체험판, 신규 보너스에 플레이어당 계정 하나.

A queue of people casting ballots into a glass box

투표와 커뮤니티

누구인지 묻지 않고도 1인 1표.

People walking through a glowing gateway while robots are filtered out before a vault

핀테크 가입

KYC 전에 봇을 걸러서, 실제 사람에게만 본인인증 비용을 써요.

작동 방식

사용자에겐 5초면 충분해요

코드를 스캔하고, 전달되는 정보를 확인하고, omni에서 확인을 누르면 끝이에요. 서버는 따로 호출하지 않고도 검증할 수 있는 증명서를 받아요.

omni로 스캔×
Acme Airdrop의 코드를 비춰 주세요
Xodian×
A

Acme Airdrop에서 실제 사람인지 확인하려고 해요

✓ acme.example필요 등급: 신뢰 계정
ACME AIRDROP에 전달되는 것
✓ 정품 휴대폰을 쓰는 실제 사람이라는 확인
✓ Acme만 볼 수 있는 비공개 ID
절대 전달되지 않는 것
🔒 이름, 전화번호, 얼굴
🔒 지갑, 잔액, 활동 내역
확인
거절
Xodian×

인증됐어요

Acme Airdrop은 이제 내가 실제 사람이라는 것만 알아요.

◆ 신뢰 계정

설계부터 개인정보 보호

무엇을 받지 않는지까지 신경 썼어요

사용자는 개인정보를 지키고, 여러분은 필요도 없는 데이터를 보관하는 부담을 지지 않아요.

서버가 받는 것 · id_token✓ 인증된 사람
{
  "iss": "https://xodian.xode.net",
  "aud": "rp_acme",
  "sub": "oid_9f3c1a…e07b",   // only you see this
  "human": true,
  "level": 2,
  "level_name": "established",
  "uniqueness": "new",
  "nonce": "claim-8812",
  "receipt": "1759651200-a1b2c3d4"
}
이름, 얼굴, 신분증 omni는 처음부터 수집하지 않아요
전화번호, 기기 모델 안드로이드인지 아이폰인지조차 전달하지 않아요
지갑, 잔액, 활동 주소는 요청하고 사용자가 동의할 때만 전달돼요
다른 앱과의 연결 같은 사람이라도 앱마다 다른 ID를 받아요

인증 등급

얼마나 엄격할지 고르세요

세션을 열 때 minLevel을 정해요. 기준에 못 미치면 rejected만 받고, 자격을 얻는 방법은 omni가 본인에게만 따로 알려줘요.

1
등급 1 · 기기 인증

정품 휴대폰을 쓰는 실제 사람

  • 지갑이 하드웨어 키(StrongBox, TEE, Secure Enclave)에 묶여 있어요
  • Google Play Integrity 또는 Apple App Attest를 통과하고 최근에 다시 확인됐어요
  • 에뮬레이터, 루팅된 기기, 변조된 앱은 거부돼요
가입, 체험판, 봇 차단에
2
등급 2 · 신뢰 계정

등급 1에 활동 이력까지

  • 가입 14일 이상, 활동한 날 7일 이상
  • 최근 30일 동안 기기 변경 없음
  • 가짜 계정 하나마다 휴대폰 한 대를 몇 주씩 켜 둬야 해요
에어드랍, 지급, 투표에

하드웨어 키

휴대폰은 보안 칩 밖으로 나갈 수 없는 키로 서명해요. 지갑 시드를 복사해도 소용없어요.

스토어 인증

Google과 Apple이 기기와 앱이 정품이고 변조되지 않았다고 보증해요.

앱별 ID

앱마다 다른 ID라서 파트너끼리 데이터를 합쳐 한 사람을 추적할 수 없어요.

온체인 기록

모든 판정은 매시간 XODE 체인에 기록돼서, 나중에 바뀌지 않았다는 걸 누구나 확인할 수 있어요.

연동

호출 세 번, SDK 종속 없음

평범한 HTTPS와 표준 JWT라서 어떤 언어, 어떤 JOSE 라이브러리로도 연동돼요.


    

샌드박스

휴대폰 없이도 연동을 끝까지 만들어 보세요

테스트 키는 실제 키와 똑같이 동작하고, 휴대폰 대신 시뮬레이터가 응답해요. 토큰은 같은 코드로 검증되고 "test": true가 붙어요. 운영 환경에서는 이 표시가 있으면 거부하세요.

1 · 테스트 키 받기

무료이고 바로 나와요. 하루에 키 5개까지, 키마다 하루 500세션까지 쓸 수 있어요.

// Get a test key to begin. Every call you make appears here,
// with the exact request your server would send.

라이브 데모

내 휴대폰으로 직접 해보세요

실제 운영 서비스로 동작해요. 오른쪽이 파트너 서버가 받는 내용 그대로예요.

직접 인증하기

휴대폰에서 omni를 열고 코드를 스캔하세요. 휴대폰에서는 버튼이 omni를 바로 열어요.

💡Google Play 또는 App Store에서 받은 omni가 있어야 하고, 기기 등록이 끝나 있어야 해요. 데모는 등급 1을 요구해요.
// Waiting. Press "Verify with Xodian" to start.

API 레퍼런스

엔드포인트

기본 URL은 https://xodian.xode.net이에요. 서버 호출은 Authorization: Bearer osk_…로 인증해요.

전체 매뉴얼 보기 →

엔드포인트인증용도
POST/v1/sessionssecret본문 {scope, minLevel, reference}. sessionId, url, deeplink, pollToken, expiresAt(5분)를 돌려줘요.
GET/v1/sessions/{id}secret상태. 승인되면 idToken, sub, level도 함께 와요.
GET/v1/sessions/{id}/status?t=pollToken상태만 알려줘서 브라우저에서 불러도 안전해요. 위젯이 이걸 써요.
POST/v1/test/clientsnone셀프 서비스 샌드박스 키: {name} → 클라이언트 ID와 비밀키.
POST/v1/test/sessions/{id}/simulatetest session테스트 세션에 응답: approve, deny, reject, expire.
GET/v1/.well-known/jwks.jsonpublic서명 공개키(ES256, kid로 선택).
GET/sentinel/receipt/{receipt}public판정이 XODE 체인에 기록됐다는 머클 증명.

세션 상태

pending → approved | denied | rejected | expired. 세션은 한 번만 쓸 수 있어요.

웹훅

session.*와 grant.revoked 이벤트를 X-Omni-Signature: t=…,v1=HMAC_SHA256(secret, t.body)로 서명해서 보내요.

토큰 검증

서명을 확인한 뒤 iss, aud, exp를 보고, nonce가 보낸 reference와 같은지 확인하세요. 사용자 키로는 sub를 쓰세요.

고유성

new, returning(같은 사람이나 같은 휴대폰), contested(다른 사람이 이미 쓴 휴대폰으로 옮겨 온 지갑). contested는 중복일 가능성이 높아요.

자주 묻는 질문

연동하기 전에

KYC인가요?

아니에요. Xodian은 누군가가 정품 휴대폰을 쓰는 실제 사람 한 명이라는 것만 증명해요. 그 사람이 누구인지는 알지도, 전달하지도 않아요. 많은 팀이 KYC 앞단에 써서, 통과한 사람에게만 본인인증 비용을 써요.

생체정보나 서류를 수집하나요?

아니요. 셀카도, 얼굴 스캔도, 신분증 업로드도 없어요. 증명은 휴대폰의 하드웨어 키와 Google Play Integrity 또는 Apple App Attest에서 나와요.

휴대폰을 바꾸면 어떻게 되나요?

지갑이 그대로 옮겨 가기 때문에 앱에서는 같은 ID를 유지해요. 다른 사람이 이미 쓴 휴대폰으로 옮겨 온 지갑은 contested로 표시돼서, 어떻게 처리할지 직접 정할 수 있어요.

휴대폰을 여러 대 쓰면 여전히 파밍할 수 있나요?

네, 정품 휴대폰 한 대당 ID 하나예요. 등급 2를 쓰면 휴대폰마다 몇 주씩 활동을 유지해야 해서 비용이 커져요. Xodian이 막는 건 값싼 방법이에요. 기기 하나에 지갑 여러 개, 에뮬레이터, 변조된 앱 같은 것들이요.

비용은 얼마인가요?

Xodian은 XODE 위에서 서비스하는 파트너를 대상으로 얼리 액세스 중이에요. 테스트 키는 무료예요. 실제 키와 가격은 문의해 주세요.

봇에게 그만 지급하세요

테스트 키는 몇 초면 받을 수 있고, 연동은 오늘 끝낼 수 있어요. 실제 키가 필요하면 무엇을 지키려는지 알려주세요.