Unipicker추첨 백서
FAQ

추첨 백서 FAQ

유니피커 추첨에 대해 자주 묻는 질문을 모았어요.

공정성 개념
유니피커 난수는 정말 조작이 불가능한가요?
추첨 시드는 유니피커 서버가 임의로 만드는 값이 아니라, 유니피커와 무관한 외부 시드 발급 서버(Drand)가 정해진 주기마다 전 세계에 공개 방송하는 라운드 값을 가져다 써요. 즉 유니피커도, 추첨자도 결과가 나오기 전까지는 어떤 값이 나올지 알 수 없어요.

여기에 더해 추첨이 시작되는 그 순간, 응모자 명단과 추첨 설정 정보를 해시로 봉인해서 추첨 이력에 먼저 게시해요. 결과가 나온 뒤에 누군가 응모자 명단을 바꾸거나 시드를 바꿔치기하려 해도, 그 자료를 같은 방식으로 다시 해시했을 때 처음 게시된 봉인값과 값이 달라지기 때문에 위변조 시도가 바로 드러나요. 시드를 외부에서 가져오는 구조와, 자료를 미리 봉인해두는 절차가 함께 맞물려 있어서 특정인이 결과를 조작하는 것이 사실상 불가능해요.
컴퓨터 난수인데 왜 믿을 수 있나요?
유니피커의 기본 추첨 로직은 난수로 줄세우기예요. 응모자마다 컴퓨터 난수를 하나씩 배정하고, 그 난수 크기 순서대로 응모자를 줄 세운 뒤 앞에서부터 차례로 당첨자를 배정해요. 난수 하나가 특정인에게 유리하도록 조작될 수 없고, 정렬이라는 과정 자체도 계산 결과가 항상 하나로 정해지는 절차라서 사람이 개입해 순서를 바꿀 여지가 없어요.

여기에 더해, 추첨 상황에 따라 특화된 알고리즘을 추가로 적용해요. 응모자를 무작위로 재배치해야 할 때는 피셔-예이츠 셔플을, 대량 응모자 중 중복 없이 여러 명을 뽑아야 할 때는 Floyd 샘플링을 사용해요. 그리고 어떤 방식이든 특정 번호가 유리해지지 않도록 불공정 난수 거부 정책을 함께 적용해, 난수 범위가 응모자 수의 배수를 넘으면 그 값을 버리고 다시 생성해요. 즉 기본은 난수로 줄세우기이고, 피셔-예이츠·Floyd 샘플링·불공정 난수 거부 정책은 각 추첨의 특성에 맞춰 이 기본 위에 추가로 얹히는 장치들이에요. 이 모두가 이미 학계와 업계에서 오랫동안 검증된 알고리즘이라, 유니피커가 지어낸 것이 아니라 그대로 가져와 백서에 공개하고 있어요.
같은 추첨을 여러 번 하면 결과가 매번 같나요, 다른가요?
추첨을 새로 시작할 때마다 그 시점의 Drand 라운드에서 새로운 시드가 발급되기 때문에, 같은 응모자 명단으로 추첨을 다시 진행하면 매번 다른 결과가 나와요. 마음에 드는 결과가 나올 때까지 추첨을 반복하는 것은 의미가 없다는 뜻이에요.

반대로, 같은 응모자 정보와 같은 시드값을 그대로 놓고 동일한 알고리즘으로 재계산하면 언제, 누가 계산하더라도 항상 동일한 결과가 나와요. 이 재현 가능성이야말로 추첨 결과가 조작되지 않았음을 제3자가 검증할 수 있는 핵심 근거예요.
추첨 방식 선택
이력추첨/추첨 고유 인증코드 발급 추첨/매니저 대행 추첨/공개추첨 중 뭘 선택해야 하나요?
네 가지는 누가 추첨을 진행하는지, 그리고 공정성을 어느 수준까지 증명할지에 따라 나뉘어요.

이력추첨추첨 고유 인증코드 발급 추첨(CERT-CDE)은 추첨자(주최사)가 직접 진행해요. 일반적인 추첨이면 이력추첨만으로 충분하고, 다중 계정 등 어뷰징을 막고 '유니피커 전체에서 유일한 추첨'임을 인증코드로 증명하고 싶다면 CERT-CDE를 추가로 발급받아요.

