본문 바로가기
블록체인

#10. 누구나 이해할 수 있는 블록체인 작동원리 25단계

by 캔버스토리 Canvastory 2022. 9. 1.

요약: 해시 함수의 의미와 특징

'블록체인 작동원리 25단계'는 논리적 흐름에 따라 작성된 시리즈물이다. 기반 지식이 있다면 필요한 내용만 골라 보는 것도 가능하겠지만, 생소하다면 처음부터 순서대로 읽는 것을 추천한다.

 

- 처음 글 : #0. 누구나 이해할 수 있는 블록체인 작동원리 25단계

- 이전 글 : #9. 누구나 이해할 수 있는 블록체인 작동원리 25단계

 

셋째 마당 (8~21단계) 키워드: 블록체인의 주요 개념과 기술

 

[10단계] 데이터 해싱하기. 지문처럼 만들어 데이터 식별하기

 

 해시 함수는 어떤 데이터든 입력한 길이에 상관없이 일정한 길이의 수로 변환한다. 해시값(=해시 수)0~9까지의 수와 함께 10~15까지의 수를 나타내기 위해 A~F까지의 문자도 사용한다.

 

 생성하는 해시값의 길이별로 종류가 다른 여러 해시 함수가 존재한다. MD5, SHA1, SHA256, SHA512 등의 해시 함수가 있으며 뒤로 갈수록 길이가 긴 해시값을 출력한다.

 

 해시 함수를 적용해볼 수 있는 사이트: http://www.blockchain-basics.com/HashFunctions.htm

 암호화 해시 함수는 모든 데이터의 디지털 지문을 생성하는 매우 중요한 해시 함수의 그룹이다.

 

 암호화 해시 함수의 특징은 다음과 같다.
 -
모든 데이터에 대한 해시값 즉시 제공: ①어떤 종류의 데이터든 해시값을 생성할 수 있다 + ②해시 함수는 해시값 계산을 빠르게 할 수 있다.
 -
확정적: 동일하게 입력했을 때 동일하게 출력해야 한다.
 -
의사 난수: 입력 데이터가 변하면 해시값이 예측 불가하게 변해야 한다. 입력에 아주 작은 차이가 있더라도 해시값은 크게 변해 항상 예측 불가능해야 한다.
 -
일방 함수(=비가역 함수): 출력으로 입력을 알 수 있는 방법이 존재하지 않는 함수다. 해시값을 이용해 원래 입력 값을 복원하는 것이 불가능하다.
 -
충돌 회피: 서로 다른 데이터가 동일한 해시값을 가질 확률이 매우 낮으면 그 해시 함수를 충돌 회피라 한다. 이런 해시 함수로 생성된 해시값은 고유성을 지녀 데이터를 식별하는 데 사용할 수 있다.

 

 데이터에 대한 해시 함수의 응용은 다음과 같은 패턴으로 달성할 수 있다.
 -
반복 해싱: 해시값을 다시 해시 함수에 입력하여 그에 해당하는 또 다른 해시 값을 얻는다.
 - 독립 해싱: 각 데이터에 대해 독립적으로 해시 함수를 적용하는 방법.
 -
결합 해싱: 독립된 데이터들을 합쳐 하나의 데이터로 만들고 합쳐진 데이터의 해시값을 계산한다. 개별 데이터가 크지 않을 때만 사용해야 하고, 개별 데이터의 해시값은 알 수 없다는 단점이 있다.
 -
순차적 해싱: 새로운 데이터가 추가될 때마다 해시값을 즉시 경신하는 것이다. 결합 해싱과 반복 해싱을 동시에 사용한 것이다. , 기존의 해시값이 새로운 데이터와 합쳐져서 해시 함수에 건네지고 해시값이 경신되는 방식이다. 단일 해시값만 유지하면서 새로운 데이터가 도착하는 즉시 해시값을 경신하고자 할 때 유용하다. 특정 시점의 해시값으로 해당 데이터가 도착한 시점을 추적할 수 있다는 장점도 있다.
 -
계층적 해싱: 두 해시값에 결합 해싱을 적용하면 최상위에 단일 해시값을 가지는 작은 계층이 형성된다. 결합 해싱과 유사하게 데이터 묶음에서 단일 해시값을 얻고자 하는 것이다. 계층적 해싱은 (길이가 매번 변하는 입력이 아니라) 늘 일정한 길이의 해시값을 합치므로 상당히 효율적이다. 제공된 모든 데이터를 한꺼번에 결합하는 결합 해싱과 달리 계층적 해싱은 매 단계에서 오직 2개의 해시값만 결합한다.

 

 

※  함께 읽으면 좋은 글

[독서 기록] 최고의 블록체인 입문서 (블록체인 무엇인가?)

[독서 기록] 블록체인과 암호화폐를 가볍게 접하는 입문서 (만화로 배우는 블록체인)

댓글