O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Blockchain 101

Blockchain의 아주 기초적인 내용들을 담아봤습니다.

  • Seja o primeiro a comentar

Blockchain 101

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

    Seja o primeiro a comentar

    Entre para ver os comentários

  • hanyoungbin

    Dec. 20, 2017
  • sung-young

    Dec. 21, 2017
  • ubiqer

    Dec. 21, 2017
  • gloryfor

    Dec. 21, 2017
  • SongChihyung

    Dec. 21, 2017
  • channprj

    Dec. 21, 2017
  • LuisPigu

    Dec. 21, 2017
  • sooya

    Dec. 22, 2017
  • franticlion

    Dec. 22, 2017
  • leosace

    Dec. 23, 2017
  • SangHyupLee

    Dec. 24, 2017
  • CheolungChoi

    Jan. 13, 2018

Blockchain의 아주 기초적인 내용들을 담아봤습니다.

Vistos

Vistos totais

2.987

No Slideshare

0

De incorporações

0

Número de incorporações

8

Ações

Baixados

28

Compartilhados

0

Comentários

0

Curtir

12

×