SlideShare a Scribd company logo
1 of 25
Download to read offline
블록체인 기반의
검증가능한 추첨 시스템
발표자: 조용래
팀명: 블로트
2
신뢰할 수 있는 추첨 시스템
3
 신뢰할 수 있는 추첨 시스템의 속성
 공평성: 당첨자는 사전에 예측 불가능해야 함(모든 참가자의 당첨될 확률은 균일)
 투명성: 추첨에 관한 모든 정보는 참가자 전원에 투명하게 공개되어야 함
 불변성: 등록된 추첨 정보는 임의 조작이 불가능해야 함
 검증가능성: 추첨 시스템이 위 속성들을 충족하는지 검증가능해야 함
BlockLot: 블록체인 기반의
검증가능한 추첨 시스템
BlockLot는 신뢰할 수 있는 추첨 시스템을 블록체인 플랫폼(Hyperledger/Fabric)을
사용하여 구현한 검증가능한 추첨 시스템
4
블록체인 기본 개념
 블록체인(Blockchain)
 트랜잭션을 블록 단위로 묶고 이들을 해시 체인으로 연결
 허가형 블록체인(Permissioned blockchain)
 허가된 노드만 네트워크에 참여 가능
 분산 복제 장부(Distributed-replicated ledger)
 추가만 가능하고 조작이 불가능한 분산된 자료 구조
 체인 코드(Chaincode)
 A.k.a. 스마트 컨트랙트(Smart contract)
 트랜잭션을 처리하는 분산 애플리케이션 로직
 피어(Peer)
 장부 관리, 체인코드 실행, 트랜잭션 검증
 오더러(Orderer)
 블록 생성 및 전파
5출처: Hyperledger Fabric: A Distributed Operating System for Permissioned Blockchains, EuroSys 2018
Hyperleder/Fabric 프로토콜
: Execute-Order-Validate
Hyperleder/Fabric 트랜잭션 처리 과정
BlockLot: 개요
6
 주최자와 참여자간의 신뢰할 수 있는
추첨 서비스 제공
 추첨에 관한 모든 정보는 분산-복제
된 장부에 기록
 추첨 서비스(등록/조회/응모/추첨)
를 체인 코드 형태로 지원
 다양한 검증 옵션 제공
 비트코인 블록 해시를 추첨의 랜덤
소스로 사용
추첨 시퀀스
7
 주최자가 행사를 등록하면 참여자들이 행사 목록을 조회하고 응모
 랜덤 소스로 사용될 타겟 블록이 생성되고 발표일이 경과되면 주최
자는 추첨 진행
 참여자들은 결과를 확인하고 검증할 수 있음
추첨 시스템 공격 시나리오
 랜덤 소스 예측 및 조작
 이를 통해 당첨자를 사전에 예측할 수 있음
 행사 정보 조작
 도중에 행사에 관한 정보를 임의 수정
 당첨자 조작
 추첨 이후 발표된 당첨자 명단을 조작하여 기록
 기록된 당첨자 명단을 조작
 악의적 추첨 스크립트
 수학적으로 교묘하게 설계된 추첨 스크립트는 랜덤 소스와 무관하게 특정한 수로 수
렴할 수 있음
8
검증 방법
 랜덤 소스의 예측 방지 및 무결성 검증
 전 세계에 퍼진 마이너들이 경쟁적으로 생성하는 블록의 해시를 사용하기 때문에 랜
덤 소스는 원천적으로 예측 및 조작 불가능
 비트코인은 블록의 (version, previousHash, merkle_root, timestamp, bits,
nonce) 필드들을 사용하여 블록 해시 계산
 랜덤 소스로 사용된 블록(+ 이전 블록들)의 해시를 다시 계산하여 비교
 행사 정보의 무결성 검증
 행사 등록 및 추첨 당시에 결정된 정보로 해시 값을 다시 계산하여 비교
 당첨자 목록 검증
 참여자 명단, 랜덤 소스, 추첨 스크립트를 사용하여 사용자는 당첨자를 직접 계산하
고 이를 체인에 기록된 당첨자 명단과 비교
9
검증 방법
 응답 값 비교 검증
 블록체인 장부를 지니고 있는 피어 다수에게 특정 행사 정보를 조회하여 그 응답 값들
이 서로 일치하는지 비교
 과반수 이상의 피어가 같은 응답 값을 출력한 값을 신뢰
 이를 통해 일부 피어가 해킹 또는 크래시가 나더라도 여전히 올바른 값을 보장
 통계적 검증
 추첨 스크립트가 공평하게 당첨자를 추첨하는지 검증
 통계학에서의 z-점수(z-score)을 사용한 z-검정(z-test)를 사용하여 특정 참여자가 평
균 당첨 횟수보다 유독 많이 당첨되는지 검증
 n회의 추첨 시행 시, 각 참여자의 당첨 확률이 p(= 우승자 수/참가자 수)일 경우의 이항 분포
는 n이 충분히 크면 정규 분포를 따름
 모든 참여자의 z-점수가 사전에 정의한 최대 z값보다 작다면 검증 성공, 그렇지 않으면 실패
10
구현
 허가형 블록체인 플랫폼 Hyperledger/Fabric v1.1
 Node.js 기반 웹 애플리케이션(웹 서버 및 SDK)
 Go 언어로 작성된 체인코드
 7 Peer, 1 Orderer, 1 channel
 도커 컨테이너 기반의 블록체인 네트워크
 Bitcoin 블록 조회를 위해 blockcypher.com 및 blockchain.info
의 무료 개발자 API 사용
11
사용자 인터페이스
12
 사용자는 주최자와 참여자로 구분
 주최자는 행사 등록 및 당첨자 추첨 수행
 참여자는 행사 조회, 응모, 결과 확인 및
검증을 수행
행사 등록 버튼
사용자 인터페이스: 등록
13
 주최자는 (행사명, 당첨자 수, 발표일, 블
록 오프셋, 추첨 노트)을 입력하여 추첨
행사를 등록
 최신 블록 오프셋은 등록 당시의 비트 코
인의 메인 체인의 가장 최신 블록 번호로
부터의 오프셋을 나타냄
 이를 통해 랜덤 소스로 사용할 타겟 블록을 선택
 추첨 노트에는 행사에 관한 기타 정보
(e.g. 경품 목록 등)을 기입
 등록 후에는 내부적으로 행사 고유 ID, 등
록 트랜잭션 ID 와 같은 정보가 생성되어
같이 기록
사용자 인터페이스: 조회
14
사용자 인터페이스 및 구현: 응모
 참여자는 행사를 선택하고 이름 혹은 이메일을 입력하여 응모한
뒤, (jwt)인증 토큰을 발급 받음(이메일 입력 시 이메일로 토큰 전
송)
 토큰은 추후 당첨자임을 증명하기 위해서 사용
 체인에는 Hash(등록 이름 + 인증 토큰)로 기록이 되어 참여자의
익명성 보장
15
Or
사용자 인터페이스 및 구현: 추첨 및 결과 확인
 타겟 블록이 생성되고 발표일이 경과되면 호스트는 인증 토큰을 입력
하고 추첨 수행
 추첨 스크립트는 (참가자 수, 당첨자 수, 랜덤 소스)을 입력으로 받아
결정적인 방식(deterministic)으로 당첨자 배열을 출력
 Fisher-Yates Random Shuffle algorithm을 사용
 (비트코인) 블록 해시를 랜덤 소스로 사용
 참가자는 등록 당시 이름과 인증 토큰을 입력하여 당첨자 여부 확인
가능
16
참가자 명단
당첨자 수
블록
해시
추첨 스크립트
(랜덤 셔플링)
당첨자 명단
사용자 인터페이스 및 구현: 검증
17
 사용자는 검증 버튼을 클릭하여
검증 목록을 확인
 검증 목록에서 검
증 옵션을 선택하
여 단계적으로 검
증 수행
 검증은 매단계마
다 이루어짐
 최종 검증 결과는
마지막에 제시
사용자 인터페이스 및 구현: 검증 리포트
18
 선택된 모든 검증이 끝난 후 최
종 결과가 리포트됨
 검증 리포트는 각 검증 항목에
대해 성공 여부 및 세부 검증 절
차를 설명
 사용자는 검증 리포트를 pdf로
다운로드 할 수 있음
사용자 인터페이스 및 구현: 검증 리포트
19
응답 값 검증
추첨 스크립트의 통계적 검증
검증 리포트 다운로드
20
Demo
21
관련 연구
 중앙 집중식 추첨 시스템
 추첨이 수행되는 단일한 컴퓨터에 특정 권한을 지닌 공격자(e.g. 컴퓨터 보안 전문가)
가 해킹 가능
 블록체인 플랫폼을 사용한 탈-집중화된 추첨 시스템은 컴퓨터 다수를 해킹해야 조작이
가능하기 때문에 아무리 뛰어난 공격자라도 사실 상 조작이 불가능
 공개형 블록체인 기반의 추첨 시스템
 대부분 이더리움 블록체인 기반
 Kibo, Firelotto, Quanta, SmartBilions, Trueflip
 허가형 블록체인에 비해 보안성과 성능이 낮음
22
결론
 블록체인 기반의 추첨 시스템 BlockLot는 행사에 관한 모든 정보
를 분산 장부에 기록하여 행사를 투명하고 임의 조작이 불가능한
방식으로 진행
 비트코인 블록 해시를 랜덤 소스 사용하여 공평한 추첨을 진행
 BlockLot의 다양한 검증 인터페이스를 통해 신뢰할 수 있는 추첨
서비스를 제공
 BlockLot는 부정직한 추첨 행사로 인한 사회적 비용을 획기적으
로 줄일 수 있을 것으로 기대됨
23
감사합니다
24
주요 오픈 소스 목록
 Blockchain
 Hyperledger/Fabric v1.1
 Go + packages
 Node.js + npm modules
 Docker
 Javascript
 sjcl-crypto library
 jstat-statistic library
 Tabulator
 Sweet-alert2
 Google-chart
25

More Related Content

Similar to BlockLot: Blockchain-based verifiable lottery

SafeTicket final presentation
SafeTicket final presentationSafeTicket final presentation
SafeTicket final presentationWonJongOh1
 
Block chain introduction slideshare
Block chain introduction   slideshareBlock chain introduction   slideshare
Block chain introduction slidesharewonyong hwang
 
[ETHCon Korea 2019] Kim Taekgyun 김택균
[ETHCon Korea 2019] Kim Taekgyun 김택균[ETHCon Korea 2019] Kim Taekgyun 김택균
[ETHCon Korea 2019] Kim Taekgyun 김택균ethconkr
 
비트코인으로 이해하는 블록체인 기술
비트코인으로 이해하는 블록체인 기술비트코인으로 이해하는 블록체인 기술
비트코인으로 이해하는 블록체인 기술Seong-Bok Lee
 
Blockchain 1st bitcoin_core
Blockchain 1st bitcoin_coreBlockchain 1st bitcoin_core
Blockchain 1st bitcoin_coreihpark92
 
Bitcoin 2.0(blockchain technology 2)
Bitcoin 2.0(blockchain technology 2)Bitcoin 2.0(blockchain technology 2)
Bitcoin 2.0(blockchain technology 2)Wooseung Kim
 
코어 이더리움
코어 이더리움 코어 이더리움
코어 이더리움 Jay JH Park
 
안드로이드 OAuth 1.0a, 2.0 구현 - Naver, Google API
안드로이드 OAuth 1.0a, 2.0 구현 - Naver, Google API 안드로이드 OAuth 1.0a, 2.0 구현 - Naver, Google API
안드로이드 OAuth 1.0a, 2.0 구현 - Naver, Google API Gosu Ok
 
[WeFocus] 블록체인 특허 확보 전략_20180916
[WeFocus] 블록체인 특허 확보 전략_20180916[WeFocus] 블록체인 특허 확보 전략_20180916
[WeFocus] 블록체인 특허 확보 전략_20180916Luke Sunghyun Kim
 
