어제 강의를 통해 블록체인을 구성하는 기본 기술은 암호 해시(hash) 라는것을 배웠습니다.

암호해시를 간단하게 요약 해보면 문서를 요약해 고유 값을 자동으로 생성하는 기술 정도로 정의할 수 있습니다. 단, 여기서 요약은 내용에 대한 요약이 아니라 내용과 무관한 요약입니다. 암호해시 기술을 적용하면 내용과 무관하게 문서를 요약한 후 고유 값을 생성하는데 이때 고유 값은 문서 길이에 상관없이 256바이트, 한글로 작성하면 126자 정도의 문자열(SHA-2 기준)입니다.
암호 해시는 몇 가지 특징을 지닙니다.
💡 첫째, 암호 해시만으론 그 내용을 짐작할 수조차 없다. (제1역상 저항성)
💡 둘째, 문서 내용이 조금이라도 바뀌면 암호 해시 역시 완전히 바뀌어버린다 (제2역상 저항성)
💡 셋째, 우연이라도 동일한 암호 해시를 갖는 문서가 나타선 안된다(충돌 저항성)
세 특성을 간단히 요약해보면 다음과 같습니다.
암호 해시로 문서를 찾을 순 없지만 일단 문서가 주어지면 고유의 암호 해시가 만들어진다.


암호 해시를 이용하면 문서 전체를 갖고 있지 않아도 그 문서의 조작 여부를 쉽게 밝혀낼 수 있다. 예를 들어 친구와 하나의 문서를 작성하고 그 문서의 암호 해시를 만든 후 나눠 가졌다고 하자. 이렇게 하면 원본 문서를 복사해 갖고 있지 않아도 어렵지않게 원본 진위를 판별할 수 있을것입니다. 문서의 암호 해시를 만들어 암호 해시와 비교하면 되기 때문입니다. 즉, 암호 해시만 있으면 원본 문서는 누구나 갖고 있든 상관이 없습니다. 심지어 제3자의 손에 있어도 괜찮습니다. 아무리 긴 문서라 하더라고 256바이트 정도의 암호 해시만 있으면 진위여부가 손쉽게 밝혀지는 것이다.


블록체인에서 '블록'은 '헤드(Head)'와 '보디(body)'로 나뉩니다. 블록 보디엔 여러 거래 기록이 머클트리(Merkel Tree)로 불리는 구조로 구성된 후 저장됩니다. 그 안에는 블록 보디 전체를 대표하는 암호 해시가 만들어집니다. 블록 헤드엔 블록 보디 암호 해시 등 여러 가지 정보가 기록됩니다. 블록 헤드엔 다음과 같은 내용들이 기록됩니다 블록 생성 시간 블록 보디 암호 해시 이전 블록 헤드 암호 해시 논스(NONCE, Number used ONCE)등 이 있지만 이때 주의 깊게 볼 항목은 이전 블록 헤드 암호 해시입니다. 일단 블록 헤드 또한 하나의 문서와 같은 만큼 암호해시를 구할 수 있고, 이 블록 헤드 암호 해시는 다음에 만들어지는 블록에 전달되는데, 다음 블록 입장에서 보면 내 블록 헤드의 암호 해시가 다음 블록 헤드에 저장되는 이전 블록 헤드 암호 해시가 되는 것입니다. 블록체인이란 명칭은 이처럼 “이전 블록 헤드 암호 해시가 다음 블록에 저장되는 행태의 반복”이란 뜻에서 붙여졌습니다.
