반응형

안녕하세요.

3장에서는 블록체인을 이루는 기술 4가지를 소개하는데요. 

1. 해시함수 

2. 비대칭 암호화 기법

3. 전자서명

4. 해시퍼즐

 

 

1. 해시함수

 해시함수부터 설명하자면 해시함수란 입력의 길이와 상관없이 항상 고정된 길이의 출력을 생성하는 함수입니다.

비트코인의 블록체인에서 사용되는 해시함수는 SHA-256(secure Hash Algorithm 256)입니다. 

글자 하나차이로 결과값이 완전히 달라졌습니다.

해시 함수의 가장 큰 특징은 입력값이 조금만 바뀌어도 결과값이 완전히 달라진다는 것 입니다. 위의 사진을 보시면 

'.' , ','의 차이인데도 결과값이 아예 다르죠?? 

 

 

자! 그렇다면 비트코인에서 해시함수는 어떻게 쓰일까요? 바로 머클 트리에서 사용됩니다.

비트코인은 모든 트랜잭션, 즉 거래에 관한 하나의 해시값을 저장하기 위해 머클 트리를 사용하는데요.

여기서 Tx7이 두 개인 이유는 트랜잭션을 짝수의 개수로 맞추기 위함입니다

두개의 트랜잭션끼리 짝을 짓고 해쉬함수를 통해 도출된 해시 값들을 또 두개씩 짝지어서 최종적으로 모든 트랜잭션을 대표하는 해쉬값이 도출되게 됩니다.

이런 방식을 통해서 블록 내에 있는 2천 ~ 3천개의 모든 트랜잭션은 최종 32바이트 길이의 머클트리 루트의 해시 값으로 요약되어 블록헤더에 저장되는 것입니다!

 

2.암호화 기법

비트코인은 비대칭형 암호화 기법을 사용하는데요. 비대칭형 암호화 기법이란 쉽게 말해서 암호화를 하는 키와 복호화(암호화된 문장을 복원하는 것)를 하는 키가 다른 암호화 기법을 말합니다. 

이 서로 다른 암호화 키와 복호화 키는 쌍을 이루는 특징이 있습니다.

 

3.전자서명 

전자 서명이란 송신자의 메시지 전체를 해시 값으로 만든다음 이를 개인키로 서명한 것을 전자 서명이라고 합니다

 

수신자는 전달받은 전자서명을 송신자의 공개키로 복원한 값과 전달받은 메시지를 해시한 값을 대조해 진위를 파악합니다. 아까 설명했듯 메시지의 값이 조금만 달라져도 해시 값은 다르기 때문에 누군가 중간에 메시지를 조작했다면 전자서명을 통해 얻은 해시값과 메시지를 해쉬한 값이 달라져 조작유무를 파악할 수 있게 됩니다.

 

4. 해시 퍼즐

해시 퍼즐을 이해하려면 우선 작업 증명에 대해서 알아야하는데 작업 증명이란 서비스를 신청하는 자에게 결코 작지않으면서도 처리 가능한 수준의 과제를 요구하는 것으로 보통 컴퓨터 계산 자원을 소모하는 것을 말합니다.

비트코인에 구현된 해시퍼즐을 쉽게 예를 들면 4자리 비밀번호 잠금장치로 비유를 할 수 있습니다 잠금장치를 열려면 0~9999를 다 대입해봐야하는데 무식하게 모든 경우의 수를 대입한 후에 비밀번호를 알게되어 장부에 거래내역을 기록하게되면 또 비밀번호가 리셋되고 시간이 지남에 따라 비밀번호는 4자리에서 6자리~~무한대로 늘게됩니다 그리하여 비트코인의 채굴속도는 반감기에 따라 느려지게 되는 것입니다.

 

 

반응형

+ Recent posts