KR20200112557A - Method and device for a transparent lottery system by using a blockchain network - Google Patents

Method and device for a transparent lottery system by using a blockchain network Download PDF

Info

Publication number
KR20200112557A
KR20200112557A KR1020190033211A KR20190033211A KR20200112557A KR 20200112557 A KR20200112557 A KR 20200112557A KR 1020190033211 A KR1020190033211 A KR 1020190033211A KR 20190033211 A KR20190033211 A KR 20190033211A KR 20200112557 A KR20200112557 A KR 20200112557A
Authority
KR
South Korea
Prior art keywords
hash
group
hash value
hash values
values
Prior art date
Application number
KR1020190033211A
Other languages
Korean (ko)
Other versions
KR102251485B1 (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 (주)비스퀘어랩
Priority to KR1020190033211A priority Critical patent/KR102251485B1/en
Publication of KR20200112557A publication Critical patent/KR20200112557A/en
Application granted granted Critical
Publication of KR102251485B1 publication Critical patent/KR102251485B1/en

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
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0207Discounts or incentives, e.g. coupons or rebates
    • G06Q30/0212Chance discounts or incentives
    • 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
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0207Discounts or incentives, e.g. coupons or rebates
    • G06Q30/0225Avoiding frauds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Strategic Management (AREA)
  • Accounting & Taxation (AREA)
  • Game Theory and Decision Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

The present invention relates to a method for a transparent draw based on a blockchain network. The method includes: (a) a step in which a service server causes a hash module to generate user hash values corresponding to draw participation requests and including first to N-th user hash values when the draw participation requests including first to N-th draw participation requests are acquired from user terminals, performs response for each group including a preset number of the draw participation requests by applying at least one first hash operation to the user hash values, causes at least one group hash value including first to K-th group hash values to be generated, and then transmits the group hash values to a blockchain network; (b) a step in which the service server causes a draw smart contract registered in the blockchain network to generate at least one base hash value by referring to the transmitted group hash values and causes the base hash value to be transmitted to the service server or another device; and (c) a step in which the service server causes its determination module to determine at least one specific winning user terminal among the user terminals by referring to the base hash value or causes the other device to determine the specific user terminal among the user terminals by referring to the base hash value.

Description

블록체인 네트워크를 이용하여 투명하게 추첨을 수행하는 방법 및 장치{METHOD AND DEVICE FOR A TRANSPARENT LOTTERY SYSTEM BY USING A BLOCKCHAIN NETWORK}Method and device for transparently performing lottery using a blockchain network {METHOD AND DEVICE FOR A TRANSPARENT LOTTERY SYSTEM BY USING A BLOCKCHAIN NETWORK}

본 발명은 블록체인 네트워크를 이용하여 투명하게 추첨을 수행하는 방법에 관한 것이다. The present invention relates to a method of transparently performing a lottery using a blockchain network.

모두가 수강하고 싶어 하는 인기 교양 수업, 월드 스타의 콘서트 좌석, 명절의 고속 열차 탑승권 등 한정된 자원을 공평하게 분배하는 것은 쉽지 않다. 대부분의 경우, 이와 같은 한정된 자원을 분배하기 위해 단순한 디지털 선착순 방식을 사용하여, 인터넷 상으로 신청을 더 빨리 한 사람에게 해당 자원을 분배하게 된다. 하지만, 디지털 선착순 방식은, 해당 지역의 인터넷 속도, 컴퓨터 조작 속도 등 합리적이지 못한 팩터에 의해 당첨자가 결정되는 문제가 있다.It is difficult to distribute limited resources fairly, such as popular liberal arts classes that everyone wants to take, world star concert seats, and holiday high-speed train boarding passes. In most cases, a simple digital first-come-first-served basis is used to allocate these limited resources, distributing the resources to the person who made the application faster on the Internet. However, in the digital first-come-first-served basis, there is a problem in that the winner is determined based on unreasonable factors such as internet speed and computer operation speed of the region.

이를 대체하기 위해 제시된 여러 가지 실험적 방식 중 하나는 랜덤 추첨 방식이다. 정해진 기간 동안 해당 자원을 얻고자 하는 신청을 받고, 그 중 랜덤하게 당첨자를 결정하는 방식으로, 전술한 것과 같은 불합리한 팩터들에 의한 영향을 받지 않는 장점이 있다. 하지만 이와 같은 방법의 단점은, 추첨 과정이 투명하지 못하여 신청자들의 신뢰를 얻기 힘들다는 점이다. 즉, 서버 내부에서 자체적으로 추첨이 이루어질 경우에, 담당자가 임의로 특정 신청자를 당첨자로 결정하는 등의 부정을 저지를 수 있으므로 신청자들이 추첨 과정을 신뢰하지 못한다는 것이다.One of several experimental methods suggested to replace this is the random lottery method. It has the advantage of not being affected by irrational factors such as those described above, as a method of receiving an application for obtaining a corresponding resource for a predetermined period of time and randomly determining a winner among them. However, the disadvantage of this method is that the lottery process is not transparent and it is difficult to gain the trust of applicants. In other words, when a lottery is made by itself inside the server, the person in charge can arbitrarily decide a specific applicant as a winner, and so can commit irregularities, so that applicants do not trust the lottery process.

한편, 블록체인 기술이란, 관리 대상 데이터를, P2P 방식을 기반으로 생성된 체인 형태의 분산 데이터 저장환경인 블록에 저장함으로써, 분산 컴퓨팅 기술 기반으로 데이터의 변조를 방지하는 기술이다.Meanwhile, the blockchain technology is a technology that prevents data tampering based on distributed computing technology by storing managed data in a block, which is a distributed data storage environment in the form of a chain created based on the P2P method.

이와 같은 블록체인 기술을 전술한 랜덤 추첨 방식에 접목시키면, 추첨 과정을 투명하게 공개할 수 있으므로 랜덤 추첨 방식의 장점만을 취하고 단점은 없앨 수 있으나, 이와 같은 시도는 전무한 실정이다. When such a block chain technology is combined with the above-described random lottery method, the lottery process can be transparently disclosed, so that only the advantages of the random lottery method can be taken and the disadvantages are eliminated, but such attempts are absent.

본 발명은 상술한 문제점을 해결하는 것을 목적으로 한다.An object of the present invention is to solve the above-described problems.

본 발명은 블록체인 네트워크를 이용하여 투명하게 추첨을 수행하는 방법을 제공함으로써 신청자들이 추첨 방식을 신뢰할 수 있는 공평한 방식으로 자원이 분배될 수 있도록 하는 것을 목적으로 한다.An object of the present invention is to provide a method of transparently performing a lottery using a blockchain network, so that resources can be distributed in a fair manner in which applicants can trust the lottery method.

또한 본 발명은 블록체인 네트워크를 이용하여 투명하게 추첨을 수행하면서도 각각의 멤버십 별로 다른 확률로 당첨될 수 있도록 하는 방법을 제공함으로써 자원을 분배하는 측의 편의성을 도모하는 것을 목적으로 한다.In addition, an object of the present invention is to promote the convenience of the side of distributing resources by providing a method for transparently performing a lottery using a blockchain network and allowing each member to win with a different probability.

상기한 바와 같은 본 발명의 목적을 달성하고, 후술하는 본 발명의 특징적인 효과를 실현하기 위한 본 발명의 특징적인 구성은 하기와 같다.The characteristic configuration of the present invention for achieving the object of the present invention as described above and realizing the characteristic effects of the present invention described later is as follows.

본 발명의 일 태양에 따르면, 블록체인 네트워크를 이용하여 투명하게 추첨을 수행하는 방법에 있어서, (a) 유저 단말들로부터 제1 추첨 참가 요청 내지 제N 추첨 참가 요청을 포함하는 복수의 추첨 참가 요청들이 획득되면, 서비스 서버가, 해시 모듈로 하여금, 상기 추첨 참가 요청들에 대응하는, 제1 유저 해시 값 내지 제N 유저 해시 값을 포함하는 복수의 유저 해시 값들을 생성하도록 하고, 상기 유저 해시 값들에 적어도 하나의 제1 해시 연산을 적용함으로써, 기설정된 개수의 상기 추첨 참가 요청들을 포함하는 하나 이상의 그룹들 별로 대응하며, 제1 그룹 해시 값 내지 제K 그룹 해시 값을 포함하는 하나 이상의 그룹 해시 값들을 생성하도록 한 후, 상기 그룹 해시 값들을 블록체인 네트워크에 전달하는 단계; (b) 상기 서비스 서버가, 상기 블록체인 네트워크에 등록된 추첨 스마트 컨트랙트로 하여금, 전달된 상기 그룹 해시 값들을 참조로 하여 적어도 하나의 베이스 해시 값을 생성하도록 하고, 상기 베이스 해시 값을 상기 서비스 서버 또는 타 장치에 전달하도록 하는 단계; 및 (c) 상기 서비스 서버가, 자기 자신에 포함된 결정 모듈로 하여금, 상기 베이스 해시 값을 참조로 하여 상기 유저 단말들 중 당첨된 적어도 하나의 특정 유저 단말을 결정하도록 하거나, 상기 타 장치로 하여금, 상기 베이스 해시 값을 참조로 하여 상기 유저 단말들 중 상기 특정 유저 단말을 결정하도록 하는 단계; 를 포함하는 것을 특징으로 하는 방법이 개시된다. According to an aspect of the present invention, in a method of transparently performing a lottery using a blockchain network, (a) a plurality of lottery participation requests including a first lottery participation request or an N-th lottery participation request from user terminals When they are obtained, the service server causes the hash module to generate a plurality of user hash values including a first user hash value to an N-th user hash value corresponding to the lottery participation requests, and the user hash values By applying at least one first hash operation to, corresponding to each of one or more groups including a predetermined number of the lottery participation requests, and one or more group hash values including a first group hash value to a Kth group hash value After allowing them to be generated, transmitting the group hash values to a blockchain network; (b) The service server causes the lottery smart contract registered in the blockchain network to generate at least one base hash value by referring to the transmitted group hash values, and the base hash value is the service server Or allowing it to be delivered to another device; And (c) the service server causes a determination module included in itself to determine at least one specific user terminal that has been won among the user terminals by referring to the base hash value, or causes the other device to And determining the specific user terminal from among the user terminals by referring to the base hash value; Disclosed is a method comprising a.

일례로서, 상기 (a) 단계는, 상기 서비스 서버가, 상기 해시 모듈로 하여금, 기설정된 풀 사이즈에 대응하는 특정 개수의 추첨 참가 요청들을 포함하는 그룹들 별로, 각각의 그룹에 포함된 유저 해시 값들에 상기 제1 해시 연산을 적용함으로써 상기 그룹들 별로 상기 그룹 해시 값들을 생성하도록 하는 것을 특징으로 하는 방법이 개시된다.As an example, the step (a), the service server, the hash module, for each group including a specific number of lottery participation requests corresponding to a preset pool size, user hash values included in each group Disclosed is a method characterized in that the group hash values are generated for each of the groups by applying the first hash operation to.

일례로서, 상기 (a) 단계는, 상기 서비스 서버가, 상기 그룹 해시 값이 생성될 때마다 트랜잭션을 발생시킴으로써 상기 그룹 해시 값들을 블록체인 네트워크에 전달하는 것을 특징으로 하고, 상기 (b) 단계는, 상기 서비스 서버가, 상기 추첨 스마트 컨트랙트로 하여금, 제M 그룹 해시 값 - M은 1 이상 K 이하인 정수임 - 이 획득되면, 제1 그룹 해시 값 내지 제M-1 그룹 해시 값들에 대응하는 누적 해시 값과, 새로이 획득된 상기 제M 그룹 해시 값에 적어도 하나의 제2 해시 연산을 적용함으로써 상기 누적 해시 값을 업데이트하도록 하고, 새로운 그룹 해시 값이 획득될 때마다 이와 같은 업데이트 과정을 반복하여 업데이트된 누적 해시 값을 상기 베이스 해시 값으로 결정하도록 함으로써 상기 베이스 해시 값을 생성하도록 하는 것을 특징으로 하는 방법이 개시된다.As an example, the step (a) is characterized in that the service server transmits the group hash values to the blockchain network by generating a transaction each time the group hash value is generated, and the step (b) , The service server causes the lottery smart contract to generate an Mth group hash value-M is an integer of 1 or more and K or less-is obtained, the accumulated hash value corresponding to the first group hash value to the M-1th group hash values And, the accumulated hash value is updated by applying at least one second hash operation to the newly acquired M-th group hash value, and the updated accumulated hash value is repeated each time a new group hash value is obtained. Disclosed is a method characterized in that the base hash value is generated by determining the hash value as the base hash value.

일례로서, 상기 (a) 단계는, 상기 서비스 서버가, 상기 그룹 해시 값들이 소정 개수 또는 소정 기간 동안 생성된 후 트랜잭션을 발생시킴으로써 상기 그룹 해시 값들을 블록체인 네트워크에 전달하는 것을 특징으로 하고, 상기 (b) 단계는, 상기 서비스 서버가, 상기 추첨 스마트 컨트랙트로 하여금, 상기 그룹 해시 값들을 이용하여 트리 구조를 생성함으로써 상기 베이스 해시 값을 생성하도록 하는 것을 특징으로 하는 방법이 개시된다.As an example, the step (a) is characterized in that the service server transmits the group hash values to the blockchain network by generating a transaction after the group hash values are generated for a predetermined number or for a predetermined period, and the Step (b) discloses a method characterized in that the service server causes the lottery smart contract to generate the base hash value by generating a tree structure using the group hash values.

일례로서, 상기 (a) 단계는, 상기 추첨 참가 요청들은 상기 유저 단말들을 사용하는 유저들의 멤버십 정보를 포함하고, 상기 서비스 서버는, 상기 추첨 참가 요청들을 상기 멤버십 정보에 따라 분류한 후, 상기 해시 모듈로 하여금, 서로 동일한 멤버십 정보를 가지도록 분류된 상기 추첨 참가 요청들에 대해, 각각의 멤버십 정보에 따라 가변적인 풀 사이즈에 대응하는 개수의 추첨 참가 요청들 별로 상기 그룹 해시 값들을 생성하도록 하는 것을 특징으로 하는 방법이 개시된다.As an example, in the step (a), the lottery participation requests include membership information of users who use the user terminals, and the service server classifies the lottery participation requests according to the membership information, and then the hash For the module to generate the group hash values for each of the number of lottery participation requests corresponding to a variable pool size according to the respective membership information for the lottery participation requests classified to have the same membership information. The characterized method is disclosed.

일례로서, 상기 (b) 단계는, 상기 서비스 서버가, 상기 추첨 스마트 컨트랙트로 하여금, 상기 그룹 해시 값들을 참조로 하여, 각각의 상기 멤버십 정보 별로 각각의 상기 베이스 해시 값들을 생성하도록 하고, 상기 (c) 단계는, 상기 서비스 서버가, 상기 결정 모듈로 하여금, 각각의 상기 베이스 해시 값들을 참조로 하여, 각각의 상기 멤버십 정보 별로 상기 유저 단말들 중 당첨된 특정 유저 단말을 결정하도록 하거나, 상기 타 장치로 하여금, 각각의 상기 베이스 해시 값들을 참조로 하여 각각의 상기 멤버십 정보 별로 상기 특정 유저 단말을 결정하도록 하는 것을 특징으로 하는 방법이 개시된다.As an example, in step (b), the service server causes the lottery smart contract to generate each of the base hash values for each of the membership information by referring to the group hash values, and the ( In step c), the service server causes the determination module to determine a winning specific user terminal among the user terminals for each of the membership information, with reference to each of the base hash values, or the other Disclosed is a method, characterized in that causing an apparatus to determine the specific user terminal for each of the membership information by referring to each of the base hash values.

일례로서, 상기 (a) 단계는, 상기 서비스 서버가 상기 그룹 해시 값들을 블록체인 네트워크에 전달할 때, 상기 블록체인 네트워크에 대응하는 복수 개의 네트워크 주소를 번갈아 가며 사용함으로써 시퀀스 컬리젼을 방지하는 것을 특징으로 하는 방법이 개시된다.As an example, the step (a) is characterized in that when the service server transmits the group hash values to the blockchain network, sequence collation is prevented by alternately using a plurality of network addresses corresponding to the blockchain network. A method of doing this is disclosed.

일례로서, 상기 (c) 단계는, 상기 서비스 서버가, 상기 결정 모듈 또는 상기 타 장치로 하여금, 상기 유저 해시 값들과 상기 베이스 해시 값과의 차이의 절대 값들을 크기 순으로 나열한 결과를 참조로 하여 상기 특정 유저 단말들을 결정하도록 하는 것을 특징으로 하는 방법이 개시된다.As an example, the step (c), the service server, the determination module or the other device, with reference to the result of listing the absolute values of the difference between the user hash values and the base hash value in order of size. A method is disclosed, characterized in that the specific user terminals are determined.

일례로서, 상기 (c) 단계는, 상기 서비스 서버가, 상기 결정 모듈 또는 상기 타 장치로 하여금, 상기 절대 값들을 크기가 커지는 순으로 나열한 결과를 참조로 하여, 상기 결과에서 가장 앞에 위치한 절대 값부터 특정 절대 값까지의 절대 값들에 대응하는 유저 해시 값들을 선택하되, 상기 선택된 유저 해시 값들의 개수의 전체 유저 해시 값들의 개수에 대한 비율이 기설정된 비율을 따르도록 하여 선택함으로써 특정 유저 해시 값들을 선택하도록 하고, 상기 특정 유저 해시 값들에 대응하는 유저 단말들을 선택함으로써 상기 특정 유저 단말들을 결정하도록 하는 것을 특징으로 하는 방법이 개시된다.As an example, in step (c), the service server causes the determination module or the other device to refer to a result of listing the absolute values in order of increasing size, starting from the absolute value located at the front of the result. Select user hash values corresponding to absolute values up to a specific absolute value, but select specific user hash values by selecting the ratio of the number of selected user hash values to the number of total user hash values according to a preset ratio The method is disclosed, wherein the specific user terminals are determined by selecting user terminals corresponding to the specific user hash values.

본 발명의 다른 태양에 따르면, 블록체인 네트워크를 이용하여 투명하게 추첨을 수행하는 서비스 서버에 있어서, 인스트럭션들을 저장하는 하나 이상의 메모리; 및 상기 인스트럭션들을 수행하도록 설정된 하나 이상의 프로세스를 포함하되, 상기 프로세서는, (I) 유저 단말들로부터 제1 추첨 참가 요청 내지 제N 추첨 참가 요청을 포함하는 복수의 추첨 참가 요청들이 획득되면, 해시 모듈로 하여금, 상기 추첨 참가 요청들에 대응하는, 제1 유저 해시 값 내지 제N 유저 해시 값을 포함하는 복수의 유저 해시 값들을 생성하도록 하고, 상기 유저 해시 값들에 적어도 하나의 제1 해시 연산을 적용함으로써, 기설정된 개수의 상기 추첨 참가 요청들을 포함하는 하나 이상의 그룹들 별로 대응하며, 제1 그룹 해시 값 내지 제K 그룹 해시 값을 포함하는 하나 이상의 그룹 해시 값들을 생성하도록 한 후, 상기 그룹 해시 값들을 블록체인 네트워크에 전달하는 프로세스; (II) 상기 블록체인 네트워크에 등록된 추첨 스마트 컨트랙트로 하여금, 전달된 상기 그룹 해시 값들을 참조로 하여 적어도 하나의 베이스 해시 값을 생성하도록 하고, 상기 베이스 해시 값을 상기 서비스 서버 또는 타 장치에 전달하도록 하는 프로세스; 및 (III) 상기 서비스 서버에 포함된 결정 모듈로 하여금, 상기 베이스 해시 값을 참조로 하여 상기 유저 단말들 중 당첨된 적어도 하나의 특정 유저 단말을 결정하도록 하거나, 상기 타 장치로 하여금, 상기 베이스 해시 값을 참조로 하여 상기 유저 단말들 중 상기 특정 유저 단말을 결정하도록 하는 프로세스;를 수행하는 것을 특징으로 하는 서비스 서버가 개시된다.According to another aspect of the present invention, there is provided a service server for transparently performing a lottery using a block chain network, comprising: at least one memory for storing instructions; And one or more processes configured to perform the instructions, wherein the processor comprises: (I) when a plurality of lottery participation requests including a first lottery participation request to an N-th lottery participation request from user terminals are obtained, a hash module Allows to generate a plurality of user hash values including a first user hash value to an N-th user hash value corresponding to the lottery participation requests, and applies at least one first hash operation to the user hash values By doing so, after generating one or more group hash values corresponding to one or more groups including a predetermined number of the lottery participation requests and including a first group hash value to a Kth group hash value, the group hash value The process of delivering them to the blockchain network; (II) Have the lottery smart contract registered in the blockchain network generate at least one base hash value by referring to the transmitted group hash values, and transmit the base hash value to the service server or other device The process to make And (III) causing a determination module included in the service server to determine at least one specific user terminal that has been won among the user terminals by referring to the base hash value, or to cause the other device to determine the base hash value. Disclosed is a service server, comprising: a process of determining the specific user terminal among the user terminals by referring to a value.

일례로서, 상기 (I) 프로세스는, 상기 프로세서가, 상기 해시 모듈로 하여금, 기설정된 풀 사이즈에 대응하는 특정 개수의 추첨 참가 요청들을 포함하는 그룹들 별로, 각각의 그룹에 포함된 유저 해시 값들에 상기 제1 해시 연산을 적용함으로써 상기 그룹들 별로 상기 그룹 해시 값들을 생성하도록 하는 것을 특징으로 하는 서비스 서버가 개시된다.As an example, in the (I) process, the processor, the hash module, for each group including a specific number of lottery participation requests corresponding to a preset pool size, to user hash values included in each group. A service server is disclosed, wherein the group hash values are generated for each of the groups by applying the first hash operation.

일례로서, 상기 (I) 프로세스는, 상기 프로세서가, 상기 그룹 해시 값이 생성될 때마다 트랜잭션을 발생시킴으로써 상기 그룹 해시 값들을 블록체인 네트워크에 전달하는 것을 특징으로 하고, 상기 (II) 프로세스는, 상기 프로세서가, 상기 추첨 스마트 컨트랙트로 하여금, 제M 그룹 해시 값 - M은 1 이상 K 이하인 정수임 - 이 획득되면, 제1 그룹 해시 값 내지 제M-1 그룹 해시 값들에 대응하는 누적 해시 값과, 새로이 획득된 상기 제M 그룹 해시 값에 적어도 하나의 제2 해시 연산을 적용함으로써 상기 누적 해시 값을 업데이트하도록 하고, 새로운 그룹 해시 값이 획득될 때마다 이와 같은 업데이트 과정을 반복하여 업데이트된 누적 해시 값을 상기 베이스 해시 값으로 결정하도록 함으로써 상기 베이스 해시 값을 생성하도록 하는 것을 특징으로 하는 서비스 서버가 개시된다.As an example, the process (I) is characterized in that the processor transmits the group hash values to the blockchain network by generating a transaction each time the group hash value is generated, and the (II) process, When the processor causes the lottery smart contract to obtain an Mth group hash value-M is an integer of 1 or more and K or less-is obtained, a cumulative hash value corresponding to the first group hash value to the M-1th group hash values, and The accumulated hash value is updated by applying at least one second hash operation to the newly acquired M-th group hash value, and the updated hash value is updated by repeating such an update process each time a new group hash value is obtained. A service server is disclosed, wherein the base hash value is generated by determining as the base hash value.

일례로서, 상기 (I) 프로세스는, 상기 프로세서가, 상기 그룹 해시 값들이 소정 개수 또는 소정 기간 동안 생성된 후 트랜잭션을 발생시킴으로써 상기 그룹 해시 값들을 블록체인 네트워크에 전달하는 것을 특징으로 하고, 상기 (II) 프로세스는, 상기 프로세서가, 상기 추첨 스마트 컨트랙트로 하여금, 상기 그룹 해시 값들을 이용하여 트리 구조를 생성함으로써 상기 베이스 해시 값을 생성하도록 하는 것을 특징으로 하는 서비스 서버가 개시된다.As an example, the process (I) is characterized in that the processor transmits the group hash values to the blockchain network by generating a transaction after the group hash values are generated for a predetermined number or for a predetermined period, and the ( II) process, the service server is disclosed, characterized in that the processor causes the lottery smart contract to generate the base hash value by creating a tree structure using the group hash values.

일례로서, 상기 (I) 프로세스는, 상기 추첨 참가 요청들은 상기 유저 단말들을 사용하는 유저들의 멤버십 정보를 포함하고, 상기 프로세서는, 상기 추첨 참가 요청들을 상기 멤버십 정보에 따라 분류한 후, 상기 해시 모듈로 하여금, 서로 동일한 멤버십 정보를 가지도록 분류된 상기 추첨 참가 요청들에 대해, 각각의 멤버십 정보에 따라 가변적인 풀 사이즈에 대응하는 개수의 추첨 참가 요청들 별로 상기 그룹 해시 값들을 생성하도록 하는 것을 특징으로 하는 서비스 서버가 개시된다.As an example, in the (I) process, the lottery participation requests include membership information of users using the user terminals, and the processor classifies the lottery participation requests according to the membership information, and then the hash module In response to the lottery participation requests classified to have the same membership information, the group hash values are generated for each lottery participation request corresponding to a variable pool size according to each membership information. The service server is started.

일례로서, 상기 (II) 프로세스는, 상기 프로세서가, 상기 추첨 스마트 컨트랙트로 하여금, 상기 그룹 해시 값들을 참조로 하여, 각각의 상기 멤버십 정보 별로 각각의 상기 베이스 해시 값들을 생성하도록 하고, 상기 (III) 프로세스는, 상기 프로세서가, 상기 결정 모듈로 하여금, 각각의 상기 베이스 해시 값들을 참조로 하여, 각각의 상기 멤버십 정보 별로 상기 유저 단말들 중 당첨된 특정 유저 단말을 결정하도록 하거나, 상기 타 장치로 하여금, 각각의 상기 베이스 해시 값들을 참조로 하여 각각의 상기 멤버십 정보 별로 상기 특정 유저 단말을 결정하도록 하는 것을 특징으로 하는 서비스 서버가 개시된다.As an example, in the (II) process, the processor causes the lottery smart contract to generate each of the base hash values for each of the membership information by referring to the group hash values, and the (III) ) The process allows the processor to make the determination module determine a winning specific user terminal among the user terminals for each of the membership information, with reference to each of the base hash values, or to the other device A service server is disclosed, wherein the specific user terminal is determined for each of the membership information by referring to each of the base hash values.

일례로서, 상기 (I) 프로세스는, 상기 프로세서가 상기 그룹 해시 값들을 블록체인 네트워크에 전달할 때, 상기 블록체인 네트워크에 대응하는 복수 개의 네트워크 주소를 번갈아 가며 사용함으로써 시퀀스 컬리젼을 방지하는 것을 특징으로 하는 서비스 서버가 개시된다.As an example, the process (I) is characterized in that when the processor transmits the group hash values to the blockchain network, sequence collation is prevented by alternately using a plurality of network addresses corresponding to the blockchain network. The service server to perform is started.

일례로서, 상기 (III) 프로세스는, 상기 프로세서가, 상기 결정 모듈 또는 상기 타 장치로 하여금, 상기 유저 해시 값들과 상기 베이스 해시 값과의 차이의 절대 값들을 크기 순으로 나열한 결과를 참조로 하여 상기 특정 유저 단말들을 결정하도록 하는 것을 특징으로 하는 서비스 서버가 개시된다.As an example, the (III) process, the processor, the determination module or the other device, with reference to the result of listing the absolute values of the difference between the user hash values and the base hash value in order of size, the Disclosed is a service server, characterized in that for determining specific user terminals.

일례로서, 상기 (III) 프로세스는, 상기 프로세서가, 상기 결정 모듈 또는 상기 타 장치로 하여금, 상기 절대 값들을 크기가 커지는 순으로 나열한 결과를 참조로 하여, 상기 결과에서 가장 앞에 위치한 절대 값부터 특정 절대 값까지의 절대 값들에 대응하는 유저 해시 값들을 선택하되, 상기 선택된 유저 해시 값들의 개수의 전체 유저 해시 값들의 개수에 대한 비율이 기설정된 비율을 따르도록 하여 선택함으로써 특정 유저 해시 값들을 선택하도록 하고, 상기 특정 유저 해시 값들에 대응하는 유저 단말들을 선택함으로써 상기 특정 유저 단말들을 결정하도록 하는 것을 특징으로 하는 서비스 서버가 개시된다.As an example, in the (III) process, the processor, with reference to the result of listing the absolute values in the order of increasing size, causes the determination module or the other device to specify from the first absolute value in the result. Select user hash values corresponding to absolute values up to the absolute value, but select specific user hash values by selecting the ratio of the number of selected user hash values to the number of total user hash values according to a preset ratio. And, a service server is disclosed, wherein the specific user terminals are determined by selecting user terminals corresponding to the specific user hash values.

본 발명은 블록체인 네트워크를 이용하여 투명하게 추첨을 수행하는 방법을 제공함으로써 신청자들이 추첨 방식을 신뢰할 수 있는 공평한 방식으로 자원이 분배될 수 있도록 하는 효과가 있다.The present invention provides a method of transparently performing a lottery using a blockchain network, so that resources can be distributed in a fair manner in which applicants can trust the lottery method.

또한 본 발명은 블록체인 네트워크를 이용하여 투명하게 추첨을 수행하면서도 각각의 멤버십 별로 다른 확률로 당첨될 수 있도록 하는 방법을 제공함으로써 자원을 분배하는 측의 편의성을 도모할 수 있는 효과가 있다.In addition, the present invention provides a method of transparently performing a lottery using a block chain network and allowing each membership to win with a different probability, thereby promoting the convenience of the resource distribution side.

도 1은 본 발명의 일 실시예에 따른, 블록체인 네트워크를 이용하여 투명하게 추첨을 수행하는 방법을 수행하기 위한 서비스 서버의 구성을 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른, 블록체인 네트워크를 이용하여 투명하게 추첨을 수행하는 방법을 수행하기 위한 서비스 서버와 블록체인 네트워크의 관계를 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른, 블록체인 네트워크를 이용하여 투명하게 추첨을 수행하는 방법을 나타낸 흐름도이다.
도 4는 본 발명의 일 실시예에 따른, 블록체인 네트워크를 이용하여 투명하게 추첨을 수행하는 방법의 일 예로서, 멤버십에 따라 추첨을 다르게 실시하는 방법을 나타낸 흐름도이다.
1 is a diagram showing the configuration of a service server for performing a transparent lottery method using a blockchain network according to an embodiment of the present invention.
2 is a diagram illustrating a relationship between a service server and a blockchain network for performing a transparent lottery method using a blockchain network according to an embodiment of the present invention.
3 is a flowchart showing a method of transparently performing a lottery using a blockchain network according to an embodiment of the present invention.
4 is a flowchart illustrating a method of performing a lottery differently according to membership, as an example of a method of transparently performing a lottery using a blockchain network according to an embodiment of the present invention.

후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.DETAILED DESCRIPTION OF THE INVENTION The detailed description of the present invention to be described later refers to the accompanying drawings, which illustrate specific embodiments in which the present invention may be practiced. These embodiments are described in detail sufficient to enable a person skilled in the art to practice the present invention. It is to be understood that the various embodiments of the present invention are different from each other, but need not be mutually exclusive. For example, specific shapes, structures, and characteristics described herein may be implemented in other embodiments without departing from the spirit and scope of the present invention in relation to one embodiment. In addition, it is to be understood that the location or arrangement of individual components within each disclosed embodiment may be changed without departing from the spirit and scope of the present invention. Accordingly, the detailed description to be described below is not intended to be taken in a limiting sense, and the scope of the present invention, if properly described, is limited only by the appended claims, along with all scopes equivalent to those claimed by the claims. Like reference numerals in the drawings refer to the same or similar functions over several aspects.

이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings in order to enable those of ordinary skill in the art to easily implement the present invention.

도 1은 본 발명의 일 실시예에 따른, 블록체인 네트워크를 이용하여 투명하게 추첨을 수행하는 방법을 수행하기 위한 서비스 서버의 구성을 나타낸 도면이다.1 is a diagram showing the configuration of a service server for performing a transparent lottery method using a blockchain network according to an embodiment of the present invention.

도 1을 참조하면, 서비스 서버(100)는, 해시 모듈(130) 및 결정 모듈(140)을 포함할 수 있다. 이 때, 해시 모듈(130) 및 결정 모듈(140)의 입출력 및 연산 과정은 각각 통신부(110) 및 프로세서(120)에 의해 이루어질 수 있다. 다만 도 1에서는 통신부(110) 및 프로세서(120)의 구체적인 연결 관계를 생략하였다. 이 때, 메모리(115)는 후술할 여러 가지 지시들을 저장한 상태일 수 있고, 프로세서(120)는 메모리(115)에 저장된 지시들을 수행하도록 설정되되, 프로세서(120)는 추후 설명할 프로세스들을 수행함으로써 본 발명을 수행할 수 있다. 이와 같이 서비스 서버(100)가 묘사되었다고 하여, 서비스 서버(100)가 본 발명을 실시하기 위한 미디엄, 프로세서 및 메모리가 통합된 형태인 integrated 프로세서를 포함하는 경우를 배제하는 것은 아니다.Referring to FIG. 1, the service server 100 may include a hash module 130 and a determination module 140. In this case, input/output and operation processes of the hash module 130 and the determination module 140 may be performed by the communication unit 110 and the processor 120, respectively. However, in FIG. 1, a specific connection relationship between the communication unit 110 and the processor 120 is omitted. At this time, the memory 115 may be in a state in which various instructions to be described later are stored, and the processor 120 is set to execute instructions stored in the memory 115, but the processor 120 performs processes to be described later. By doing this, the present invention can be carried out. The description of the service server 100 as described above does not exclude the case where the service server 100 includes an integrated processor in which a medium, a processor, and a memory are integrated for carrying out the present invention.

이상 서비스 서버(100)에 대해 설명한 바, 서비스 서버(100)와 연동된 블록체인 네트워크(200) 및 그 연동 관계에 대해 설명하기 위해 도 2를 참조하도록 한다.As described above for the service server 100, reference will be made to FIG. 2 to describe the block chain network 200 linked to the service server 100 and the linkage relationship thereof.

도 2는 본 발명의 일 실시예에 따른, 블록체인 네트워크를 이용하여 투명하게 추첨을 수행하는 방법을 수행하기 위한 서비스 서버와 블록체인 네트워크의 관계를 나타낸 도면이다.2 is a diagram illustrating a relationship between a service server and a blockchain network for performing a transparent lottery method using a blockchain network according to an embodiment of the present invention.

서비스 서버(100)와 연동된 블록체인 네트워크(200)는, 추후 설명할 추첨 스마트 컨트랙트를 등록한 상태여야 하므로, 스마트 컨트랙트 방식을 채용한 블록체인일 수 있는데, 대표적으로 이더리움 네트워크일 수 있으나, 이에 한정될 것은 아니다. 블록체인 네트워크(200)에는 여러 노드들이 존재할 것이고, 각각의 노드들에는, 도 2에 표시된 베이스 해시 값 및 그룹 해시 값들이 저장되어 있을 것이다.Since the blockchain network 200 linked with the service server 100 must have registered a lottery smart contract to be described later, it may be a block chain employing a smart contract method, which may be an Ethereum network representatively. It is not limited. Several nodes will exist in the blockchain network 200, and base hash values and group hash values shown in FIG. 2 will be stored in each of the nodes.

서비스 서버(100)와 블록체인 네트워크(200)은 API를 통해 연동될 수 있는데, API는, 도 2의 화살표에 표시된 함수들을 포함할 수 있다. 구체적으로, API는 Startsortition() 함수, AddApplicatns(HASH) 함수, CloseSortition() 함수 및 GetBaseHash() 함수를 포함할 수 있는데, 각각의 함수에 대해서는 본 발명의 추첨 방식에 대해 구체적으로 설명하면서 함께 설명하도록 한다.The service server 100 and the blockchain network 200 may be linked through an API, and the API may include functions indicated by arrows in FIG. 2. Specifically, the API may include a Startsortition() function, an AddApplicatns(HASH) function, a CloseSortition() function, and a GetBaseHash() function, and each function will be described together while specifically describing the lottery method of the present invention. do.

또한, 도 2에는 유저 해시 값, 그룹 해시 값 및 베이스 해시 값 등 여러 가지 해시 값들이 표시되어 있는데, 그룹 해시 값은 복수 개의 유저 해시 값을 대표하는 값이고, 베이스 해시 값은 하나 이상의 그룹 해시 값을 대표하는 값인 바, 구체적인 내용에 대하여는 역시 본 발명의 추첨 방법에 대해 구체적으로 설명하면서 함께 설명할 것이다.In addition, various hash values such as a user hash value, a group hash value, and a base hash value are displayed in FIG. 2. The group hash value is a value representing a plurality of user hash values, and the base hash value is one or more group hash values. As a representative value, specific contents will be described together with a detailed description of the lottery method of the present invention.

본 발명의 추첨 방법에 대해 설명하기 위해 도 3을 참조하도록 한다.Referring to FIG. 3 to explain the lottery method of the present invention.

도 3은 본 발명의 일 실시예에 따른, 블록체인 네트워크를 이용하여 투명하게 추첨을 수행하는 방법을 나타낸 흐름도이다.3 is a flowchart showing a method of transparently performing a lottery using a blockchain network according to an embodiment of the present invention.

도 3을 참조로 하면, 본 발명의 전반적인 구성, 즉 해시 모듈(130)에서 연산이 이루어진 후, 블록체인 네트워크(200)에서 연산이 이루어지고, 마지막으로 결정 모듈(140)에서 연산이 이루어지는 구성을 확인할 수 있다.Referring to FIG. 3, the overall configuration of the present invention, that is, after the calculation is performed in the hash module 130, the calculation is performed in the blockchain network 200, and finally, the calculation is performed in the determination module 140. I can confirm.

구체적으로는, 유저 단말들로부터 제1 추첨 참가 요청 내지 제N 추첨 참가 요청을 포함하는 복수의 추첨 참가 요청들이 획득되면, 서비스 서버(100)가, 해시 모듈(130)로 하여금, 추첨 참가 요청들에 대응하는 제1 유저 해시 값 내지 제N 유저 해시 값을 포함하는 복수의 유저 해시 값들을 생성하도록 할 수 있다. 즉, 추첨 참가 요청들이 획득될 때마다, 각각의 추첨 참가 요청에 대응하는 유저 해시 값들을 할당하겠다는 것이다. 이와 같은 유저 해시 값들은, 신뢰성을 보장하기 위해 서버에서 공개될 수 있다.Specifically, when a plurality of lottery participation requests including a first lottery participation request to an N-th lottery participation request are obtained from the user terminals, the service server 100 causes the hash module 130 to make the lottery participation requests A plurality of user hash values including a first user hash value to an Nth user hash value corresponding to may be generated. That is, whenever lottery participation requests are obtained, user hash values corresponding to each lottery participation request are allocated. Such user hash values may be disclosed in the server to ensure reliability.

이후, 서비스 서버(100)는, 해시 모듈(130)로 하여금, 유저 해시 값들에 적어도 하나의 제1 해시 연산을 적용함으로써, 기설정된 개수의 추첨 참가 요청들을 포함하는 하나 이상의 그룹들 별로 대응하는 하나 이상의 그룹 해시 값들을 생성하도록 할 수 있다. 이와 같은 그룹 해시 값들은, 제1 그룹 해시 값 내지 제K 그룹 해시 값을 포함할 수 있다.Thereafter, the service server 100 causes the hash module 130 to apply at least one first hash operation to user hash values, so that one corresponding to one or more groups including a predetermined number of lottery participation requests More than one group hash value can be created. Such group hash values may include a first group hash value to a Kth group hash value.

그룹 해시 값들에 대해 더욱 구체적으로 설명하면, 서비스 서버(100)는, 해시 모듈(130)로 하여금, 기설정된 풀 사이즈에 대응하는 특정 개수의 추첨 참가 요청들을 포함하는 그룹들 별로, 각각의 그룹에 포함된 유저 해시 값들에 제1 해시 연산을 적용함으로써 그룹들 별로 그룹 해시 값들을 생성하도록 할 수 있다. 예를 들어, 기설정된 풀 사이즈가 100개라면, 추첨 참가 요청들 100개씩을 묶어, 해당 유저 해시 값들에 제1 해시 연산을 적용함으로써 100개의 해당 추첨 참가 요청들을 대표하는 그룹 해시 값을 생성하겠다는 것이다.When describing the group hash values in more detail, the service server 100 causes the hash module 130 to, for each group including a specific number of lottery participation requests corresponding to a preset pool size, to each group. Group hash values may be generated for each group by applying a first hash operation to included user hash values. For example, if the preset pool size is 100, it means that 100 lottery participation requests are grouped, and a group hash value representing 100 lottery participation requests is generated by applying a first hash operation to the user hash values. .

이와 같은 그룹 해시 값들은 제1 해시 연산에 의해 생성될 수 있는데, 제1 해시 연산은, 널리 알려진 여러 해시 함수들, 즉 MD5, SHA 또는 CRC 등의 해시 함수들 중 적어도 일부일 수 있다. 또한, 실시예에 따라, 각각의 그룹 별로 서로 다른 제1 해시 연산을 사용할 수도 있을 것이다.Such group hash values may be generated by a first hash operation, and the first hash operation may be at least some of several well-known hash functions, that is, hash functions such as MD5, SHA, or CRC. In addition, according to embodiments, a different first hash operation may be used for each group.

이후, 일 실시예에서, 서비스 서버(100)가, 그룹 해시 값이 생성될 때마다 트랜잭션을 발생시킴으로써 그룹 해시 값들을 블록체인 네트워크에 전달할 수 있다. 이는 서비스 서버(100)가 추첨 참가 요청들을 순차적으로 획득하면서, 전술한 특정 개수가 채워질 때마다 그룹 해시 값을 생성하여 블록체인 네트워크(200)에 전달하는 경우를 상정한 것이다. 이 때, 트랜잭션을 발생시키기 전에, API의 Startsortition() 함수가 실행될 수 있을 것이다. 또한, 매 트랜잭션마다, 그룹 해시 값을 input으로 하여 AddApplicants(HASH) 함수가 실행될 수 있을 것이다. Thereafter, in one embodiment, the service server 100 may transmit the group hash values to the blockchain network by generating a transaction each time the group hash value is generated. This is assumed to be a case where the service server 100 sequentially acquires lottery participation requests, generates a group hash value each time the above-described specific number is filled, and transmits the group hash value to the blockchain network 200. At this time, before generating a transaction, the API's Startsortition() function may be executed. In addition, for each transaction, the AddApplicants(HASH) function may be executed by inputting the group hash value.

이와 같은 경우에는, 서비스 서버(100)가, 블록체인 네트워크(200)에 제M 그룹 해시 값이 전달되면, 블록체인 네트워크(200)에 등록된 추첨 스마트 컨트랙트로 하여금, 제1 그룹 해시 값 내지 제M-1 그룹 해시 값들에 대응하는 누적 해시 값과, 새로이 획득된 제M 그룹 해시 값에 적어도 하나의 제2 해시 연산을 적용함으로써 누적 해시 값을 업데이트하도록 할 수 있다. M은 물론 2 이상 K 이하인 정수일 것이다. 이후, 새로운 그룹 해시 값이 획득될 때마다 이와 같은 업데이트 과정을 반복하여 업데이트가 완료된 누적 해시 값을 베이스 해시 값으로 결정하도록 할 수 있다.In this case, when the service server 100 transmits the Mth group hash value to the blockchain network 200, the lottery smart contract registered in the blockchain network 200 causes the first group hash value to The accumulated hash value may be updated by applying at least one second hash operation to the accumulated hash value corresponding to the M-1 group hash values and the newly acquired M-th group hash value. M will of course be an integer greater than or equal to 2 and less than or equal to K. Thereafter, each time a new group hash value is acquired, such an update process may be repeated to determine the updated accumulated hash value as the base hash value.

