SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
Blockchain 101
JINHO YOO, theloop
해결하고자
하는 문제
● 내가 주고 받은
파일/데이타가 중간에 단
한번도 위조없이 온 것인가?
● 내가 받은 파일/데이타의
기록들이 다른 사람들과
모두 같은 것인가?
Blockchain의 정의
“A block chain, or blockchain, is a distributed
database that maintains a continuously-growing
list of data records hardened against tampering
and revision.”
Blockchain의 정의
● Distributed database
○ 분산된 Database
● That maintains a continuously-growing list of data
records hardened against tampering and revision
○ 위변조되지 않게 계속 늘어나는 데이타들의
목록을 담고 있다.
주의할 점
● Blockchain != Bitcoin
○ Blockchain은 검증을 위해 기록을 변경불가하게 만들어
놓은 것.
○ Bitcoin은 Blockchain을 ‘전자화폐'에 활용한 경우다.
○ 응용되는 곳마다 조금씩 다른 형태를 가지고 있다.
● 핵심은
○ 분산되어서
○ 위변조가 되지 않는 것
분산형 database의 중요한 의미는?
● 내가 가진 정보의 흐름을 모두 알고 있다.
● 이 정보는 누구나 다 알고 있다.
● 이를 조작하는 것이 사실상 불가능하다.
● 모든 사람들이 검증에 참여함으로 검증/보증을 위한
중계자가 필요없다.
Ex) Bitcoin에서 사용된 Blockchain
Transaction / Block / Blockchain
Transaction
● A에서 B로 ‘무언가’
보낸다는 정보.
● 만들어지는 순간
네트워크에 뿌려진다.
Block
● 일정시간동안
네트워크상에 있는
Transaction들의 집합.
● 검증이 되었을 수도
있고 안되었을 수도
있다.
Blockchain
● 검증된 Block들의 집합
● 검증된 것들은 다시
네트워크에 뿌려짐
Block
Transaction
Transaction
Transaction
Block
Blockchain - Bitcoin에 구현된 예
Genesis block:
처음 만들어진
Block
● 각 Block은 아래 정보로 구성되어 있다.
○ 앞선 Block의 hash
■ Genesis block에서부터 현재
Block까지 영향을 미친다.
■ 각 Block들이 만들어지는
순서에 따라 새롭게 hash가
만들어지므로 중간에 위변조가
일어나면 달라질 수 밖에 없다.
○ Timestamp: 거래 시점
○ Nonce: Hash함수를 이용하여
결과값을 만들 때 특정한 수를 더
첨가해서 결과를 만드는 값.
(검증되야 나옴)
■ Mining 이란 이 값을 찾는
것이다.
○ Merkle tree라는 트리 구조의 root값 .
Blockchain은 과거 정보를 어떻게 다 가지고 다닐까?
● 모든 Transaction데이타를 Block안에 ‘정말’ 가지고 있다.
○ Merkle tree 등의 방법으로 필요한 데이타만 담음.
○ 실제 Transaction data도 크기가 얼마 안됨. 참고
BlockBlock
tt-1
Blockchain은 과거 정보를 어떻게 다 가지고 다닐까?
● 앞선 Block의 Hash값을 현재 Block이 가지고 있다.
● 해당 Block내의 Transaction을 가지고 계산한 Merkle tree root hash를 각
Block마다 담고 있다.
● 전체 거래 정보가 의외로 작다.
BlockBlock
Block[t-1]의 Hash
tt-1
Merckle tree root Hash
Merkle tree
● 모든 Block에 대한 Hash를 ‘요약'해주는 Binary
tree 구조
● 모든 Block은 Merkle tree의 root에 해당하는
Hash를 가지고 다닌다.
● 모든 Block안의 Hash는 leaf에 있는 node들의
hash를 hash한 값이다.
● Block chain이 길수록 root에서 아래로
내려온다.
● 이 Hash값이 이상한지는 바로 위의 node가
가진 Hash를 현재 같은 level에 있는 다른
node와의 hash계산과 같은지 아닌지를
비교함으로 확인한다.
● 매번 Tx가 증가할 때마다 Block내의 Merkle
tree root를 다시 계산해서 해당 Block에 써야
한다.
Blockchain은 검증은 어떻게 하나?
● Proof-of-work
○ 블록을 증명하는 이른바 ‘채굴자'가 일을 함으로 증명
■ Ex) Bitcoin의 Mining.
● Proof-of-stake:
○ 소유자가 자신이 가진 자산(Stake)를 스스로 증명해야 한다.
○ 공격에 방어하기 위해 블록체인 전체 컨트롤하는 Master public key를
두고 있다.
● Consensus-by-bet:
○ 네트워크에 참여하는 사람들의 동의를 통해서 승인
○ 참여하는 노드들은 보증금을 걸고 승인에 참여.
○ 이를 위한 인센티브/처벌 시스템을 가동
Blockchain은 검증은 어떻게 하나? -2
● Trust
○ 네트워크에 참여하는 노드들의 투표와 동의를 통해서 승인
○ 기본적으로 ‘믿을 수 있는’ node들만 있다고 가정
○ Byzantine agreement protocol을 기반으로 이용
● Membership
○ 소유자가 자신이 가진 자산(Stake)를 스스로 증명해야 한다.
○ 공격에 방어하기 위해 블록체인 전체 컨트롤하는 Master public key를
두고 있다.
Mining(채굴) - Bitcoin이나 Ethereum의 경우
PoW에서 검증작업을 해주고 그 댓가로 보상을
받는 것
보상 자체가 핵심이 아니다… -.-;;
Blockchain은 정보를 어떻게 담아다니나?
● 각 Block안의 ‘거래'정보는
코드로 작성되어 있다.
● 이 코드들을 실행함으로
거래를 유효화한다. Block
Script
Blockchain은 정보를 어떻게 담아다니나? -
Bitcoin● 각 Block안의 ‘거래'정보는
코드로 작성되어 있다.
● 이 코드들을 실행함으로
거래를 유효화한다.
● 아주 아주 간단한 Stack기반 언어로 구성
● 대부분의 경우 ‘A가 B에게 지불하는 형식
○ Loop가 없다.
● OpCode처럼 표현되어 있다
● 잠금 스크립트, 해제 스크립트로 구성.
○ 잠금 스크립트:
■ 예상 지출, 향후 출력값을 소비하기
위해 충족되어야 하는 조건명시
○ 해제 스크립트
■ 잠금 스크립트가 출력값에 놓아 둔
조건을 해결하거나 충족시켜서
출력값이 소비될 수 있게 하는
스크립트
● 자세한 것은 여기
Blockchain은 정보를 어떻게 담아다니나?
-Ethereum● 각 Block안의 ‘거래'정보는
코드로 작성되어 있다.
● 이 코드들을 실행함으로
거래를 유효화한다.
● Solidity라는 언어로 구성.
● Loop도 있고 일반적인 Computer
language스럽다.
○ Compile되서 OpCode로 돌아다닌다.
● 돈거래 외에도 여러가지를 코딩하기가
쉽다.
● Gas라는 개념이 있어서 무한정 반복할 수
없다.
○ Code가 돌아가려고 하면 gas를
소비해야 한다.
○ Gas price를 transaction을 만든
사람이 지정
■ 이 사람이 gas_price * gas값을
지불.
○ 실행하다가 Gas가 떨어지면
동작하는 것을 중지.
화폐 개념없이 ‘원장'개념만 있는 Blockchain -
Hyperledger
● PoW방식이 아니라 Consneus
방식으로 거래의 신뢰 보증
● Chaincode라는 방식으로
Contract구현
● 자세한 사항은 여기 참조
● https://www.hyperledger.org/
Blockchain으로 뭔가 만들어 보려 한다면 고려할 것
● 뭘 담아서 Block을 구성할 것인가?
● 화폐 개념 넣을 것인가 말것인가?
● 검증과정을 어떻게 구성할 것인가? PoW? PoS?
Reference
● Deloitte, Blockchain Enigma. Paradox. Opportunity
● Korbit, 블록체인의 기술적 이해 및 도입을 위한 첫걸음
● Ethereum white paper
● Solidity official document
● Blockchain size
● Hyperledger white paper
● https://www.hyperledger.org/

