KR102248890B1 - 공개 블록체인에 기초한 추첨 및 그것의 검증을 위한 시스템 및 방법 - Google Patents

공개 블록체인에 기초한 추첨 및 그것의 검증을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR102248890B1
KR102248890B1 KR1020200120309A KR20200120309A KR102248890B1 KR 102248890 B1 KR102248890 B1 KR 102248890B1 KR 1020200120309 A KR1020200120309 A KR 1020200120309A KR 20200120309 A KR20200120309 A KR 20200120309A KR 102248890 B1 KR102248890 B1 KR 102248890B1
Authority
KR
South Korea
Prior art keywords
algorithm
information
block
seed
lottery
Prior art date
Application number
KR1020200120309A
Other languages
English (en)
Inventor
정기영
Original Assignee
정기영
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 정기영 filed Critical 정기영
Application granted granted Critical
Publication of KR102248890B1 publication Critical patent/KR102248890B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/34Betting or bookmaking, e.g. Internet betting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C15/00Generating random numbers; Lottery apparatus
    • G07C15/006Generating random numbers; Lottery apparatus electronically
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • G06Q2220/10Usage protection of distributed data files

Landscapes

  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Tourism & Hospitality (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Human Resources & Organizations (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

추첨 시스템은, 적어도 하나의 공개 블록체인 네트워크로부터 추첨 시간 이후 생성된 적어도 하나의 블록에 대한 정보를 수신하는 제1 인터페이스, 제1 알고리즘에 기초하여, 정보로부터 적어도 하나의 시드(seed)를 생성하는 시드 생성부, 제2 알고리즘에 기초하여, 적어도 하나의 시드로부터 적어도 하나의 난수(random number)를 생성하는 난수 생성부, 제3 알고리즘에 기초하여, 적어도 하나의 난수로부터 당첨 번호를 생성하는 당첨 번호 생성부, 및 사용자에게, 정보, 제1 알고리즘, 제2 알고리즘, 제3 알고리즘 및 당첨 번호를 제공하는 제2 인터페이스를 포함할 수 있다.

Description

공개 블록체인에 기초한 추첨 및 그것의 검증을 위한 시스템 및 방법{SYSTEM AND METHOD FOR LOTTERY BASED ON PUBLIC BLOCKCHAIN AND VERIFICATION THEREOF}
본 발명의 기술적 사상은 추첨 및 그것의 검증에 관한 것으로서, 자세하게는 공개 블록체인에 기초한 신뢰할 수 있는 추첨 및 그것의 검증을 위한 시스템 및 방법에 관한 것이다.
추첨은 동일한 지위를 가지는 수요가 공급보다 많은 분야에서 널리 활용될 수 있다. 예를 들면, 다수의 응모자들 중 일부에게 소정의 당첨금을 지급하는 복권 분야, 다수의 청약자들 중 일부에게 분양권을 제공하는 청약 분야, 다수의 지원자들 중 일부를 합격시키는 채용 분야, 다수의 입찰자들 중 일부를 선정하는 입찰 분야, 다수의 응모자들 중 일부에게 경품을 지급하는 비즈니스 분야 등 다양한 분야에서 추첨이 활용될 수 있다. 이와 같은 추첨은 높은 공정성이 필수적일 뿐만 아니라, 추첨의 결과를 빈번하게 제공하거나 당첨 사항을 사용자들에게 용이하게 제공하는 등 높은 편의성을 함께 제공하는 것이 요구될 수 있다.
본 발명의 기술적 사상은, 높은 공정성 및 편의성을 동시에 제공하기 위하여 공개 블록체인에 기초한 추첨 및 그것의 검증을 위한 시스템 및 방법을 제공한다.
상기와 같은 목적을 달성하기 위하여, 본 발명의 기술적 사상의 일측면에 따른 추첨 시스템은, 적어도 하나의 공개 블록체인 네트워크로부터 추첨 시간 이후 생성된 적어도 하나의 블록에 대한 정보를 수신하는 제1 인터페이스, 제1 알고리즘에 기초하여, 정보로부터 적어도 하나의 시드(seed)를 생성하는 시드 생성부, 제2 알고리즘에 기초하여, 적어도 하나의 시드로부터 적어도 하나의 난수(random number)를 생성하는 난수 생성부, 제3 알고리즘에 기초하여, 적어도 하나의 난수로부터 당첨 번호를 생성하는 당첨 번호 생성부, 및 사용자에게, 정보, 제1 알고리즘, 제2 알고리즘, 제3 알고리즘 및 당첨 번호를 제공하는 제2 인터페이스를 포함할 수 있다.
본 발명의 예시적 실시예에 따라, 제2 인터페이스는, 사용자에게, 적어도 하나의 시드 및 적어도 하나의 난수 중 적어도 하나를 더 제공할 수 있다.
본 발명의 예시적 실시예에 따라, 제1 알고리즘, 제2 알고리즘 및 제3 알고리즘은, 추첨 시간 이전에 확정될 수 있고, 제2 인터페이스는, 사용자의 요청에 응답하여 제1 알고리즘, 제2 알고리즘 및 제3 알고리즘을 추첨 시간과 무관하게 사용자에게 제공할 수 있다.
본 발명의 예시적 실시예에 따라, 시드 생성부는, 제1 알고리즘에 기초하여, 적어도 하나의 블록에 대한 정보로부터 제한된 길이의 시드를 생성할 수 있다.
본 발명의 예시적 실시예에 따라, 제1 인터페이스는, 제1 공개 블록체인 네트워크로부터 제1 블록에 대한 제1 정보를 수신하고, 제2 공개 블록체인 네트워크로부터 제2 블록에 대한 제2 정보를 수신할 수 있고, 시드 생성부는, 제1 알고리즘에 기초하여, 제1 정보 및 제2 정보로부터 시드를 생성할 수 있다.
본 발명의 예시적 실시예에 따라, 난수 생성부는, 제2 알고리즘에 기초하여, 균등 분포를 가지는 난수들을 생성할 수 있다.
본 발명의 예시적 실시예에 따라, 적어도 하나의 난수의 길이는, 당첨 번호의 길이보다 길수 있고, 당첨 번호 생성부는, 제3 알고리즘에 기초하여, 적어도 하나의 난수를 당첨 번호의 범위로 제한함으로써 당첨 번호를 생성할 수 있다.
본 발명의 예시적 실시예에 따라, 추첨 시간은 1분 이하의 주기로 반복될 수 있고, 적어도 하나의 공개 블록체인 네트워크는, 리플(Ripple), 트론(TRON) 및 이더리움(Ethereum) 2.0 중 적어도 하나일 수 있다.
본 발명의 예시적 실시예에 따라, 제2 인터페이스는, 사용자에게 정보, 제1 알고리즘, 제2 알고리즘, 제3 알고리즘 및 당첨 번호가 노출되는 웹 페이지를 제공할 수 있다.
본 발명의 예시적 실시예에 따라, 제1 인터페이스는, 2이상의 데이터베이스들로부터 정보를 수신할 수 있고, 2이상의 데이터베이스들은, 복수의 수신 서버들로부터 정보를 수신하여 저장할 수 있다.
본 발명의 기술적 사상의 일측면에 따라, 공개 블록체인 네트워크에 기초한 추첨 시스템을 검증하기 위한 검증 시스템으로서, 추첨 시스템은, 적어도 하나의 블록에 대한 정보로부터, 제1 알고리즘, 제2 알고리즘 및 제3 알고리즘에 기초하여 제1 당첨 번호를 생성하고, 검증 시스템은, 사용자로부터 정보, 제1 알고리즘, 제2 알고리즘 및 제3 알고리즘을 수신하고, 사용자에게 제2 당첨 번호를 제공하는 제1 인터페이스, 제1 알고리즘에 기초하여, 정보로부터 적어도 하나의 시드(seed)를 생성하는 시드 생성부, 제2 알고리즘에 기초하여, 적어도 하나의 시드로부터 적어도 하나의 난수(random number)를 생성하는 난수 생성부, 및 제3 알고리즘에 기초하여, 적어도 하나의 난수로부터 제2 당첨 번호를 생성하는 당첨 번호 생성부를 포함할 수 있고, 검증 시스템은, 추첨 시스템과 상이한 주체에 의해서 운영될 수 있다.
본 발명의 예시적 실시예에 따라, 제1 인터페이스는, 사용자에게, 적어도 하나의 시드 및 적어도 하나의 난수 중 적어도 하나를 더 제공할 수 있다.
본 발명의 예시적 실시예에 따라, 검증 시스템은, 블록에 대한 정보의 복수의 샘플들에 기초하여 제1 알고리즘을 검증하고, 시드의 복수의 샘플들에 기초하여 제2 알고리즘을 검증하고, 난수의 복수의 샘플들에 기초하여 제3 알고리즘을 검증하는 알고리즘 검증부를 더 포함할 수 있고, 제1 인터페이스는, 사용자에게 제1 알고리즘, 제2 알고리즘 및 제3 알고리즘의 검증 결과들 더 제공할 수 있다.
본 발명의 예시적 실시예에 따라, 제1 인터페이스는, 사용자로부터 당첨 시간을 더 수신할 수 있고, 검증 시스템은, 당첨 시간에 기초하여 적어도 하나의 공개 블록체인 네트워크로부터 적어도 하나의 블록에 대한 정보를 수신하는 제2 인터페이스를 더 포함할 수 있고, 시드 생성부는, 제1 인터페이스를 통해서 수신된 적어도 하나의 블록에 대한 정보 대신, 제2 인터페이스를 통해서 수신된 적어도 하나의 블록에 대한 정보로부터 적어도 하나의 시드를 생성할 수 있다.
본 발명의 기술적 사상에 따른 시스템 및 방법에 의하면, 공개되나 예측이 불가능한 공개 블록체인의 정보를 사용함으로써 공정하고 신뢰할 수 있는 추첨을 제공하는 추첨 시스템이 가능할 수 있고, 사용자로 하여금 언제든지 추첨 결과를 검증 가능하도록 함으로써 추첨의 공정성이 더욱 확보될 수 있다.
또한, 본 발명의 기술적 사상에 따른 시스템 및 방법에 의하면, 짧은 주기로 높은 신뢰도의 당첨 번호가 발행될 수 있고, 이에 따라 다양한 분야에 용이하게 적용가능한 추첨이 제공될 수 있다.
또한, 본 발명의 기술적 사상에 따른 시스템 및 방법에 의하면, 추첨을 검증하기 위한 검증 시스템이 가능할 수 있고, 공인된 검증 시스템으로 하여금 다수의 추첨 시스템들이 용이하고 정확하게 검증됨으로써 사용자들로 하여금 높은 신뢰도를 가지는 추첨이 활용될 수 있다.
본 발명의 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 아니하며, 언급되지 아니한 다른 효과들은 이하의 본 발명의 실시예들에 대한 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 도출되고 이해될 수 있다. 즉, 본 발명을 실시함에 따른 의도하지 아니한 효과들 역시 본 발명의 실시예들로부터 당해 기술분야의 통상의 지식을 가진 자에 의해 도출될 수 있다.
도 1은 본 발명의 예시적 실시예에 따라 공개 블록체인 네트워크에 기초한 추첨을 나타내는 블록도이다.
도 2는 본 발명의 예시적 실시예에 따른 추첨 시스템의 동작의 예시를 나타내는 타이밍도이다.
도 3은 본 발명의 예시적 실시예에 따른 추첨 시스템을 나타내는 블록도이다.
도 4는 본 발명의 예시적 실시예에 따라 추첨 시스템의 동작의 예시를 나타내는 도면이다.
도 5는 본 발명의 예시적 실시예에 따라 공개 블록체인 네트워크에 기초한 추첨을 나타내는 블록도이다.
도 6은 본 발명의 예시적 실시예에 따른 검증 시스템을 나타내는 블록도이다.
도 7은 본 발명의 예시적 실시예에 따른 검증 시스템을 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명한다. 본 발명의 실시예는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되는 것이다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수개의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 아니하는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하 도면 및 설명에서, 하나의 블록으로 표시 또는 설명되는 구성요소는 하드웨어 블록 또는 소프트웨어 블록일 수 있다. 예를 들면, 구성요소들 각각은 서로 신호를 주고 받는 독립적인 하드웨어 블록일 수도 있고, 또는 적어도 하나의 프로세서에서 실행되는 소프트웨어 블록일 수도 있다.
도 1은 본 발명의 예시적 실시예에 따라 공개 블록체인 네트워크에 기초한 추첨을 나타내는 블록도이다. 도 1에 도시된 바와 같이, 추첨은, 공개 블록체인 네트워크들(N1, N2,...), 수신 서버들(11 내지 14), 데이터베이스들(21, 22) 및 추첨 시스템들(31 내지 34)에 의해서 구현될 수 있고, 사용자들(41 내지 44)은 추첨 결과를 확인할 수 있다. 추첨 결과는 다수의 대상들 중 선택된 일부를 나타내는 임의의 형식들을 가질 수 있고, 본 명세서에서 추첨 결과는 당첨 번호인 것으로 가정된다. 일부 실시예들에서, 도 1에 도시된 구성요소들은 네트워크를 통해서 상호 통신할 수 있다. 예를 들면, 도 1에 도시된 구성요소들은 인터넷에 접속할 수 있고, 인터넷을 통해서 상호 통신할 수 있다.
블록체인(blockchain)은 데이터를 블록으로 지칭되는 데이터 단위들이 P2P(peer-to-peer) 방식에 기반하여 체인 형태로 생성되고, 연결고리 기반 분산 데이터 저장 환경에 저장되어 임의로 수정될 수 없고 누구든지 식별할 수 있는 분산 컴퓨팅 기술 기반의 원장 관리 기술을 지칭할 수 있다. 블록체인은, 접근 제한이 없는 공개(public) 블록체인, 특정 권한이 부여된 비공개(private) 블록체인, 중앙식 및 탈중앙식 기능을 모두 갖춘 하이브리드(hybrid) 블록체인을 포함할 수 있다. 공개 블록체인의 예시로서 비트코인(Bitcoin), 리플(Ripple), 이더리움(Ethereum), 트론(TRON) 등이 있고, 비공개 블록체인의 예시로서 하이퍼레저(Hyperledger) 등이 있다. 도면들을 참조하여 후술되는 바와 같이, 본 발명의 예시적 실시예에 따른 추첨은, 제한된 액세스만이 가능한 비공개 블록체인과 달리, 누구든지 접근할 수 있는 공개 블록체인으로부터 파생되는 정보에 기초할 수 있고, 이에 따라 조작가능성에 제거되는 동시에 누구든지 해당 정보에 기초한 추첨 결과의 검증을 수행할 수 있다.
도 1을 참조하면, 수신 서버들(11 내지 14)은 제1 및 제2 공개 블록체인 네트워크(N1, N2)로부터 적어도 하나의 블록에 대한 정보를 수신할 수 있다. 제1 공개 블록체인 네트워크(N1)는 제1 공개 블록체인을 생성 및 운영할 수 있고, 제2 공개 블록체인 네트워크(N2)는 제1 공개 블록체인과 상이한 제2 공개 블록체인을 생성 및 운영할 수 있다. 일부 실시예들에서, 도 1에 도시된 바와 상이하게, 수신 서버들(11 내지 14)은 하나의 공개 블록체인 네트워크(예컨대, N1)로부터 적어도 하나의 블록에 대한 정보를 수신할 수도 있고, 3개 이상의 상이한 공개 블록체인들을 각각 생성 및 운영하는 3개 이상의 공개 블록체인 네트워크들로부터 적어도 하나의 블록에 대한 정보를 수신할 수도 있다.
제1 및 제2 공개 블록체인 네트워크(N1, N2)는 다수의 불특정 거래들이 완료된 경우 블록을 생성할 수 있고, 이에 따라 제1 및 제2 공개 블록체인 네트워크(N1, N2)에 의해서 생성되는 블록은 미리 추정될 수 없다. 또한, 제1 및 제2 공개 블록체인 네트워크(N1, N2)에 의해서 생성이 완료된 블록은 임의로 수정될 수 없고, 누구든지 식별할 수 있다. 이에 따라, 도 2를 참조하여 후술되는 바와 같이, 미리 정의된 추첨 시점 이후에 생성된 블록(또는 그로부터 도출되는 정보)은 추첨에 참여한 당사자들에게 높은 신뢰도를 제공할 수 있다.
일부 실시예들에서, 수신 서버들(11 내지 14) 중 적어도 2개는 상이한 환경에서 운영될 수 있다. 예를 들면, 제1 내지 제3 수신 서버(11 내지 13)은 국내에서 원격지들에서 각각 운영될 수 있는 한편, 제4 서버(14)는 해외에서 운영될 수 있다. 이에 따라, 수신 서버들(11 내지 14) 중 일부에 문제가 발생하더라도 제1 및 제2 공개 블록체인 네트워크(N1, N2)로부터 적어도 하나의 블록에 대한 정보가 안정적으로 수신될 수 있다. 일부 실시예들에서, 도 1에 도시된 바와 상이하게, 3개 이하의 수신 서버들(예컨대, 하나의 수신 서버) 또는 5개 이상의 수신 서버들이 제1 및 제2 공개 블록체인 네트워크(N1, N2)로부터 적어도 하나의 블록에 대한 정보를 수신할 수도 있다.
데이터베이스들(21, 22)은 수신 서버들(11 내지 14)로부터 적어도 하나의 블록에 대한 정보를 수신할 수 있고, 수신된 적어도 하나의 블록에 대한 정보를 저장할 수 있다. 예를 들면, 제1 및 제2 데이터베이스(21, 22)는 수신 서버들(11 내지 14)로부터 적어도 하나의 블록에 대한 동일한 정보를 수신하여 저장할 수 있다. 이에 따라, 제1 및 제2 데이터베이스(21, 22) 중 하나에 문제가 발생하더라도 후술되는 추첨 시스템들(31 내지 34)에 적어도 하나의 블록에 대한 정보가 안정적으로 제공될 수 있다. 일부 실시예들에서, 제1 및 제2 데이터베이스(21, 22)는 상이한 환경에서 각각 운영될 수 있다. 또한, 일부 실시예들에서, 도 1에 도시된 바와 상이하게, 하나의 데이터베이스 또는 3개 이상의 데이터베이스들이 운영될 수도 있다.
추첨 시스템들(31 내지 33)은 데이터베이스들(21, 22)로부터 적어도 하나의 블록에 대한 정보를 수신할 수 있고, 적어도 하나의 블록에 대한 정보에 기초하여 사용자들(41 내지 44)에 추첨 결과를 제공할 수 있다. 본 명세서에서, 추첨 시스템들(31 내지 33)이 데이터베이스들(21, 22)로부터 적어도 하나의 블록에 대한 정보를 수신하는 것은, 추첨 시스템들(31 내지 33)이 제1 및 제2 공개 블록체인 네트워크(N1, N2)로부터 적어도 하나의 블록에 대한 정보를 수신하는 것으로 지칭될 수도 있다. 일부 실시예들에서, 추첨 시스템들(31 내지 33) 각각은 고유한 방식으로 추첨 결과를 생성할 수 있다. 예를 들면, 추첨 시스템들(31 내지 33)은 상이한 블록들에 대한 정보로부터 추첨 결과를 각각 생성할 수도 있고, 상이한 알고리즘들에 기초하여 추첨 결과를 각각 생성할 수도 있다. 그러나, 추첨 시스템들(31 내지 33)은 추첨에 사용된 적어도 하나의 블록에 대한 정보 및 알고리즘을 사용자들(41 내지 43)에게 제공할 수 있다. 이에 따라, 사용자들(41 내지 43)은 추첨 시스템들(31 내지 33)로부터 추첨 결과를 확인할 수 있을 뿐만 아니라, 추첨에 사용된 적어도 하나의 블록에 대한 정보 및 알고리즘을 확인할 수 있다. 전술된 바와 같이, 제1 및 제2 공개 블록체인 네트워크(N1, N2)에 의해서 생성된 블록은 임의로 수정될 수 없으므로, 사용자들(41 내지 43)은 추첨에 사용된 블록에 대한 정보 및 알고리즘을 사용하여 추첨 결과를 검증할 수 있고, 검증 결과를 신뢰할 수 있다.
추첨 시스템들(31 내지 33) 각각은 다양한 분야에서 활용될 수 있다. 예를 들면, 추첨 시스템들(31 내지 33) 각각은 다수의 응모자들 중 일부에게 소정의 당첨금을 지급하는 복권 분야, 다수의 청약자들 중 일부에게 분양권을 제공하는 청약 분야, 다수의 지원자들 중 일부를 합격시키는 채용 분야, 다수의 입찰자들 중 일부를 선정하는 입찰 분야, 다수의 응모자들 중 일부에게 경품을 지급하는 비즈니스 분야에 활용될 수 있다. 일부 실시예들에서, 추첨 시스템들(31 내지 33)은 추첨이 사용되는 분야에 독립적으로 공정한 추첨 결과를 제공하는 독립적인 시스템일 수 있다. 또한, 일부 실시예들에서, 추첨 시스템들(31 내지 33)은 추첨이 사용되는 분야에서 전용으로 사용되는 시스템일 수도 있다. 예를 들면, 추첨 시스템들(31 내지 33)은 사용자들(41 내지 43)이 접속한 온라인 게임 서버에 포함될 수 있다. 일부 실시예들에서, 도 1에 도시된 바와 상이하게, 2개 이하의 추첨 시스템들(예컨대 하나의 추첨 시스템) 또는 4개 이상의 추첨 시스템들이 운영될 수도 있다. 추첨 시스템들(31 내지 33)의 동작의 예시가 도 2를 참조하여 후술될 것이다.
일부 실시예들에서, 사용자들(41 내지 43)은 추첨에 참여한 당사자들일 수 있다. 예를 들면, 사용자들(41 내지 43)은 스마트 폰, 퍼스널 컴퓨터, 키오스크 등과 같은 단말을 사용하여 추첨 시스템들(31 내지 33)과 통신할 수 있다. 또한, 일부 실시예들에서, 사용자들(41 내지 43)은 추첨 시스템들(31 내지 33)을 검증하기 위한 주체일 수 있다. 예를 들면, 사용자들(41 내지 43)은 추첨 시스템들(31 내지 33)과 통신함으로써 추첨 결과를 검증하는 시스템(예컨대, 도 5의 51)일 수 있다. 또한, 일부 실시예들에서, 사용자들(41 내지 43)은 추첨 시스템들(31 내지 33)이 제공하는 추첨을 활용하여 사업을 영위하는 주체들일 수 있다. 예를 들면, 추첨 시스템들(31 내지 33)은 추첨 결과 및 알고리즘이 노출되는 웹 페이지를 사용자들(41 내지 43)에게 제공할 수 있고, 사용자들(41 내지 43)은 추첨 시스템들(31 내지 33)로부터 제공된 웹 페이지를, 자신의 서비스를 구현하는 시스템이 소비자에게 제공하는 웹 페이지에 포함시킬 수 있다.
도 2는 본 발명의 예시적 실시예에 따른 추첨 시스템의 동작의 예시를 나타내는 타이밍도이다. 구체적으로, 도 2의 타이밍도는, 별표로 표시된 추첨 시간과 함께 공개 블록체인의 예시를 시간의 흐름에 따라 나타낸다. 이하 도 2에 대한 설명에서, 공개 블록체인은 도 1의 제1 공개 블록체인 네트워크(N1)에 의해서 생성되고 추첨은 제1 추첨 시스템(31)에 의해서 수행되는 것으로 가정된다.
도 2를 참조하면, 시간 t1에서 제1 블록(B1)이 생성될 수 있다. 예를 들면, 제1 공개 블록체인 네트워크(N1)는 이전 블록이 생성된 후 시간 t1 이전까지 발생한 거래들로부터 제1 블록(B1)을 생성할 수 있고, 이전 블록과 연결할 수 있다.
시간 t2에서, 추첨 시간이 도래할 수 있다. 예를 들면, 제1 추첨 시스템(31)은 제1 사용자(41)에게 추첨 시간을 미리 공지할 수 있다. 도 2에 도시된 바와 같이, 추첨 시간은 일정한 주기(T) 마다 반복될 수 있고, 주기(T) 역시 제1 사용자(41)에게 미리 공지될 수 있다. 이에 따라, 도 2에 도시된 바와 같이, 시간 t4에서 추첨 시간이 다시 도래할 수 있다.
시간 t3에서, 제2 블록(B2)이 생성될 수 있다. 예를 들면, 제1 공개 블록체인 네트워크(N1)는 제1 블록(B1)이 생성된 시간 t1부터 시간 t3까지 발생한 거래들로부터 제2 블록(B2)을 생성할 수 있고, 제2 블록(B2)을 제1 블록(B1)과 연결할 수 있다. 제1 추첨 시스템(31)은 추첨 시간, 즉 시간 t2 이후 최초 생성된 블록인 제2 블록(B2)에 대한 정보를 데이터베이스(예컨대, 도 1의 21 또는 22)로부터 수신할 수 있고, 제2 블록(B2)에 대한 정보에 기초하여 제1 당첨 번호(WIN1)를 생성할 수 있다.
제1 공개 블록체인 네트워크(N1)는 제1 추첨 시스템(31)과는 무관하게 블록들을 생성할 수 있고, 제2 블록(B2)은 시간 t1 및 시간 t3 사이에 발생하고, 거래 시점, 거래들의 수, 거래량, 거래 당사자들 등을 예측할 수 없는 다수의 거래들에 기초하여 생성될 수 있다. 이에 따라, 시간 t2 이전에 제2 블록(B2) 또는 제2 블록(B2)에 대한 정보를 추정하는 것은 현실적으로 불가능할 수 있고, 제2 블록(B2)으로부터 생성된 제1 당첨 번호(WIN1)는 시간 t2 이전에 추첨에 참여한 당사자들에게 높은 신뢰도를 제공할 수 있다. 결과적으로, 제1 추첨 시스템(31)은 제1 사용자(41)에게 공정한 추첨을 제공할 수 있다.
시간 t4에서, 제3 블록(B3)이 생성될 수 있다. 예를 들면, 제1 공개 블록체인 네트워크(N1)는 제2 블록(B2)이 생성된 시간 t3로부터 시간 t4까지 발생한 거리들로부터 제3 블록(B3)을 생성할 수 있고, 제3 블록(B3)을 제2 블록(B2)과 연결할 수 있다. 일부 실시예들에서, 도 2에 도시된 바와 상이하게, 제1 추첨 시스템(31)은 주기(T) 내에 생성된 블록들의 정보로부터 당첨 번호를 생성할 수 있고, 이에 따라 제2 블록(B2)뿐만 아니라 제3 블록(B3)에 대한 정보에 기초하여 시간 t4에서 제1 당첨 번호(WIN1)를 생성할 수도 있다.
시간 t5에서, 다음 추첨 시간이 도래할 수 있다. 예를 들면, 이전 추첨 시간인 시간 t2로부터 주기(T)가 도과된 시점인 시간 t5에서 추첨 시간이 도래할 수 있다. 추첨 시간 마다 상이한 당첨 번호를 생성하기 위하여, 추첨 시간들 사이 구간, 즉 주기(T) 동안 적어도 하나의 블록이 생성될 것이 요구될 수 있다. 이에 따라, 제1 추첨 시스템(31)이 빈번하게 새로운 당첨 결과를 제공하여야 하는 경우, 즉, 주기(T)가 짧은 경우, 블록이 빈번하게 생성되는 공개 블록체인 네트워크가 사용될 수 있다. 예를 들면, 주기(T)가 1분 보다 짧은 경우, 제1 공개 블록체인 네트워크(N1)는 주기(T)보다 간격으로 새로운 블록을 생성할 수 있는 리플, 이더리움 2.0 및 트론 중 하나에 대응할 수 있다.
시간 t6에서, 제4 블록(B4)이 생성될 수 있다. 예를 들면, 제1 공개 블록체인 네트워크(N1)는 제3 블록(B3)이 생성된 시간 t4로부터 시간 t6까지 발생한 거래들로부터 제4 블록(B4)을 생성할 수 있고, 제4 블록(B4)을 제3 블록(B3)에 연결할 수 있다. 제1 추첨 시스템(31)은 추첨 시간, 즉 시간 t5 이후 최초 생성된 블록인 제4 블록(B4)에 대한 정보를 데이터베이스(예컨대, 도 1의 21 또는 22)로부터 수신할 수 있고, 제4 블록(B4)에 대한 정보에 기초하여 제2 당첨 번호(WIN2)를 생성할 수 있다.
도 3은 본 발명의 예시적 실시예에 따른 추첨 시스템(300)을 나타내는 블록도이다. 도 1을 참조하여 전술된 바와 같이, 추첨 시스템(300)은 데이터베이스(23) 및 사용자(45)와 통신할 수 있다. 도 3에 도시된 바와 같이, 추첨 시스템(300)은 제1 인터페이스(310), 시드 생성부(320), 난수 생성부(330), 당첨 번호 생성부(340), 제2 인터페이스(350) 및 알고리즘 저장소(360)를 포함할 수 있다. 비록 도 3에서, 제1 인터페이스(310), 시드 생성부(320), 난수 생성부(330), 당첨 번호 생성부(340), 제2 인터페이스(350) 및 알고리즘 저장소(360)는 분리된 구성요소들로서 도시되었으나, 제1 인터페이스(310), 시드 생성부(320), 난수 생성부(330), 당첨 번호 생성부(340), 제2 인터페이스(350) 및 알고리즘 저장소(360) 중 적어도 일부의 기능은 하나의 엔티티(예컨대, 소프트웨어 모듈, 프로시저, 프로그램, 서브루틴 등)에 의해서 구현될 수도 있다.
도 3을 참조하면, 제1 인터페이스(310)는 데이터베이스(23)로부터 적어도 하나의 블록에 대한 정보(BLK)를 수신할 수 있고, 적어도 하나의 블록에 대한 정보(BLK)를 시드 생성부(320)에 제공할 수 있다. 예를 들면, 도 2를 참조하여 전술된 바와 같이, 제1 인터페이스(310)는 추첨 시간 이후 생성된 적어도 하나의 블록에 대한 정보를 수신할 수 있다. 일부 실시예들에서, 제1 인터페이스(310)는 도 2의 주기(T)를 식별하기 위한 타이머를 포함할 수 있고, 타이머에 기초하여 데이터베이스(23)로부터 적어도 하나의 블록에 대한 정보(BLK)를 수신할 수 있다. 적어도 하나의 블록에 대한 정보(BLK)는 해당 블록에 고유한 임의의 정보를 포함할 수 있으며, 적어도 하나의 블록에 대한 정보의 예시가 도 4를 참조하여 후술될 것이다.
일부 실시예들에서, 제1 인터페이스(310)는 2이상의 공개 블록체인 네트워크들에 의해서 생성된 블록들에 대한 정보를 데이터베이스(23)로부터 수신할 수 있다. 예를 들면, 제1 인터페이스(310)는 도 1의 제1 및 제2 공개 블록체인 네트워크(N1, N2)에 의해서 생성된 블록들에 대한 정보를 수신할 수 있고, 수신된 블록들에 대한 정보를 조합하여, 적어도 하나의 블록에 대한 정보(BLK)를 생성할 수 있다. 일부 실시예들에서, 제1 인터페이스(310)는 블록들에 대한 정보의 일부분들을 잇거나(concatenation) 교번적으로(alternatively) 조합함으로써 적어도 하나의 블록에 대한 정보(BLK)를 생성할 수 있다.
시드 생성부(320)는, 제1 인터페이스(310)로부터 제공되는 적어도 하나의 블록에 대한 정보(BLK)에 기초하여 시드 코드(SED)를 생성할 수 있다. 시드 코드(SED)는 후술되는 바와 같이 난수(random number)(RN)의 생성에 사용될 수 있고, 시드 생성부(320)는 난수 생성 알고리즘(즉, 제2 알고리즘(A2))에 요구되는 형식을 갖는 시드 코드(SED)를 생성할 수 있다. 본 명세서에서, 시드 코드(SED)는 단순하게 시드(seed)로서 지칭될 수도 있다. 도 3에 도시된 바와 같이, 시드 생성부(320)는 알고리즘 저장소(360)로부터 제공되는 제1 알고리즘(A1)을 수신할 수 있고, 제1 알고리즘(A1)에 기초하여 적어도 하나의 블록에 대한 정보(BLK)로부터 시드 코드(SED)를 생성할 수 있다.
일부 실시예들에서, 시드 코드(SED)는 후술되는 바와 같이, 사용자(45)에게 제공되는 출력 데이터(OUT)에 포함될 수 있고, 시드 생성부(320)는 적어도 하나의 블록에 대한 정보(BLK)로부터 사용자(45)가 용이하게 식별할 수 있는, 예컨대 제한된 길이(예컨대, 20자리 미만의 자릿수)를 가지는 시드 코드(SED)를 생성할 수 있다. 예를 들면, 시드 코드(SED)는 제1 알고리즘(A1)에 기초하여, 적어도 하나의 블록에 대한 정보(BLK)의 해시(hash) 값을 시드 코드(SED)로서 생성할 수도 있고, 적어도 하나의 블록에 대한 정보(BLK)의 일부를 시드 코드(SED)로서 추출할 수도 있다.
난수 생성부(330)는 시드 생성부(320)로부터 제공되는 시드 코드(SED)로부터 난수(RN)를 생성할 수 있다. 도 3에 도시된 바와 같이, 난수 생성부(330)는 알고리즘 저장소(360)로부터 제2 알고리즘(A2)을 수신할 수 있고, 제2 알고리즘(A2)에 기초하여 시드 코드(SED)로부터 난수(RN)를 생성할 수 있다. 적어도 하나의 블록에 대한 정보(BLK)(또는 그로부터 생성된 시드 코드(SED))는 추첨 시간 이전에 예측이 불가능한 한편, 통계적으로 균등하게 분포되지 아니한 값을 포함할 수 있다. 이에 따라, 특정 범위에 편중되거나 경향성을 가지는 당첨 번호(WIN)의 생성을 방지하기 위하여, 난수(RN)가 사용될 수 있다. 이를 위하여, 제2 알고리즘(A2)은 시드 코드(SED)에 기초하여 균등 분포의 난수들을 생성하는 임의의 난수 생성 알고리즘(예컨대, 의사 난수 생성 알고리즘)에 대응할 수 있다.
당첨 번호 생성부(340)는 난수 생성부(330)로부터 제공된 난수(RN)으로부터 당첨 번호(WIN)를 생성할 수 있다. 도 3에 도시된 바와 같이, 당첨 번호 생성부(340)는 알고리즘 저장소(360)로부터 제3 알고리즘(A3)을 수신할 수 있고, 제3 알고리즘(A3)에 기초하여 난수(RN)로부터 당첨 번호(WIN)를 생성할 수 있다. 예를 들면, 제3 알고리즘(A3)은 난수(RN)의 가능한 범위를 당첨 번호(WIN)의 가능한 범위로 맵핑하는 함수, 예컨대 나머지 연산(modulo)을 포함할 수 있고, 나머지 연산의 제수는 당첨 번호(WIN)의 가능한 범위에 대응할 수 있다.
제2 인터페이스(350)는 사용자(45)와 통신할 수 있고, 사용자(45)에게 당첨 번호(WIN)를 제공할 수 있다. 또한, 제2 인터페이스(350)는 사용자(45)의 요청(REQ)에 응답하여 (혹은 사용자(45)의 요청(REQ)과 무관하게) 언제든지(즉, 추첨 시간과 무관하게) 출력 데이터(OUT)를 사용자(45)에게 제공할 수 있고, 출력 데이터(OUT)는 적어도 하나의 블록에 대한 정보(BLK), 제1, 제2 및 제3 알고리즘(A1, A2, A3)을 포함할 수 있다. 예를 들면, 제2 인터페이스(350)는 제1 인터페이스(310)로부터 적어도 하나의 블록에 대한 정보(BLK)를 수신할 수 있고, 도 3에 도시된 바와 같이 알고리즘 저장소(360)으로부터 제1, 제2 및 제3 알고리즘(A1, A2, A3)을 수신할 수 있다. 이에 따라, 사용자(45)는 제2 인터페이스(350)로부터 제공되는 출력 데이터(OUT)에 기초하여 당첨 번호(WIN)를 검증할 수 있다. 즉, 사용자(45)는 출력 데이터(OUT)에 포함된 적어도 하나의 블록에 대한 정보(BLK), 제1, 제2 및 제3 알고리즘(A1, A2, A3)에 기초하여 당첨 번호를 생성할 수 있고, 생성된 당첨 번호와 제2 인터페이스(350)로부터 제공된 당첨 번호(WIN)가 일치하는지 여부를 검증할 수 있다. 일부 실시예들에서, 제1, 제2 및 제3 알고리즘(A1, A2, A3)은 소스 코드로서 사용자(45)에 제공될 수 있다. 또한, 일부 실시예들에서, 출력 데이터(OUT)는 제1, 제2 및 제3 알고리즘(A1, A2, A3)뿐만 아니라, 당첨 번호(WIN)의 생성에 사용된 시드 코드(SED) 및 난수(RN) 중 적어도 하나를 더 포함할 수도 있다.
일부 실시예들에서, 출력 데이터(OUT)는 적어도 하나의 블록에 대한 정보(BLK)를 포함하는 대신, 해당 블록을 식별할 수 있는 정보를 포함할 수 있고, 사용자(45)는 출력 데이터(OUT)에 기초하여, 당첨 번호(WIN)의 생성에 사용된 블록에 대한 정보를 공개 블록체인 네트워크로부터 식별할 수도 있다. 또한, 도 5 등을 참조하여 후술되는 바와 같이, 사용자(45)는 직접 당첨 번호(WIN)를 검증하는 대신, 신뢰할 수 있는 주체에 의해서 운영되는 검증 시스템(예컨대, 도 5의 51)에 출력 데이터(OUT)를 제공함으로써 당첨 번호(WIN)를 검증할 수도 있다.
전술된 바와 같이, 추첨 시스템(300)은 공개되나 예측이 불가능한, 적어도 하나의 블록에 대한 정보(BLK)로부터 당첨 번호(WIN)를 생성할 수 있고, 적어도 하나의 블록에 대한 정보(BLK)로부터 당첨 번호(WIN)를 생성하는데 사용된 방식, 즉 제1, 제2 및 제3 알고리즘(A1, A2, A3)을 당첨 번호(WIN)와 함께 사용자(45)에게 제공할 수 있다. 이에 따라, 추첨 시스템(300)은 사용자(45)로 하여금 언제든지 추첨 결과를 검증하도록 할 수 있고, 이에 따라 추첨의 공정성이 더욱 확보될 수 있다.
도 4는 본 발명의 예시적 실시예에 따라 추첨 시스템의 동작의 예시를 나타내는 도면이다. 일부 실시예들에서, 도 4의 동작은 도 3의 추첨 시스템(300)에 의해서 수행될 수 있고, 이하에서 도 4는 도 3을 참조하여 설명될 것이다.
도 4를 참조하면, 적어도 하나의 블록에 대한 정보(BLK)가 수집될 수 있다. 적어도 하나의 블록에 대한 정보(BLK)는 블록에 고유한 정보를 포함할 수 있다. 예를 들면, 도 4에 도시된 바와 같이, 적어도 하나의 블록에 대한 정보(BLK)는, 블록 넘버, 해시 값, 블록 생성에 소요된 연산량에 대응하는 난이도(또는 소요 시간), 유통 중인 잔여 코인량, 블록이 생성된 시간 중 적어도 하나를 포함할 수 있다. 적어도 하나의 블록에 대한 정보(BLK)에 포함된 값들은 블록 마다 상이할 수 있고, 블록의 메타 정보로서 지칭될 수도 있다.
시드 코드(SED)가 제1 알고리즘(A1)에 기초하여 적어도 하나의 블록에 대한 정보(BLK)로부터 생성될 수 있다. 시드 코드(SED)는 난수 생성 알고리즘, 즉 제2 알고리즘(A2)에 요구되는 형식을 가질 수 있다. 또한, 시드 코드(SED)는 도 4에 도시된 바와 같이, 제한된 자릿수를 가질 수 있고, 이에 따라 사용자는 용이하게 시드 코드(SED)를 식별할 수 있고, 시드 코드(SED) 및/또는 당첨 번호(WIN)를 검증할 수 있다. 일부 실시예들에서, 도 3의 시드 생성부(320)는, 적어도 하나의 블록에 대한 정보(BLK)에 포함된 문자열에서 숫자들을 추출할 수 있고, 추출된 숫자들과 적어도 하나의 블록에 대한 정보(BLK)에 포함된 적어도 하나의 값을 결합함으로써 시드 코드(SED)를 생성할 수 있다.
난수(RN)가 제2 알고리즘(A2)에 기초하여 시드 코드(SED)로부터 생성될 수 있다. 도 4에 도시된 바와 같이, 제2 알고리즘(A2)은 제1 범위(R1)에서 균등 분포의 난수들을 생성할 수 있고, 시드 코드(SED)에 기초하여 난수(RN)를 생성할 수 있다. 일부 실시예들에서, 제2 알고리즘(A2)은 오픈 소스 난수 생성 알고리즘일 수 있다.
당첨 번호(WIN)가 제3 알고리즘(A3)에 기초하여 난수(RN)로부터 생성될 수 있다. 도 4에 도시된 바와 같이, 제3 알고리즘(A3)은 제2 범위(R2)에서 균등 분포의 당첨번호들을 생성할 수 있고, 난수(RN)에 대응하는 당첨 번호(WIN)를 생성할 수 있다. 일부 실시예들에서, 도 4에 도시된 바와 같이, 제2 범위(R2)는 제1 범위(R1)보다 작을 수 있고(즉, 난수(RN)의 길이가 당첨 번호(WIN)의 길이보다 길 수 있고), 제3 알고리즘(A3)은 넓은 도메인으로부터 좁은 도메인으로의 맵핑을 제공하는 함수를 포함할 수 있다.
도 5는 본 발명의 예시적 실시예에 따라 공개 블록체인 네트워크에 기초한 추첨을 나타내는 블록도이다. 구체적으로, 도 5의 블록도는 검증 시스템(51)을 사용하여 추첨 시스템(35)을 검증하는 동작을 나타낸다. 도 3을 참조하여 전술된 바와 같이, 사용자(46)는 추첨 시스템(35)으로부터 제1 당첨 번호(WIN1) 및 출력 데이터(OUT)를 수신할 수 있고, 추첨 시스템(35)에 요청(REQ)을 제공할 수도 있다.
사용자(46)는 입력 데이터(IN)를 검증 시스템(51)에 제공할 수 있고, 검증 시스템(51)으로부터 제2 당첨 번호(WIN2)를 수신할 수 있다. 입력 데이터(IN)는 사용자(46)가 추첨 시스템(35)로부터 수신한 출력 데이터(OUT)에 대응할 수 있고, 검증 시스템(51)은 입력 데이터(IN)에 기초하여 추첨 시스템(35)이 제1 당첨 번호(WIN1)를 생성한 방식과 동일한 방식으로 제2 당첨 번호(WIN2)를 생성할 수 있다. 또한, 일부 실시예들에서, 도 7을 참조하여 후술되는 바와 같이, 검증 시스템(51)은 입력 데이터(IN)에 포함된 알고리즘, 예컨대 도 3의 제1, 제2 및 제3 알고리즘(A1, A2, A3)을 검증할 수 있고, 검증 결과를 사용자(46)에게 제공할 수도 있다. 사용자(46)는 추첨 시스템(35)으로부터 제공된 제1 당첨 번호(WIN1) 및 검증 시스템(51)으로부터 제공된 제2 당첨 번호(WIN2)를 비교함으로써 제1 당첨 번호(WIN1)를 검증할 수 있다.
검증 시스템(51)은 추첨 시스템(35)을 운영하는 주체와 상이한 주체에 의해서 운영될 수 있다. 예를 들면, 검증 시스템(51)은 정부가 공인하는 주체에 의해서 운영될 수 있고, 추첨 시스템(35)을 포함하는 다수의 추첨 시스템들을 검증할 수 있다. 이에 따라, 사용자(46)는 추첨 시스템(35)을 신뢰할 수 있고, 추첨 시스템(35)을 활용한 추첨이 다양한 분야에서 활용될 수 있다. 검증 시스템(51)의 예시들이 도 6 및 도 7을 참조하여 후술될 것이다.
도 6은 본 발명의 예시적 실시예에 따른 검증 시스템(500)을 나타내는 블록도이다. 도 5를 참조하여 전술된 바와 같이, 검증 시스템(500)은 사용자(47)로부터 입력 데이터(IN)를 수신할 수 있고, 입력 데이터(IN)에 기초하여 생성된 제2 당첨 번호(WIN2)를 사용자(47)에게 제공할 수 있다. 도 6에 도시된 바와 같이, 검증 시스템(500)은 제1 인터페이스(510), 시드 생성부(540), 난수 생성부(560) 및 당첨 번호 생성부(580)를 포함할 수 있다. 비록 도 6에서, 제1 인터페이스(510), 시드 생성부(540), 난수 생성부(560) 및 당첨 번호 생성부(580)는 분리된 구성요소들로서 도시되었으나, 제1 인터페이스(510), 시드 생성부(540), 난수 생성부(560) 및 당첨 번호 생성부(580) 중 적어도 일부의 기능은 하나의 엔티티(예컨대, 소프트웨어 모듈, 프로시저, 프로그램, 서브루틴 등)에 의해서 구현될 수도 있다. 이하에서 도 6은 도 5를 참조하여 설명될 것이고, 도 6에 대한 설명 중 도 3에 대한 설명과 중복되는 내용은 생략될 것이다.
도 6을 참조하면, 제1 인터페이스(510)는 사용자(47)로부터 입력 데이터(IN)를 수신할 수 있고, 사용자(47)에게 제2 당첨 번호(WIN2)를 제공할 수 있다. 입력 데이터(IN)는 적어도 하나의 블록에 대한 정보(BLK), 제1, 제2 및 제3 알고리즘(A1, A2, A3)을 포함할 수 있고, 도 6에 도시된 바와 같이, 제1 인터페이스(510)는 적어도 하나의 블록에 대한 정보(BLK) 및 제1 알고리즘(A1)을 시드 생성부(540)에 제공할 수 있고, 제2 알고리즘(A2)을 난수 생성부(560)에 제공할 수 있으며, 제3 알고리즘(A3)을 당첨 번호 생성부(580)에 제공할 수 있다.
시드 생성부(540)는 제1 인터페이스(510)로부터 제공된 적어도 하나의 블록에 대한 정보(BLK)로부터 제1 알고리즘(A1)에 기초하여 시드 코드(SED')를 생성할 수 있다. 이에 따라, 도 5의 추첨 시스템(35)에서 적어도 하나의 블록에 대한 정보(BLK)로부터 제1 알고리즘(A1)에 기초하여 시드 코드(SED)가 정상적으로 생성된 경우, 시드 코드(SED')는 시드 코드(SED)와 일치할 수 있다.
난수 생성부(560)는 시드 생성부(540)로부터 제공된 시드 코드(SED')로부터 제2 알고리즘(A2)에 기초하여 난수(RN')를 생성할 수 있다. 이에 따라, 도 5의 추첨 시스템(35)에서 시드 코드(SED)로부터 제2 알고리즘(A2)에 기초하여 난수(RN)가 정상적으로 생성된 경우, 난수(RN')는 난수(RN)와 일치할 수 있다.
당첨 번호 생성부(580)는 난수 생성부(560)로부터 제공된 난수(RN')로부터 제3 알고리즘(A3)에 기초하여 제2 당첨 번호(WIN2)를 생성할 수 있다. 이에 따라, 도 5의 추첨 시스템(35)에서 난수(RN)로부터 제1 당첨 번호(WIN1)가 정상적으로 생성된 경우, 제2 당첨 번호(WIN2)는 제1 당첨 번호(WIN1)와 일치할 수 있다. 도 6에 도시된 바와 같이, 제2 당첨 번호(WIN2)는 제1 인터페이스(510)를 통해서 사용자(47)에게 제공될 수 있다.
도 7은 본 발명의 예시적 실시예에 따른 검증 시스템(500')을 나타내는 블록도이다. 도 7에 도시된 바와 같이, 검증 시스템(500')은, 도 6의 검증 시스템(500)과 유사하게 제1 인터페이스(510'), 시드 생성부(540'), 난수 생성부(560') 및 당첨 번호 생성부(580')를 포함할 수 있는 한편, 알고리즘 검증부(520) 및 제2 인터페이스(530)를 더 포함할 수 있다. 일부 실시예들에서, 알고리즘 검증부(520) 또는 제2 인터페이스(530)는 생략될 수도 있다. 이하에서 도 7은 도 5를 참조하여 설명될 것이고, 도 7에 대한 설명 중 도 6에 대한 설명과 중복되는 내용은 생략될 것이다.
도 7을 참조하면, 제1 인터페이스(510')는 사용자(48)로부터 입력 데이터(IN)를 수신할 수 있고, 입력 데이터(IN)에 포함된 제1, 제2 및 제3 알고리즘(A1, A2, A3)을 알고리즘 검증부(520)에 제공할 수 있다. 또한, 제1 인터페이스(510')는 당첨 번호 생성부(580')로부터 제공되는 제2 당첨 번호(WIN2)뿐만 아니라 알고리즘 검증부(520)로부터 제공되는 검증 결과(VFY)를 사용자(48)에게 제공할 수 있다.
알고리즘 검증부(520)는 제1, 제2 및 제3 알고리즘(A1, A2, A3)을 검증할 수 있고, 검증 결과(VFY)를 제1 인터페이스(510')에 제공할 수 있다. 알고리즘 검증부(520)는 제1, 제2 및 제3 알고리즘(A1, A2, A3) 각각이 입력에만 의존하는 출력을 생성하는지 여부를 검증할 수 있다. 예를 들면, 알고리즘 검증부(520)는, 블록에 대한 정보의 복수의 샘플들로부터 제1 알고리즘(A1)에 기초하여 시드 코드의 복수의 샘플들을 생성할 수 있고, 시드 코드의 복수의 샘플들을 분석함으로써 제1 알고리즘(A1)을 검증할 수 있다. 또한, 알고리즘 검증부(520)는, 시드 코드의 복수의 샘플들로부터 제2 알고리즘(A2)에 기초하여 난수의 복수의 샘플들을 생성할 수 있고, 난수의 복수의 샘플들을 분석함으로써 제2 알고리즘(A2)을 검증할 수 있다. 또한, 알고리즘 검증부(520)는, 난수의 복수의 샘플들로부터 제3 알고리즘(A3)에 기초하여 당첨 번호의 복수의 샘플들을 생성할 수 있고, 당첨 번호의 복수의 샘플들을 분석함으로써 제3 알고리즘(A3)을 검증할 수 있다. 알고리즘 검증부(520)에 의해서 제1, 제2 및 제3 알고리즘(A1, A2, A3) 중 적어도 하나의 검증이 실패하는 경우, 사용자(48)는 검증 결과(VFY)에 기초하여 추첨 시스템(35)을 신뢰하지 아니할 수 있다.
알고리즘 검증부(520)는 제1, 제2 및 제3 알고리즘(A1, A2, A3)에 성공한 경우, 도 7에 도시된 바와 같이, 검증된 제1, 제2 및 제3 알고리즘(A1, A2, A3)을 시드 생성부(540'), 난수 생성부(560') 및 당첨 번호 생성부(580')에 각각 제공할 수 있고, 시드 생성부(540'), 난수 생성부(560') 및 당첨 번호 생성부(580')는 검증된 제1, 제2 및 제3 알고리즘(A1, A2, A3)에 기초하여 시드 코드(SED'), 난수(RN') 및 제2 당첨 번호(WIN2)를 순차적으로 생성할 수 있다.
제2 인터페이스(530)는 제1 공개 블록체인 네트워크(N1) 및/또는 제2 공개 블록체인 네트워크(N2)로부터 적어도 하나의 블록에 대한 정보(BLK')를 수신할 수 있고, 적어도 하나의 블록에 대한 정보(BLK')를 시드 생성부(540')에 제공할 수 있다. 예를 들면, 입력 데이터(IN)는 적어도 하나의 블록에 대한 정보(BLK)를 포함하는 대신(또는 추가적으로), 해당 블록을 식별할 수 있는 정보를 포함할 수 있고, 제2 인터페이스(530)는 제1 인터페이스(510')로부터 해당 블록을 식별할 수 있는 정보를 수신할 수 있다. 제2 인터페이스(530)는 제1 인터페이스(510')로부터 수신된 정보에 기초하여 제1 공개 블록체인 네트워크(N1) 및/또는 제2 공개 블록체인 네트워크(N2)로부터 적어도 하나의 블록을 식별할 수 있고, 적어도 하나의 블록에 대한 정보(BLK')를 수신할 수 있다. 즉, 도 6의 검증 시스템(500)과 비교할 때, 적어도 하나의 블록에 대한 정보(BLK)는 추첨 시스템(35)로부터 제공되는 출력 데이터(OUT)에 의존하는 대신, 검증 시스템(500') 스스로 제1 공개 블록체인 네트워크(N1) 및/또는 제2 공개 블록체인 네트워크(N2)로부터 직접 취득할 수 있고, 이에 따라 보다 높은 검증 신뢰도가 제공될 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 발명의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (14)

  1. 복수의 공개 블록체인 네트워크들로부터 추첨 시간 이후 생성된 복수의 블록들에 대한 정보를 수신하도록 구성된 제1 인터페이스;
    제1 알고리즘에 기초하여, 상기 정보로부터 적어도 하나의 시드(seed)를 생성하도록 구성된 시드 생성부;
    제2 알고리즘에 기초하여, 상기 적어도 하나의 시드로부터 적어도 하나의 난수(random number)를 생성하도록 구성된 난수 생성부;
    제3 알고리즘에 기초하여, 상기 적어도 하나의 난수로부터 당첨 번호를 생성하도록 구성된 당첨 번호 생성부; 및
    사용자에게, 상기 정보, 상기 제1 알고리즘, 상기 제2 알고리즘, 상기 제3 알고리즘 및 상기 당첨 번호를 제공하도록 구성된 제2 인터페이스를 포함하고,
    상기 시드 생성부는, 상기 제1 알고리즘에 기초하여, 상기 복수의 블록들에 대한 정보로부터 제한된 길이의 상기 시드를 생성하도록 구성되고,
    상기 제1 인터페이스는, 제1 공개 블록체인을 생성 및 운영하는 제1 공개 블록체인 네트워크로부터 제1 블록에 대한 제1 정보를 수신하고, 제2 공개 블록체인을 생성 및 운영하는 제2 공개 블록체인 네트워크로부터 제2 블록에 대한 제2 정보를 수신하도록 구성되고,
    상기 시드 생성부는, 상기 제1 알고리즘에 기초하여, 상기 제1 정보 및 상기 제2 정보로부터 상기 시드를 생성하도록 구성된 것을 특징으로 하는 추첨 시스템.
  2. 청구항 1에 있어서,
    상기 제2 인터페이스는, 상기 사용자에게, 상기 적어도 하나의 시드 및 상기 적어도 하나의 난수 중 적어도 하나를 더 제공하도록 구성된 것을 특징으로 하는 추첨 시스템.
  3. 청구항 1에 있어서,
    상기 제1 알고리즘, 상기 제2 알고리즘 및 상기 제3 알고리즘은, 상기 추첨 시간 이전에 확정되고,
    상기 제2 인터페이스는, 상기 사용자의 요청에 응답하여 상기 제1 알고리즘, 상기 제2 알고리즘 및 상기 제3 알고리즘을 상기 추첨 시간과 무관하게 상기 사용자에게 제공하도록 구성된 것을 특징으로 하는 추첨 시스템.
  4. 삭제
  5. 삭제
  6. 청구항 1에 있어서,
    상기 난수 생성부는, 상기 제2 알고리즘에 기초하여, 균등 분포를 가지는 난수들을 생성하도록 구성된 것을 특징으로 하는 추첨 시스템.
  7. 청구항 1에 있어서,
    상기 적어도 하나의 난수의 길이는, 상기 당첨 번호의 길이보다 길고,
    상기 당첨 번호 생성부는, 상기 제3 알고리즘에 기초하여, 상기 적어도 하나의 난수를 상기 당첨 번호의 범위로 제한함으로써 상기 당첨 번호를 생성하도록 구성된 것을 특징으로 하는 추첨 시스템.
  8. 청구항 1에 있어서,
    상기 추첨 시간은 1분 이하의 주기로 반복되고,
    상기 적어도 하나의 공개 블록체인 네트워크는, 리플(Ripple), 트론(TRON) 및 이더리움(Ethereum) 2.0 중 적어도 하나인 것을 특징으로 하는 추첨 시스템.
  9. 청구항 1에 있어서,
    상기 제2 인터페이스는, 상기 사용자에게 상기 정보, 상기 제1 알고리즘, 상기 제2 알고리즘, 상기 제3 알고리즘 및 상기 당첨 번호가 노출되는 웹 페이지를 제공하도록 구성된 것을 특징으로 하는 추첨 시스템.
  10. 청구항 1에 있어서,
    상기 제1 인터페이스는, 2이상의 데이터베이스들로부터 상기 정보를 수신하도록 구성되고,
    상기 2이상의 데이터베이스들은, 복수의 수신 서버들로부터 상기 정보를 수신하여 저장하도록 구성된 것을 특징으로 하는 추첨 시스템.
  11. 공개 블록체인 네트워크에 기초한 추첨 시스템을 검증하기 위한 검증 시스템으로서,
    상기 추첨 시스템은, 적어도 하나의 블록에 대한 정보로부터, 제1 알고리즘, 제2 알고리즘 및 제3 알고리즘에 기초하여 제1 당첨 번호를 생성하고,
    사용자로부터 상기 적어도 하나의 블록을 식별할 수 있는 정보, 상기 제1 알고리즘, 상기 제2 알고리즘 및 상기 제3 알고리즘을 수신하고, 상기 사용자에게 제2 당첨 번호를 제공하도록 구성된 제1 인터페이스;
    상기 적어도 하나의 블록을 식별할 수 있는 정보에 기초하여 상기 적어도 하나의 블록을 식별하고, 식별된 상기 적어도 하나의 블록에 대한 정보를 상기 공개 블록체인 네트워크로부터 수신하도록 구성된 제2 인터페이스;
    상기 제1 알고리즘에 기초하여, 상기 정보로부터 적어도 하나의 시드(seed)를 생성하도록 구성된 시드 생성부;
    상기 제2 알고리즘에 기초하여, 상기 적어도 하나의 시드로부터 적어도 하나의 난수(random number)를 생성하도록 구성된 난수 생성부; 및
    상기 제3 알고리즘에 기초하여, 상기 적어도 하나의 난수로부터 상기 제2 당첨 번호를 생성하도록 구성된 당첨 번호 생성부를 포함하고,
    상기 검증 시스템은, 상기 추첨 시스템과 상이한 주체에 의해서 운영되고,
    상기 시드 생성부는, 상기 제2 인터페이스를 통해서 수신된 적어도 하나의 블록에 대한 정보로부터 상기 적어도 하나의 시드를 생성하도록 구성된 것을 특징으로 하는 것을 특징으로 하는 검증 시스템.
  12. 청구항 11에 있어서,
    상기 제1 인터페이스는, 상기 사용자에게, 상기 적어도 하나의 시드 및 상기 적어도 하나의 난수 중 적어도 하나를 더 제공하도록 구성된 것을 특징으로 하는 검증 시스템.
  13. 청구항 11에 있어서,
    블록에 대한 정보의 복수의 샘플들에 기초하여 상기 제1 알고리즘을 검증하고, 시드의 복수의 샘플들에 기초하여 상기 제2 알고리즘을 검증하고, 난수의 복수의 샘플들에 기초하여 상기 제3 알고리즘을 검증하도록 구성된 알고리즘 검증부를 더 포함하고,
    상기 제1 인터페이스는, 상기 사용자에게 상기 제1 알고리즘, 상기 제2 알고리즘 및 상기 제3 알고리즘의 검증 결과들 더 제공하도록 구성된 것을 특징으로 하는 검증 시스템.
  14. 삭제
KR1020200120309A 2019-11-15 2020-09-18 공개 블록체인에 기초한 추첨 및 그것의 검증을 위한 시스템 및 방법 KR102248890B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190146440 2019-11-15
KR20190146440 2019-11-15

Publications (1)

Publication Number Publication Date
KR102248890B1 true KR102248890B1 (ko) 2021-05-06

Family

ID=75915949

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200120309A KR102248890B1 (ko) 2019-11-15 2020-09-18 공개 블록체인에 기초한 추첨 및 그것의 검증을 위한 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR102248890B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102676290B1 (ko) 2022-05-04 2024-06-24 주식회사 유토피아게임즈 블록체인 네트워크를 이용하여 확률형 게임에서 난수 값을 생성하는 방법, 블록체인 네트워크를 이용하여 확률형 게임의 사용자에게 카드를 제공하는 방법 및 이를 수행하는 장치

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090106078A (ko) * 2008-04-04 2009-10-08 신태식 일회용 비밀번호 생성장치, 사용자 인증을 위한 서버 및이를 포함하는 시스템
KR20160107041A (ko) * 2015-03-03 2016-09-13 서울대학교산학협력단 난수 생성 방법 및 장치
KR20170001861A (ko) * 2015-06-26 2017-01-05 최원진 소프트웨어 알고리즘 학습장치
KR20190052605A (ko) * 2017-11-08 2019-05-16 삼성전자주식회사 적어도 두 개의 알고리즘을 이용하여 랜덤 넘버를 생성하는 랜덤 넘버 생성기 및 이를 포함하는 보안 장치
KR20190078668A (ko) * 2017-12-12 2019-07-05 포항공과대학교 산학협력단 검증가능한 추첨을 위한 장치 및 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090106078A (ko) * 2008-04-04 2009-10-08 신태식 일회용 비밀번호 생성장치, 사용자 인증을 위한 서버 및이를 포함하는 시스템
KR20160107041A (ko) * 2015-03-03 2016-09-13 서울대학교산학협력단 난수 생성 방법 및 장치
KR20170001861A (ko) * 2015-06-26 2017-01-05 최원진 소프트웨어 알고리즘 학습장치
KR20190052605A (ko) * 2017-11-08 2019-05-16 삼성전자주식회사 적어도 두 개의 알고리즘을 이용하여 랜덤 넘버를 생성하는 랜덤 넘버 생성기 및 이를 포함하는 보안 장치
KR20190078668A (ko) * 2017-12-12 2019-07-05 포항공과대학교 산학협력단 검증가능한 추첨을 위한 장치 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102676290B1 (ko) 2022-05-04 2024-06-24 주식회사 유토피아게임즈 블록체인 네트워크를 이용하여 확률형 게임에서 난수 값을 생성하는 방법, 블록체인 네트워크를 이용하여 확률형 게임의 사용자에게 카드를 제공하는 방법 및 이를 수행하는 장치

Similar Documents

Publication Publication Date Title
US11900364B2 (en) Implementing logic gate functionality using a blockchain
CN109075964B (zh) 支持用于区块验证的多个单向函数的区块链
CN109426567B (zh) 一种区块链的节点部署和选举方法
US10997125B2 (en) Proof of lottery (PoL) blockchain
JP7210466B2 (ja) ブロックチェーンを用いてデータ記録を分配するシステム及び方法
Wahab et al. Survey of consensus protocols
US11902439B2 (en) Computer-implemented system and method for fault-resistant multi-node communication
CN111865587B (zh) 数据处理方法、区块链节点设备、电子设备及计算机程序
KR102525157B1 (ko) 검증가능한 추첨을 위한 장치 및 방법
CN108831001B (zh) 基于区块链的节点随机选取方法、系统、节点、电子设备
CN110599144A (zh) 一种区块链节点的入网方法以及装置
CN110990790A (zh) 一种数据处理方法及设备
Hsueh et al. EPoW: Solving blockchain problems economically
CN110941680B (zh) 一种数据处理方法、装置及存储介质
Mourouzis et al. Introduction to decentralization and smart contracts
KR102248890B1 (ko) 공개 블록체인에 기초한 추첨 및 그것의 검증을 위한 시스템 및 방법
Mahmood et al. Survey of consensus protocols
KR20210123393A (ko) 의사-랜덤 데이터 생성을 위한 컴퓨터 구현된 방법 및 시스템
Himanshu An overview of blockchain technology: Architecture and consensus protocols
KR20220056036A (ko) 일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 거래 수행장치
Hazari Design and development of a parallel Proof of Work for permissionless blockchain systems
Alleman Randomness and Games on Ethereum
KR102582328B1 (ko) 블록체인 기반의 게임 시스템 및 그 방법
Sweet A Decentralized computation platform
Vaes Blockchains and the evolution of smart contract languages: an overview

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant