공대생 정리노트
3강 - 해시 함수, Merkle Trees 본문
오늘 강의에서는 주로 해시 함수와 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
이전 블록 헤더의 해시 값을 블록이 가지고 있어 연결이 가능하다. (순서를 정할 수 있다)
블록 헤더가 가진 각 값들은 중요한데, 뒷 강의에서 다룰 것이다.
Merkle Tree
block에 있는 transaction들을 바탕으로 만들어진다.
해시 함수의 특성으로 데이터가 조금만 바뀌어도 루트 값이 크게 바뀌게 된다.
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 등을 통해 비트코인 주소를 만든다.
'블록체인 > MIT ocw : blockchain and money' 카테고리의 다른 글
7강 : 블록체인 기술이 직면한 문제 (1) | 2021.12.17 |
---|---|
6강 : 스마트 컨트랙트 (0) | 2021.12.11 |
5강 - 트랜잭션과 UTXO (1) | 2021.12.07 |
4강 - Proof of Work, Consensus (0) | 2021.11.27 |
2강 - 돈의 역사 (0) | 2021.11.25 |