Contenu connexe

Tendances

블록체인 What is Blockchain?
블록체인 What is Blockchain?블록체인 What is Blockchain?
블록체인 What is Blockchain?정식 황
 
전자상거래 보안-블록체인(Blockchain) 기술
전자상거래 보안-블록체인(Blockchain) 기술전자상거래 보안-블록체인(Blockchain) 기술
전자상거래 보안-블록체인(Blockchain) 기술Yechan Ahn
 
비트코인 네트워크 기술 소개 - 임석의, 윤석주
비트코인 네트워크 기술 소개 - 임석의, 윤석주비트코인 네트워크 기술 소개 - 임석의, 윤석주
비트코인 네트워크 기술 소개 - 임석의, 윤석주Seok-ju Yun
 
블록체인(Block Chain)이란? - 블록체인의 구성요소, 작동원리, 메커니즘의 이해
블록체인(Block Chain)이란? - 블록체인의 구성요소, 작동원리, 메커니즘의 이해블록체인(Block Chain)이란? - 블록체인의 구성요소, 작동원리, 메커니즘의 이해
블록체인(Block Chain)이란? - 블록체인의 구성요소, 작동원리, 메커니즘의 이해용진 최
 
Blockchain trends and research
Blockchain trends and researchBlockchain trends and research
Blockchain trends and researchJongseok Choi
 
