brunch

You can make anything
by writing

C.S.Lewis

by 김종현 Aug 02. 2018

블록체인의 암호기술: 해시함수 활용

블록체인을 활용한 암호화폐에서 사용되는 암호기술은 해시 (Hash) 함수, 전자서명 (Digital Signature), 공개키 암호화 (Cryptography) 알고리즘이다.  

해시(Hash) 함수는 임의 데이터를 특정 길이의 문자, 숫자로 조합된 해시값으로 변환하는 암호 알고리즘의 일종이다. 해시함수에서 산출되는 해시 값(Hash Value)은 지문(Fingerprint) 이라고도 하는 데, 암호화폐에서 해시 값 비교 (Hach check)를 통하여 원본의 위변조 여부를 판단하는 무결성 검증에 사용된다.   

블록체인에서는 해시함수를 3가지 목적으로 활용한다. 첫째, 공개키의 해시 값을 지갑주소로 활용하여 익명화된 거래를 수행하고, 가상화폐의 전자지갑 주소는 공개키 기반 암호화 알고리즘에서 생성된 공개키의 해시값을 사용한다. 개인정보 (정확히는 송신자의 계좌정보) 없이 익명화된 거래를 통해 송금자의 신원을 감추고, 송금할 수 있다. 둘째,  해시함수를 사용하여 2가지의 무결성 검증에 사용된다. 하나는 체인으로 연결된  블록헤더의 해시 값을 활용하여, 해시 값 체인으로 연결된 블록의 무결성 검증에 사용된다. 또 다른 무결성 검증은 각 블록의 전체 거래를 하나의 해시값 (머클루트)으로 저장하고, 필요할 경우에는 언제든, 해당 블록의 머클루트 값으로, 블록 내에 포함된 개별 거래의 위변조 여부를 검증할 수 있다. 모든 거래 데이터의 해시 값을 머클트리 (Merkle Tree)를이용하여 만들어지는 머클루트 (Merkle Root) 에 저장하고, 향후거래 내역의 위변조 여부를 검증할 때, 원본 해시 값과 비교를 통하여,각 거래의 무결성을 검증할 수 있다. 또한 머클루트는 1MB로크기가 제한되어 있는 비트코인의 각 블록의 크기를 효율적으로 사용할 수 있게 해준다. 전체 거래내역을다 저장할 필요없이, 머클루트 라는 한 개의 해시 값만 저장하면, 해당블록 내의 모든 거래내역의 진위를 필요할 때, 비교할 수 있기 때문이다. 

마지막으로 합의 알고리즘에서 PoW (Proof of Work)방식을 사용할 경우, 해시 값을 활용한 채굴문제에 활용한다.  해시값을 활용한 채굴문제를 먼저 맞추는 채굴자에게 채굴권한과 보상을 제공한다. 해시캐시 (Hashcash) 문제풀이를 통한 작업증명 (PoW, Proof of Work)은 채굴(Mining)이라고도 하는 데, 채굴자에 대한 보상을 통해, 채굴을 경쟁하고, 채굴자가 자율적으로 새로운 블록을 생성하도록 유도한다.


작가의 이전글 국가별 가상화폐 정책
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari