[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR20190078668A - Apparatus and Methods for Verifiable Lottery - Google Patents

Apparatus and Methods for Verifiable Lottery Download PDF

Info

Publication number
KR20190078668A
KR20190078668A KR1020170170038A KR20170170038A KR20190078668A KR 20190078668 A KR20190078668 A KR 20190078668A KR 1020170170038 A KR1020170170038 A KR 1020170170038A KR 20170170038 A KR20170170038 A KR 20170170038A KR 20190078668 A KR20190078668 A KR 20190078668A
Authority
KR
South Korea
Prior art keywords
lottery
block
chain
block chain
random
Prior art date
Application number
KR1020170170038A
Other languages
Korean (ko)
Other versions
KR102525157B1 (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 KR1020170170038A priority Critical patent/KR102525157B1/en
Publication of KR20190078668A publication Critical patent/KR20190078668A/en
Application granted granted Critical
Publication of KR102525157B1 publication Critical patent/KR102525157B1/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
    • 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
    • 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

Landscapes

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

Abstract

Disclosed are an apparatus for a verifiable lottery, which solves a trust problem between participants and organizers by introducing a block chain in a lottery system, and a method thereof. Provided are the apparatus for a verifiable lottery implementing query, subscribe, check, verify, open transactions in a smart contract form by using Hyper-ledger Fabric v1.0-alpha, which is a private block chain platform, and the method thereof.

Description

검증가능한 추첨을 위한 장치 및 방법{Apparatus and Methods for Verifiable Lottery}[0001] Apparatus and Methods for Verifiable Lottery [

본 발명은 추첨 시스템에서 참가자와 주최자간의 신뢰 문제를 블록체인(Blockchain)을 도입하여 해결한 것으로, 추첨을 위한 컴퓨터 소프트웨어 장치 및 방법에 관한 것이다.The present invention relates to a computer software apparatus and method for raffling a lottery system in which a trust problem between a participant and an organizer is solved by introducing a block chain.

기존의 추첨 프로그램은 중앙 집중식(Centralized) 을 따라 구현되어 단일한 컴퓨터에서 실행된다. 추첨 실행시 사용되는 랜덤 값이 가지는 불규칙성에 따라서 추첨 시스템의 공평성이 결정되며, 모든 정보들이 중앙 집중되고 관리자 권한을 가지는 경우 모든 정보를 임의로 수정 가능하므로 이는 추첨 시스템의 신뢰성 문제를 제기한다. 랜덤 값의 불규칙성을 보장받는 기술은 대부분 미국 NIST 에서 제공하는 공공 랜덤 서비스 비콘을 사용하여 대응할 수 있으나, 중앙 집중 서버 관리자에 전적으로 의존해야 하는 문제는 여전히 해결하지 못하고 있다. 이러한 관리자 권한 문제를 해결하기 위해, 누구나 추첨 결과에 대해서 검증할 수 있게 하는 기법을 고안하는 것이 필요하다. 즉, 랜덤 값의 불규칙성은 그대로 유지하면서도, 향후 누구나 예상하고 동의하는 시점에 생성되는 랜덤 값을 사용하는 추첨시스템을 구성함으로써, 추첨 시스템의 공평성을 지원하면서도 추첨 결과에 대한 검증이 가능하게 구성한다.Existing lottery programs are implemented along a centralized basis and run on a single computer. The fairness of the lottery system is determined according to the irregularity of the random value used in the lottery, and when all the information is centralized and the administrator has authority, all the information can be arbitrarily modified, raising the reliability problem of the lottery system. The technology that guarantees the irregularity of the random value can be coped with using the public random service beacon provided by the NIST in the United States, but the problem that it has to depend on the centralized server manager still can not be solved. In order to solve these administrator rights problems, it is necessary to devise a technique that enables anyone to verify the lottery result. In other words, by constructing a lottery system that uses random values generated at a time that everyone expects and agrees while maintaining irregularity of the random value, the lottery result can be verified while supporting the fairness of the lottery system.

비트코인 블록체인은 기본적으로 전세계 분포되어 있는 블록 마이너 노드들이 경쟁적으로 암호학적 해쉬 퍼즐을 풀고 이를 통해 블록들 간의 체인을 구성하고 있다. 이러한 블록체인 구성을 위해 진행되는 암호학적 해쉬 퍼즐을 푸는 과정에는 기본적으로 많은 불규칙성에 기반한 과정이 내포되어 있으며, 매번 블록 마이너들이 블록을 생성할 때 마다 새로운 랜덤 값을 생성하는 것과 유사하다. 이러한 특징을 활용하면서, 추첨 시스템 동작 자체를 스마트 컨트랙트라고 불리는 블록체인상 실행되는 프로그램으로 구성함으로써 블록체인 기반 검증 가능한 추첨시스템을 구성할 수 있다.The bit coin block chain is basically a block miner node distributed around the world competing cryptographically hash puzzles, thereby forming a chain between blocks. The process of solving a cryptographic hash puzzle for this block chain construction basically involves many irregularity-based processes, and it is similar to generating a new random value each time block minors generate a block. By utilizing these features, a lottery system that can be verified based on block chain can be constructed by constructing a lottery system operation itself as a program executed on a block chain called a smart contract.

블록체인의 형태는 공개 블록체인, 허가형 블록체인, 그리고 컨소시움 블록체인 등으로 구별되며, 본 발명에서는 특정 형태의 블록체인을 가정하지 않지만, 설명의 편의성을 위해 허가형 블록체인 상황을 가정하고 서술한다.The block chain type is classified into a public block chain, a permissive block chain, and a conscious block chain. In the present invention, a block chain of a specific type is not assumed, but for convenience of explanation, do.

리눅스 재단(Linux foundation) 산하의 오픈 소스(open source) 블록체인 플랫폼인 하이퍼레저 패브릭(Hyperledger Fabric)은 허가형 블록체인(permissioned Blockchain)을 사용하여 기업들간의 투명한 거래를 가능하게 한다.Hyperledger Fabric, an open source block-chain platform under the Linux foundation, enables transparent transactions between companies using a licensed block chain.

기존의 중앙 집중식으로 구현된 추첨 시스템은 신뢰성 문제를 포함하고 있으며, 이러한 추첨 시스템은 다음 3가지 주요한 문제를 가지고 있다.Conventional centralized lottery systems involve reliability problems, and these lottery systems have three major problems.

* 예측가능성(Predictability)* Predictability

* 조작성(Modifiability)* Modifiability

* 정보의 비공개성(Information hiding)* Information hiding

예측 가능성은 당첨자를 사전에 미리 예측할 수 있을 경우를 의미하고, 조작성은 추첨과 관련된 정보를 임의로 수정할 수 있음을 나타내며, 정보의 비공개성은 추첨과 관련된 정보를 참가자에 공개하지 않음을 뜻한다.Predictability means that the winner can be predicted in advance, and operability means that the information related to the lottery can be modified arbitrarily, and the confidentiality of the information means that the information related to the lottery is not disclosed to the participant.

이를 해결하기 위해 본 발명에서는 신뢰성 있는 추첨 시스템 장치 및 방법을 고안하였으며, 이 발명은 추첨시스템이 공평성(fairness), 불변성(immutability), 투명성(transparency), 검증가능성(verifiability) 속성을 가지도록 지원함으로써 기존 추첨시스템이 가지고 있는 3가지 주요 문제들을 해결한다. In order to solve this problem, the present invention has devised a reliable lottery system apparatus and method, and the present invention has been made to solve the above problems by providing a lottery system having fairness, immutability, transparency, and verifiability attributes Solves three major problems of existing lottery systems.

공평성은 사전에 당첨자를 예측할 수 없음을 의미하고, 불변성은 한 번 기록된 추첨 정보는 이후의 임의적 수정이 불가능함을 나타내며, 투명성은 추첨과 관련된 정보가 참가자들에 공개되어야 함을 뜻한다. 그리고 검증가능성은 추첨 시스템이 위와 같은 속성을 만족시키는지 검증이 가능해야 함을 뜻한다.Impartiality means that the winner can not be predicted in advance. Invariance means that the random information can not be modified later, and transparency means that information related to the lottery should be disclosed to the participants. And verifiability means that the lottery system should be able to verify that it meets the above attributes.

본 발명은 이를 반영하여, 기존의 중앙 집중식으로 구현된 추첨 프로그램을 블록체인 플랫폼을 사용하여 구현함으로써, 공정성, 불변성, 투명성, 검증가능성 속성을 갖는 신뢰할 수 있는 추첨 프로그램을 개발하는 것이다. 보다 자세하게는, 추첨 서비스를 제공하는 블록체인 기반의 신뢰할 수 있는 추첨 프로그램을 개발하는 것과 관련된다. Reflecting this, the present invention is to develop a reliable lottery program having fairness, invariance, transparency and verifiability properties by implementing a conventional centrally implemented lottery program using a block chain platform. More specifically, it involves developing a reliable lottery program based on a block chain that provides a lottery service.

본 발명은 블록체인 플랫폼을 사용하여, 공평성, 불변성, 투명성, 검증가능성 속성을 갖는 신뢰성 있는 추첨 장치 및 방안을 제안한다.The present invention proposes a reliable lottery device and method with fairness, invariance, transparency, and verifiability attributes using a block chain platform.

본 발명에서 공평성의 실현을 위해 사용한 랜덤 값은 2가지로 구분 된다. 미래에 생성될 비트 코인 블록 체인의 블록 해시와 암호학적으로 안전한 유사 난수 생성기(cryptographically secure pseudo random number generator)에 의해 생성된 랜덤 값이다. 이 둘을 조합한 값을 바탕으로 당첨자가 결정된다.In the present invention, the random value used for realizing the fairness is divided into two types. It is a random value generated by a block hash of the bit coin block chain to be generated in the future and a cryptographically secure pseudo random number generator. The winner is determined based on the combination of the two.

투명성과 불변성은 블록체인으로 구현된 분산 복제 장부(distributed replicated ledger)에 의해 실현된다. 추첨과 관련된 트랜잭션들은 분산되어 있는 피어 노드들에 기록됨으로써 투명성이 확보되고, 블록 체인 형식으로 저장되기 때문에 불변성이 확보된다.Transparency and invariance are realized by a distributed replicated ledger implemented as a block chain. Transactions related to the lottery are recorded in distributed peer nodes, ensuring transparency, and stored in block chain format, thus ensuring consistency.

본 발명에서 제안한 추첨 시스템의 결과 검증은 분산된 환경에서 동작하는 피어 노드들이 실행하는 스마트 컨트랙트와 관련된다. 각 피어 노드들에서 독립적으로 실행되는 스마트 컨트랙트는 당첨자가 결정될 당시의 생성된 검증 키를 다시 만들고 이를 비교함으로써 추첨 결과를 검증한다.The result verification of the lottery system proposed in the present invention relates to a smart contract executed by peer nodes operating in a distributed environment. A smart contract running independently at each peer node verifies the lottery result by recreating the generated verification key at the time the winner was determined and comparing them.

스마트 컨트랙트(Smart contract)는 분산 복제 장부(Distributed replicated ledger)와의 입/출력을 수행하는 프로그램이다. 본 발명에서 사용한 하이퍼레저 패브릭에서는 이를 체인코드(Chain code)라 부르기도 한다.Smart contract is a program that performs input / output with a distributed replicated ledger. In the hyper leisure fabric used in the present invention, this is also referred to as a chain code.

참가자를 CA에 의해 할당 받은 공개 키의 해시로 구분하여 참가자들의 익명성을 보장하는 기법을 제공한다.It provides a mechanism to ensure participants' anonymity by separating participants into hashes of public keys assigned by the CA.

본 발명은 블록체인을 도입하여 기존의 중앙 집중식이 아닌 탈 집중화(Decentralized) 된 방식의 추첨 시스템을 제안하여 신롸성 문제를 해결한다.The present invention solves the problem of newness by introducing a block chain to propose a decentralized lottery system that is not a conventional centralized system.

리눅스 재단(Linux foundation) 산하의 오픈 소스 블록체인 플랫폼인 하이퍼레저 패브릭(Hyperledger Fabric)을 사용하여 추첨과 관련된 서비스를 제공하는 웹 기반의 프로그램을 제공한다.It provides a web-based program that provides services related to the lottery using Hyperledger Fabric, an open source block-chain platform under the Linux foundation.

본 발명은 신뢰할 수 있는 추첨 시스템을 제시하고 이를 블록체인을 도입함으로써 부정직한 추첨 행사로 인한 사회적 비용을 줄일 수 있다.The present invention proposes a reliable lottery system and by adopting a block chain it can reduce the social cost of dishonest lottery events.

기존의 중앙 집중식을 따르는 추첨 시스템을 신뢰할 수 있도록 만드는 기법들이 제시가 되었지만 여전히 단일 장애점 문제(single point of failure) 등의 문제가 있고 이들은 구현을 복잡하고 어렵게 만든다. 하지만 블록체인 플랫폼을 사용하면 신뢰성 문제가 쉽게 해결되고 효율적인 구현이 가능하다.Techniques have been proposed to make existing centralized lottery systems reliable, but they still have problems such as a single point of failure, which makes their implementation complex and difficult. However, using a block-chain platform, the reliability problem is easily solved and efficient implementation is possible.

도1 은 본 발명에서 제안된 전체 시스템 구조도이다.
도 2는 시간 순에 따른 추첨 행사의 상태 변화와 가용한 체인 코드(스마트 컨트랙트) 개념도이다.
도 3은 검증을 위해 사용되는 검증 키 도출 과정의 블록 구성도이다.
1 is a schematic diagram of the entire system proposed in the present invention.
FIG. 2 is a conceptual diagram of a state change of a lottery event and an available chain code (smart contract) according to a time sequence.
3 is a block diagram of a verification key derivation process used for verification.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals are used for like elements in describing each drawing.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는 데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. "및/또는"이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. The terms first, second, A, B, etc. may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. The term "and / or" includes any combination of a plurality of related listed items or any of a plurality of related listed items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In the present application, the terms "comprises" or "having" and the like are used to specify that there is a feature, a number, a step, an operation, an element, a component or a combination thereof described in the specification, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the contextual meaning of the related art and are to be interpreted as either ideal or overly formal in the sense of the present application Do not.

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다. 이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In order to facilitate the understanding of the present invention, the same reference numerals are used for the same constituent elements in the drawings and redundant explanations for the same constituent elements are omitted. Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명에서 제안된 전체 시스템 구조도이다.1 is a schematic diagram of the entire system proposed in the present invention.

도 1에서, 블록 체인 네트워크는 도커 기반의 컨테이너 형태로 구현이 되어 있고 두 개의 조직과 각 조직 당 두 개의 피어로 구성된다. 피어(Peer)는 트랜잭션을 스마트 컨트랙트 형식(체인코드)으로 실행하고 그에 대한 기록을 블록체인에 기록한다. 체인 코드 역시 독립된 컨테이너로 구현되어 있으며 피어 노드에 의해 실행된다. DB는 couchDB를 사용하였으며 분산 데이터 베이스의 일종인 블록 체인을 저장하고 관리하는 역할을 한다. 오더러(Orderer)는 웹 서버(SDK)로부터 요청 받은 트랜잭션에 순서를 정하고 블록을 형성하여 피어 노드에 전달한다. 하이퍼레저 패브릭에서의 CA(Certificate Authority)는 블록 체인 네트워크를 이루는 구성 요소들의 신원을 관리한다. 그리고 추첨을 위한 참가자들의 신원 역시 CA에 의해 관리된다. In Figure 1, the block-chain network is implemented as a container-based container, and consists of two organizations and two peers per organization. The peer runs the transaction in smart contract format (chain code) and writes the record to the block chain. The chain code is also implemented as an independent container and is executed by the peer node. DB uses couchDB and stores and manages a block chain, which is a kind of distributed database. The Orderer orders transactions from the Web server (SDK), forms blocks and passes them to the peer node. A certificate authority (CA) in a hyper-leisure fabric manages the identity of components that make up a block-chain network. And the identity of the participants for the lottery is also managed by the CA.

웹 서버 및 하이퍼레저/패브릭 SDK(Software development kit)는 사용자(웹 클라이언트)와 블록 체인 네트워크와의 상호작용을 수행한다. 즉, 사용자의 요청을 받으면 구현된 프로토콜을 따라 블록 체인 네트워크의 구성 노드들에 전달하고 그 결과를 사용자에게 알려준다. 또한 비트 코인 기반의 랜덤 비콘으로부터 랜덤 소스로 사용할 타겟 블록 번호를 가져오는 역할도 수행한다.The Web server and the HyperLayer / Fabric Software Development Kit (SDK) interact with the user (web client) and the block-chain network. In other words, upon receiving the user's request, it passes the implemented protocol to the constituent nodes of the block-chain network and informs the user of the result. It also fetches the target block number to be used as a random source from the bit coin based random beacon.

웹 클라이언트 및 사용자는 실 사용자에 따라 참여자와 주최자로 구분된다. 이들이 수행할 수 있는 트랜잭션의 종류는 다음과 같이 다섯 가지로 구분된다. 참여자는 추첨 행사 목록을 조회할 수 있는 query 트랜잭션, 추첨 행사에 대한 참여를 실행하는 subscribe 트랜잭션, 추첨 결과(당첨자 결정)를 확인하는 check 트랜잭션, 추첨 검증을 수행하는 verify 트랜잭션으로 구성된다. 주최자는 open 트랜잭션을 통해 추첨 행사를 등록할 수 있다. 위 트랜잭션들은 모두 블록 체인 네트워크에서 스마트 컨트랙트 형식으로 구현된다.Web clients and users are divided into participants and organizers according to actual users. There are five types of transactions that can be performed. The participant consists of a query transaction for inquiring a lottery event list, a subscribe transaction for participating in a lottery event, a check transaction for confirming lottery result (winner decision), and a verify transaction for performing lottery verification. The organizer may register the lottery through an open transaction. All of the above transactions are implemented in a smart contract format in a block-chain network.

비트코인 블록체인은 랜덤 수치를 제공하는 비콘으로서의 기능을 수행한다. 비트코인의 블록들은 각 이전 블록의 해시를 갖고 있고 해시 값은 해시 특성 상 예측하기가 거의 불가능하다. 따라서 당첨자를 결정하기 위한 알고리즘은 아직 형성되지 않은 미래의 블록의 해시를 랜덤 소스로 사용한다.The bit coin block chain serves as a beacon that provides a random number. The blocks of bit coins have hash of each previous block and the hash value is almost impossible to predict based on the hash characteristic. Therefore, the algorithm for determining the winner uses the hash of the future block which is not yet formed as a random source.

도 2는 시간 순에 따른 추첨 행사의 상태 변화와 가용한 체인 코드(스마트 컨트랙트) 개념도이다.FIG. 2 is a conceptual diagram of a state change of a lottery event and an available chain code (smart contract) according to a time sequence.

도 2 는 추첨 행사의 시간 순에 따른 상태 변화와 가용한 체인 코드 연산을나타낸다. FIG. 2 shows state changes and available chain code operations according to the time sequence of the lottery event.

추첨 행사는 시간적으로 발행일 (Issue date), 마감일 (Due date), 그리고 발표일(Announce date)로 나뉜다. 발행일은 추첨 행사를 일으킨 날이다. 발행일과 마감일 사이에 참여자들은 등록된 행사에 참여할 수 있다. 그리고 발표일 이후에 결과를 확인하고 검증할 수 있다. 체인코드 연산 중 하나인 query는 시간 순에 상관 없이 언제든 호출가능하기 때문에 그림에서 생략하였다. The lottery event is divided into issue date (date), due date (date), and announce date (time). The issue date is the day of the lottery. Between the issue date and the deadline, participants can participate in the registered event. The results can be verified and verified after the date of publication. Query, one of the chain code operations, is omitted from the figure because it can be called at any time regardless of time order.

open 트랜잭션은 추첨 행사를 등록한다. 입력으로 행사 이름, 발행일, 마감일, 발표일, 타겟 블록 번호, 참여 멤버 수, 우승자 수, 랜덤 키, 멤버 이름을 받아 요청된 행사를 추첨 네트워크에 등록시킨다. 타겟 블록 번호는 비트 코인 블록 체인의 최근 블록 생성 속도를 계산하여 발표일에 인접한 블록 번호를 예측하여 선택된다. 랜덤 키는 각 행사를 구별하기 위한 고유 번호를 제공한다.The open transaction registers the lottery. Input the event name, issue date, deadline, announcement date, target block number, number of participating members, winner number, random key, member name, and register the requested event on the lottery network. The target block number is selected by predicting the block number adjacent to the release date by calculating the latest block generation rate of the bit coin block chain. The random key provides a unique number to distinguish each event.

subscribe 트랜잭션은 참가자를 선택된 추첨 행사의 참가자 목록에 추가한다. subscribe 트랜잭션은 또한 관련된 체인 코드를 호출하기 전에 등록한 참가자를 CA의 데이터 베이스에 등록하고 CA로부터 공개 키를 할당 받는다. 그리고 공개 키의 해시 값을 통해 참가자를 구분한다. 해시 함수의 단방향(one-way) 특성에 의해 역변환이 불가능하므로 익명성이 보장 되고, 결과가 나왔을 경우 당첨자는 안전하게 당첨된 사실을 증명할 수 있다. The subscribe transaction adds the participant to the participant list of the selected lottery event. The subscribe transaction also registers the enrolled participants in the CA's database before invoking the associated chain code and is assigned a public key from the CA. The hash value of the public key is used to distinguish participants. Anonymity can not be guaranteed by the one-way nature of the hash function, and if the result is true, the winner can prove that the winner is safe.

check 트랜잭션은 현재 시간이 발표일이 되었을 때 호출 가능하며, 당첨자를 결정하는 체인코드를 호출한다. check 트랜잭션이 호출될 때에는 반드시 랜덤 소스로 사용될 타겟 블록이 발행이 되어야 한다. 그렇지 않을 경우에는 실패한다. 타겟 블록이 발행이 되었다면, 해당 블록의 해시 값을 읽어와 이를 랜덤 소스를 사용한 당첨자 결정 알고리즘을 호출한다. 당첨자 결정 알고리즘은 랜덤 소스가 정해지면 결정적인(Deterministic) 방식으로 동작한다. 본 구현에서는 다음과 당첨자가 결정된다.The check transaction can be called when the current time is the release date, and calls the chain code to determine the winner. When the check transaction is called, the target block to be used as a random source must be issued. Otherwise, it fails. If the target block is issued, the hash value of the block is read and the winner decision algorithm using the random source is called. The winner decision algorithm operates in a deterministic manner if a random source is specified. In this implementation, the following winners are determined.

1. [0, 1, ... , 참가자 수 - 1] 에 속한 각 정수에 랜덤 해시 값(Xi)을 할당한다. (키, 값) 쌍에서 키가 정수에 해당하고, 값이 해시에 해당한다.1. Assign a random hash value (X i ) to each integer in [0, 1, ..., number of participants - 1]. In a (key, value) pair, the key corresponds to an integer, and the value corresponds to a hash.

2. 1의 Xi 는 다음과 같이 계산된다. 추첨 행사 등록 시 할당된 랜덤 키와 타겟 블록 해시를 각 SHA256-HMAC의 키와 데이터로 사용하여 계산된 값을 Y라 하자. Y를 문자열로 변환한 값의 마지막에 정수 값의 인덱스(i)를 이어 붙인(concatenated) 값을 SHA256의 입력으로 사용하여 계산된 해시 값이 Xi 에 할당된다.2. X i of 1 is calculated as follows. Let Y be the value calculated by using the random key and the target block hash assigned to the lottery event as keys and data of each SHA256-HMAC. The hash value computed using the concatenated value of the index (i) of the integer value as the input of SHA 256 is assigned to X i at the end of the Y-converted string value.

3. 할당된 (해시) 값을 기준으로 정렬한다. 그리고 그 결과를 배열에 저장한다.3. Sort by the assigned (hash) value. And stores the result in an array.

4. 배열의 인덱스 순서 번호로 당첨자 순위를 가려낸다. 예를 들어 당첨자 수가 2명일 경우, 첫번째 인덱스 번호가 1등, 두번째 인덱스 번호가 2등이 된다.4. It scans the ranking of the winners by the index sequence number of the array. For example, if there are two winners, the first index number is 1, the second index number is 2, and so on.

5. 참가자들은 초기에 참가한 순서대로 번호가 할당된다.5. Participants are assigned a number in the order in which they first joined.

위 방식으로 당첨자가 결정되면 스마트 컨트랙트는 추첨 행사의 당첨자 필드에 당첨자를 기록한다.If the winner is determined in this manner, the Smart Contract will record the winner in the winner field of the lottery.

check 트랜잭션은 또한 추후 검증을 위한 검증 키를 생성한다. The check transaction also generates a verification key for further verification.

도 3은 검증을 위해 사용되는 검증 키 도출 과정의 블록 구성도이다.3 is a block diagram of a verification key derivation process used for verification.

도 3을 참조하면, 랜덤 소스와 추첨 정보의 무결성을 위해 타겟 블록과 직전 3개 블록의 해시 값과 추첨 등록 당시 제공된 랜덤 키를 HMAC 함수로 만든 값과 추첨 정보를 SHA256 함수로 만든 해시 값을 이어 붙인(concatenated) 값에 대한 해시를 만들어낸다. 그리고 이렇게 생성된 검증 키(VerifiableRandomKey)는 추첨 정보의 검증 키 필드에 기록되고 verify 트랜잭션에 의해 사용된다.3, for the integrity of the random source and the lottery information, the hash value of the three blocks immediately before the target block, the random key provided at the time of lottery registration, and the hash value of the SHA256 function Creates a hash of concatenated values. Then, the generated verification key (VerifiableRandomKey) is recorded in the verification key field of the lottery information and used by the verify transaction.

verify 트랜잭션은 기록된 추첨 정보의 무결성과 추첨 결과를 재현하여 당첨자가 일치하는지 여부를 검증한다.The verify transaction reproduces the integrity and lottery results of the recorded lottery information and verifies whether the winners match.

도 3의 검증 키 도출 과정을 따라 검증 키를 생성하고 check 트랜잭션으로 기록된 검증 키를 비교한다.The verification key is generated according to the verification key derivation process of FIG. 3 and the verification key recorded in the check transaction is compared.

검증 키는 최종적으로 HMAC과 SHA256의 결과 문자열을 연결하여 구성됨. HMAC의 키로는 초기의 랜덤 키를 사용하고, 해시 함수는 SHA256, 메시지로 사용될 데이터는 타겟 블록과 직전 3개 해시일 수 있다. Lottery information에 속하는 내용은 추첨 행사의 이름, 행사 등록 시 사용된 랜덤 키, 발행일, 마감일, 등록일, 당첨자 수, 당첨자 명단, 참가자 수, 참가자 명단, 타겟 블록 번호, 당첨자 결정 알고리즘의 소스 코드가 포함된다.The verification key is finally constructed by concatenating the result string of HMAC and SHA256. The key of the HMAC is an initial random key, the hash function is SHA256, and the data to be used as a message may be three hashes immediately before the target block. Lottery information includes the name of the lottery event, the random key used to register the event, the date of issue, the date of registration, the date of registration, the number of winners, the list of winners, the number of participants, the list of participants, the target block number, .

본 발명의 실시예에 따른 방법의 동작은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 프로그램 또는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산 방식으로 컴퓨터로 읽을 수 있는 프로그램 또는 코드가 저장되고 실행될 수 있다. The operation of the method according to an embodiment of the present invention can be implemented as a computer-readable program or code on a computer-readable recording medium. A computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored. The computer-readable recording medium may also be distributed and distributed in a networked computer system so that a computer-readable program or code can be stored and executed in a distributed manner.

또한, 컴퓨터가 읽을 수 있는 기록매체는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다. 프로그램 명령은 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다.Also, the computer-readable recording medium may include a hardware device specially configured to store and execute program instructions, such as a ROM, a RAM, a flash memory, and the like. Program instructions may include machine language code such as those produced by a compiler, as well as high-level language code that may be executed by a computer using an interpreter or the like.

본 발명의 일부 측면들은 장치의 문맥에서 설명되었으나, 그것은 상응하는 방법에 따른 설명 또한 나타낼 수 있고, 여기서 블록 또는 장치는 방법 단계 또는 방법 단계의 특징에 상응한다. 유사하게, 방법의 문맥에서 설명된 측면들은 또한 상응하는 블록 또는 아이템 또는 상응하는 장치의 특징으로 나타낼 수 있다. 방법 단계들의 몇몇 또는 전부는 예를 들어, 마이크로프로세서, 프로그램 가능한 컴퓨터 또는 전자 회로와 같은 하드웨어 장치에 의해(또는 이용하여) 수행될 수 있다. 몇몇의 실시예에서, 가장 중요한 방법 단계들의 하나 이상은 이와 같은 장치에 의해 수행될 수 있다. While some aspects of the invention have been described in the context of an apparatus, it may also represent a description according to a corresponding method, wherein the block or apparatus corresponds to a feature of the method step or method step. Similarly, aspects described in the context of a method may also be represented by features of the corresponding block or item or corresponding device. Some or all of the method steps may be performed (e.g., by a microprocessor, a programmable computer or a hardware device such as an electronic circuit). In some embodiments, one or more of the most important method steps may be performed by such an apparatus.

실시예들에서, 프로그램 가능한 로직 장치(예를 들어, 필드 프로그머블 게이트 어레이)가 여기서 설명된 방법들의 기능의 일부 또는 전부를 수행하기 위해 사용될 수 있다. 실시예들에서, 필드 프로그머블 게이트 어레이는 여기서 설명된 방법들 중 하나를 수행하기 위한 마이크로프로세서와 함께 작동할 수 있다. 일반적으로, 방법들은 어떤 하드웨어 장치에 의해 수행되는 것이 바람직하다.In embodiments, a programmable logic device (e.g., a field programmable gate array) may be used to perform some or all of the functions of the methods described herein. In embodiments, the field programmable gate array may operate in conjunction with a microprocessor to perform one of the methods described herein. Generally, the methods are preferably performed by some hardware device.

이상 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the invention as defined in the appended claims. It can be understood that it is possible.

Claims (1)

공평성, 투명성, 불변성, 검증가능성을 만족하는 검증가능한 추첨을 위한 장치 및 방법에 있어서,
프라이빗 블록체인(private Blockchain) 플랫폼인 하이퍼레저 패브릭 v1.0-alpha를 사용하여, query, subscribe, check, verify, open 트랜잭션을 스마트 컨트랙트 형식으로 구현한 검증가능한 추첨을 위한 장치 및 방법.
An apparatus and method for verifiable lotteries that satisfy fairness, transparency, invariance, and verifiability,
A device and method for a verifiable lottery that implements query, subscribe, check, verify, open transactions in a smart contract format using Hyper Leverage Fabric v1.0-alpha, a private blockchain platform.
KR1020170170038A 2017-12-12 2017-12-12 Apparatus and Methods for Verifiable Lottery KR102525157B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170170038A KR102525157B1 (en) 2017-12-12 2017-12-12 Apparatus and Methods for Verifiable Lottery

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170170038A KR102525157B1 (en) 2017-12-12 2017-12-12 Apparatus and Methods for Verifiable Lottery

Publications (2)

Publication Number Publication Date
KR20190078668A true KR20190078668A (en) 2019-07-05
KR102525157B1 KR102525157B1 (en) 2023-04-24

Family

ID=67225311

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170170038A KR102525157B1 (en) 2017-12-12 2017-12-12 Apparatus and Methods for Verifiable Lottery

Country Status (1)

Country Link
KR (1) KR102525157B1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110633983A (en) * 2019-09-05 2019-12-31 腾讯科技(深圳)有限公司 Target event execution method and device based on block chain
KR20210012756A (en) * 2019-07-26 2021-02-03 박상준 Open confinement drawing service method based on multi-party confidentiality using blockchain technology
KR20210020606A (en) * 2019-08-16 2021-02-24 서강대학교산학협력단 Prize-winning event management system using blockchain network and method thereof
KR102248890B1 (en) * 2019-11-15 2021-05-06 정기영 System and method for lottery based on public blockchain and verification thereof
KR20220033338A (en) * 2020-09-09 2022-03-16 김성욱 Method for providing blockchain based lottery game service with merchandising prize

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160150278A (en) * 2016-06-15 2016-12-29 주식회사 코인플러그 Financial institution document verification system that is based on the block chain
JP2017157910A (en) * 2016-02-29 2017-09-07 日本電気株式会社 Electronic lottery system and electronic lottery method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017157910A (en) * 2016-02-29 2017-09-07 日本電気株式会社 Electronic lottery system and electronic lottery method
KR20160150278A (en) * 2016-06-15 2016-12-29 주식회사 코인플러그 Financial institution document verification system that is based on the block chain

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210012756A (en) * 2019-07-26 2021-02-03 박상준 Open confinement drawing service method based on multi-party confidentiality using blockchain technology
KR20210020606A (en) * 2019-08-16 2021-02-24 서강대학교산학협력단 Prize-winning event management system using blockchain network and method thereof
CN110633983A (en) * 2019-09-05 2019-12-31 腾讯科技(深圳)有限公司 Target event execution method and device based on block chain
KR102248890B1 (en) * 2019-11-15 2021-05-06 정기영 System and method for lottery based on public blockchain and verification thereof
KR20220033338A (en) * 2020-09-09 2022-03-16 김성욱 Method for providing blockchain based lottery game service with merchandising prize

Also Published As

Publication number Publication date
KR102525157B1 (en) 2023-04-24

Similar Documents

Publication Publication Date Title
US11900364B2 (en) Implementing logic gate functionality using a blockchain
Lashkari et al. A comprehensive review of blockchain consensus mechanisms
Belotti et al. A vademecum on blockchain technologies: When, which, and how
US10958418B2 (en) System and method for a blockchain network with heterogeneous privacy
Borkowski et al. DeXTT: Deterministic cross-blockchain token transfers
US11741083B2 (en) Cross-shard private atomic commit
US20190149337A1 (en) Implementing logic gate functionality using a blockchain
KR20190078668A (en) Apparatus and Methods for Verifiable Lottery
KR102537774B1 (en) Systems and methods that provide specialized proof of confidential knowledge
Aggarwal et al. A comparative investigation of consensus algorithms in collaboration with IoT and blockchain
KR102248890B1 (en) System and method for lottery based on public blockchain and verification thereof
Jannes et al. You don't need a ledger: Lightweight decentralized consensus between mobile web clients
Pujari et al. A decentralized consensus application using blockchain ecosystem
Antal et al. Distributed Ledger Technology Review and Decentralized Applications Development Guidelines. Future Internet 2021, 13, 62
KR20210027011A (en) Peer node, method for processing information executed on peer node and blockchain platform system
Singh Blockchain Technologies
Sweet A Decentralized computation platform
Monteiro Blockchain-based Decentralized Application for Electronic Voting using an Electronic ID
Pérez González Gobernance of smart contracts
Alizadeh Saveh A PERMISSIONED BLOCKCHAIN-BASED MODEL FOR DIGITAL FORENSICS
Saveh A Permissioned Blockchain-Based Model for Digital Forensics
Michail Blockchain ethereum private network
Bisiach et al. PUF-enabled blockchain for IoT security: a comparative study
Freire Blockchain for Academic Records
CN118381792A (en) Block chain-based data processing method, device, equipment and medium

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant