본문 바로가기

알기쉬운 블록체인

블록체인 암호해시

이해하기 쉽도록 쉽게 쓴 블록체인 이야기, 비트코인 암호해시를 알아본다.

기술적 관점의 용어인만큼 최대한 가볍게 다루고 넘어가고자 한다.


그 전에 블록체인과 관련된 기본 용어들을 살펴본다.


분산형 데이터 저장기술인 블록체인은

블록에 데이터를 담아 체인형태로 연결해 수많은 컴퓨터에 이를 이를 복제해 저장한다.

그래서 공공거래 장부라고도 부른다.


블록체인을 구성하는 기본 기술은 암호화된 해시다.

이는 문서를 요약해 고유값을 자동생성하는 기술이다.

여기서의 요약은 내용과 무관하게 문서를 요약한 후 고유값을 생성한다.

고유값은 문서가 길던 짧던간에 256바이트이며 한글로 치면 128자 정도의 문자열이다.

즉, 해시함수는 어떤 데이터를 입력해도 같은 길이의 결과를 도출하는 함수를 말한다.

 


블록은 데이터를 저장하는 단위이며 바디와 헤더로 구분된다.

바디에는 거래 내용이 담기며

헤더에는 머클해시(머클루트)나 넌스 등 암호코드가 담겨 있다.


넌스(nounce)는 암호화와 관련된 임의의 수를 뜻한다.

블록은 약 10분을 주기로 생성되며 처음 시작된 블록을 제네시스 블록이라 부른다.  


블록체인 네트워크의 유지 및 관리에는 개개인의 서버들이 모여 유지 관리 된다.

중앙집중형 서버가 사용되지 않는다.


노드는 이러한 개개인의 서버, 참여자를 뜻한다.


중앙관리자가 없기 때문에 블록을 배포하는 노드의 역할이 중요하며

참여 노드 절반이상의 동의가 있어야 새 블록이 생성된다.

일부 노드가 해킹을 당해도

다수의 노드에는 데이터가 남아있으므로 데이터는 보존되며 네트워크가 유지된다.



해시함수는 SHA(Secure Hash Algorithm)-1이 처음 고안된 후

더 발전된 형태의 SHA-2(SHA 256)가 나왔는데, 이것을 블록체인에서 사용하고 있다.


비트코인 블록체인은 SHA 256알고리즘을 사용한다.

SHA-2는 어떤 길이의 값을 입력해도 결과가 256비트로 도출된다.


암호해시는 몇 가지 특징을 지닌다.

첫째, 암호해시만으로는 그 내용을 짐작할 수조차 없다.

둘째 문서 내용이 조금이라도 바뀌면 암호해시 역시 완전히 바뀌어 버린다.

셋째 우연이라도 동일한 암호 해시를 갖는 문서가 나타나서는 안된다.

이를 종합하면 다음과 같다.

“암호해시로 문서를 찾을 순 없다. 하지만 일단 문서가 주어지면 고유의 암호해시가 만들어진다”


암호해시를 이용하면 문서 전체를 가지고 있지 않아도 그 문서의 조작여부가 쉽게 밝혀진다.


문서의 암호해시를 만들어 보관 중인 암호해시와 비교하면 되기 때문이다.

즉, 암호해시만 있으면 원본은 누가 가지고 있든 상관이 없다.

심지어 제 3자의 손에 있어도 괜찮다.

아무리 긴 문서도 256바이트 정도의 암호 해시만 있으면

진위여부가 손 쉽게 밝혀지는 것이다.


또한 블록헤드 암호해시는 다음에 만들어지는 블록에 전달된다.

다음 블록 입자에서 보면 내 블록헤드의 암호해시가 다음 블록헤드에 저장되는 이전 블록 헤드 암호해시가 되는 것이다.


블록체인의 명칭은

이처럼 “이전 블록헤드 암호해시가 다음 블록에 저장되는 행태의 반복”이란 뜻이다.


블록체인에선 암호해시기술과 함께 지난 번에 설명한 공개키 암호기술은 전자서명 같은 디지털 보안의 근간이 된다.