매니저 대행 추첨(CERT-UNI)공개추첨(CERT-PUB)은 주최사가 아닌 유니피커가 대행해요. 주최사가 아닌 제3자, 즉 유니피커 추첨 매니저가 직접 추첨을 진행한다는 점에서 공정성의 무게가 달라지고, 참가자 전원이 지켜보는 자리에서 실시간으로 진행해야 한다면 그 중에서도 CERT-PUB(현장 공개·유튜브 생방송)을 선택하면 돼요.
매니저 대행 추첨은 무엇을, 어디까지 대신 해주나요?
매니저 대행 추첨(CERT-UNI)의 핵심은 주최사가 아닌 제3자, 즉 유니피커 추첨 매니저가 직접 추첨을 진행한다는 점이에요. 주최사가 스스로 버튼을 누르는 것과, 이해관계가 없는 제3자가 대신 진행하는 것은 공정성에 대한 신뢰도가 다르기 때문에 별도의 등급으로 분리되어 있어요.

대행은 상담부터 시작해요. 먼저 주최측에서 진행하고자 하는 추첨의 방향을 듣고, 그 내용을 바탕으로 매니저가 추첨 유형·추첨 횟수 등 최적의 추첨 방법을 제안해요. 어떤 형태로 추첨이 진행되어야 하는지가 정해지면, 이어서 추첨 자료를 어떻게 준비해야 하는지 가이드를 받아요. 이후 주최사가 작성한 응모자 명단과 추첨 설정 정보를 매니저가 넘겨받아 자료가 형식에 맞게 잘 작성되었는지 검토한 뒤 추첨을 진행해요.

다만 이 검토에는 분명한 경계가 있어요. 매니저는 응모번호 중복, 오기입 같은 자료의 작성 오류는 검토하지만, 그 명단에 실제로 응모 자격이 있는 사람만 들어있는지 같은 자료 자체의 유효성은 검토하지 않아요. 예를 들어 실제로는 응모하지 않은 사람이 명단에 끼어 있는지, 응모 조건을 충족했는지를 판별하는 것은 주최사만 알 수 있는 영역이라 유니피커 매니저가 대신 검증해줄 수 없는 부분이에요.
CERT-CDE, CERT-UNI, CERT-PUB 중 뭐가 제일 공정한가요?
세 인증추첨의 공정성 레벨은 CERT-CDE < CERT-UNI < CERT-PUB 순으로 올라가요.

CERT-CDE는 추첨 자체는 주최사가 직접 진행하고, 유니피커는 '유니피커 전체에서 유일한 추첨'임을 보증하는 고유 인증코드만 발급해요. CERT-UNI는 여기서 한발 더 나아가 유니피커 매니저가 제3자로서 추첨을 대행해, 주최사가 직접 진행할 때보다 이해관계가 개입할 여지가 줄어들어요. CERT-PUB은 이 매니저 대행에 더해 추첨 전 과정을 현장 공개 또는 유튜브 생방송으로 모두가 실시간으로 지켜볼 수 있다는 점이 더해진 가장 높은 등급이에요. 매니저 대행 추첨도 이미 충분히 공정하지만, 참가자 전원이 눈으로 직접 과정을 지켜볼 수 있다는 것 자체가 CERT-PUB만의 추가적인 공정성이에요.
가중치 추첨은 언제 쓰나요?
모든 응모자의 당첨 확률이 동일한 일반 추첨과 달리, 응모자마다 당첨 확률을 다르게 줘야 하는 상황에서 가중치 추첨을 사용해요. 예를 들어 예약한 좌석 수가 많을수록, 이벤트 참여 기간이 길수록, 구매 금액이 클수록 당첨 확률을 높여주고 싶을 때가 대표적이에요.