구체적으로, 누적 해시 값은, 베이스 해시 값을 생성하기 위하여 그룹 해시 값들을 이용해 업데이트되는 해시 값을 말한다. 예를 들어, 제1 그룹 해시 값이 획득된 후 제2 그룹 해시 값이 획득되면, 추첨 스마트 컨트랙트는 제1 그룹 해시 값 및 제2 그룹 해시 값에 제2 해시 연산을 적용함으로써 누적 해시 값을 최초로 생성할 수 있다. 이후, 제3 그룹 해시 값이 획득되면, 추첨 스마트 컨트랙트는 누적 해시 값과 제3 그룹 해시 값에 제2 해시 연산을 적용함으로써 누적 해시 값을 업데이트하고, 제4 그룹 해시 값이 획득되면 또다시 제3 그룹 해시 값까지가 반영된 누적 해시 값과 제4 그룹 해시 값에 제2 해시 연산을 적용함으로써 누적 해시 값을 업데이트할 수 있을 것이다. 이 때, 제2 해시 연산은, 전술한 제1 해시 연산과 동일하게, MD5, SHA 또는 CRC 등의 해시 함수들 중 적어도 일부일 수 있으며, 실시예에 따라 매번 누적 해시 값을 업데이트할 때마다 다른 제2 해시 연산이 사용될 수 있을 것이다. 또한, 여기서 이번 단계에 사용되는 "누적 해시 값"은, 바로 전 단계에서 업데이트했던 누적 해시 값을 그대로 사용할 수도 있지만, 소정의 함수에 의해 변형된 누적 해시 값을 사용할 수도 있을 것이며, 설명의 편의상 이 모든 것을 단순히 "누적 해시 값"으로 명명하기로 한다.Specifically, the cumulative hash value refers to a hash value that is updated using group hash values to generate a base hash value. For example, when a second group hash value is obtained after a first group hash value is obtained, the lottery smart contract applies a second hash operation to the first group hash value and the second group hash value, thereby first calculating the accumulated hash value. Can be generated. Thereafter, when the third group hash value is obtained, the lottery smart contract updates the accumulated hash value by applying a second hash operation to the accumulated hash value and the third group hash value. The accumulated hash value may be updated by applying the second hash operation to the accumulated hash value reflecting up to the 3 group hash values and the fourth group hash value. In this case, the second hash operation may be at least some of the hash functions such as MD5, SHA, or CRC, similar to the above-described first hash operation. Two hash operations could be used. In addition, as for the "cumulative hash value" used in this step, the cumulative hash value updated in the previous step may be used as it is, but the accumulated hash value modified by a predetermined function may be used. We will simply name everything "cumulative hash value".

이후, 더 이상 획득될 그룹 해시 값이 없게 되면, 추첨 스마트 컨트랙트는 최종적으로 업데이트된 누적 해시 값을 베이스 해시 값으로 결정할 수 있다. 이 때, API의 CloseSortition() 함수가 실행될 수 있다.Thereafter, when there is no more group hash value to be obtained, the lottery smart contract may determine the finally updated accumulated hash value as the base hash value. At this time, the API's CloseSortition() function can be executed.

다른 실시예에서는, 서비스 서버(100)가, 그룹 해시 값들이 소정 개수 또는 소정 기간 동안 생성된 후 트랜잭션을 발생시킴으로써 그룹 해시 값들을 블록체인 네트워크(200)에 전달할 수 있을 것이다. 이 경우는 직전에 설명한 실시예와 달리, 서비스 서버(100)가 추첨 참가 요청들을 순차적으로 획득하면서, 전술한 특정 개수가 채워질 때마다 그룹 해시 값을 생성하여 블록체인 네트워크(200)에 전달하는 경우가 아니라, 추첨 참가 요청들을 소정 개수 또는 소정 기간 동안 획득한 후, 해당 추첨 첨가 요청들에 대한 그룹 해시 값들을 모두 생성한 뒤, 그룹 해시 값들을 한 번에 블록체인 네트워크(200)에 전달하는 경우를 상정한 것이다. 일 예로는, 모든 추첨 참가 요청들이 획득된 후, 모든 그룹 해시 값들을 한 번에 블록체인 네트워크(200)에 전달하는 경우를 상정한 것일 수 있다.In another embodiment, the service server 100 may transmit the group hash values to the blockchain network 200 by generating a transaction after the group hash values are generated for a predetermined number or for a predetermined period. In this case, unlike the previously described embodiment, when the service server 100 sequentially acquires lottery participation requests, generates a group hash value each time the above-described specific number is filled and transmits it to the blockchain network 200 Rather, after obtaining lottery participation requests for a predetermined number or for a predetermined period, all group hash values for the lottery addition requests are generated, and then the group hash values are transmitted to the blockchain network 200 at once. Is assumed. As an example, it may be assumed that after all lottery participation requests are obtained, all group hash values are transmitted to the blockchain network 200 at once.

이와 같은 경우에는, 전술한 바와 같이 그룹 해시 값이 획득될 때마다 누적 해시 값을 업데이트하는 구성을 취할 필요가 없고, 획득된 모든 그룹 해시 값을 이용하여 한 번에 베이스 해시 값을 생성하는 구성을 취할 수 있다. 구체적으로는, 서비스 서버(200)가, 추첨 스마트 컨트랙트로 하여금, 그룹 해시 값들을 이용하여 트리 구조를 생성하거나, 제2 해시 연산과 유사한 해시 함수를 통해 베이스 해시 값을 생성하도록 할 수 있을 것이다. 트리 구조는, 머클 트리 등 해시 값을 생성할 수 있는 것이라면 어떤 것이라도 가능할 것이다.In this case, it is not necessary to take the configuration of updating the cumulative hash value each time the group hash value is obtained, as described above, and a configuration of generating the base hash value at once using all the obtained group hash values. You can take it. Specifically, the service server 200 may cause the lottery smart contract to generate a tree structure using group hash values, or to generate a base hash value through a hash function similar to the second hash operation. The tree structure could be anything that can generate a hash value, such as a Merkle tree.

이와 같은 방법에 따라 베이스 해시 값이 생성되면, 서비스 서버는 추첨 스마트 컨트랙트로 하여금, 베이스 해시 값을 서비스 서버(200)에 전달하도록 할 수 있다. 이 때, API 중 GetBaseHash() 함수가 사용될 수 있다.When the base hash value is generated according to this method, the service server may cause the lottery smart contract to transmit the base hash value to the service server 200. In this case, the GetBaseHash() function among APIs can be used.

이후, 서비스 서버(100)는, 자신에 포함된 결정 모듈(140)로 하여금, 베이스 해시 값을 참조로 하여 유저 단말들 중 당첨된 적어도 하나의 특정 유저 단말을 결정하도록 할 수 있다. 이는 유저 해시 값들과 베이스 해시 값과의 차이의 절대 값들을 크기 순으로 나열한 결과를 참조로 하여 수행될 수 있다. 구체적으로는, 서비스 서버(100)가, 결정 모듈(140)으로 하여금, 전술한 절대 값들을 크기가 커지는 순으로 나열한 결과를 참조로 하여, 상기 결과에서 가장 앞에 위치한 절대 값부터 특정 절대 값까지의 절대 값들에 대응하는 유저 해시 값들을 선택하되, 선택된 유저 해시 값들의 개수가 전체 유저 해시 값들의 개수에 대한 비율이 기설정된 비율을 따르도록 하여 선택함으로써 특정 유저 해시 값들을 선택하도록 하고, 특정 유저 해시 값들에 대응하는 유저 단말들을 선택함으로써 특정 유저 단말들을 결정하도록 할 수 있다. 쉽게 말하자면, 베이스 해시 값과의 차이가 작은 순으로 유저 해시 값들을 나열했을 때, 그 중 상위 N%에 해당하는 유저 단말들을 특정 유저 단말로 결정하겠다는 것이다.Thereafter, the service server 100 may cause the determination module 140 included therein to determine at least one specific user terminal that has won among the user terminals by referring to the base hash value. This can be performed by referring to a result of listing absolute values of differences between user hash values and base hash values in order of size. Specifically, the service server 100 causes the determination module 140 to refer to the result of listing the above-described absolute values in the order of increasing size, from the first absolute value to the specific absolute value. Select user hash values corresponding to absolute values, but select specific user hash values by selecting the number of selected user hash values to follow a preset ratio to the number of all user hash values. Specific user terminals can be determined by selecting user terminals corresponding to the values. To put it simply, when the user hash values are listed in the order of the smallest difference from the base hash value, the user terminals corresponding to the top N% of them will be determined as specific user terminals.

이와 같은 방식을 통해 당첨된 단말들인 특정 유저 단말들을 결정하면, 서버에서 공개된 유저 해시 값들과, 운영사에서 공개한 제1 해시 연산 및 제2 해시 연산을 이용하여 유저들이 스스로 베이스 해시 값을 계산해 봄으로써 계산된 베이스 해시 값을 검증할 수 있게 되므로, 추첨 과정의 투명성을 제고할 수 있다.When certain user terminals, which are the winning terminals, are determined through this method, the users calculate the base hash value by themselves using the user hash values published by the server and the first hash operation and the second hash operation published by the operator. As a result, since the calculated base hash value can be verified, transparency of the lottery process can be improved.

다른 실시예로서, 각각의 유저 단말들을 사용하는 유저들의 멤버십 정보에 따라 추첨 풀을 다르게 하는 방식이 있는 바, 이를 도 4를 참조로 하여 설명하도록 한다.As another embodiment, there is a method of differentiating the lottery pool according to the membership information of users using respective user terminals, and this will be described with reference to FIG. 4.

도 4는 본 발명의 일 실시예에 따른, 블록체인 네트워크를 이용하여 투명하게 추첨을 수행하는 방법의 일 예로서, 멤버십에 따라 다르게 추첨하는 방법을 나타낸 흐름도이다.4 is a flow chart illustrating a method of transparently performing a lottery using a blockchain network according to an embodiment of the present invention, and illustrating a method of differently lottery depending on membership.

도 4를 참조로 하면, 서비스 서버에서 서로 다른 개수의 유저 해시 값이 묶인 것을 확인할 수 있고, 블록체인 네트워크(200)에서 생성된 베이스 해시 값도 여러 개인 것을 확인할 수 있다.Referring to FIG. 4, it can be seen that different numbers of user hash values are grouped in the service server, and that there are several base hash values generated in the blockchain network 200.

구체적으로는, 전술한 실시예와 동일한 과정을 통해 유저 해시 값들이 생성되면, 서비스 서버(100)는, 유저 단말들을 사용하는 유저들의 멤버십 정보를 포함하는 추첨 참가 요청들을 멤버십 정보에 따라 분류한 후, 해시 모듈(140)로 하여금, 동일한 멤버십 정보를 가지도록 분류된 추첨 참가 요청들에 대해, 각각의 정보에 따라 가변적인 풀 사이즈에 대응하는 추첨 참가 요청들 별로 그룹 해시 값들을 생성하도록 할 수 있다. 즉, 같은 멤버십 정보를 가지는 추첨 참가 요청들로만 그룹 해시 값들을 생성하겠다는 것이다. 예를 들어, 제1 그룹 해시 값은 A등급 추첨 참가 요청에 대응하는 유저 해시 값들을 이용해 생성되고, 제2 그룹 해시 값은 B등급 추첨 참가 요청에 대응하는 유저 해시 값들을 이용해 생성되는 것이다.Specifically, when user hash values are generated through the same process as in the above-described embodiment, the service server 100 classifies lottery participation requests including membership information of users using user terminals according to membership information. , The hash module 140 may allow the hash module 140 to generate group hash values for each lottery participation request corresponding to a variable pool size according to each information, for lottery participation requests classified to have the same membership information. . In other words, group hash values will be generated only with lottery participation requests having the same membership information. For example, the first group hash value is generated using user hash values corresponding to the A grade lottery participation request, and the second group hash value is generated using user hash values corresponding to the B grade lottery participation request.

이후, 서비스 서버(100)는, 추첨 스마트 컨트랙트로 하여금, 그룹 해시 값들을 참조로 하여, 멤버십 정보 별로 각각의 베이스 해시 값들을 생성하도록 할 수 있다. 그리고, 서비스 서버(100)는, 결정 모듈(140)로 하여금, 각각의 베이스 해시 값들을 참조로 하여 각각의 멤버십 정보 별로 유저 단말들 중 당첨된 특정 유저 단말을 결정하도록 할 수 있다. 즉, 각각의 멤버십 정보 별로 풀을 달리 하여 베이스 해시 값을 생성함으로써, 당첨 확률이 달라지도록 하는 것이다. 일 예로는, 우대되는 등급의 멤버십을 가지는 유저 단말의 풀이 더 작아지도록 하여, 당첨 확률이 높도록 설정할 수 있다. 물론 멤버십 별로 당첨 확률을 다르게 하는 방법은 여러 가지가 있을 수 있으나, 본 방법을 사용하는 경우 멤버십의 추가가 용이한 장점이 있다.Thereafter, the service server 100 may cause the lottery smart contract to generate base hash values for each membership information by referring to group hash values. In addition, the service server 100 may cause the determination module 140 to determine a winning specific user terminal among the user terminals for each membership information by referring to respective base hash values. That is, by creating a base hash value by changing the pool for each membership information, the winning probability is changed. As an example, the pool of user terminals having a membership of a preferential grade may be set to be smaller so that the probability of winning is high. Of course, there may be several ways to change the winning probability for each membership, but if you use this method, it is easy to add membership.

이와 같이 가변적인 풀 사이즈가 중요한 것이므로, 도 4에서 확인할 수 있듯 API에 포함된 함수가 약간 달라지게 된다. 예를 들어, AddApplicants(pool, Hash) 함수는 이전의 실시예와 달리 Hash 값 외에 해당 그룹 해시 값에 대응하는 풀에 대한 정보도 인풋으로 받음으로써, 해당 정보도 함께 사용하여 블록체인 네트워크(200)에 트랜잭션을 발생시킬 수 있게 설정된다. 또한, 각 베이스 해시 별로, 각 멤버십 정보에 대응하는 개수인 counts 정보가 블록체인 네트워크(200) 상에 존재하게 되어, 이를 획득하기 위한 함수인 GetCount() 함수도 API에 포함되게 된다.As such a variable pool size is important, functions included in the API are slightly different as can be seen in FIG. 4. For example, unlike the previous embodiment, the AddApplicants(pool, Hash) function receives information about the pool corresponding to the group hash value in addition to the Hash value as input, and uses the corresponding information together with the blockchain network 200. It is set to be able to generate a transaction in In addition, for each base hash, counts information, which is the number corresponding to each membership information, exists on the blockchain network 200, and the GetCount() function, which is a function for obtaining this, is also included in the API.

이 때, 본 실시예에서 그룹 해시 값들을 생성하는 방식, 베이스 해시 값들을 생성하는 방식 및 특정 유저 단말을 결정하는 방식 등은 전술한 실시예에서 설명한 그것과 동일 또는 유사할 수 있을 것이다.In this case, a method of generating group hash values, a method of generating base hash values, and a method of determining a specific user terminal in the present embodiment may be the same as or similar to those described in the above-described embodiment.

이상의 실시예들에서, 그룹 해시 값들을 블록체인 네트워크에 전달할 때 트랜잭션이 여러 번 발생할 수 있는데, 이 때, 블록체인 네트워크에 대응하는 복수 개의 네트워크 주소를 번갈아 가며 사용하여 트랜잭션을 발생시킴으로써 시퀀스 컬리젼을 방지할 수 있을 것이다.In the above embodiments, when the group hash values are transmitted to the blockchain network, transactions may occur multiple times. In this case, sequence collation is performed by generating transactions by alternately using a plurality of network addresses corresponding to the blockchain network. You will be able to prevent it.

이상 본 발명의 추첨 방법에 대해 전반적으로 설명하였는데, 이하 본 발명의 변형 실시예에 대해 설명하고자 한다.The lottery method of the present invention has been generally described above, but a modified embodiment of the present invention will be described below.

전술한 실시예들에서, 베이스 해시 값이 생성된 후, 이를 서비스 서버(100)에 전달하여 결정 모듈(140)이 이를 이용해 특정 유저 단말을 결정하도록 하는 구성이 제시되었다. 이 때, 베이스 해시 값이 생성되면, 이를 서비스 서버(100)에 전달하는 것이 아니라, 타 장치(미도시)에 전달하는 구성을 상정할 수 있다.In the above-described embodiments, a configuration in which the base hash value is generated and then transmitted to the service server 100 so that the determination module 140 determines a specific user terminal using this has been proposed. In this case, when the base hash value is generated, it may be assumed that the base hash value is not transmitted to the service server 100 but is transmitted to another device (not shown).

구체적으로, 서비스 서버(100)가, 스마트 컨트랙트로 하여금 베이스 해시 값을 생성하도록 한 후, 이를 타 장치(미도시)에 전달하도록 할 수 있다. 이후, 서비스 서버(100)가, 타 장치(미도시)로 하여금, 베이스 해시 값을 참조로 하여 특정 유저 단말을 결정하도록 할 수 있다. 전술한 타 장치(미도시)는 서비스 서버(100)와 동일 또는 유사한 구조를 가지는 장치일 수 있으며, 타 장치(미도시)가 특정 유저 단말을 결정하는 방식은, 그 실시예에 따라, 전술한 방식들, 즉 베이스 해시 값과 유저 해시 값들과의 차이를 이용한 방식과 동일 또는 유사할 것이다. 전술한 방식들을 사용하기 위해, 타 장치(미도시)는 베이스 해시 값을 블록체인 네트워크(200)로부터 획득하는 과정과 별개로, 서비스 서버(100)로부터 유저 해시 값들을 획득할 것이다.Specifically, the service server 100 may cause the smart contract to generate a base hash value and then transmit it to another device (not shown). Thereafter, the service server 100 may cause another device (not shown) to determine a specific user terminal by referring to the base hash value. The above-described other device (not shown) may be a device having the same or similar structure as the service server 100, and the method in which the other device (not shown) determines a specific user terminal is, according to the embodiment, It will be the same or similar to the methods using the difference between the base hash value and the user hash values. In order to use the above-described methods, another device (not shown) will obtain user hash values from the service server 100, apart from the process of obtaining the base hash value from the blockchain network 200.

이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The embodiments according to the present invention described above may be implemented in the form of program instructions that can be executed through various computer components and recorded in a computer-readable recording medium. The computer-readable recording medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded in the computer-readable recording medium may be specially designed and configured for the present invention, or may be known and usable to those skilled in the computer software field. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical recording media such as CD-ROMs and DVDs, magnetic-optical media such as floptical disks. media), and a hardware device specially configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of the program instructions include not only machine language codes such as those produced by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware device may be configured to operate as one or more software modules to perform processing according to the present invention, and vice versa.

이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.In the above, the present invention has been described by specific matters such as specific elements and limited embodiments and drawings, but this is provided only to help a more general understanding of the present invention, and the present invention is not limited to the above embodiments. , Anyone with ordinary knowledge in the technical field to which the present invention pertains can make various modifications and variations from these descriptions.

따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.Therefore, the spirit of the present invention is limited to the above-described embodiments and should not be defined, and all modifications that are equally or equivalent to the claims as well as the claims to be described later fall within the scope of the spirit of the present invention. I would say.

Claims (18)

