공대생 정리노트

3강 - 해시 함수, Merkle Trees 본문

블록체인/MIT ocw : blockchain and money

3강 - 해시 함수, Merkle Trees

woojinger 2021. 11. 26. 01:11

출처 : https://ocw.mit.edu/courses/sloan-school-of-management/15-s12-blockchain-and-money-fall-2018/video-lectures/session-3-blockchain-basics-cryptography/


오늘 강의에서는 주로 해시 함수와 Merkle Trees를 다뤘다.

Cryptographic Hash Function

- 어느 사이즈의 input x가 들어와도 고정된 사이즈의 output이 반환된다(Hash).

- 같은 값의 x이 같은 해시함수를 통과하면 같은 해시가 나온다.

- 효율적으로 계산된다.

- 해시 결과를 가지고 input x를 추정하기 굉장히 어렵다. (Preimage resistant)

- Hash(x) = Hash(y) 인 x, y를 추정하기 굉장히 어렵다. (Collision resistant)

- input x 값이 조금만 바뀌어도 Hash(x) 값이 많이 바뀌었다. (Avalanche effect)

- Hash(x)와 x의 일부를 알아도 나머지 x의 값을 찾기 어렵다. (Puzzle friendless)

 

다른 값의 두 인풋이 같은 해시를 가리키는 것이 가능하지만 확률은 1/10^40이다

Block chain

블록헤더의 구성

- Version

- Previous Block hash

- Merkle Root hash

- Timestamp

- Difficulty target

- Nounce

출처 : https://ocw.mit.edu/courses/sloan-school-of-management/15-s12-blockchain-and-money-fall-2018/video-lectures/session-3-blockchain-basics-cryptography/ 수업자료

이전 블록 헤더의 해시 값을 블록이 가지고 있어 연결이 가능하다. (순서를 정할 수 있다)

블록 헤더가 가진 각 값들은 중요한데, 뒷 강의에서 다룰 것이다.

 

 

Merkle Tree

block에 있는 transaction들을 바탕으로 만들어진다.

출처 : https://ocw.mit.edu/courses/sloan-school-of-management/15-s12-blockchain-and-money-fall-2018/video-lectures/session-3-blockchain-basics-cryptography/ 수업자료

해시 함수의 특성으로 데이터가 조금만 바뀌어도 루트 값이 크게 바뀌게 된다.

 

Public key와 Private key

랜덤한 숫자에서 Public Key와 Private Key를 만들 수 있다.

Private Key에서 Public Key를 만들 수 있으나 Public Key에서 Private Key를 만들 수는 없다.

 

사용자가 자신의 개인 Private Key와 메시지를 통해 Digital Signiture를 만든다.

Signiture를 받으면 Public Key를 통해 Signiture가 유효한지 검증한다.

 

 

비트코인 주소는 Private Key와 Public Key를 통해서 만들어진다.

Private Key는 돈을 송금할 때 필요하다. 이 Private Key를 통해 Public Key를 만들고, 이 Public Key를 SHA256, RIPEMD-160 등을 통해 비트코인 주소를 만든다.

 

Comments