BlockchainOS_오픈소스로 개발되는 블록체인OS_최예준_011916_디파티
BlockchainOS_오픈소스로 개발되는 블록체인OS_최예준_011916_디파티BlockchainOS_오픈소스로 개발되는 블록체인OS_최예준_011916_디파티
BlockchainOS_오픈소스로 개발되는 블록체인OS_최예준_011916_디파티D.CAMP
 
(130216) #fitalk reverse connection tool analysis
(130216) #fitalk   reverse connection tool analysis(130216) #fitalk   reverse connection tool analysis
(130216) #fitalk reverse connection tool analysisINSIGHT FORENSIC
 
V SYSTEMS Whitepaper_KR
V SYSTEMS Whitepaper_KRV SYSTEMS Whitepaper_KR
V SYSTEMS Whitepaper_KRV SYSTEMS
 
2. klaytn developer meetup #2 univ chain
2. klaytn developer meetup #2 univ chain2. klaytn developer meetup #2 univ chain
2. klaytn developer meetup #2 univ chain전 민규
 
구글의 새로운 타겟팅 솔루션, FLoC란?
구글의 새로운 타겟팅 솔루션, FLoC란?구글의 새로운 타겟팅 솔루션, FLoC란?
구글의 새로운 타겟팅 솔루션, FLoC란?JunsooJang
 
Blockchain Basic Concept Theory (Beginner Version) / 초보자를 위한 블록체인 기초 개념 이론
Blockchain Basic Concept Theory (Beginner Version) / 초보자를 위한 블록체인 기초 개념 이론Blockchain Basic Concept Theory (Beginner Version) / 초보자를 위한 블록체인 기초 개념 이론
Blockchain Basic Concept Theory (Beginner Version) / 초보자를 위한 블록체인 기초 개념 이론Minwoo Kim
 
Block chain architecture and hyperledger fabric overview
Block chain architecture and hyperledger fabric overviewBlock chain architecture and hyperledger fabric overview
Block chain architecture and hyperledger fabric overview병준 김
 
Introblockchaininfra 180806105137
Introblockchaininfra 180806105137Introblockchaininfra 180806105137
Introblockchaininfra 180806105137Jong-Ki Lee
 
Service mesh(istio) monitoring
Service mesh(istio) monitoringService mesh(istio) monitoring
Service mesh(istio) monitoringJeong-Ho Na
 
Mastering ethereum(smart contract)
Mastering ethereum(smart contract)Mastering ethereum(smart contract)
Mastering ethereum(smart contract)제호 송
 

Similar to BlockLot: Blockchain-based verifiable lottery (20)

SafeTicket final presentation
SafeTicket final presentationSafeTicket final presentation
SafeTicket final presentation
 
Block chain introduction slideshare
Block chain introduction   slideshareBlock chain introduction   slideshare
Block chain introduction slideshare
 
[ETHCon Korea 2019] Kim Taekgyun 김택균
[ETHCon Korea 2019] Kim Taekgyun 김택균[ETHCon Korea 2019] Kim Taekgyun 김택균
[ETHCon Korea 2019] Kim Taekgyun 김택균
 
비트코인으로 이해하는 블록체인 기술
비트코인으로 이해하는 블록체인 기술비트코인으로 이해하는 블록체인 기술
비트코인으로 이해하는 블록체인 기술
 
Blockchain 1st bitcoin_core
Blockchain 1st bitcoin_coreBlockchain 1st bitcoin_core
Blockchain 1st bitcoin_core
 
Bitcoin 2.0(blockchain technology 2)
Bitcoin 2.0(blockchain technology 2)Bitcoin 2.0(blockchain technology 2)
Bitcoin 2.0(blockchain technology 2)
 
코어 이더리움
코어 이더리움 코어 이더리움
코어 이더리움
 
안드로이드 OAuth 1.0a, 2.0 구현 - Naver, Google API
안드로이드 OAuth 1.0a, 2.0 구현 - Naver, Google API 안드로이드 OAuth 1.0a, 2.0 구현 - Naver, Google API
안드로이드 OAuth 1.0a, 2.0 구현 - Naver, Google API
 
