암호화폐에 대한 흥미로운 이야기 (3) — 해시(Hash)란?

FIRMACHAIN
FIRMACHAIN
Published in
4 min readOct 22, 2018

안녕하세요! 오늘은 많은 분들이 암호화폐를 투자 또는 공부하실 때 많이 들어본 단어 해시(Hash)에 관해 설명드리겠습니다.

해시 개념을 이해하기위해서는 먼저 블록체인 작동 원리 중 ‘무결성’을 알아야합니다. 무결성이란 데이터를 보호하여 해당 데이터를 항상 정상 상태로 유지하는 성질입니다. 위·변조를 방지하면서 신뢰성을 지켜야 하는 블록체인은 해시 함수를 사용함으로써 무결성을 지키고 있습니다.

그럼 본 내용으로 돌아와서 해시란 무엇일까요?

해시란 하나의 문자열을 다른 값으로 변환하는 것을 뜻합니다. 어떤 정보를 암호화해서 숨기는 다른 암호 함수와는 달리 해당 데이터의 진본 여부를 가리기 위해 사용되고 있습니다.

해시 함수는 어떤 입력값이든 고정된 길이의 해시값으로 변환시켜줍니다. 같은 입력값은 항상 같은 해시값이 나오며 원본은 소실되기 때문에 해커가 해시값을 갖고있어도 원본 데이터를 절대 얻을 수 없습니다.

또한, 입력값이 조금만 달라져도 다른 해시값이 나오기때문에(눈사태효과[1]) 해당 입력의 오류나 위·변조를 확인할 수 있습니다.

해시 함수는 실생활에서 다음과 같이 활용됩니다.

  1. A는 B에게 본인이 가진 계약서와 동일한 계약서를 보낼 예정입니다.
  2. 동일한 계약서임을 증명하기 위해 A는 해시 함수로 변형한 계약서의 해시값과 계약서를 B에게 전송합니다.
  3. B는 받은 계약서가 동일한지 확인하기 위해 A와 동일한 해시 함수를 사용하여 해시값을 구합니다.
  4. 출력된 해시값이 A와 같은 해시값임을 확인함으로써 동일한 계약서임을 알 수 있습니다.

하지만 해시 함수도 문제가 발생할 수 있습니다. 고정된 길이의 출력값 수는 유한하기 때문에 출력값보다 많은 입력값이 들어갈 경우 동일한 출력값을 가지는 입력값들이 생길 수 있습니다. (비둘기 집의 원리[2]) 이 경우를 ‘충돌’이라고 표현하며 현재 해시 함수들은 이론적으로 충돌이 가능합니다.

하지만 현재 해시 함수가 제공하는 출력값의 수는 매우 많기 때문에 지구상의 모든 컴퓨터와 오랜 시간을 들여야지만 의도적으로 충돌을 일으킬 수 있습니다.

FirmaChain이 사용할 예정인 SHA-256와 SHA-512 해시 함수 중 SHA-256 경우 ²²⁵⁶개의 해시값을 출력할 수 있습니다. ²³²은 약 40억 정도인데 40억을 8번 곱한 수는 상상조차 할 수 없는 큰 수이기 때문에 충돌 가능성이 적습니다.

이처럼 해시 함수는 누군가가 나쁜 의도로 공격하기도 어려우며 데이터의 위·변조도 쉽게 파악할 수 있어 많은 블록체인에서 사용되고있습니다.

해시의 대한 내용 재밌게 읽으셨나요? 다음에도 이해하기 쉬운 블록체인 이슈로 찾아뵙겠습니다.

감사합니다.

[1] 눈사태효과 : 어떤 암호 알고리즘이 입력값에 미세한 변화를 줄 경우 출력값에 상당한 변화가 일어나는 성질을 의미

출처 : 위키백과

[2] 비둘기 집의 원리 : n+1 마리의 비둘기가 n개의 비둘기집에 들어가려면 최소한 한 개의 비둘기집에는 두 마리 이상의 비둘기가 들어가야 한다는 원리

출처 : 네이버 지식백과

🔴 공식채널

홈페이지 : http://firmachain.org/

트위터 : https://twitter.com/firmachain

미디엄 : https://medium.com/firmachain

텔레그램(알림채널) : https://t.me/firmachain

텔레그램 커뮤니티 : https://t.me/firmachain_global

카카오 플러스 : http://pf.kakao.com/_FAKgxb

--

--