블록체인 기초 · Hash Function

해시 함수란 — SHA-256이 블록체인을 떠받치는 원리

해시 함수는 어떤 데이터를 넣어도 늘 같은 길이의 값 하나로 바꿔 주는 수학 함수입니다. 비트코인이 쓰는 SHA-256은 입력이 한 글자든 영화 한 편이든 256비트, 그러니까 64자리 16진수 한 줄로 압축해 내놓아요. 핵심은 이 값만 보고는 원래 데이터를 되돌릴 수 없고, 입력이 점 하나만 바뀌어도 결과가 완전히 달라진다는 점입니다. 블록체인이 위조를 막는 잠금장치가 바로 여기서 나옵니다.

기초 · 6분 읽기 · 블록체인 기초 카테고리

1. 해시 함수는 데이터의 ‘지문’이다

해시 함수는 어떤 데이터를 넣든 늘 같은 길이의 값 하나로 압축해 내놓는 함수입니다. 비트코인이 쓰는 SHA-256은 이름 그대로, 입력이 한 글자든 두꺼운 책 한 권이든 256비트(64자리 16진수) 한 줄로 바꿔 줘요. 이렇게 나온 결과를 해시값이라고 부르는데, 사람의 지문처럼 원본마다 사실상 고유한 값이 나온다고 보면 됩니다.

중요한 건 같은 입력을 넣으면 언제 어디서 돌려도 똑같은 해시가 나온다는 점이에요. 그래서 누구든 같은 데이터를 받아 직접 해시를 계산해 보면, 그게 중간에 손상되거나 바뀌지 않았는지 단번에 확인할 수 있습니다. 블록체인이 믿을 만한 중개자 없이도 장부를 신뢰하게 만드는 출발점이 바로 이 성질입니다.

해시 함수가 데이터를 지문으로 바꾼다 아무 데이터 길이 제한 없음 SHA-256 압축 · 단방향 256비트 해시 항상 64자리 입력 크기가 제각각이어도 결과 길이는 언제나 똑같다
그림 1 — 해시 함수는 길이가 제각각인 입력을 늘 같은 길이의 해시 한 줄로 압축한다. SHA-256은 그 결과가 256비트(64자리)다.

2. SHA-256을 떠받치는 세 가지 성질

첫째는 단방향성입니다. 해시값만 보고 원래 입력을 거꾸로 알아낼 방법이 사실상 없어요. 둘째는 눈사태 효과입니다. 입력에서 점 하나, 띄어쓰기 하나만 바꿔도 결과 해시가 완전히 다른 값으로 튀어요. 비슷한 입력이라고 비슷한 해시가 나오는 게 아닙니다. 셋째는 충돌 저항성이에요. 서로 다른 두 데이터가 우연히 같은 해시를 갖도록 만드는 일이 현실적으로 불가능에 가깝습니다.

이 세 가지가 합쳐지면 해시는 ‘위조하면 반드시 들통나는 봉인’이 됩니다. 데이터를 한 글자라도 손대는 순간 해시가 달라지니, 원본과 대조만 해도 변조 여부가 그대로 드러나거든요.

눈사태 효과 — 한 글자 차이가 전혀 다른 해시로 입력 A : moneyscoop a3f9c1 … 8e21 입력 B : moneyscooq └ 마지막 글자 하나만 다름 7b0204 … 9c5d 딱 한 글자 바뀌었을 뿐인데 결과는 완전히 달라진다 — 그래서 변조가 즉시 들통난다
그림 2 — 눈사태 효과. 입력의 작은 차이가 해시 전체를 완전히 바꾸므로, 데이터가 손대졌는지 대조만으로 알아낼 수 있다.

3. 블록체인은 해시로 사슬을 엮는다

블록체인이라는 이름도 이 해시에서 나옵니다. 각 블록은 자기 안에 담긴 거래뿐 아니라 ‘바로 앞 블록의 해시’를 함께 적어 둬요. 그래서 블록들이 해시로 줄줄이 엮인 사슬이 됩니다. 만약 누군가 과거 어느 블록의 거래를 슬쩍 바꾸면 그 블록의 해시가 달라지고, 그 값을 품고 있던 다음 블록, 또 그다음 블록까지 줄줄이 어긋나 버려요. 결국 사슬 전체를 다시 계산하지 않는 한 위조가 불가능합니다.

비트코인의 작업증명도 따지고 보면 해시 찾기 게임이에요. 채굴자는 조건을 만족하는 해시, 그러니까 맨 앞에 0이 잔뜩 붙은 값이 나올 때까지 숫자를 바꿔 가며 SHA-256을 수없이 돌립니다. 이 경쟁이 어떻게 합의로 이어지는지는 합의 알고리즘 글에서 더 자세히 풀었는데, 해시를 알고 보면 그 게임의 규칙이 한결 또렷해집니다.

마무리 — 해시 한 줄로

해시 함수는 데이터를 고정 길이 지문으로 바꾸는 단방향 함수이고, 작은 변화에도 결과가 완전히 달라져 위조를 막는 봉인 역할을 합니다. 블록끼리 해시로 엮여 사슬이 되기에, 한 곳을 건드리면 전체가 어긋나죠.

눈에 잘 띄지 않는 이 수학 덕분에 비트코인은 누가 일일이 관리하지 않아도 ‘이미 적힌 기록은 못 바꾼다’는 약속을 지킵니다. 위조 불가능성이 있어야 비로소 디지털 자산이 금 같은 희소 자산처럼 신뢰를 얻을 수 있다는 점에서, 해시는 암호화폐의 가장 밑바닥 토대라 할 만합니다.

이어서 읽기
암호화폐 학습 · BASIC
합의 알고리즘 — 작업증명(PoW)과 지분증명(PoS)의 차이
암호화폐 학습 · BASIC
블록체인이란 — 분산 원장의 기본 작동 원리
블록체인 기초 · 전체
블록체인 기초 카테고리 보기
연관 용어
블록체인 작업증명 비트코인 공개키·비공개키
주제가 비슷한 다른 글
암호화폐 · 관련
비트코인 2,100만 개 한도 — 왜 더 못 만들까
암호화폐 · 관련
암호화폐 지갑이란 — 핫·콜드·하드웨어, 개인키를 지키는 법
암호화폐 · 관련
이더리움이란 — 비탈릭 부테린이 만든 프로그래밍 가능한 블록체인
이전 글 · 블록체인이란 암호화폐 학습 목록