[WeFocus] 블록체인 특허 확보 전략_20180916
[WeFocus] 블록체인 특허 확보 전략_20180916[WeFocus] 블록체인 특허 확보 전략_20180916
[WeFocus] 블록체인 특허 확보 전략_20180916
 
BlockchainOS_오픈소스로 개발되는 블록체인OS_최예준_011916_디파티
BlockchainOS_오픈소스로 개발되는 블록체인OS_최예준_011916_디파티BlockchainOS_오픈소스로 개발되는 블록체인OS_최예준_011916_디파티
BlockchainOS_오픈소스로 개발되는 블록체인OS_최예준_011916_디파티
 
(130216) #fitalk reverse connection tool analysis
(130216) #fitalk   reverse connection tool analysis(130216) #fitalk   reverse connection tool analysis
(130216) #fitalk reverse connection tool analysis
 
V SYSTEMS Whitepaper_KR
V SYSTEMS Whitepaper_KRV SYSTEMS Whitepaper_KR
V SYSTEMS Whitepaper_KR
 
2. klaytn developer meetup #2 univ chain
2. klaytn developer meetup #2 univ chain2. klaytn developer meetup #2 univ chain
2. klaytn developer meetup #2 univ chain
 
Blockchain
BlockchainBlockchain
Blockchain
 
구글의 새로운 타겟팅 솔루션, FLoC란?
구글의 새로운 타겟팅 솔루션, FLoC란?구글의 새로운 타겟팅 솔루션, FLoC란?
구글의 새로운 타겟팅 솔루션, FLoC란?
 
Blockchain Basic Concept Theory (Beginner Version) / 초보자를 위한 블록체인 기초 개념 이론
Blockchain Basic Concept Theory (Beginner Version) / 초보자를 위한 블록체인 기초 개념 이론Blockchain Basic Concept Theory (Beginner Version) / 초보자를 위한 블록체인 기초 개념 이론
Blockchain Basic Concept Theory (Beginner Version) / 초보자를 위한 블록체인 기초 개념 이론
 
Block chain architecture and hyperledger fabric overview
Block chain architecture and hyperledger fabric overviewBlock chain architecture and hyperledger fabric overview
Block chain architecture and hyperledger fabric overview
 
Introblockchaininfra 180806105137
Introblockchaininfra 180806105137Introblockchaininfra 180806105137
Introblockchaininfra 180806105137
 
Service mesh(istio) monitoring
Service mesh(istio) monitoringService mesh(istio) monitoring
Service mesh(istio) monitoring
 
Mastering ethereum(smart contract)
Mastering ethereum(smart contract)Mastering ethereum(smart contract)
Mastering ethereum(smart contract)
 

More from YongraeJo

Zeus Locality aware distributed transaction upload.pptx
Zeus Locality aware distributed transaction upload.pptxZeus Locality aware distributed transaction upload.pptx
Zeus Locality aware distributed transaction upload.pptxYongraeJo
 
blockchain-and-trusted-computing
blockchain-and-trusted-computingblockchain-and-trusted-computing
blockchain-and-trusted-computingYongraeJo
 
Blockchain meets database
Blockchain meets databaseBlockchain meets database
Blockchain meets databaseYongraeJo
 
Byzantine ordered consensus
Byzantine ordered consensusByzantine ordered consensus
Byzantine ordered consensusYongraeJo
 
Simple robot pets with three emotions (uC/OS III)
Simple robot pets with three emotions (uC/OS III)Simple robot pets with three emotions (uC/OS III)
Simple robot pets with three emotions (uC/OS III)YongraeJo
 
Honeybadger of BFT Protocols
Honeybadger of BFT ProtocolsHoneybadger of BFT Protocols
Honeybadger of BFT ProtocolsYongraeJo
 
Practical Byzantine Fault Tolernace
Practical Byzantine Fault TolernacePractical Byzantine Fault Tolernace
Practical Byzantine Fault TolernaceYongraeJo
 
Making BFT Protocols Really Adaptive
Making BFT Protocols Really AdaptiveMaking BFT Protocols Really Adaptive
Making BFT Protocols Really AdaptiveYongraeJo
 

