22
BLOCKCHAIN 101 JINHO YOO

Blockchain 101

Embed Size (px)

Citation preview

Page 1: Blockchain 101

BLOCKCHAIN 101JINHO YOO

유진호
좀더 재밌게, 뭔가 설명이 이상하다.
Page 2: Blockchain 101

해결하고자 하는문제

• 내가주고받은파일 / 데이타가중간에단한번도 위조없이온것인가 ?

• 내가받은파일 / 데이타의 기록들이다른사람들과

모두같은것인가 ?

Page 3: Blockchain 101

BLOCKCHAIN 의정의

“A block chain, or blockchain, is a distrib-uted database that maintains a continu-ously-growing list of data records hard-ened against tampering and revision.”

Page 4: Blockchain 101

BLOCKCHAIN 의정의

• distributed database • 분산된 Database

• that maintains a continuously-growing list of data records hardened against tampering and revision• 위변조되지않게계속늘어나는데이타들의

목록을담고있다 .

Page 5: Blockchain 101

주의할점

• Blockchain != Bitcoin• Blockchain 은검증을위해기록을변경불가하게만들어놓은것 . • Bitcoin 은 Blockchain ‘을 전자화폐 ' 에활용한경우다 . • 응용되는곳마다 조금씩다른형태 를가지고있다 .

• 핵심은• 분산되어서• 위변조가되지않는것

Page 6: Blockchain 101

분산형 DATABASE 의중요한의미는 ?

• 내가가진정보의흐름을모두알고있다 . • 이정보는누구나다알고있다 . • 이를조작하는것이사실상불가능하다 . • 모든사람들이검증에참여함으로검증 / 보증을위한

중계자가필요없다 .

Page 7: Blockchain 101

EX) BITCOIN 에서사용된 BLOCKCHAIN

Page 8: Blockchain 101
Page 9: Blockchain 101

TRANSACTION / BLOCK / BLOCKCHAIN

Transaction• A 에서 B ‘로

’ 무언가보낸다는정보 .

• 만들어지는순간 네트워크에

뿌려진다 .

Block • 일정시간동안

네트워크상에있는Transaction 들의집합 .

• 검증이되었을수도 있고안되었을수도

있다 .

Blockchain• 검증된 Block 들의

집합• 검증된것들은다시

네트워크에뿌려짐

Block

TransactionTransaction

Transaction

Block

Page 10: Blockchain 101

BLOCKCHAIN - BITCOIN 에구현된예• 각 Block 은아래정보로구성되어있다 . • 앞선 Block 의 hash

• Genesis block 에서부터현재 Block 까지영향을미친다 .

• 각 Block 들이만들어지는순서에따라새롭게 hash 가만들어지므로중간에위변조가일어나면달라질 수밖에없다 .

• Timestamp: 거래시점• Nonce: Hash 함수를이용하여결과값을만들때특정한

수를더첨가해서결과를만드는값 . ( 검증되야나옴 )• Mining 이란이값을찾는것이다 .

• Merkle tree 라는트리구조의 root 값 .

• Block 의크기 : 약 200 Bytes Genesis block: 처음만들어진

Block

Page 11: Blockchain 101

BLOCKCHAIN 은과거정보를어떻게다가지고다닐까 ?

• ‘ ’ 모든데이타를 정말 가지고있다 . • Merkle tree 등의방법으로필요한데이타만담음 . • 실제 Transaction data 도크기가얼마안됨 . 참고

BlockBlock

tt-1

Page 12: Blockchain 101

BLOCKCHAIN 은과거정보를어떻게다가지고다닐까 ?

• 앞선 Block 의 Hash 값을현재 Block 이가지고있다 . • Merkle tree 의 root hash 를담고있다 . • 전체거래정보가의외로작다 .

BlockBlock

Block[t-1] 의Hash

tt-1

Merckle tree root Hash

Page 13: Blockchain 101

MERKLE TREE

• 모든 Block 에대한 Hash ‘를 요약 ' 해주는Binary tree 구조

• 모든 Block 은 Merkle tree 의 root 에 해당하는 Hash 를가지고다닌다 .

• 이 Hash 는 leaf 에있는 node 들의 hash 를 hash 한값이다 .

