본문 바로가기

가상화폐의 기초

7화. 해시(Hash)란? — 블록을 잇는 디지털 자물쇠

지난 화에서 블록체인은 "블록들을 사슬처럼 연결한 디지털 장부"라고 배웠습니다. 그런데 이때 한 가지 의문이 남았을 겁니다. "도대체 어떻게 블록들을 연결한다는 거지?"

답은 해시(Hash)입니다. 비트코인의 거의 모든 보안 기능은 이 해시 위에서 작동합니다. 채굴, 블록 연결, 위변조 방지, 디지털 서명까지 전부 해시가 핵심이죠. 이 글에서는 해시가 정확히 무엇이고 왜 그렇게 강력한지 풀어드립니다.

해시의 정의

해시는 "어떤 입력값이든 받아서, 정해진 길이의 고유한 출력값으로 바꿔주는 함수"입니다.

쉽게 말해 디지털 지문 만드는 기계라고 보시면 됩니다. 사람마다 지문이 다르듯, 입력값이 다르면 해시값도 무조건 다릅니다.

비트코인이 사용하는 해시 함수는 SHA-256(Secure Hash Algorithm 256-bit)이라는 알고리즘입니다. 이름 그대로 어떤 입력이든 256비트(64자리 16진수)의 출력으로 변환합니다.

예시를 보겠습니다.

입력: "안녕"
SHA-256 결과: 86c3f3e9...(64자리)

입력: "비트코인"
SHA-256 결과: 3a7bd3e2...(64자리, 완전히 다름)

입력: "안녕!" ← 느낌표 하나만 추가
SHA-256 결과: f4d9c8a1...(완전히 다른 값)

흥미로운 점은 입력이 한 글자든 책 한 권 분량이든 출력 길이는 항상 같다는 것입니다.

해시의 4가지 핵심 특성

해시 함수가 비트코인의 보안 핵심이 되는 이유는 다음 네 가지 특성 때문입니다.

1. 단방향성(One-way)

해시는 한 방향으로만 작동합니다. 입력 → 해시값은 1초도 안 걸리지만, 해시값 → 원래 입력을 역산하는 것은 사실상 불가능합니다. 슈퍼컴퓨터로도 우주 나이만큼 시간이 걸리는 수준이죠.

이 특성 덕분에 비밀번호를 해시값으로만 저장하거나, 거래 내역을 안전하게 봉인할 수 있습니다.

2. 결정성(Deterministic)

같은 입력은 언제, 어디서, 누가 돌리든 항상 같은 해시값을 만들어냅니다. 한국에서 SHA-256으로 "Bitcoin"을 해시하면, 미국에서 같은 작업을 해도 결과는 정확히 같습니다. 이 일관성이 검증의 기반이 됩니다.

3. 충돌 저항성(Collision Resistance)

이론상 다른 입력이 같은 해시값을 만들 가능성은 있지만, 현실에서는 거의 0에 가깝습니다. SHA-256의 가능한 출력값은 2의 256제곱 가지로, 우주의 원자 수보다도 많습니다. 충돌을 일부러 만들어내는 것은 사실상 불가능합니다.

4. 눈사태 효과(Avalanche Effect)

입력이 단 한 글자만 바뀌어도 해시값은 완전히 다르게 나옵니다. "안녕"과 "안녕!"의 해시값이 비슷할 것 같지만, 실제로는 전혀 닮은 구석이 없습니다. 이 특성 덕분에 위조 시도를 즉시 잡아낼 수 있습니다.

비트코인에서 해시는 어떻게 쓰이나

비트코인은 곳곳에서 해시를 활용하지만, 가장 핵심적인 두 가지 용도를 보겠습니다.

용도 1. 블록을 사슬로 연결

새로 만들어지는 모든 블록은 반드시 이전 블록의 해시값을 자기 헤더에 포함합니다. 마치 책장의 책마다 앞 책의 마지막 문장을 적어두는 것과 비슷합니다.