More from YongraeJo (20)

Zeus Locality aware distributed transaction upload.pptx
Zeus Locality aware distributed transaction upload.pptxZeus Locality aware distributed transaction upload.pptx
Zeus Locality aware distributed transaction upload.pptx
 
basil.pptx
basil.pptxbasil.pptx
basil.pptx
 
HotStuff
HotStuff HotStuff
HotStuff
 
Fbft
FbftFbft
Fbft
 
blockchain-and-trusted-computing
blockchain-and-trusted-computingblockchain-and-trusted-computing
blockchain-and-trusted-computing
 
Blockchain meets database
Blockchain meets databaseBlockchain meets database
Blockchain meets database
 
Beat
BeatBeat
Beat
 
Byzantine ordered consensus
Byzantine ordered consensusByzantine ordered consensus
Byzantine ordered consensus
 
Stellar
StellarStellar
Stellar
 
Ledgerdb
LedgerdbLedgerdb
Ledgerdb
 
Blockene
BlockeneBlockene
Blockene
 
Simple robot pets with three emotions (uC/OS III)
Simple robot pets with three emotions (uC/OS III)Simple robot pets with three emotions (uC/OS III)
Simple robot pets with three emotions (uC/OS III)
 
FlexSC
FlexSCFlexSC
FlexSC
 
Honeybadger of BFT Protocols
Honeybadger of BFT ProtocolsHoneybadger of BFT Protocols
Honeybadger of BFT Protocols
 
Cheapbft
Cheapbft Cheapbft
Cheapbft
 
Practical Byzantine Fault Tolernace
Practical Byzantine Fault TolernacePractical Byzantine Fault Tolernace
Practical Byzantine Fault Tolernace
 
Making BFT Protocols Really Adaptive
Making BFT Protocols Really AdaptiveMaking BFT Protocols Really Adaptive
Making BFT Protocols Really Adaptive
 
Pileus
PileusPileus
Pileus
 
Vft
VftVft
Vft
 
Xft
XftXft
Xft
 

Recently uploaded

MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 

Recently uploaded (6)

MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 

