요약: 해시 함수의 의미와 특징
'블록체인 작동원리 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개의 해시값만 결합한다.
※ 함께 읽으면 좋은 글
'블록체인' 카테고리의 다른 글
#12. 누구나 이해할 수 있는 블록체인 작동원리 25단계 (1) | 2022.09.04 |
---|---|
#11. 누구나 이해할 수 있는 블록체인 작동원리 25단계 (0) | 2022.09.03 |
#9. 누구나 이해할 수 있는 블록체인 작동원리 25단계 (0) | 2022.08.30 |
#8. 누구나 이해할 수 있는 블록체인 작동원리 25단계 (2) | 2022.08.29 |
#7. 누구나 이해할 수 있는 블록체인 작동원리 25단계 (1) | 2022.08.27 |
댓글