← Studio Toriumi

Quantum Draw · IBM Quantum

뽑기 전에는,
아무도 몰랐다.

IBM 양자컴퓨터가 만든 비트로 추첨합니다. 일반 난수는 시드에서 계산되므로 시드를 가진 사람은 결과를 이미 알고 있습니다. 양자 측정 결과는 측정 전에 존재한 어떤 변수로도 정해져 있지 않습니다. 모든 추첨은 누구나 검산할 수 있는 증서를 남깁니다.

X의 답글이나 인용을 그대로 붙여넣었나요? (중복은 하나로)

여기에 쓴 내용은 증서에 실려 공개됩니다. 실명이나 연락처는 넣지 마세요. 아이디나 별명이면 충분합니다.

0명

왜 양자여야 하는가

일반 컴퓨터의 난수는 시드에서 계산된 수열입니다. 같은 시드를 넣으면 언제나 같은 수열이 나옵니다. 편리하지만, 뒤집어 말하면 시드를 가진 사람은 처음부터 결과를 알고 있었다는 뜻입니다. 그래서 일반 추첨은 결국 “주최자를 믿느냐”의 문제로 끝납니다.

양자 측정은 다릅니다. 측정 전에는 결과를 정하는 변수가 존재하지 않습니다. “아직 못 찾은 것”이 아니라 벨의 정리라는 수학적 결과이며 실험으로도 확인되었습니다. 이 검증으로 Aspect, Clauser, Zeilinger가 2022년 노벨 물리학상을 받았습니다.

그래서 양자 추첨은 “뽑기 전에는 세상 누구도 답을 몰랐다”를 약속이 아니라 물리로 말할 수 있습니다. 일반 컴퓨터로는 메울 수 없는 차이입니다.

솔직하게 말하면

추첨 계산 자체는 일반 컴퓨터로도 할 수 있습니다. 양자만이 줄 수 있는 것은 “예측할 수 없었다”는 보증입니다. “양자컴퓨터로 더 빠르게 추첨”하는 이야기가 아닙니다. 여기서 빨라야 할 것은 아무것도 없습니다.

실제 장비에서 오는 것은 256비트이고, 그 뒤는 모두 공개된 계산입니다. 이 256비트를 시드로 SHA-256을 카운터 모드로 돌려 필요한 만큼의 수를 만듭니다. 이 확장은 양자가 아니지만 공개되어 있어 누구나 재현할 수 있습니다. 시드 자체가 예측 불가능하다면 결정론적 확장이어도 괜찮습니다.

이 사이트를 운영하는 저는 비트 풀을 볼 수 있는 위치에 있습니다. 그래서 저를 믿지 않아도 확인할 수 있게 만들었습니다. 사용한 비트, 참가자 목록의 해시, 시드, 공식이 모두 증서에 있습니다. 결과를 바꾸려면 목록을 바꿔야 하고, 목록은 증서에 그대로 보입니다.

비트 풀이 바닥나면 서버의 암호학적 난수로 대체됩니다. 그럴 때는 증서에 그렇게 적힙니다. 몰래 바꿔치기하는 일은 없습니다.

검산하는 방법

결과를 처음부터 다시 만드는 데 필요한 것은 전부 증서에 있습니다.

시드 = SHA-256( 참가자 목록 해시 + ":" + 양자 비트 ) 순서 = 그 시드로 SHA-256 카운터 모드를 돌린 Fisher-Yates 셔플 당첨자 = 그 순서의 앞에서부터, 뽑는 인원만큼

참가자 목록 해시는 SHA-256(JSON 배열)입니다. 해시 전에 이름 앞뒤 공백을 지우고 빈 줄을 뺍니다. 검산 코드는 있는 그대로 공개되어 있으니 직접 돌려 같은 답이 나오는지 확인할 수 있습니다.

어디에 쓰나

경품 이벤트 당첨자, 자리 배정, 발표 순서, 당번, 팀 나누기, 누가 낼지. 말싸움하고 싶지 않은 모든 일. 증서 링크를 붙이면 “제대로 뽑았다”고 설명할 필요가 없어집니다.

가게나 회사의 경품 이벤트에도 그대로 무료로 쓸 수 있습니다. 자사 사이트나 앱에 추첨을 넣고 싶거나 증서에 회사 이름을 넣고 싶다면 문의해 주세요. 상담만이라면 비용은 들지 않습니다.

관련

같은 비트 풀을 쓰는 다른 작품: 양자 공안(하루 한 편)과 양자 여행 솔버(간섭으로 여행지를 고릅니다 — 그 페이지에도 솔직히 적었듯 일반 컴퓨터가 더 빠릅니다).