📖 용어 🇰🇷 쉽게 설명 🔰 초보

🔑 해싱 Hashing

해싱은 단어 하나든, 파일이든, 거래 내역이든, 블록 전체든 — 어떤 입력이든 고정된 수학 함수에 넣어 짧고 고정 길이의 문자열, 즉 해시(hash)를 뽑아내요. 같은 입력은 항상 같은 해시가 나오지만, 해시에서 원본을 되찾는 건 절대 불가능해요.

💡
흔한 오해 — 해싱은 '복호화'할 수 있는 암호화의 다른 말? 아니에요! 암호화는 키로 원본을 되살릴 수 있어요. 해싱에는 키도 없고 되돌리기도 없어요 — 단방향이고, 데이터가 바뀌지 않았음을 검증하는 데 씁니다.
어떤 입력이든, 어떤 크기든 📄 "hi" 🎬 영화 파일 ⛓️ 블록 전체 ⚙️ 해시 함수 예: SHA-256 🔑 해시 하나 항상 64자 🚫 되돌릴 수 없음 🌊 눈사태 효과 글자 하나만 바꾸면… "Codex" → 3f9a…7c1 "codex" → e02b…84d (완전히 달라요)
📄🎬⛓️ 크기가 다른 입력들이 ⚙️ 하나의 함수로 모여 → 🔑 고정 길이 해시 하나가 나와요. 단방향 — 거꾸로 돌아갈 수 없고, 🌊 글자 하나만 바꿔도 해시 전체가 뒤집어져요.

🪪 쉽게 풀면 — 디지털 지문

해시는 데이터의 디지털 지문이에요. 뭐든 넣으면 함수가 그것을 식별하는 독특한 문자열을 돌려줘요. 여기서 두 가지 유용한 성질이 따라옵니다. 첫째, 결정론적이에요: 같은 입력은 항상 똑같은 해시를 내므로 누구나 다시 확인할 수 있어요. 둘째, 변조 감지 봉인 역할을 해요: 데이터에서 글자 하나만 바뀌어도 지문이 더 이상 일치하지 않아서, 누군가 손댄 흔적이 즉시 드러납니다.

🧪 해싱을 유용하게 만드는 네 가지 성질

성질
🔁 결정론적같은 입력은 항상 똑같은 해시를 만든다
➡️ 단방향입력 → 해시는 가능하지만, 해시 → 입력은 불가능하다
🌊 눈사태 효과글자 하나만 바꿔도 해시 전체가 완전히 달라진다
💥 충돌 저항성서로 다른 두 입력이 같은 해시를 만들기는 사실상 불가능하다

📏 출력 길이는 항상 고정이에요. SHA-256은 입력이 글자 하나든 영화 파일 전체든, 항상 256비트 — 64자짜리 — 해시를 반환해요.

🔗 블록체인이 해싱에 의존하는 이유

블록체인은 블록들의 사슬이고, 해싱이 그 접착제예요. 각 블록은 바로 앞 블록의 해시를 담고 있어요. 오래된 블록을 건드리면 그 해시가 바뀌고, 이후 블록과의 연결이 모두 끊어집니다 — 그래서 네트워크 전체가 위변조를 바로 알아차려요. 해싱은 또 블록 탐색기에서 실제로 보이는 문자열들도 만들어요: 거래 ID, 블록 해시, 지갑 주소 모두 해시에서 비롯된 값이에요.

⛓️ 실제로 어디서 만나나요: 비트코인과 이더리움

비트코인은 채굴(작업증명)과 거래 검증, 주소 생성 모두에 SHA-256을 써요. 이더리움Keccak-256이라는 다른 함수를 씁니다. 이름은 달라도 역할은 같아요: 아무도 위조하거나 되돌릴 수 없는 고정 길이 지문을 만드는 것이죠.

🚨 입문자가 자주 헷갈리는 것들

  • 🔓 "해시는 복호화할 수 있다" — 안 돼요. 키도 없고 역방향 경로도 없어요. 해시와 맞춰보는 유일한 방법은 원본 입력값을 가지고 다시 해싱하는 것뿐이에요
  • 🟰 "해싱 = 암호화" — 쓰임새가 달라요. 암호화는 나중에 열어볼 수 있게 데이터를 숨기는 것이고, 해싱은 변조를 잡아내기 위해 데이터에 지문을 찍는 거예요
  • 📐 "파일이 크면 해시도 길다" — 아니에요. 출력 길이는 입력 크기가 아니라 함수가 결정해요

❓ 자주 묻는 질문

해싱과 암호화는 같은 건가요?
아니요. 암호화는 되돌릴 수 있습니다. 올바른 키가 있으면 암호화된 내용을 원본으로 복원해 기밀을 보호해요. 해싱에는 키도 없고 되돌리는 기능도 없습니다. 단방향이고, 데이터가 변조되지 않았는지 검증하거나 식별자를 만들 때 씁니다.
해시를 복호화하거나 역으로 돌려서 원본을 꺼낼 수 있나요?
아니요. 해시는 단방향입니다. 입력에서 해시를 구할 수는 있지만, 해시에서 원본을 거꾸로 추적하는 건 불가능해요. 해시와 대조하는 유일한 방법은 원본 입력값을 이미 알고 있어서 다시 해싱해 비교하는 것뿐입니다.
해시는 왜 입력 크기와 상관없이 항상 같은 길이인가요?
해시 함수가 항상 고정 길이로 출력하기 때문이에요. 비트코인이 쓰는 SHA-256은 글자 한 자를 넣든 영화 파일 전체를 넣든, 항상 256비트 — 64자짜리 문자열 — 를 뱉습니다.

🔗 관련 용어·코인