Bitcoin 기술분석 - 조남수
Bitcoin 기술분석 - 조남수Bitcoin 기술분석 - 조남수
Bitcoin 기술분석 - 조남수00heights
 
블록체인 개요
블록체인 개요블록체인 개요
블록체인 개요Jeff Paik
 
Scale chain 제품소개
Scale chain 제품소개Scale chain 제품소개
Scale chain 제품소개Kangmo Kim
 
BlockchainOS_오픈소스로 개발되는 블록체인OS_최예준_011916_디파티
BlockchainOS_오픈소스로 개발되는 블록체인OS_최예준_011916_디파티BlockchainOS_오픈소스로 개발되는 블록체인OS_최예준_011916_디파티
BlockchainOS_오픈소스로 개발되는 블록체인OS_최예준_011916_디파티D.CAMP
 
블록체인 기술과 토큰 이코노미, 비즈니스의 판을 바꾼다
블록체인 기술과 토큰 이코노미, 비즈니스의 판을 바꾼다블록체인 기술과 토큰 이코노미, 비즈니스의 판을 바꾼다
블록체인 기술과 토큰 이코노미, 비즈니스의 판을 바꾼다ICON Foundation
 
쉽게 풀어쓴 블록체인과 이더리움
쉽게 풀어쓴 블록체인과 이더리움쉽게 풀어쓴 블록체인과 이더리움
쉽게 풀어쓴 블록체인과 이더리움Dae Hyun Nam
 
블록체인 업계 현황
블록체인 업계 현황블록체인 업계 현황
블록체인 업계 현황Jeff Paik
 
3.고객을 연결하는 블록체인 (4차산업혁명: 고객과의 소통 신기술의 진화)
3.고객을 연결하는 블록체인 (4차산업혁명: 고객과의 소통 신기술의 진화)3.고객을 연결하는 블록체인 (4차산업혁명: 고객과의 소통 신기술의 진화)
3.고객을 연결하는 블록체인 (4차산업혁명: 고객과의 소통 신기술의 진화)doo rip choi
 
Blockchain 개념과 현주소
Blockchain 개념과 현주소Blockchain 개념과 현주소
Blockchain 개념과 현주소Hosung Lee
 
Blockchain OS_블록체인 해외동향_박창기_011916_디파티
Blockchain OS_블록체인 해외동향_박창기_011916_디파티Blockchain OS_블록체인 해외동향_박창기_011916_디파티
Blockchain OS_블록체인 해외동향_박창기_011916_디파티D.CAMP
 
How Blockchain Works - 블록체인의 원리
How Blockchain Works - 블록체인의 원리How Blockchain Works - 블록체인의 원리
How Blockchain Works - 블록체인의 원리SeokWon Kim
 
KOSCOM Capital Market Blockchain PoC completed
KOSCOM Capital Market Blockchain PoC completedKOSCOM Capital Market Blockchain PoC completed
KOSCOM Capital Market Blockchain PoC completedMyoungSeok Song
 

Tendances (20)

블록체인 What is Blockchain?
블록체인 What is Blockchain?블록체인 What is Blockchain?
블록체인 What is Blockchain?
 
전자상거래 보안-블록체인(Blockchain) 기술
전자상거래 보안-블록체인(Blockchain) 기술전자상거래 보안-블록체인(Blockchain) 기술
전자상거래 보안-블록체인(Blockchain) 기술
 