BlockLot: Blockchain-based verifiable lottery

  • 1. 블록체인 기반의 검증가능한 추첨 시스템 발표자: 조용래 팀명: 블로트
  • 2. 2
  • 3. 신뢰할 수 있는 추첨 시스템 3  신뢰할 수 있는 추첨 시스템의 속성  공평성: 당첨자는 사전에 예측 불가능해야 함(모든 참가자의 당첨될 확률은 균일)  투명성: 추첨에 관한 모든 정보는 참가자 전원에 투명하게 공개되어야 함  불변성: 등록된 추첨 정보는 임의 조작이 불가능해야 함  검증가능성: 추첨 시스템이 위 속성들을 충족하는지 검증가능해야 함
  • 4. BlockLot: 블록체인 기반의 검증가능한 추첨 시스템 BlockLot는 신뢰할 수 있는 추첨 시스템을 블록체인 플랫폼(Hyperledger/Fabric)을 사용하여 구현한 검증가능한 추첨 시스템 4
  • 5. 블록체인 기본 개념  블록체인(Blockchain)  트랜잭션을 블록 단위로 묶고 이들을 해시 체인으로 연결  허가형 블록체인(Permissioned blockchain)  허가된 노드만 네트워크에 참여 가능  분산 복제 장부(Distributed-replicated ledger)  추가만 가능하고 조작이 불가능한 분산된 자료 구조  체인 코드(Chaincode)  A.k.a. 스마트 컨트랙트(Smart contract)  트랜잭션을 처리하는 분산 애플리케이션 로직  피어(Peer)  장부 관리, 체인코드 실행, 트랜잭션 검증  오더러(Orderer)  블록 생성 및 전파 5출처: Hyperledger Fabric: A Distributed Operating System for Permissioned Blockchains, EuroSys 2018 Hyperleder/Fabric 프로토콜 : Execute-Order-Validate Hyperleder/Fabric 트랜잭션 처리 과정
  • 6. BlockLot: 개요 6  주최자와 참여자간의 신뢰할 수 있는 추첨 서비스 제공  추첨에 관한 모든 정보는 분산-복제 된 장부에 기록  추첨 서비스(등록/조회/응모/추첨) 를 체인 코드 형태로 지원  다양한 검증 옵션 제공  비트코인 블록 해시를 추첨의 랜덤 소스로 사용
  • 7. 추첨 시퀀스 7  주최자가 행사를 등록하면 참여자들이 행사 목록을 조회하고 응모  랜덤 소스로 사용될 타겟 블록이 생성되고 발표일이 경과되면 주최 자는 추첨 진행  참여자들은 결과를 확인하고 검증할 수 있음
  • 8. 추첨 시스템 공격 시나리오  랜덤 소스 예측 및 조작  이를 통해 당첨자를 사전에 예측할 수 있음  행사 정보 조작  도중에 행사에 관한 정보를 임의 수정  당첨자 조작  추첨 이후 발표된 당첨자 명단을 조작하여 기록  기록된 당첨자 명단을 조작  악의적 추첨 스크립트  수학적으로 교묘하게 설계된 추첨 스크립트는 랜덤 소스와 무관하게 특정한 수로 수 렴할 수 있음 8
  • 9. 검증 방법  랜덤 소스의 예측 방지 및 무결성 검증  전 세계에 퍼진 마이너들이 경쟁적으로 생성하는 블록의 해시를 사용하기 때문에 랜 덤 소스는 원천적으로 예측 및 조작 불가능  비트코인은 블록의 (version, previousHash, merkle_root, timestamp, bits, nonce) 필드들을 사용하여 블록 해시 계산  랜덤 소스로 사용된 블록(+ 이전 블록들)의 해시를 다시 계산하여 비교  행사 정보의 무결성 검증  행사 등록 및 추첨 당시에 결정된 정보로 해시 값을 다시 계산하여 비교  당첨자 목록 검증  참여자 명단, 랜덤 소스, 추첨 스크립트를 사용하여 사용자는 당첨자를 직접 계산하 고 이를 체인에 기록된 당첨자 명단과 비교 9
  • 10. 검증 방법  응답 값 비교 검증  블록체인 장부를 지니고 있는 피어 다수에게 특정 행사 정보를 조회하여 그 응답 값들 이 서로 일치하는지 비교  과반수 이상의 피어가 같은 응답 값을 출력한 값을 신뢰  이를 통해 일부 피어가 해킹 또는 크래시가 나더라도 여전히 올바른 값을 보장  통계적 검증  추첨 스크립트가 공평하게 당첨자를 추첨하는지 검증  통계학에서의 z-점수(z-score)을 사용한 z-검정(z-test)를 사용하여 특정 참여자가 평 균 당첨 횟수보다 유독 많이 당첨되는지 검증  n회의 추첨 시행 시, 각 참여자의 당첨 확률이 p(= 우승자 수/참가자 수)일 경우의 이항 분포 는 n이 충분히 크면 정규 분포를 따름  모든 참여자의 z-점수가 사전에 정의한 최대 z값보다 작다면 검증 성공, 그렇지 않으면 실패 10
  • 11. 구현  허가형 블록체인 플랫폼 Hyperledger/Fabric v1.1  Node.js 기반 웹 애플리케이션(웹 서버 및 SDK)  Go 언어로 작성된 체인코드  7 Peer, 1 Orderer, 1 channel  도커 컨테이너 기반의 블록체인 네트워크  Bitcoin 블록 조회를 위해 blockcypher.com 및 blockchain.info 의 무료 개발자 API 사용 11
  • 12. 사용자 인터페이스 12  사용자는 주최자와 참여자로 구분  주최자는 행사 등록 및 당첨자 추첨 수행  참여자는 행사 조회, 응모, 결과 확인 및 검증을 수행 행사 등록 버튼
  • 13. 사용자 인터페이스: 등록 13  주최자는 (행사명, 당첨자 수, 발표일, 블 록 오프셋, 추첨 노트)을 입력하여 추첨 행사를 등록  최신 블록 오프셋은 등록 당시의 비트 코 인의 메인 체인의 가장 최신 블록 번호로 부터의 오프셋을 나타냄  이를 통해 랜덤 소스로 사용할 타겟 블록을 선택  추첨 노트에는 행사에 관한 기타 정보 (e.g. 경품 목록 등)을 기입  등록 후에는 내부적으로 행사 고유 ID, 등 록 트랜잭션 ID 와 같은 정보가 생성되어 같이 기록
  • 15. 사용자 인터페이스 및 구현: 응모  참여자는 행사를 선택하고 이름 혹은 이메일을 입력하여 응모한 뒤, (jwt)인증 토큰을 발급 받음(이메일 입력 시 이메일로 토큰 전 송)  토큰은 추후 당첨자임을 증명하기 위해서 사용  체인에는 Hash(등록 이름 + 인증 토큰)로 기록이 되어 참여자의 익명성 보장 15 Or
  • 16. 사용자 인터페이스 및 구현: 추첨 및 결과 확인  타겟 블록이 생성되고 발표일이 경과되면 호스트는 인증 토큰을 입력 하고 추첨 수행  추첨 스크립트는 (참가자 수, 당첨자 수, 랜덤 소스)을 입력으로 받아 결정적인 방식(deterministic)으로 당첨자 배열을 출력  Fisher-Yates Random Shuffle algorithm을 사용  (비트코인) 블록 해시를 랜덤 소스로 사용  참가자는 등록 당시 이름과 인증 토큰을 입력하여 당첨자 여부 확인 가능 16 참가자 명단 당첨자 수 블록 해시 추첨 스크립트 (랜덤 셔플링) 당첨자 명단
  • 17. 사용자 인터페이스 및 구현: 검증 17  사용자는 검증 버튼을 클릭하여 검증 목록을 확인  검증 목록에서 검 증 옵션을 선택하 여 단계적으로 검 증 수행  검증은 매단계마 다 이루어짐  최종 검증 결과는 마지막에 제시
  • 18. 사용자 인터페이스 및 구현: 검증 리포트 18  선택된 모든 검증이 끝난 후 최 종 결과가 리포트됨  검증 리포트는 각 검증 항목에 대해 성공 여부 및 세부 검증 절 차를 설명  사용자는 검증 리포트를 pdf로 다운로드 할 수 있음
  • 19. 사용자 인터페이스 및 구현: 검증 리포트 19 응답 값 검증 추첨 스크립트의 통계적 검증
  • 22. 관련 연구  중앙 집중식 추첨 시스템  추첨이 수행되는 단일한 컴퓨터에 특정 권한을 지닌 공격자(e.g. 컴퓨터 보안 전문가) 가 해킹 가능  블록체인 플랫폼을 사용한 탈-집중화된 추첨 시스템은 컴퓨터 다수를 해킹해야 조작이 가능하기 때문에 아무리 뛰어난 공격자라도 사실 상 조작이 불가능  공개형 블록체인 기반의 추첨 시스템  대부분 이더리움 블록체인 기반  Kibo, Firelotto, Quanta, SmartBilions, Trueflip  허가형 블록체인에 비해 보안성과 성능이 낮음 22
  • 23. 결론  블록체인 기반의 추첨 시스템 BlockLot는 행사에 관한 모든 정보 를 분산 장부에 기록하여 행사를 투명하고 임의 조작이 불가능한 방식으로 진행  비트코인 블록 해시를 랜덤 소스 사용하여 공평한 추첨을 진행  BlockLot의 다양한 검증 인터페이스를 통해 신뢰할 수 있는 추첨 서비스를 제공  BlockLot는 부정직한 추첨 행사로 인한 사회적 비용을 획기적으 로 줄일 수 있을 것으로 기대됨 23
  • 25. 주요 오픈 소스 목록  Blockchain  Hyperledger/Fabric v1.1  Go + packages  Node.js + npm modules  Docker  Javascript  sjcl-crypto library  jstat-statistic library  Tabulator  Sweet-alert2  Google-chart 25