호패DOCS
데모 열기
문서 목차라이브 데모
Live Demo

라이브 데모

문서에서 읽은 수명주기를 직접 돌려보는 화면입니다. 발급부터 폐기까지 5개 탭으로 이어지고, 지갑이 없어도 됩니다.

시작 전에

  • ·데모는 GIWA Sepolia 테스트넷에서 동작하며, 실제 자산이 오가지 않습니다.
  • ·MetaMask를 연결하거나, 브라우저에서 바로 데모 지갑을 만들 수 있습니다. 발급·폐기 가스는 발급 서비스가 부담합니다.

탭 1 — 발급 체험

  1. 지갑을 연결하거나 데모 지갑을 생성합니다.
  2. 생년월일·국적·거주 국가를 입력합니다. 브라우저가 이 값을 Poseidon2 커밋먼트로 바꾸고, 서버에는 루트 32바이트만 보냅니다. 원본은 브라우저 밖으로 나가지 않습니다. 데모 UI가 “확인값”이라 부르는 값이 이 커밋먼트 루트(claimsRoot)입니다.
  3. 지갑 서명으로 소유권을 증명합니다. 서버는 서명을 검증한 뒤에만 발급하므로, 다른 사람의 주소로는 받을 수 없습니다.
  4. L1 본인 선언 — KYC level 1 어테스테이션이 발급됩니다. 벤더 검증 등급(L2 명의확인·L3 신원증명)은 연동 전이라 발급되지 않습니다 — 등급은 검증 강도의 약속이기 때문입니다.
  5. 헤더의 인증 배지가 실시간으로 켜집니다.
발급 전에 심사가 먼저 돕니다 — OFAC·UN 실명단 대사, 제재 지정 지갑 대사, 온체인 노출, 관할, 위험평가. 검사 하나라도 FAIL이면 발급되지 않습니다. 없는 것은 벤더 신원 검증입니다.

탭 2 — 지갑 검색

임의 지갑 주소의 어테스테이션 상태를 조회합니다. dApp이 수취인을 확인하는 것과 같은 경로입니다.

  • ·수명주기 상태(active / revoked / lapsed / none)와 등급, 발급·만료 시각을 보여줍니다.
  • ·게이트 통과 여부 — minLevel 1·2·3 게이트의 실시간 isVerified() 판정을 나란히 보여줍니다.

탭 3 — 송금 데모 (gKRW)

gKRW는 인증 지갑끼리만 전송되는 데모 토큰입니다. 게이트는 컨트랙트에서 동작합니다.

  1. 파우셋으로 1,000,000 gKRW를 받습니다. 미인증 지갑은 revert됩니다.
  2. 인증된 수취인에게 전송하면 성공합니다.
  3. 콘솔에서 내 호패를 폐기한 뒤 다시 전송하면 NotKycVerified로 revert됩니다. 토큰 쪽 코드는 그대로입니다.

탭 4 — 크리덴셜 검증

발급 때 온체인에 올라간 claimsRoot가 정말 검증 필드들의 커밋먼트인지 브라우저에서 재계산해 확인합니다. 서버는 개입하지 않습니다.

  1. 발급을 마친 지갑으로 내 크리덴셜 검증을 누릅니다. 크리덴셜은 발급 시 이 브라우저에만 저장됩니다.
  2. 브라우저가 루트를 재계산해 크리덴셜 기재값, 온체인 claimsRootOf()와 대조합니다.
  3. 필드 하나를 골라 선택 공개를 검증합니다. 나머지 필드는 비공개로 남습니다.
  4. 위변조 테스트는 값을 1 바꿔 재검증합니다. 실패해야 정상입니다.
  5. 콘솔 탭에서 폐기한 뒤 다시 검증하면 온체인 루트가 0이 되어 즉시 실패합니다.

우리 코드 없이 재현하는 방법은 프라이버시와 ZK 문서에 있습니다.

탭 5 — 컴플라이언스 콘솔

운영자 관점의 화면입니다.

  • ·온체인 이벤트를 스캔해 발급 현황·만료 시각·KPI를 보여줍니다.
  • ·제재 명단 소스 — 적재한 원본의 발행일·건수·해시를 보여줍니다. 판정에 쓰인 명단 버전이 증적에 함께 남습니다.
  • ·일일 재대사 — 활성 호패 전체를 제재 지정 주소·온체인 접촉으로 다시 대사하고, 적중하면 사람 개입 없이 폐기합니다. 매일 00:00 KST 자동 실행이며 콘솔에서 즉시 실행할 수도 있습니다.
  • ·케이스 — 심사마다 케이스가 열리고 검사 7종의 결과가 상태바로 남습니다. 비해당 검사도 SKIPPED로 남깁니다.
  • ·증적 체인 — 발급·폐기 증적이 앞 레코드의 해시를 품고 이어집니다. 중간을 고치면 뒤가 전부 어긋납니다.
  • ·내 호패 철회 — 연결한 지갑이 자기 호패를 철회하는 경로입니다(사유 코드 USER_REQUEST). 소유권 서명을 거치며, 제재 적중에 의한 폐기는 이 경로가 아니라 재대사가 실행합니다.
  • ·폐기 SLA — 폐기 승인부터 확정까지 걸린 시간을 측정합니다.
  • ·폐기 직후 탭 2에서 같은 주소를 검색하면 모든 게이트가 false로 바뀌어 있습니다.

무엇이 실제이고 무엇이 시뮬레이션인가

실제 (온체인)

영역내용
발급·폐기실제 GIWA Sepolia 트랜잭션. 익스플로러에서 확인 가능
검증 판정isVerified()·게이트·배지 전부 실시간 온체인 read
gKRW 게이트컨트랙트에서 실제로 revert
증적 해시증적 레코드의 keccak256이 온체인에 기록. 사본으로 재계산해 대조 가능
제재 명단 대사OFAC SDN·UN Consolidated 원본 적재 — 엔티티 2만여 건
지정 지갑 대사OFAC 디지털자산 주소(EVM) 109건과 정확 일치 대사
위험평가인자 6종 가중 + 무조건 격상 → 등급이 만료·재심사 주기를 결정
일일 재대사활성 로스터 재대사 → 적중 시 자동 폐기 (Vercel Cron)
신원 커밋먼트입력값의 Poseidon2 루트가 온체인 기록. 원본은 브라우저 보관
소유권 증명대상 지갑의 EIP-191 서명을 서버가 검증한 뒤에만 발급

시뮬레이션

영역내용
벤더 검증휴대폰 본인확인·eKYC는 미연동(로드맵) — 신원 정보는 본인 선언
이름 축 상시 감시이름을 저장하지 않으므로 재대사는 지갑·온체인 축만. 벤더 웹훅 필요
국내 명단금융위 금융제재대상자·테러자금금지법 명단은 기계 판독 배포본이 없어 미적재
증적 영속성증적 색인은 인스턴스 메모리 — 재시작 시 소실. WORM 저장소는 다음 단계