블록체인
블록체인블록체인
블록체인
 
비트코인 네트워크 기술 소개 - 임석의, 윤석주
비트코인 네트워크 기술 소개 - 임석의, 윤석주비트코인 네트워크 기술 소개 - 임석의, 윤석주
비트코인 네트워크 기술 소개 - 임석의, 윤석주
 
블록체인(Block Chain)이란? - 블록체인의 구성요소, 작동원리, 메커니즘의 이해
블록체인(Block Chain)이란? - 블록체인의 구성요소, 작동원리, 메커니즘의 이해블록체인(Block Chain)이란? - 블록체인의 구성요소, 작동원리, 메커니즘의 이해
블록체인(Block Chain)이란? - 블록체인의 구성요소, 작동원리, 메커니즘의 이해
 
블록체인
블록체인블록체인
블록체인
 
Blockchain trends and research
Blockchain trends and researchBlockchain trends and research
Blockchain trends and research
 
Bitcoin 기술분석 - 조남수
Bitcoin 기술분석 - 조남수Bitcoin 기술분석 - 조남수
Bitcoin 기술분석 - 조남수
 
블록체인 개요
블록체인 개요블록체인 개요
블록체인 개요
 
블록체인
블록체인블록체인
블록체인
 
Scale chain 제품소개
Scale chain 제품소개Scale chain 제품소개
Scale chain 제품소개
 
BlockchainOS_오픈소스로 개발되는 블록체인OS_최예준_011916_디파티
BlockchainOS_오픈소스로 개발되는 블록체인OS_최예준_011916_디파티BlockchainOS_오픈소스로 개발되는 블록체인OS_최예준_011916_디파티
BlockchainOS_오픈소스로 개발되는 블록체인OS_최예준_011916_디파티
 
블록체인 기술과 토큰 이코노미, 비즈니스의 판을 바꾼다
블록체인 기술과 토큰 이코노미, 비즈니스의 판을 바꾼다블록체인 기술과 토큰 이코노미, 비즈니스의 판을 바꾼다
블록체인 기술과 토큰 이코노미, 비즈니스의 판을 바꾼다
 
쉽게 풀어쓴 블록체인과 이더리움
쉽게 풀어쓴 블록체인과 이더리움쉽게 풀어쓴 블록체인과 이더리움
쉽게 풀어쓴 블록체인과 이더리움
 
블록체인 업계 현황
블록체인 업계 현황블록체인 업계 현황
블록체인 업계 현황
 
3.고객을 연결하는 블록체인 (4차산업혁명: 고객과의 소통 신기술의 진화)
3.고객을 연결하는 블록체인 (4차산업혁명: 고객과의 소통 신기술의 진화)3.고객을 연결하는 블록체인 (4차산업혁명: 고객과의 소통 신기술의 진화)
3.고객을 연결하는 블록체인 (4차산업혁명: 고객과의 소통 신기술의 진화)
 
Blockchain 개념과 현주소
Blockchain 개념과 현주소Blockchain 개념과 현주소
Blockchain 개념과 현주소
 
Blockchain OS_블록체인 해외동향_박창기_011916_디파티
Blockchain OS_블록체인 해외동향_박창기_011916_디파티Blockchain OS_블록체인 해외동향_박창기_011916_디파티
Blockchain OS_블록체인 해외동향_박창기_011916_디파티
 
How Blockchain Works - 블록체인의 원리
How Blockchain Works - 블록체인의 원리How Blockchain Works - 블록체인의 원리
How Blockchain Works - 블록체인의 원리
 
KOSCOM Capital Market Blockchain PoC completed
KOSCOM Capital Market Blockchain PoC completedKOSCOM Capital Market Blockchain PoC completed
KOSCOM Capital Market Blockchain PoC completed
 

Similaire à Blockchain 101

비트코인으로 이해하는 블록체인 기술
비트코인으로 이해하는 블록체인 기술비트코인으로 이해하는 블록체인 기술
비트코인으로 이해하는 블록체인 기술Seong-Bok Lee
 
코어 이더리움
코어 이더리움 코어 이더리움
코어 이더리움 Jay JH Park
 
Ethereum Basics Part 2
Ethereum Basics Part 2Ethereum Basics Part 2
Ethereum Basics Part 2Soobok Jin
 
