해시는 데이터의 지문과 같습니다. 해시 함수에 어떤 입력값을 넣더라도 고정된 길이의 문자열이 반환됩니다. 동일한 입력값은 항상 동일한 해시값을 생성합니다. 입력값에서 문자 하나만 바뀌어도 해시값이 완전히 달라집니다. 이러한 특성 덕분에 해시는 검증에 유용하게 사용됩니다. 파일의 해시값을 알려진 정상적인 값과 비교하여 파일이 변조되지 않았는지 확인할 수 있습니다. 비트코인은 SHA-256을 사용하고, 이더리움은 Keccak-256을 사용합니다. 모든 블록에는 이전 블록의 해시값이 포함되어 있으며, 이 해시값을 통해 블록체인이 연결됩니다.
해시는 단방향입니다. 해시에서 원래 입력값으로 역추적할 수 없습니다. 이것이 바로 해시가 비밀번호와 작업증명(Proof-of-Work)에 사용되는 이유입니다. 채굴자들은 특정 목표값보다 작은 해시값을 찾기 위해 경쟁합니다. 채굴자들은 논스(nonce) 값을 변경하고, 블록 헤더를 해싱한 후, 결과를 확인합니다. 이 과정은 대규모로 시행착오를 거치는 것입니다. 유효한 해시값을 찾는 것은 작업이 완료되었음을 증명하는 것이며, 이를 검증하는 데는 거의 노력이 필요하지 않습니다. 이러한 비대칭성이 작업증명의 핵심입니다. 해시 함수는 지갑 주소를 생성하고 거래의 무결성을 검증하는 데에도 사용됩니다.
해시 함수 속성
- 결정론적 — 동일한 입력은 항상 동일한 출력을 생성합니다.
- 계산 속도가 빠르고 검증 비용이 저렴합니다.
- 역상 저항성 - 해시값을 역으로 계산할 수 없음
- 눈사태 효과 — 작은 입력 변화가 완전히 다른 결과를 낳는다
해시는 암호화가 아닙니다. 해시는 단방향 다이제스트입니다. 복호화 키가 없으며, 복호화할 방법도 없습니다.
Comments
No comments yet. Be the first to share a thought.
Leave a comment