가이드 목록
🔍

추첨 결과를 직접 검증해보기 (따라 하기)

2026년 8월 25일 · 꽁놀소

공개된 시드로 당첨자를 직접 다시 계산해봅니다. 명령 두 줄이면 됩니다.

[추첨이 조작이 아니라는 걸 어떻게 믿나요](/guide/fair-draw)에서 구조를 설명했다면, 이 글은 직접 해보는 방법입니다. 설명을 읽는 것과 결과가 맞아떨어지는 걸 눈으로 보는 건 다르니까요.

무엇을 확인하는가

두 가지입니다.

1. 미리 공개한 해시가 진짜 그 시드의 해시인가 — 추첨 후에 시드를 바꿔치기하지 않았다는 증거 2. 그 시드로 계산하면 발표된 당첨자가 나오는가 — 결과를 손대지 않았다는 증거

둘 다 맞으면 조작할 자리가 없습니다. 시드를 미리 정해서 해시로 잠가뒀고, 그 시드로 계산한 결과가 발표된 것과 같으니까요.

1단계 — 해시 확인

이벤트 페이지에 추첨 전에 공개된 시드 해시가 있습니다. 발표 후에는 원본 시드가 공개됩니다. 시드를 sha256으로 해싱해서 미리 공개된 값과 같은지 보면 됩니다.

터미널에서:

``` echo -n "공개된시드" | sha256sum ```

또는 브라우저 개발자도구 콘솔에서:

``` crypto.subtle.digest('SHA-256', new TextEncoder().encode('공개된시드')) .then(b => console.log([...new Uint8Array(b)].map(x => x.toString(16).padStart(2,'0')).join(''))) ```

나온 값이 이벤트 페이지의 사전 공개 해시와 한 글자도 다르지 않아야 합니다.

2단계 — 당첨자 다시 뽑기

규칙은 이렇습니다.

1. 모든 캡슐에 대해 `sha256(시드 + ":" + 캡슐번호)`를 계산한다 2. 그 해시값을 문자열 오름차순으로 정렬한다 3. 앞에서부터 당첨자 수만큼 고른다 4. 이때 이미 뽑힌 사람의 캡슐은 건너뛴다 (1인 중복 당첨 방지)

예를 들어 시드가 `abc123`이고 캡슐 번호가 1, 2, 3이라면 `sha256("abc123:1")`, `sha256("abc123:2")`, `sha256("abc123:3")`을 각각 구해서 작은 값부터 줄을 세웁니다. 맨 앞이 1등입니다.

여기에 사람이 개입할 여지가 없습니다. 시드가 정해지는 순간 결과도 정해지고, 그 시드는 추첨 전에 해시로 잠겨 있었습니다.

왜 캡슐 번호를 같이 넣나

시드만 해싱하면 값이 하나뿐이라 순서를 매길 수 없습니다. 캡슐 번호를 붙이면 캡슐마다 다른 해시가 나오고, 그걸 정렬하면 누구도 예측할 수 없지만 누구나 재현할 수 있는 순서가 만들어집니다. 이게 provably fair 방식의 핵심입니다.

결과가 안 맞으면

계산이 발표와 다르게 나온다면 알려주세요. 시드나 캡슐 목록이 잘못 공개됐거나, 정말로 문제가 있는 것입니다. 어느 쪽이든 저희가 확인해야 할 일입니다.

가장 흔한 실수는 `echo`에 `-n`을 빠뜨려 줄바꿈 문자까지 해싱하는 경우입니다. 그러면 전혀 다른 값이 나옵니다.

검증할 수 있다는 것의 의미

대부분의 경품 이벤트는 "공정하게 추첨했습니다" 한 줄로 끝납니다. 믿는 것 말고 할 수 있는 게 없죠. 검증 가능한 방식은 믿어달라고 하지 않아도 되게 만듭니다. 아무도 검증하지 않더라도, 검증할 수 있다는 사실 자체가 운영자를 묶어둡니다.

다른 가이드

무료로 응모해보세요

가입은 이메일 인증 한 번이면 끝. 가입 즉시 100P를 드려요.

꽁놀소 시작하기