블록체인 한 번에 이해하기
블록체인 한 번에 이해하기블록체인 한 번에 이해하기
블록체인 한 번에 이해하기Myung Woon Oh
 
비트코인과 블록체인 핵심개념정리
비트코인과 블록체인 핵심개념정리비트코인과 블록체인 핵심개념정리
비트코인과 블록체인 핵심개념정리HANSUK KIM
 
비트코인 개인간 전자화폐시스템 요약 설명
비트코인 개인간 전자화폐시스템 요약 설명비트코인 개인간 전자화폐시스템 요약 설명
비트코인 개인간 전자화폐시스템 요약 설명Seong-Bok Lee
 
[블록체인 기업으로 가는 길] 2일차 블록체인 기술
[블록체인 기업으로 가는 길] 2일차 블록체인 기술[블록체인 기업으로 가는 길] 2일차 블록체인 기술
[블록체인 기업으로 가는 길] 2일차 블록체인 기술Jay Park
 
짱 쉬운 블록체인 안종길
짱 쉬운 블록체인   안종길짱 쉬운 블록체인   안종길
짱 쉬운 블록체인 안종길JongKil Ahn
 
Blockchain 1st bitcoin_core
Blockchain 1st bitcoin_coreBlockchain 1st bitcoin_core
Blockchain 1st bitcoin_coreihpark92
 
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병준 김
 
Oracle Blockchain_JaeHo Park_CTO
Oracle Blockchain_JaeHo Park_CTOOracle Blockchain_JaeHo Park_CTO
Oracle Blockchain_JaeHo Park_CTOOracle Korea
 
너무블록체인 - 5분만에 블록체인 이해하기.pdf
너무블록체인 - 5분만에 블록체인 이해하기.pdf너무블록체인 - 5분만에 블록체인 이해하기.pdf
너무블록체인 - 5분만에 블록체인 이해하기.pdf너무 블록체인
 
[고숙한 세미나] 블록체인 취약점 분석
[고숙한 세미나] 블록체인 취약점 분석[고숙한 세미나] 블록체인 취약점 분석
[고숙한 세미나] 블록체인 취약점 분석Jung SunWook
 
8 week: Technology of Platformless Media Blockchain
8 week: Technology of Platformless Media Blockchain8 week: Technology of Platformless Media Blockchain
8 week: Technology of Platformless Media BlockchainDaemin Park
 
V SYSTEMS Whitepaper_KR
V SYSTEMS Whitepaper_KRV SYSTEMS Whitepaper_KR
V SYSTEMS Whitepaper_KRV SYSTEMS
 
Mastering ethereum
Mastering ethereumMastering ethereum
Mastering ethereumJinWoo Lee
 
블록체인과 암호화폐 그리고 악성코드
블록체인과 암호화폐 그리고 악성코드블록체인과 암호화폐 그리고 악성코드
블록체인과 암호화폐 그리고 악성코드Jeong-woo Park
 
이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015
이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015
이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015devCAT Studio, NEXON
 
가상화폐와 블록체인 기술 Cryptocurrency & Blockchain Technology (KOR ver.)
가상화폐와 블록체인 기술 Cryptocurrency & Blockchain Technology (KOR ver.)가상화폐와 블록체인 기술 Cryptocurrency & Blockchain Technology (KOR ver.)
가상화폐와 블록체인 기술 Cryptocurrency & Blockchain Technology (KOR ver.)경록 박
 

Similaire à Blockchain 101 (20)

비트코인으로 이해하는 블록체인 기술
비트코인으로 이해하는 블록체인 기술비트코인으로 이해하는 블록체인 기술
비트코인으로 이해하는 블록체인 기술
 
코어 이더리움
코어 이더리움 코어 이더리움
코어 이더리움
 
Ethereum Basics Part 2
Ethereum Basics Part 2Ethereum Basics Part 2
Ethereum Basics Part 2
 
블록체인 한 번에 이해하기
블록체인 한 번에 이해하기블록체인 한 번에 이해하기
블록체인 한 번에 이해하기
 
비트코인과 블록체인 핵심개념정리
비트코인과 블록체인 핵심개념정리비트코인과 블록체인 핵심개념정리
비트코인과 블록체인 핵심개념정리
 
