카톡방에서 사다리타기 링크를 돌리면 늘 「조작 아니냐」는 말이 나옵니다. 실제로 흔히 쓰는 사다리 공유 사이트를 열어 보니, 링크에 사다리 모양이 통째로 들어 있어서 만든 사람이 원하는 결과가 나올 때까지 다시 섞은 뒤 그 링크만 보낼 수 있었습니다. 받는 사람은 알 방법이 없고요.
그래서 결과를 「미래의 공개 난수」에 묶었습니다.
[어떻게 동작하나]
- 링크를 만들 때 추첨 시각(기본 1분 뒤)을 정하고, 그 시각에 해당하는 drand quicknet 라운드 번호 R 을 링크에 넣습니다.
- 결과 = sha256(정렬한 이름 ‖ 결과 칸 ‖ 라운드 R 의 BLS 서명)을 시드로 한 피셔-예이츠 셔플입니다.
- R 은 아직 생성되지 않은 라운드라서 링크를 만든 사람도, 사이트 운영자도 결과를 미리 알 수 없습니다.
- 시각이 되면 모든 사람의 브라우저가 drand 에서 같은 서명을 받아 같은 사다리를 그립니다. 서명은 브라우저에서 quicknet 공개키로 직접 검증하고(@noble/curves), 다른 미러와도 대조합니다. 서버를 거치지 않아서 운영자가 값을 바꿔 끼울 수 없습니다.
- 「검증」을 펼치면 라운드 번호·서명·해시 입력 원문·시드를 보여 주고 다시 계산해 볼 수 있습니다.
[보장하지 못하는 것 — 화면에도 그대로 적었습니다]
- 만든 사람이 서로 다른 라운드로 링크를 여러 개 만들어 두고, 결과가 나온 뒤 유리한 것만 보내는 「사후 선택」은 막을 수 없습니다. 이때 증거는 링크를 받은 시각(카톡 메시지 시각)입니다. 그래서 추첨 시각이 지난 뒤 처음 연 링크에는 「사후 열람」 경고를 띄웁니다.
- drand 노드 과반이 공모하는 경우는 이론상 한계로 적어 뒀습니다.
[그 밖에]
- 이름은 URL 의 # 뒤에만 들어가서 서버·로그·애널리틱스로 가지 않습니다.
- 같은 엔진으로 돌림판(항목 100개), 당첨자 추첨(명단 1,000줄, 예비 당첨자), 커피 내기 경주(결과를 먼저 정하고 경주는 그 결과에 맞춰 연출 — 물리 시뮬레이션은 기기마다 결과가 달라져서 안 썼습니다)도 만들었습니다.
- Next.js, 로그인 없음, 무료입니다.
drand 를 웹 추첨에 쓰는 방식이나 「사후 선택」을 더 줄일 아이디어가 있으면 의견 부탁드립니다.

4 days ago
16



![[ET특징주]펩트론, 일라이릴리 기술평가 종료 소식에 하락세](https://img.etnews.com/news/article/2026/10/08/news-p.v1.20261008.b94f10395e00410b8d2a494b9b836893_P1.gif)

![[美특징주]캠벨·제너럴밀스 등 강세…기술주 이탈해 소비재주로](https://image.edaily.co.kr/images/content/defaultimg.jpg)
![이효리, 잔고 10만원·찬물 샤워 '쉬었음 청년' 커플 사연에.."너무 마음 아파"[연애전쟁]](https://image.starnewskorea.com/cdn-cgi/image/f=auto,w=1200,h=1498,fit=cover,q=high,sharpen=2/21/2026/10/2026100508283965845_1.jpg)

English (US) ·