유니피커는 이를 가중치 구간 추첨가중치 키 추첨(Efraimidis–Spirakis) 두 가지 방식으로 구현해요. 구간 추첨은 가중치 크기만큼 당첨 구간을 배정하고 그 총합 안에서 난수를 뽑는 방식이고, 키 추첨은 응모자마다 가중치를 반영한 키 값을 계산해 그 값 순으로 정렬하는 방식이에요. 계산하는 경로는 다르지만 두 방식 모두 가중치에 정확히 비례해 당첨 확률이 올라가도록 설계되어 있어 결과의 공정성은 동일해요.
추첨 유형은 어떻게 골라야 하나요?
유니피커는 기본·그룹·행운번호·부동산 분양·대량 응모자·기프트콘·SNS·룰렛·게임 이벤트·문자/채팅·AI 추첨 등 다양한 추첨 유형을 제공해요. 무엇을 추첨하느냐(당첨자, 등수·경품·그룹 배정, 순번, 짝짓기, 동·호수 등)에 따라 알맞은 유형을 골라 진행해야 해요.

각 추첨 유형마다 응모 자료를 어떻게 작성해야 하는지, 어떻게 진행하는지가 매뉴얼과 안내 영상으로 정리되어 있어요. 추첨유형 페이지에서 원하는 추첨을 찾아 매뉴얼을 먼저 확인한 뒤, 그에 맞는 방식으로 추첨을 진행해 주세요.
이력 · 검증
추첨 이력은 어디서 확인하나요?
추첨자(주최측)의 추첨 이력 페이지에서 모든 추첨 기록을 확인할 수 있어요. 추첨을 시작하는 즉시 추첨명과 시드 정보(응모자·설정 정보를 봉인한 해시값, 그리고 시드 생성을 위한 Drand 라운드 정보)가 이력에 먼저 게시되고, 추첨이 종료되면 실제로 사용된 Drand 난수와 최종 추첨 시드까지 이어서 공개돼요.

유니피커의 추첨이력제에 가입한 회원(추첨자)는 추첨 결과 발표 시 추첨 이력 페이지 URL을 공개해야해요. 응모자는 결과 발표 때 안내된 이 URL로 접속해서 추첨자(주최측)의 추첨 이력을 직접 확인할 수 있어요. 이 URL은 추첨 확인서, 추첨 인증서에서도 함께 확인할 수 있어요.

추첨 고유 인증코드 발급 추첨이나 매니저 대행 추첨, 공개추첨처럼 인증추첨으로 진행한 경우에는 여기에 더해 추첨에 사용된 인증코드와, 그 인증코드로 발급된 추첨 인증서도 함께 이력에 등록돼요. 이 인증서 덕분에 해당 추첨이 유니피커 전체에서 유일한 추첨이었음을 누구나 다시 확인할 수 있어요.
위변조 여부를 확인하기 위한 검증추첨은 어떻게 진행되나요?
추첨이 시작되는 순간 응모자 명단과 추첨 설정 정보 전체를 해시 함수에 넣어 하나의 봉인값으로 만들고, 이 값을 추첨 이력에 먼저 게시해둬요. 해시 함수는 원본 데이터가 단 한 글자만 바뀌어도 완전히 다른 값을 내놓는 성질이 있어서, 이후 누군가 응모자 명단의 순서를 바꾸거나 이름 하나를 수정하는 것만으로도 결과 해시값이 처음 게시된 봉인값과 완전히 달라져요.

다만 응모자 명단 원본에는 개인정보가 포함될 수 있어서 누구나 내려받아 직접 검증할 수 있는 자료는 아니에요. 유니피커도 매니저 대행 추첨(CERT-UNI · CERT-PUB)이 아닌 이상 원본 자료를 보관하지 않아요. 그래서 실제 검증은 정해진 절차를 거쳐 유니피커가 대신 검증추첨을 진행하는 방식으로 이뤄져요.

일반 추첨의 경우, 응모자가 추첨이 공정하게 진행되었는지 의문을 제기해 주최측에 검증추첨을 요청하고 응모자와 주최측이 이를 협의하면, 유니피커는 주최측으로부터 원본 자료를 전달받아 검증추첨을 진행하고 그 결과를 응모자와 주최측 양쪽에 전달해요.

