해시함수란? 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수를 말한다.
해시함수는 입력값이 크고 작음에 상관없이 일정하게 정해진 길이의 데이터로 변경되어서 출력해준다. 이렇게 해시함수를 통해 출력되는 결과 값을 '해시'라고 부른다.
거래 장부의 내용을 누군가 훼손하거나 위조할 수 없다는 장점을 갖고 있는 블록체인 즉, 분산 거래장부 시스템의 이러한 기능 수행도 블록체인의 해시함수를 통해 가능하다.
해시함수는 크게 3가지 특징을 갖고 있다. 먼저, 해시함수는 결과 값으로 입력 값을 역으로 추정하는 것이 불가능하다. 또한 입력 값의 내용이 아주 조금이라도 바뀌면 완전히 다른 결과 값이 나오며, 우연히라도 같은 출력 값을 갖는 중복되는 입력 값이 나타나기 어렵다.
아래는 SHA1 함수를 이용해 비슷한 문자열을 암호화한 결과 값들이다. 비트코인의 경우 SHA-256 기반의 암호 해시 함수를 사용한다.
박경호 TVCC 기자 → FBF871BF441429C89883B98D8680C6E74DA258A0
TVCC 기자 박경호 → 4B672CFBFE1FBE25910B2F5F692577D38EB828EB
TVCC 기자 박경흐 → AB2DFB0EF06B9C38C07E8FAFBAC3B056191A9A69
이러한 해시함수의 특징들을 통해 데이터의 위조나 변조 등이 발생했는지 파악할 수 있다.
또한, 해시함수는 복잡하지 않은 알고리즘으로 구현되기 때문에, 상대적으로 CPU, 메모리 같은 시스템 자원을 덜 소모하는 특성이 있다.
해시함수가 블록체인에 활용되는 원리는 사람들 간의 거래 내역을 '블록'이라는 공간에 담는데 이때 블록은 일종의 장부 역할을 하게 된다. 블록이 거래 내역으로 가득 차게 되면 새로운 블록을 생성해, 거래 내역을 기록하게 되는데 이때 새로운 블록에 기존의 블록에서의 거래 내역을 해시 값으로 기록한다.
이러한 방식으로 새로운 블록이 생길 때마다 기존에 있던 블록에서의 거래 내역을 해시 값으로 기록하기 때문에 중간에 하나의 블록을 조작하더라도 서로 영향을 주게 되어 위조를 검증할 수 있다.
더욱 다양한 정보 및 방송 관련 소식은
공식 SNS 채널을 통해 확인 가능합니다.