Hash 함수를 알아보자
블록체인을 공부하다보면 (비트코인, 이더리움) Hash라는 단어를 자주 볼 수 있다. 물론, 블록체인 뿐만 아니라 해시는 보안, 암호분야에서도 널리쓰이는 개념이다.
Hash 함수 정의
임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수
Hash("비트코인") = f386c9a9402b1adcfccd9d7f1b18aa6c60a583e82fca35b59029f4bcc776649e
Hash("이더리움") = 46f15f1dbcafc4e74402625e6af1a1c2f8675911845381620a07c20f12300d72
이 사이트를 클릭하면 SHA-256 Hash를 변환해볼 수 있다.
SHA-256 Hash함수의 예를 들어보았다. 어떠한 입력값이 오더라도 출력값은 256bit = 32byte 길이의 출력값을 생성한다.
해시함수가 왜 블록체인에 유용하게 쓰일까?
1. 눈사태효과 (Avalanche Effect) : 원본 데이터에 아주 작은 변화만 있어도 완전히 다른 해시값이 만들어진다. 만약, 악의적인 이용자가 블록체인에서 거래정보를 변경한다면 해시정보가 바뀌게 되어 원본 데이터의 변화를 쉽게 감지할 수 있다.
이 부분에서 비트코인은 머클트리를 사용한다. (해시트리라고 도함)
자세히 설명하자면 머클트리 루트노드는 Child 노드들의 해시값을 바탕으로 만들어진 값인데 Child 노드들의 해시가 위 변조된다면 그 위 Parent 노드들의 해시 값까지 영향을 받는다.
2. 단방향 변환 : 해시함수는 양방향 변환이 불가능하다. 원래의 데이터값을 알지 못하는 것이다.
<비트코인에서 쓰이는 예>
'블록체인 > 암호학' 카테고리의 다른 글
모듈러 연산 (Modular arithmetic) (5) | 2019.04.13 |
---|---|
기초 암호학(4) - ECC(타원곡선 암호화 알고리즘) (3) | 2019.04.13 |
기초 암호학(3) - 공개키 암호 (RSA, Diffie-Helmman) (1) | 2019.03.27 |
기초 암호학(2) - AES (0) | 2019.03.01 |
기초 암호학(1) - DES (3) | 2019.02.24 |
댓글