공부 내용 정리

해시(Hash)란?

blockchoin 2025. 4. 24. 13:21


1. 해시의 정의

해시란 데이터 입력받아 요약하고, 고정된 크기의 출력값을 만드는 알고리즘을 뜻합니다. 

 

예시)

"Hello" → 185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969


2. 해시 생성 과정 (SHA 256 기준)

 

(1) 입력값을 아스키 코드로 변환 -> 이진수로 변환

(2) Padding :  입력값을 512비트로 늘린다.

  • 입력값의 이진수를 앞에서 부터 추가
  • 그 뒷 자리 부터는 1을 추가 후, 64비트 전까지는 0을 추가
  • 마지막 64비트에는 입력값의 비트 길이를 추가 

(3) 8개의 초기 해시값 설정 (공식ㅇ로 지정 되어있음)

(4) 512비트 블록을 32비트 메시지 워드로 16등분을  한다.

(5) 반복연산 64번 반복 

  • 메시지 워드 + 고정된 상수 + 초기값을 조합
  • 비트 연산 진행 (비트 쉬프트, AND, OR, XOR)
  • 초기값을 갱신하며 64번 반복
  • 무작위성을 만드는데 가장 중요한 과정

(6) 마지막으로 나온 값으로 최종 해시 값을 만들어낸다.


3. 해시의 특징

  • 고정된 길이
  • 빠른 계산
  • 충돌 저항성 (이론상 충돌이 가능하지만, 현실적으로 불가능)
  • 역산 불가능
  • 민감성 (1비트만 달라도 완전히 다른 해시값 나옴)
  • 데이터 무결성 

4. 블록체인에서의 해시 활용

(1) 블록의 구조 

  • 블록 버전
  • 이전 블록의 해시값
  • 머클 루트 : 이 블록의 거래들을 해시값 하나로 요약한 값
  • 타임 스탬프 : 블록 생성 시간
  • 난이도 : 블록 체굴 난이도 (보통 10분에 1개 생성 되도록 난이도가 자동 조정)
  • 논스: 채굴자가 조정하는 숫자 
  • 블록 바디 : 트랜잭션(거래정보)들이 기록되는 곳

(2) 해시 활용

  • 블록 끼리의 연결 : 블록의 거래 내용을 무단으로 수정시, 모든 블록의 해시값이 바뀌어, 조작 불가능
  • 채굴 난이도 조절 : 채굴자는 블록 헤더 + 논스 값을 조합해, 목표값 이하의 해시 값이 나와야 블록 생성이 가능하다. (현재 기준 0이 18개 필요하다.)
  • 머클 루트 : 거래들 각각의 해시 값들을 두개 씩 묶어 다시 하나의 해시로 만드는 과정을 반복하여, 하나의 해시만을 남긴다.

5. 해시의 중요성

블록체인의 핵심 가치인 불변성보안은 해시 덕분입니다. 

해시 알고리즘이 만든 "수학적 신뢰" 는 중앙시스템 없이도 금용 거래를 가능케한 핵심적인 기술 입니다. 

 

'공부 내용 정리' 카테고리의 다른 글

머클 트리란?  (0) 2025.04.25
트랜잭션이란?  (2) 2025.04.25
디지털 서명이란?  (2) 2025.04.24
비트코인의 탄생 스토리  (0) 2025.04.23
닉슨 쇼크의 장기적 영향  (0) 2025.04.22