• Block chain 이길수록 root 에서아래로내려온다 .

• 이 Hash 값이이상한지는바로위의 node 가가진 Hash 를현재같은 level 에있는

다른 node 와의 hash 계산과같은지 아닌지를비교함으로확인한다 .

Page 14: Blockchain 101

BLOCKCHAIN 은검증은어떻게하나 ?

• Proof-of-work• ‘블록을증명하는이른바 채굴자 ' 가일을함으로증명

• Ex) Bitcoin 의 Mining. • Proof-of-stake:

• 소유자가자신이가진자산 (Stake) 를스스로증명해야한다 .

• 공격에방어하기위해블록체인전체컨트롤하는 Master public key 를두고있다 .

• Consensus-by-bet:

• 네트워크에참여하는사람들의동의를통해서승인

• 참여하는노드들은보증금을걸고승인에참여 .

• 이를위한인센티브 / 처벌시스템을가동

Page 15: Blockchain 101

BLOCKCHAIN 은검증은어떻게하나 ? -2

• Trust• 네트워크에참여하는노드들의투표와동의를통해서승인• ‘ ’ 기본적으로 믿을수있는 node 들만있다고가정• Byzantine agreement protocol 을기반으로이용

• Membership • 소유자가자신이가진자산 (Stake) 를스스로증명해야한다 .

• 공격에방어하기위해블록체인전체컨트롤하는 Master public key 를두고있다 .

Page 16: Blockchain 101

MINING(채굴 ) - BITCOIN 이나 ETHEREUM 의경우

PoW 에서검증작업을해주고그댓가로보상을 받는것

… 보상자체가핵심이아니다 -.-;;

Page 17: Blockchain 101

BLOCKCHAIN 은정보를어떻게담아다니나 ?

• 각 Block ‘안의 거래 ' 정보는코드로작성되어

있다 . • 이코드들을실행함으로

거래를유효화한다 .

Block

Script

Page 18: Blockchain 101

BLOCKCHAIN 은정보를어떻게담아다니나 ? - BITCOIN

• 각 Block ‘안의 거래 ' 정보는코드로작성되어

있다 . • 이코드들을실행함으로

거래를유효화한다 .

• 아주아주간단한 Stack 기반언어로구성

• ‘대부분의경우 A 가 B 에게지불하는형식

• Loop 가없다 . • OpCode 처럼표현되어있다• 잠금스크립트 , 해제스크립트로구성 .

• 잠금스크립트 :• 예상지출 , 향후출력값을소비하기

위해충족되어야하는조건명시• 해제 스크립트

• 잠금스크립트가출력값에놓아둔 조건을해결하거나충족시켜서

출력값이소비될수있게하는 스크립트

• 자세한것은여기

Page 19: Blockchain 101

BLOCKCHAIN 은정보를어떻게담아다니나 ? -ETHEREUM

• 각 Block ‘안의 거래 ' 정보는코드로작성되어

있다 . • 이코드들을실행함으로

거래를유효화한다 .

• Solidity 라는언어로구성 .• Loop 도있고일반적인 Computer lan-

guage스럽다 . • Compile 되서 OpCode 로돌아다닌다 .

• 돈거래외에도여러가지를코딩하기가쉽다 .

• Gas 라는개념이있어서무한정반복할수없다 .

• Code 가돌아가려고하면 gas 를 소비해야한다 .

• Gas price 를 transaction 을만든사람이지정

• 이사람이 gas_price * gas 값을지불 .

• 실행하다가 Gas 가떨어지면동작하는 것을중지 .

• 자세한설명은여기 참조 .

Page 20: Blockchain 101

‘화폐개념없이 원장 ' 개념만있는 BLOCKCHAIN - HYPER-LEDGER

• PoW 방식이아니라 Consneus 방식으로 거래의신뢰보증

• Chaincode 라는방식으로 Contract 구현

• 자세한사항은여기 참조• https://www.hyperledger.org/

Page 21: Blockchain 101

BLOCKCHAIN 으로뭔가만들어보려한다면고려할것

• 뭘담아서 Block 을구성할것인가 ? • 화폐개념넣을것인가말것인가 ?• 검증과정을어떻게구성할것인가 ? PoW? PoS?