블록체인 네트워크를 이용하여 투명하게 추첨을 수행하는 방법에 있어서,
(a) 유저 단말들로부터 제1 추첨 참가 요청 내지 제N 추첨 참가 요청을 포함하는 복수의 추첨 참가 요청들이 획득되면, 서비스 서버가, 해시 모듈로 하여금, 상기 추첨 참가 요청들에 대응하는, 제1 유저 해시 값 내지 제N 유저 해시 값을 포함하는 복수의 유저 해시 값들을 생성하도록 하고, 상기 유저 해시 값들에 적어도 하나의 제1 해시 연산을 적용함으로써, 기설정된 개수의 상기 추첨 참가 요청들을 포함하는 하나 이상의 그룹들 별로 대응하며, 제1 그룹 해시 값 내지 제K 그룹 해시 값을 포함하는 하나 이상의 그룹 해시 값들을 생성하도록 한 후, 상기 그룹 해시 값들을 블록체인 네트워크에 전달하는 단계;
(b) 상기 서비스 서버가, 상기 블록체인 네트워크에 등록된 추첨 스마트 컨트랙트로 하여금, 전달된 상기 그룹 해시 값들을 참조로 하여 적어도 하나의 베이스 해시 값을 생성하도록 하고, 상기 베이스 해시 값을 상기 서비스 서버 또는 타 장치에 전달하도록 하는 단계; 및
(c) 상기 서비스 서버가, 자기 자신에 포함된 결정 모듈로 하여금, 상기 베이스 해시 값을 참조로 하여 상기 유저 단말들 중 당첨된 적어도 하나의 특정 유저 단말을 결정하도록 하거나, 상기 타 장치로 하여금, 상기 베이스 해시 값을 참조로 하여 상기 유저 단말들 중 상기 특정 유저 단말을 결정하도록 하는 단계;
를 포함하는 것을 특징으로 하는 방법.
In the method of transparently performing a lottery using a blockchain network,
(a) When a plurality of lottery participation requests including a first lottery participation request to an N-th lottery participation request are obtained from user terminals, the service server causes the hash module to generate a first lottery participation request, corresponding to the lottery participation requests. One including a predetermined number of the lottery participation requests by generating a plurality of user hash values including a user hash value to an N-th user hash value, and applying at least one first hash operation to the user hash values Generating one or more group hash values corresponding to each of the above groups and including a first group hash value to a K-th group hash value, and then transmitting the group hash values to a blockchain network;
(b) The service server causes the lottery smart contract registered in the blockchain network to generate at least one base hash value by referring to the transmitted group hash values, and the base hash value is the service server Or allowing it to be delivered to another device; And
(c) The service server causes the determination module included in itself to determine at least one specific user terminal that has won among the user terminals by referring to the base hash value, or causes the other device to: Determining the specific user terminal among the user terminals by referring to the base hash value;
The method comprising a.
제 1항에 있어서,
상기 (a) 단계는,
상기 서비스 서버가, 상기 해시 모듈로 하여금, 기설정된 풀 사이즈에 대응하는 특정 개수의 추첨 참가 요청들을 포함하는 그룹들 별로, 각각의 그룹에 포함된 유저 해시 값들에 상기 제1 해시 연산을 적용함으로써 상기 그룹들 별로 상기 그룹 해시 값들을 생성하도록 하는 것을 특징으로 하는 방법.
The method of claim 1,
The step (a),
The service server causes the hash module to apply the first hash operation to user hash values included in each group for each group including a specific number of lottery participation requests corresponding to a preset pool size. And generating the group hash values for each group.
제 1항에 있어서,
상기 (a) 단계는,
상기 서비스 서버가, 상기 그룹 해시 값이 생성될 때마다 트랜잭션을 발생시킴으로써 상기 그룹 해시 값들을 블록체인 네트워크에 전달하는 것을 특징으로 하고,
상기 (b) 단계는,
상기 서비스 서버가, 상기 추첨 스마트 컨트랙트로 하여금, 제M 그룹 해시 값 - M은 1 이상 K 이하인 정수임 - 이 획득되면, 제1 그룹 해시 값 내지 제M-1 그룹 해시 값들에 대응하는 누적 해시 값과, 새로이 획득된 상기 제M 그룹 해시 값에 적어도 하나의 제2 해시 연산을 적용함으로써 상기 누적 해시 값을 업데이트하도록 하고, 새로운 그룹 해시 값이 획득될 때마다 이와 같은 업데이트 과정을 반복하여 업데이트된 누적 해시 값을 상기 베이스 해시 값으로 결정하도록 함으로써 상기 베이스 해시 값을 생성하도록 하는 것을 특징으로 하는 방법.
The method of claim 1,
The step (a),
The service server is characterized in that the group hash value is transmitted to the blockchain network by generating a transaction each time the group hash value is generated,
The step (b),
When the service server causes the lottery smart contract to generate an Mth group hash value-M is an integer of 1 or more and K or less-is obtained, the accumulated hash value corresponding to the first group hash value to the M-1th group hash values and , The accumulated hash value is updated by applying at least one second hash operation to the newly acquired M-th group hash value, and the updated accumulated hash value is repeated by repeating the same update process each time a new group hash value is obtained. And generating the base hash value by determining a value as the base hash value.
제 1항에 있어서,
상기 (a) 단계는,
상기 서비스 서버가, 상기 그룹 해시 값들이 소정 개수 또는 소정 기간 동안 생성된 후 트랜잭션을 발생시킴으로써 상기 그룹 해시 값들을 블록체인 네트워크에 전달하는 것을 특징으로 하고,
상기 (b) 단계는,
상기 서비스 서버가, 상기 추첨 스마트 컨트랙트로 하여금, 상기 그룹 해시 값들을 이용하여 트리 구조를 생성함으로써 상기 베이스 해시 값을 생성하도록 하는 것을 특징으로 하는 방법.
The method of claim 1,
The step (a),
The service server is characterized in that the group hash values are generated for a predetermined number or for a predetermined period, and then transmit the group hash values to the blockchain network by generating a transaction,
The step (b),
Wherein the service server causes the lottery smart contract to generate the base hash value by generating a tree structure using the group hash values.
제 1항에 있어서,
상기 (a) 단계는,
상기 추첨 참가 요청들은 상기 유저 단말들을 사용하는 유저들의 멤버십 정보를 포함하고, 상기 서비스 서버는, 상기 추첨 참가 요청들을 상기 멤버십 정보에 따라 분류한 후, 상기 해시 모듈로 하여금, 서로 동일한 멤버십 정보를 가지도록 분류된 상기 추첨 참가 요청들에 대해, 각각의 멤버십 정보에 따라 가변적인 풀 사이즈에 대응하는 개수의 추첨 참가 요청들 별로 상기 그룹 해시 값들을 생성하도록 하는 것을 특징으로 하는 방법.
The method of claim 1,
The step (a),
The lottery participation requests include membership information of users using the user terminals, and the service server classifies the lottery participation requests according to the membership information, and then causes the hash module to have the same membership information. And generating the group hash values for each of the number of lottery participation requests corresponding to a variable pool size according to each membership information.
제 5항에 있어서,
상기 (b) 단계는,
상기 서비스 서버가, 상기 추첨 스마트 컨트랙트로 하여금, 상기 그룹 해시 값들을 참조로 하여, 각각의 상기 멤버십 정보 별로 각각의 상기 베이스 해시 값들을 생성하도록 하고,
상기 (c) 단계는,
상기 서비스 서버가, 상기 결정 모듈로 하여금, 각각의 상기 베이스 해시 값들을 참조로 하여, 각각의 상기 멤버십 정보 별로 상기 유저 단말들 중 당첨된 특정 유저 단말을 결정하도록 하거나, 상기 타 장치로 하여금, 각각의 상기 베이스 해시 값들을 참조로 하여 각각의 상기 멤버십 정보 별로 상기 특정 유저 단말을 결정하도록 하는 것을 특징으로 하는 방법.
The method of claim 5,
The step (b),
The service server causes the lottery smart contract to generate each of the base hash values for each of the membership information, with reference to the group hash values,
The step (c),
The service server causes the determination module to determine a winning specific user terminal among the user terminals for each of the membership information, with reference to each of the base hash values, or to the other device, respectively And determining the specific user terminal for each of the membership information by referring to the base hash values of.
제 1항에 있어서,
상기 (a) 단계는,
상기 서비스 서버가 상기 그룹 해시 값들을 블록체인 네트워크에 전달할 때, 상기 블록체인 네트워크에 대응하는 복수 개의 네트워크 주소를 번갈아 가며 사용함으로써 시퀀스 컬리젼을 방지하는 것을 특징으로 하는 방법.
The method of claim 1,
The step (a),
When the service server transmits the group hash values to the blockchain network, the sequence collation is prevented by alternately using a plurality of network addresses corresponding to the blockchain network.
제 1항에 있어서,
상기 (c) 단계는,
상기 서비스 서버가, 상기 결정 모듈 또는 상기 타 장치로 하여금, 상기 유저 해시 값들과 상기 베이스 해시 값과의 차이의 절대 값들을 크기 순으로 나열한 결과를 참조로 하여 상기 특정 유저 단말들을 결정하도록 하는 것을 특징으로 하는 방법.
The method of claim 1,
The step (c),
Wherein the service server causes the determination module or the other device to determine the specific user terminals with reference to a result of listing absolute values of differences between the user hash values and the base hash value in order of size How to do it.
제 8항에 있어서,
상기 (c) 단계는,
상기 서비스 서버가, 상기 결정 모듈 또는 상기 타 장치로 하여금, 상기 절대 값들을 크기가 커지는 순으로 나열한 결과를 참조로 하여, 상기 결과에서 가장 앞에 위치한 절대 값부터 특정 절대 값까지의 절대 값들에 대응하는 유저 해시 값들을 선택하되, 상기 선택된 유저 해시 값들의 개수의 전체 유저 해시 값들의 개수에 대한 비율이 기설정된 비율을 따르도록 하여 선택함으로써 특정 유저 해시 값들을 선택하도록 하고, 상기 특정 유저 해시 값들에 대응하는 유저 단말들을 선택함으로써 상기 특정 유저 단말들을 결정하도록 하는 것을 특징으로 하는 방법.
The method of claim 8,
The step (c),
The service server causes the determination module or the other device to correspond to the absolute values from the first absolute value to a specific absolute value with reference to the result of listing the absolute values in the order of increasing size. Select user hash values, but select specific user hash values by selecting the ratio of the number of the selected user hash values to the number of total user hash values according to a preset ratio, and corresponding to the specific user hash values And determining the specific user terminals by selecting the user terminals.
블록체인 네트워크를 이용하여 투명하게 추첨을 수행하는 서비스 서버에 있어서,
인스트럭션들을 저장하는 하나 이상의 메모리; 및
상기 인스트럭션들을 수행하도록 설정된 하나 이상의 프로세스를 포함하되,
상기 프로세서는, (I) 유저 단말들로부터 제1 추첨 참가 요청 내지 제N 추첨 참가 요청을 포함하는 복수의 추첨 참가 요청들이 획득되면, 해시 모듈로 하여금, 상기 추첨 참가 요청들에 대응하는, 제1 유저 해시 값 내지 제N 유저 해시 값을 포함하는 복수의 유저 해시 값들을 생성하도록 하고, 상기 유저 해시 값들에 적어도 하나의 제1 해시 연산을 적용함으로써, 기설정된 개수의 상기 추첨 참가 요청들을 포함하는 하나 이상의 그룹들 별로 대응하며, 제1 그룹 해시 값 내지 제K 그룹 해시 값을 포함하는 하나 이상의 그룹 해시 값들을 생성하도록 한 후, 상기 그룹 해시 값들을 블록체인 네트워크에 전달하는 프로세스; (II) 상기 블록체인 네트워크에 등록된 추첨 스마트 컨트랙트로 하여금, 전달된 상기 그룹 해시 값들을 참조로 하여 적어도 하나의 베이스 해시 값을 생성하도록 하고, 상기 베이스 해시 값을 상기 서비스 서버 또는 타 장치에 전달하도록 하는 프로세스; 및 (III) 상기 서비스 서버에 포함된 결정 모듈로 하여금, 상기 베이스 해시 값을 참조로 하여 상기 유저 단말들 중 당첨된 적어도 하나의 특정 유저 단말을 결정하도록 하거나, 상기 타 장치로 하여금, 상기 베이스 해시 값을 참조로 하여 상기 유저 단말들 중 상기 특정 유저 단말을 결정하도록 하는 프로세스;
를 수행하는 것을 특징으로 하는 서비스 서버.
In a service server that transparently performs lottery using a blockchain network,
One or more memories for storing instructions; And
Including one or more processes configured to perform the instructions,
The processor, when (I) a plurality of lottery participation requests including a first lottery participation request to an N-th lottery participation request are obtained from user terminals, the hash module causes a first lottery participation request, corresponding to the lottery participation requests. One including a predetermined number of the lottery participation requests by generating a plurality of user hash values including a user hash value to an N-th user hash value, and applying at least one first hash operation to the user hash values Generating one or more group hash values corresponding to each of the groups and including a first group hash value to a K-th group hash value, and then transmitting the group hash values to a blockchain network; (II) Have the lottery smart contract registered in the blockchain network generate at least one base hash value by referring to the transmitted group hash values, and transmit the base hash value to the service server or other device The process of making it happen; And (III) causing a determination module included in the service server to determine at least one specific user terminal that has been won among the user terminals by referring to the base hash value, or to cause the other device to determine the base hash value. A process of determining the specific user terminal among the user terminals with reference to a value;
Service server, characterized in that to perform.
제 10항에 있어서,
상기 (I) 프로세스는,
상기 프로세서가, 상기 해시 모듈로 하여금, 기설정된 풀 사이즈에 대응하는 특정 개수의 추첨 참가 요청들을 포함하는 그룹들 별로, 각각의 그룹에 포함된 유저 해시 값들에 상기 제1 해시 연산을 적용함으로써 상기 그룹들 별로 상기 그룹 해시 값들을 생성하도록 하는 것을 특징으로 하는 서비스 서버.
The method of claim 10,
The (I) process,
The processor causes the hash module to apply the first hash operation to user hash values included in each group, for each group including a specific number of lottery participation requests corresponding to a preset pool size. And generating the group hash values for each of the groups.
제 10항에 있어서,
상기 (I) 프로세스는,
상기 프로세서가, 상기 그룹 해시 값이 생성될 때마다 트랜잭션을 발생시킴으로써 상기 그룹 해시 값들을 블록체인 네트워크에 전달하는 것을 특징으로 하고,
상기 (II) 프로세스는,
상기 프로세서가, 상기 추첨 스마트 컨트랙트로 하여금, 제M 그룹 해시 값 - M은 1 이상 K 이하인 정수임 - 이 획득되면, 제1 그룹 해시 값 내지 제M-1 그룹 해시 값들에 대응하는 누적 해시 값과, 새로이 획득된 상기 제M 그룹 해시 값에 적어도 하나의 제2 해시 연산을 적용함으로써 상기 누적 해시 값을 업데이트하도록 하고, 새로운 그룹 해시 값이 획득될 때마다 이와 같은 업데이트 과정을 반복하여 업데이트된 누적 해시 값을 상기 베이스 해시 값으로 결정하도록 함으로써 상기 베이스 해시 값을 생성하도록 하는 것을 특징으로 하는 서비스 서버.
The method of claim 10,
The (I) process,
The processor, by generating a transaction every time the group hash value is generated, characterized in that the group hash value is transmitted to the blockchain network,
The (II) process,
When the processor causes the lottery smart contract to obtain an Mth group hash value-M is an integer of 1 or more and K or less-is obtained, an accumulated hash value corresponding to the first group hash value to the M-1th group hash values, The accumulated hash value is updated by applying at least one second hash operation to the newly acquired M-th group hash value, and the updated hash value is updated by repeating such an update process each time a new group hash value is obtained. And generating the base hash value by determining as the base hash value.
제 10항에 있어서,
상기 (I) 프로세스는,
상기 프로세서가, 상기 그룹 해시 값들이 소정 개수 또는 소정 기간 동안 생성된 후 트랜잭션을 발생시킴으로써 상기 그룹 해시 값들을 블록체인 네트워크에 전달하는 것을 특징으로 하고,
상기 (II) 프로세스는,
상기 프로세서가, 상기 추첨 스마트 컨트랙트로 하여금, 상기 그룹 해시 값들을 이용하여 트리 구조를 생성함으로써 상기 베이스 해시 값을 생성하도록 하는 것을 특징으로 하는 서비스 서버.
The method of claim 10,
The (I) process,
The processor, by generating a transaction after the group hash values are generated for a predetermined number or for a predetermined period, to transmit the group hash values to the blockchain network,
The (II) process,
The service server, wherein the processor causes the lottery smart contract to generate the base hash value by generating a tree structure using the group hash values.
제 10항에 있어서,
상기 (I) 프로세스는,
상기 추첨 참가 요청들은 상기 유저 단말들을 사용하는 유저들의 멤버십 정보를 포함하고, 상기 프로세서는, 상기 추첨 참가 요청들을 상기 멤버십 정보에 따라 분류한 후, 상기 해시 모듈로 하여금, 서로 동일한 멤버십 정보를 가지도록 분류된 상기 추첨 참가 요청들에 대해, 각각의 멤버십 정보에 따라 가변적인 풀 사이즈에 대응하는 개수의 추첨 참가 요청들 별로 상기 그룹 해시 값들을 생성하도록 하는 것을 특징으로 하는 서비스 서버.
The method of claim 10,
The (I) process,
The lottery participation requests include membership information of users using the user terminals, and the processor classifies the lottery participation requests according to the membership information, and then causes the hash module to have the same membership information. For the classified lottery participation requests, the group hash values are generated according to the number of lottery participation requests corresponding to a variable pool size according to each membership information.
제 14항에 있어서,
상기 (II) 프로세스는,
상기 프로세서가, 상기 추첨 스마트 컨트랙트로 하여금, 상기 그룹 해시 값들을 참조로 하여, 각각의 상기 멤버십 정보 별로 각각의 상기 베이스 해시 값들을 생성하도록 하고,
상기 (III) 프로세스는,
상기 프로세서가, 상기 결정 모듈로 하여금, 각각의 상기 베이스 해시 값들을 참조로 하여, 각각의 상기 멤버십 정보 별로 상기 유저 단말들 중 당첨된 특정 유저 단말을 결정하도록 하거나, 상기 타 장치로 하여금, 각각의 상기 베이스 해시 값들을 참조로 하여 각각의 상기 멤버십 정보 별로 상기 특정 유저 단말을 결정하도록 하는 것을 특징으로 하는 서비스 서버.
The method of claim 14,
The (II) process,
The processor causes the lottery smart contract to generate each of the base hash values for each of the membership information, with reference to the group hash values,
The (III) process,
The processor causes the determination module to determine a winning specific user terminal among the user terminals for each of the membership information, with reference to each of the base hash values, or to cause the other device to And determining the specific user terminal for each of the membership information by referring to the base hash values.
제 10항에 있어서,
상기 (I) 프로세스는,
상기 프로세서가 상기 그룹 해시 값들을 블록체인 네트워크에 전달할 때, 상기 블록체인 네트워크에 대응하는 복수 개의 네트워크 주소를 번갈아 가며 사용함으로써 시퀀스 컬리젼을 방지하는 것을 특징으로 하는 서비스 서버.
The method of claim 10,
The (I) process,
When the processor transmits the group hash values to the blockchain network, a plurality of network addresses corresponding to the blockchain network are alternately used to prevent sequence collation.
제 10항에 있어서,
상기 (III) 프로세스는,
상기 프로세서가, 상기 결정 모듈 또는 상기 타 장치로 하여금, 상기 유저 해시 값들과 상기 베이스 해시 값과의 차이의 절대 값들을 크기 순으로 나열한 결과를 참조로 하여 상기 특정 유저 단말들을 결정하도록 하는 것을 특징으로 하는 서비스 서버.
The method of claim 10,
The (III) process,
Wherein the processor causes the determination module or the other device to determine the specific user terminals with reference to a result of listing absolute values of differences between the user hash values and the base hash value in order of size Service server.
제 17항에 있어서,
상기 (III) 프로세스는,
상기 프로세서가, 상기 결정 모듈 또는 상기 타 장치로 하여금, 상기 절대 값들을 크기가 커지는 순으로 나열한 결과를 참조로 하여, 상기 결과에서 가장 앞에 위치한 절대 값부터 특정 절대 값까지의 절대 값들에 대응하는 유저 해시 값들을 선택하되, 상기 선택된 유저 해시 값들의 개수의 전체 유저 해시 값들의 개수에 대한 비율이 기설정된 비율을 따르도록 하여 선택함으로써 특정 유저 해시 값들을 선택하도록 하고, 상기 특정 유저 해시 값들에 대응하는 유저 단말들을 선택함으로써 상기 특정 유저 단말들을 결정하도록 하는 것을 특징으로 하는 서비스 서버.
The method of claim 17,
The (III) process,
The processor causes the determination module or the other device to refer to a result of listing the absolute values in the order of increasing size, and the user corresponding to the absolute values from the first absolute value to a specific absolute value in the result Select hash values, but select specific user hash values by selecting a ratio of the number of the selected user hash values to the number of total user hash values according to a preset ratio, and corresponding to the specific user hash values. A service server for determining the specific user terminals by selecting user terminals.
KR1020190033211A 2019-03-22 2019-03-22 Method and device for a transparent lottery system by using a blockchain network KR102251485B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190033211A KR102251485B1 (en) 2019-03-22 2019-03-22 Method and device for a transparent lottery system by using a blockchain network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190033211A KR102251485B1 (en) 2019-03-22 2019-03-22 Method and device for a transparent lottery system by using a blockchain network

