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
Blockchain 101
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/

More Related Content

PPTX
비트코인에 관한 교육자료 입니다.
PPTX
Blockchain Basic Concept Theory (Beginner Version) / 초보자를 위한 블록체인 기초 개념 이론
PDF
블록체인 개요
PDF
짱 쉬운 블록체인
PDF
Bitcoin 2.0(blockchain technology 2)
PDF
블록 체인 기술 원리, 이용 현황, 전망과 활용 분야.
PPTX
Proof of work
PDF
블록체인 이해와 활용
비트코인에 관한 교육자료 입니다.
Blockchain Basic Concept Theory (Beginner Version) / 초보자를 위한 블록체인 기초 개념 이론
블록체인 개요
짱 쉬운 블록체인
Bitcoin 2.0(blockchain technology 2)
블록 체인 기술 원리, 이용 현황, 전망과 활용 분야.
Proof of work
블록체인 이해와 활용

What's hot (20)

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

Similar to Blockchain 101 (20)

PPTX
Block chain introduction slideshare
PDF
코어 이더리움
PPTX
비트코인으로 이해하는 블록체인 기술
PPTX
미래-상상 현실이 되다_4_블록체인의 현재와 미래
PPTX
Block chain architecture and hyperledger fabric overview
PDF
가상화폐와 블록체인 기술 Cryptocurrency & Blockchain Technology (KOR ver.)
PDF
Bitcoin Basics Part4
PPTX
개발자가 설명하는 블록체인 세미나
PDF
Bitcoin satoshi kor_chewers
PDF
비트코인과 블록체인 핵심개념정리
PPTX
블록체인 이슈와 전망 New db
PDF
Bitcoin Basics Part3
PDF
Blockchain phenonmenon why young people love it?
PDF
블록체인 한 번에 이해하기
PDF
Blockchain internet economy
PPTX
[고숙한 세미나] 블록체인 취약점 분석
PDF
암호화폐로 시작하는 블록체인 이야기 - 2018년 10월의 하늘. 목포어린이도서관
PDF
[Partner TechForum] 금융 서비스를 위한 블록체인 구축사례 소개
PDF
Blockchain 1st bitcoin_core
PDF
비트코인 개인간 전자화폐시스템 요약 설명
Block chain introduction slideshare
코어 이더리움
비트코인으로 이해하는 블록체인 기술
미래-상상 현실이 되다_4_블록체인의 현재와 미래
Block chain architecture and hyperledger fabric overview
가상화폐와 블록체인 기술 Cryptocurrency & Blockchain Technology (KOR ver.)
Bitcoin Basics Part4
개발자가 설명하는 블록체인 세미나
Bitcoin satoshi kor_chewers
비트코인과 블록체인 핵심개념정리
블록체인 이슈와 전망 New db
Bitcoin Basics Part3
Blockchain phenonmenon why young people love it?
블록체인 한 번에 이해하기
Blockchain internet economy
[고숙한 세미나] 블록체인 취약점 분석
암호화폐로 시작하는 블록체인 이야기 - 2018년 10월의 하늘. 목포어린이도서관
[Partner TechForum] 금융 서비스를 위한 블록체인 구축사례 소개
Blockchain 1st bitcoin_core
비트코인 개인간 전자화폐시스템 요약 설명
Ad

More from Jinho Yoo (7)

PDF
LLM 프로젝트를 성공적으로 수행하기 위한 질문들.pdf
PPTX
현장에서 사용하는 Software production
PDF
Rendering techniques
PDF
RESTful API 설계
PDF
Spark 소개 2부
PPTX
Spark 소개 1부
PPTX
Map reduce 기본 설명
LLM 프로젝트를 성공적으로 수행하기 위한 질문들.pdf
현장에서 사용하는 Software production
Rendering techniques
RESTful API 설계
Spark 소개 2부
Spark 소개 1부
Map reduce 기본 설명

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의 중요한 의미는? ● 내가 가진 정보의 흐름을 모두 알고 있다. ● 이 정보는 누구나 다 알고 있다. ● 이를 조작하는 것이 사실상 불가능하다. ● 모든 사람들이 검증에 참여함으로 검증/보증을 위한 중계자가 필요없다.
  • 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/