본문 바로가기
블록체인/암호학

Hash 함수를 알아보자

by dev_mac-_- 2018. 11. 27.

Hash 함수를 알아보자

블록체인을 공부하다보면 (비트코인, 이더리움) Hash라는 단어를 자주 볼 수 있다. 물론, 블록체인 뿐만 아니라 해시는 보안, 암호분야에서도 널리쓰이는 개념이다. 


Hash 함수 정의

임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수

Hash("비트코인") = f386c9a9402b1adcfccd9d7f1b18aa6c60a583e82fca35b59029f4bcc776649e

Hash("이더리움") = 46f15f1dbcafc4e74402625e6af1a1c2f8675911845381620a07c20f12300d72

이 사이트를 클릭하면 SHA-256 Hash를 변환해볼 수 있다.

SHA-256 Hash함수의 예를 들어보았다. 어떠한 입력값이 오더라도 출력값은 256bit = 32byte 길이의 출력값을 생성한다.


해시함수가 왜 블록체인에 유용하게 쓰일까?

1. 눈사태효과 (Avalanche Effect) : 원본 데이터에 아주 작은 변화만 있어도 완전히 다른 해시값이 만들어진다. 만약, 악의적인 이용자가 블록체인에서 거래정보를 변경한다면 해시정보가 바뀌게 되어 원본 데이터의 변화를 쉽게 감지할 수 있다.

이 부분에서 비트코인은 머클트리를 사용한다. (해시트리라고 도함)

자세히 설명하자면 머클트리 루트노드는 Child 노드들의 해시값을 바탕으로 만들어진 값인데 Child 노드들의 해시가 위 변조된다면 그 위 Parent 노드들의 해시 값까지 영향을 받는다. 

2. 단방향 변환 : 해시함수는 양방향 변환이 불가능하다. 원래의 데이터값을 알지 못하는 것이다. 


<비트코인에서 쓰이는 예>

댓글