비트코인 개인간 전자화폐시스템 요약 설명
비트코인 개인간 전자화폐시스템 요약 설명비트코인 개인간 전자화폐시스템 요약 설명
비트코인 개인간 전자화폐시스템 요약 설명
 
[블록체인 기업으로 가는 길] 2일차 블록체인 기술
[블록체인 기업으로 가는 길] 2일차 블록체인 기술[블록체인 기업으로 가는 길] 2일차 블록체인 기술
[블록체인 기업으로 가는 길] 2일차 블록체인 기술
 
짱 쉬운 블록체인 안종길
짱 쉬운 블록체인   안종길짱 쉬운 블록체인   안종길
짱 쉬운 블록체인 안종길
 
Blockchain 1st bitcoin_core
Blockchain 1st bitcoin_coreBlockchain 1st bitcoin_core
Blockchain 1st bitcoin_core
 
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
 
Oracle Blockchain_JaeHo Park_CTO
Oracle Blockchain_JaeHo Park_CTOOracle Blockchain_JaeHo Park_CTO
Oracle Blockchain_JaeHo Park_CTO
 
Blockchain
BlockchainBlockchain
Blockchain
 
너무블록체인 - 5분만에 블록체인 이해하기.pdf
너무블록체인 - 5분만에 블록체인 이해하기.pdf너무블록체인 - 5분만에 블록체인 이해하기.pdf
너무블록체인 - 5분만에 블록체인 이해하기.pdf
 
[고숙한 세미나] 블록체인 취약점 분석
[고숙한 세미나] 블록체인 취약점 분석[고숙한 세미나] 블록체인 취약점 분석
[고숙한 세미나] 블록체인 취약점 분석
 
8 week: Technology of Platformless Media Blockchain
8 week: Technology of Platformless Media Blockchain8 week: Technology of Platformless Media Blockchain
8 week: Technology of Platformless Media Blockchain
 
V SYSTEMS Whitepaper_KR
V SYSTEMS Whitepaper_KRV SYSTEMS Whitepaper_KR
V SYSTEMS Whitepaper_KR
 
Mastering ethereum
Mastering ethereumMastering ethereum
Mastering ethereum
 
블록체인과 암호화폐 그리고 악성코드
블록체인과 암호화폐 그리고 악성코드블록체인과 암호화폐 그리고 악성코드
블록체인과 암호화폐 그리고 악성코드
 
이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015
이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015
이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015
 
가상화폐와 블록체인 기술 Cryptocurrency & Blockchain Technology (KOR ver.)
가상화폐와 블록체인 기술 Cryptocurrency & Blockchain Technology (KOR ver.)가상화폐와 블록체인 기술 Cryptocurrency & Blockchain Technology (KOR ver.)
가상화폐와 블록체인 기술 Cryptocurrency & Blockchain Technology (KOR ver.)
 

Plus de Jinho Yoo

현장에서 사용하는 Software production
현장에서 사용하는 Software production현장에서 사용하는 Software production
현장에서 사용하는 Software productionJinho Yoo
 
Rendering techniques
Rendering techniquesRendering techniques
Rendering techniquesJinho Yoo
 
RESTful API 설계
RESTful API 설계RESTful API 설계
RESTful API 설계Jinho Yoo
 
Spark 소개 2부
Spark 소개 2부Spark 소개 2부
Spark 소개 2부Jinho Yoo
 
Spark 소개 1부
Spark 소개 1부Spark 소개 1부
Spark 소개 1부Jinho Yoo
 
Map reduce 기본 설명
Map reduce 기본 설명Map reduce 기본 설명
Map reduce 기본 설명Jinho Yoo
 

Plus de Jinho Yoo (6)

현장에서 사용하는 Software production
현장에서 사용하는 Software production현장에서 사용하는 Software production
현장에서 사용하는 Software production
 
Rendering techniques
Rendering techniquesRendering techniques
Rendering techniques
 
RESTful API 설계
RESTful API 설계RESTful API 설계
RESTful API 설계
 
Spark 소개 2부
Spark 소개 2부Spark 소개 2부
Spark 소개 2부
 
Spark 소개 1부
Spark 소개 1부Spark 소개 1부
Spark 소개 1부
 
Map reduce 기본 설명
Map reduce 기본 설명Map reduce 기본 설명
Map reduce 기본 설명
 

Dernier

JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP Korea
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP Korea
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP Korea
 
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?Jay Park
 
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석JMP Korea
 
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP Korea
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법JMP Korea
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화JMP Korea
 

Dernier (8)

JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!
 
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
 
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
 
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화
 

Blockchain 101

  • 2. 해결하고자 하는 문제 ● 내가 주고 받은 파일/데이타가 중간에 단 한번도 위조없이 온 것인가? ● 내가 받은 파일/데이타의 기록들이 다른 사람들과 모두 같은 것인가?
  • 3. Blockchain의 정의 “A block chain, or blockchain, is a distributed database that maintains a continuously-growing list of data records hardened against tampering and revision.”
  • 4. Blockchain의 정의 ● Distributed database ○ 분산된 Database ● That maintains a continuously-growing list of data records hardened against tampering and revision ○ 위변조되지 않게 계속 늘어나는 데이타들의 목록을 담고 있다.
  • 5. 주의할 점 ● Blockchain != Bitcoin ○ Blockchain은 검증을 위해 기록을 변경불가하게 만들어 놓은 것. ○ Bitcoin은 Blockchain을 ‘전자화폐'에 활용한 경우다. ○ 응용되는 곳마다 조금씩 다른 형태를 가지고 있다. ● 핵심은 ○ 분산되어서 ○ 위변조가 되지 않는 것
  • 6. 분산형 database의 중요한 의미는? ● 내가 가진 정보의 흐름을 모두 알고 있다. ● 이 정보는 누구나 다 알고 있다. ● 이를 조작하는 것이 사실상 불가능하다. ● 모든 사람들이 검증에 참여함으로 검증/보증을 위한 중계자가 필요없다.
  • 8.
  • 9. Transaction / Block / Blockchain Transaction ● A에서 B로 ‘무언가’ 보낸다는 정보. ● 만들어지는 순간 네트워크에 뿌려진다. Block ● 일정시간동안 네트워크상에 있는 Transaction들의 집합. ● 검증이 되었을 수도 있고 안되었을 수도 있다. Blockchain ● 검증된 Block들의 집합 ● 검증된 것들은 다시 네트워크에 뿌려짐 Block Transaction Transaction Transaction Block
  • 10. Blockchain - Bitcoin에 구현된 예 Genesis block: 처음 만들어진 Block ● 각 Block은 아래 정보로 구성되어 있다. ○ 앞선 Block의 hash ■ Genesis block에서부터 현재 Block까지 영향을 미친다. ■ 각 Block들이 만들어지는 순서에 따라 새롭게 hash가 만들어지므로 중간에 위변조가 일어나면 달라질 수 밖에 없다. ○ Timestamp: 거래 시점 ○ Nonce: Hash함수를 이용하여 결과값을 만들 때 특정한 수를 더 첨가해서 결과를 만드는 값. (검증되야 나옴) ■ Mining 이란 이 값을 찾는 것이다. ○ Merkle tree라는 트리 구조의 root값 .
  • 11. Blockchain은 과거 정보를 어떻게 다 가지고 다닐까? ● 모든 Transaction데이타를 Block안에 ‘정말’ 가지고 있다. ○ Merkle tree 등의 방법으로 필요한 데이타만 담음. ○ 실제 Transaction data도 크기가 얼마 안됨. 참고 BlockBlock tt-1
  • 12. Blockchain은 과거 정보를 어떻게 다 가지고 다닐까? ● 앞선 Block의 Hash값을 현재 Block이 가지고 있다. ● 해당 Block내의 Transaction을 가지고 계산한 Merkle tree root hash를 각 Block마다 담고 있다. ● 전체 거래 정보가 의외로 작다. BlockBlock Block[t-1]의 Hash tt-1 Merckle tree root Hash
  • 13. Merkle tree ● 모든 Block에 대한 Hash를 ‘요약'해주는 Binary tree 구조 ● 모든 Block은 Merkle tree의 root에 해당하는 Hash를 가지고 다닌다. ● 모든 Block안의 Hash는 leaf에 있는 node들의 hash를 hash한 값이다. ● Block chain이 길수록 root에서 아래로 내려온다. ● 이 Hash값이 이상한지는 바로 위의 node가 가진 Hash를 현재 같은 level에 있는 다른 node와의 hash계산과 같은지 아닌지를 비교함으로 확인한다. ● 매번 Tx가 증가할 때마다 Block내의 Merkle tree root를 다시 계산해서 해당 Block에 써야 한다.
  • 14. Blockchain은 검증은 어떻게 하나? ● Proof-of-work ○ 블록을 증명하는 이른바 ‘채굴자'가 일을 함으로 증명 ■ Ex) Bitcoin의 Mining. ● Proof-of-stake: ○ 소유자가 자신이 가진 자산(Stake)를 스스로 증명해야 한다. ○ 공격에 방어하기 위해 블록체인 전체 컨트롤하는 Master public key를 두고 있다. ● Consensus-by-bet: ○ 네트워크에 참여하는 사람들의 동의를 통해서 승인 ○ 참여하는 노드들은 보증금을 걸고 승인에 참여. ○ 이를 위한 인센티브/처벌 시스템을 가동
  • 15. Blockchain은 검증은 어떻게 하나? -2 ● Trust ○ 네트워크에 참여하는 노드들의 투표와 동의를 통해서 승인 ○ 기본적으로 ‘믿을 수 있는’ node들만 있다고 가정 ○ Byzantine agreement protocol을 기반으로 이용 ● Membership ○ 소유자가 자신이 가진 자산(Stake)를 스스로 증명해야 한다. ○ 공격에 방어하기 위해 블록체인 전체 컨트롤하는 Master public key를 두고 있다.
  • 16. Mining(채굴) - Bitcoin이나 Ethereum의 경우 PoW에서 검증작업을 해주고 그 댓가로 보상을 받는 것 보상 자체가 핵심이 아니다… -.-;;
  • 17. Blockchain은 정보를 어떻게 담아다니나? ● 각 Block안의 ‘거래'정보는 코드로 작성되어 있다. ● 이 코드들을 실행함으로 거래를 유효화한다. Block Script
  • 18. Blockchain은 정보를 어떻게 담아다니나? - Bitcoin● 각 Block안의 ‘거래'정보는 코드로 작성되어 있다. ● 이 코드들을 실행함으로 거래를 유효화한다. ● 아주 아주 간단한 Stack기반 언어로 구성 ● 대부분의 경우 ‘A가 B에게 지불하는 형식 ○ Loop가 없다. ● OpCode처럼 표현되어 있다 ● 잠금 스크립트, 해제 스크립트로 구성. ○ 잠금 스크립트: ■ 예상 지출, 향후 출력값을 소비하기 위해 충족되어야 하는 조건명시 ○ 해제 스크립트 ■ 잠금 스크립트가 출력값에 놓아 둔 조건을 해결하거나 충족시켜서 출력값이 소비될 수 있게 하는 스크립트 ● 자세한 것은 여기
  • 19. Blockchain은 정보를 어떻게 담아다니나? -Ethereum● 각 Block안의 ‘거래'정보는 코드로 작성되어 있다. ● 이 코드들을 실행함으로 거래를 유효화한다. ● Solidity라는 언어로 구성. ● Loop도 있고 일반적인 Computer language스럽다. ○ Compile되서 OpCode로 돌아다닌다. ● 돈거래 외에도 여러가지를 코딩하기가 쉽다. ● Gas라는 개념이 있어서 무한정 반복할 수 없다. ○ Code가 돌아가려고 하면 gas를 소비해야 한다. ○ Gas price를 transaction을 만든 사람이 지정 ■ 이 사람이 gas_price * gas값을 지불. ○ 실행하다가 Gas가 떨어지면 동작하는 것을 중지.
  • 20. 화폐 개념없이 ‘원장'개념만 있는 Blockchain - Hyperledger ● PoW방식이 아니라 Consneus 방식으로 거래의 신뢰 보증 ● Chaincode라는 방식으로 Contract구현 ● 자세한 사항은 여기 참조 ● https://www.hyperledger.org/
  • 21. Blockchain으로 뭔가 만들어 보려 한다면 고려할 것 ● 뭘 담아서 Block을 구성할 것인가? ● 화폐 개념 넣을 것인가 말것인가? ● 검증과정을 어떻게 구성할 것인가? PoW? PoS?
  • 22. Reference ● Deloitte, Blockchain Enigma. Paradox. Opportunity ● Korbit, 블록체인의 기술적 이해 및 도입을 위한 첫걸음 ● Ethereum white paper ● Solidity official document ● Blockchain size ● Hyperledger white paper ● https://www.hyperledger.org/