Publications (2)

Publication Number Publication Date
KR20200112557A true KR20200112557A (en) 2020-10-05
KR102251485B1 KR102251485B1 (en) 2021-05-13

Family

ID=72809284

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190033211A KR102251485B1 (en) 2019-03-22 2019-03-22 Method and device for a transparent lottery system by using a blockchain network

Country Status (1)

Country Link
KR (1) KR102251485B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114726534A (en) * 2022-03-28 2022-07-08 海南格子山网络科技有限公司 Method for realizing intelligent contract drawing based on Solana block chain technology

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080098141A (en) * 2007-05-04 2008-11-07 안승철 Method for providing a gift connected with lottery ticket and system thereof
JP2017157910A (en) * 2016-02-29 2017-09-07 日本電気株式会社 Electronic lottery system and electronic lottery method
KR101928087B1 (en) * 2018-01-03 2019-02-26 한국조폐공사 Method for managing on-line lottery based on blockchain and server using the same

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080098141A (en) * 2007-05-04 2008-11-07 안승철 Method for providing a gift connected with lottery ticket and system thereof
JP2017157910A (en) * 2016-02-29 2017-09-07 日本電気株式会社 Electronic lottery system and electronic lottery method
KR101928087B1 (en) * 2018-01-03 2019-02-26 한국조폐공사 Method for managing on-line lottery based on blockchain and server using the same

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114726534A (en) * 2022-03-28 2022-07-08 海南格子山网络科技有限公司 Method for realizing intelligent contract drawing based on Solana block chain technology

Also Published As

Publication number Publication date
KR102251485B1 (en) 2021-05-13

Similar Documents

Publication Publication Date Title
US11770238B2 (en) Decentralized computation system architecture based on node specialization
CN110959281B (en) Method and system for securing blockchains using transaction attestation
US10999317B2 (en) Blockchain tracking of virtual universe traversal results
JP7184959B2 (en) Method and apparatus for distributed database in network
Kaur et al. Scalability in blockchain: Challenges and solutions
CN109146490B (en) Block generation method, device and system
US9529923B1 (en) Methods and apparatus for a distributed database within a network
CN103227719B (en) Generate the system and method without key digital multi-signature
CN109951547B (en) Transaction request parallel processing method, device, equipment and medium
CN108492108A (en) Across the chain communication means of block chain, system and computer readable storage medium
US20210248604A1 (en) Electronic-certificate-based interaction methods and apparatuses, and electronic devices
KR102537774B1 (en) Systems and methods that provide specialized proof of confidential knowledge
JP2004537062A (en) Efficient calculation method and apparatus for one-way chains in cryptographic applications
CN102882888A (en) Network application access method and system
CN114239060A (en) Data acquisition method and device, electronic equipment and storage medium
KR102251485B1 (en) Method and device for a transparent lottery system by using a blockchain network
CN103473471A (en) Bullet game data processing method and device
CN111339193A (en) Category coding method and device
CN112181599B (en) Model training method, device and storage medium
CN112861091B (en) Login method, login device, electronic equipment and storage medium
CN110891660A (en) System and method for synchronizing data between computer devices
CN111290733B (en) Settlement method, apparatus and storage medium
JP7482893B2 (en) Method and apparatus for conducting fair lottery drawing while reducing transaction costs using blockchain network
CN108882005B (en) Barrage verification method, computer equipment and storage medium
CN109993659A (en) A kind of internet trading system, method and apparatus

Legal Events

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