블록 100 (해시: 0000abc...)
   ↓
블록 101 (안에 "이전 블록 해시: 0000abc..." 포함)
   ↓
블록 102 (안에 "이전 블록 해시: 블록101해시값" 포함)

이 구조의 강력함은 명확합니다. 만약 누군가 블록 100의 거래를 단 한 줄이라도 수정하면, 블록 100의 해시값이 즉시 바뀝니다. 그러면 블록 101이 가진 "이전 해시값" 정보와 어긋나게 되고, 그 뒤의 모든 블록이 줄줄이 무효화됩니다. 과거를 한 줄 고치는 것은 미래 전부를 다시 쓰는 것과 같습니다.

용도 2. 채굴(Proof-of-Work)

비트코인 채굴자들이 하는 일은 사실 특정 조건을 만족하는 해시값을 찾는 작업입니다.

블록의 해시값 앞부분이 정해진 개수만큼 0으로 시작해야 한다는 규칙이 있는데, 이 조건에 맞는 해시값을 찾으려면 입력값(논스, Nonce)을 무수히 바꿔가며 계산을 반복해야 합니다. 평균 10분에 한 번씩 어딘가의 채굴자가 정답을 찾아내고, 그 채굴자가 블록 보상을 받습니다.

이 부분은 다음 화에서 더 자세히 다룹니다.

해시값을 직접 만들어볼 수도 있다

해시는 비밀스러운 기술이 아닙니다. 누구나 무료로 사용할 수 있죠. 'SHA-256 generator'라고 검색하면 즉시 사용할 수 있는 사이트가 수십 개 나옵니다.

직접 해보면 신기합니다. 아무 단어나 입력하면 64자리 16진수 코드가 즉시 나오고, 마침표 하나만 추가해도 결과가 완전히 달라지는 것을 눈으로 확인할 수 있습니다.

자주 묻는 질문 (FAQ)

자주 묻는 질문 (FAQ)

Q1. 해시값에서 원래 데이터를 복원할 수 있나요?
이론상 불가능하지는 않지만, 현실적으로는 불가능합니다. 모든 가능한 입력값을 하나씩 다 해시해서 일치하는 것을 찾아야 하는데, 이는 우주의 시간으로도 부족합니다. 그래서 '단방향'이라고 부릅니다.

Q2. 왜 16진수로 표시하나요?
컴퓨터는 2진수로 작동하지만, 사람이 보기엔 너무 길어서 비효율적입니다. 16진수(0~9, a~f)는 2진수 4자리를 한 글자로 표현할 수 있어 가독성이 훨씬 좋아집니다. 256비트는 그래서 64자리 16진수로 표시됩니다.

Q3. 양자컴퓨터가 등장하면 해시도 깨지지 않나요?
양자컴퓨터에 가장 취약한 것은 해시보다 '디지털 서명'에 사용되는 다른 암호 기술입니다. SHA-256 자체는 양자컴퓨터로도 효율이 절반 정도 떨어질 뿐 완전히 무력화되지는 않는다는 분석이 많습니다. 그럼에도 비트코인 커뮤니티는 미래 대비를 위해 양자내성 암호 도입을 꾸준히 연구 중입니다.

정리

해시는 비트코인을 떠받치는 보이지 않는 기둥입니다. 입력은 어떤 길이든 받지만 출력은 항상 64자리 16진수, 단방향이며, 입력이 조금만 바뀌어도 결과가 완전히 달라지는 마법 같은 함수죠. 이 단순한 원리가 블록체인의 위변조 방지와 채굴 메커니즘 모두를 가능케 합니다.

이제 비트코인을 떠받치는 두 기둥, '블록체인'과 '해시'를 모두 이해했습니다. 다음 화에서는 이 둘이 만나는 가장 흥미로운 지점, '채굴'의 세계로 들어가 보겠습니다.

다음 글: [8화. 비트코인 채굴이란? — 거래 검증과 보상 구조]