매니저 대행 추첨의 경우에는 민원인과 주최측이 협의해 유니피커에 검증추첨을 요청하거나, 민원인이 '추첨 자료 공개 요청서'를 작성해 유니피커에 제출할 수 있어요. 유니피커는 주최사와 내용을 검토한 뒤 자료 제공 여부를 안내하고, 공개가 허용되면 보관 중인 자료로 검증추첨을 진행해요.
부정 추첨으로 감지되면 어떤 불이익이 있나요?
유니피커는 부정 추첨 모니터링 시스템을 운영해서, 짧은 시간에 유사한 조건의 추첨을 반복하거나 결과를 원하는 방향으로 유도하려는 부정한 의도의 추첨 패턴을 자동으로 감지해요. 예를 들어 마음에 드는 당첨자가 나올 때까지 같은 응모자 명단으로 추첨을 계속 새로 만들어 진행하는 경우가 이런 패턴에 해당할 수 있어요.

시스템이 특정 계정의 추첨을 '부정 추첨'으로 판단하면 해당 계정의 추첨 이력제 이용이 정지돼요. 정지 기간은 적발 횟수에 따라 차등 적용돼요 — 1회 적발 시 1개월간, 2회 이상 적발 시 3개월간 이력추첨을 진행할 수 없어요. 이 기간에는 결과적으로 그 계정으로는 공정성을 증명하는 추첨 이력을 쌓을 수 없게 돼요. 이는 유니피커 플랫폼 전체의 추첨 이력에 대한 신뢰를 지키기 위한 장치예요.

다만 부정 추첨 의도가 전혀 없었는데도 시스템이 오탐으로 '부정 추첨'으로 감지한 경우에는 이의 제기를 할 수 있어요. 유니피커 매니저가 이의 제기 내용을 직접 검토한 뒤, 타당하다고 판단되면 이용 정지를 해제하고, 그렇지 않으면 이의 제기를 반려해요.
개인정보 · 운영
응모자 개인정보는 어떻게 보호되나요?
추첨하려고 올린 명단은 추첨을 진행한 PC에만 저장되고, 유니피커 서버로 보내 쌓아두지 않아요.

추첨을 진행하기 위해 응모자의 개인정보 원본을 유니피커 서버에 모두 업로드할 필요는 없어요. 추첨에는 당첨 여부를 가리는 데 필요한 최소한의 정보만 사용하고, 이력 등록이나 인증서 발급 과정에서도 이름·연락처 같은 원문을 그대로 저장하지 않고 봉인된 해시값 형태로만 처리해요.

해시값만으로는 원본 개인정보를 역으로 알아낼 수 없기 때문에, 추첨의 공정성을 검증할 수 있는 최소한의 근거는 남기면서도 응모자 개인정보가 불필요하게 외부에 노출되거나 서버에 누적되는 것은 막을 수 있어요.

단, 매니저가 대행하는 추첨(CERT-UNI · CERT-PUB)의 경우 추첨이 끝난 뒤에도 추첨 결과물을 USB에 담아 오프라인에서 2년간 안전하게 보관하고, 보관 기간이 끝나면 안전하게 파기해요.
대량 응모자(수백~수천만명) 추첨도 가능한가요?
네, 가능해요. 응모자 한 명 한 명에게 난수를 부여하고 정렬하는 기본 추첨 방식은 내부 테스트 기준으로 100만 건 규모까지도 추첨이 진행됐지만, 실제 처리 가능한 규모는 사용자의 컴퓨터 사양에 따라 달라질 수 있어요. 응모자 수가 많아지면 PC의 CPU와 메모리 한계에 부딪혀 처리가 오래 걸리거나 실패할 수 있어요.

그래서 수백~수천만 명 규모의 추첨이 필요한 경우, 별도의 대량 응모자 당첨자 추첨 로직대량 응모자 순번 배정 추첨 로직을 이용해 추첨할 수 있어요. 추첨마다 범위를 하나씩 넓혀가며 컴퓨터 난수로 번호를 뽑되, 이미 뽑힌 번호와 중복되면 그 범위에 새로 추가된 번호를 당첨번호로 선정하는 방식(Floyd's Sampling Without Replacement)을 통해 매번 중복 여부를 다시 체크하지 않고도 CPU·메모리 부담 없이 수천만 명 규모의 추첨을 동일한 공정성 기준으로 처리할 수 있어요.