IT

가상화폐(2) 비트코인 모으기전 준비운동

2017.11.14

비트 코인모으는법을 설명 하기전에 가상화폐의 기본인 블록 체인과 디지탈 서명에대해서 간단하게 설명하고 넘어가고자 합니다.

블록체인 (Block Chain)은 정보 분산 기술중에 하나로서 거래내역을 분산저장하고 관리하는 기술을 말합니다. 

이게 왜 중요하냐고요?  기존의 서비스들은 모든 거래 내역이 메인 서버에 저장되어있어서 많은 사람들이 접속하여 거래 하고 거래의 기록을 관리하지만 헤커들이 서버를 해킹한 경우 엄청난 피해가 발생을 하는것을 많이 보았습니다.

블록체인은 이런것을 방지할수있는 기술입니다. 네트워크상에 저장된 데이타를 블록 단위로 저장하여 나누어 분산 저장하고 데이타를 서로 연결하여 완성된 하나의 데이타를 구성하게 됩니다.

단순히 나누어 저장하기만 하는게 아니라 각 블록끼리 일정 시간안에 서로 데이타의 정보를 맟추어보고 비교하여 데이타의 훼손이나, 해킹으로인한 변질, 변조를 지속적으로 검증하게 되는 안전한 기술체계이고 이것을 비트코인이 사용하고 있는것입니다.

가급적 기술적인 부분은 배제 하려고 하지만 반드시 알아야 하는 사항이니 간단하게 설명하겠습니다.

비트코인은 디지탈 서명을 기본으로 만들어진 화폐입니다.  디지탈 서명은 공개키 암호화 (Public Key Encryption) 와 해시(Hash)를 바탕으로 합니다. 말은 어려운데 개념은 간단합니다.


쉽게 설명하면 철수와 영이는 친구사이인데  네트워크상에서 비밀을 나누고 싶다면 영이의 공개키로 문서를 잠근후 영이에게 보내면 됩니다. 그러면 영이는 자신의 개인키로만 그문서를 열어서 볼수있습니다. 누가 해킹해서 그문서를 훔쳐가도 공개키에 맞는 개인키가 없어서 문서를 해제 할수가 없게 되지요.  공개키는 이메일 주소처럼 외부에 공개적으로 알려진 키입니다.

이해가 가시지요?  지구상에서 이보다 쉽게 공개키개인키 설명은 불가능 하다고 자신합니다 :) 

원리를 설명한것이기때문에 이런방식으로 보안을 지키다는정도만 알면 될듯합니다.

두번째는 해시(Hash) 해시 브라운은 아니니 침흘리지 마시고요 ..

해시는 해시 값(Hash value) 으로서 컴퓨터 분야에서 다양한 용도로 사용되지만 비트코인에서는 채굴시 작업의 증거(proof of works)를 제시하거나, 크기가 큰 문서(예를 들어 블록체인)가 변경되었는지 쉽게 확인하는 용도로 주로 사용된다.

해시는 해시함수(hash function)를 이용하여 만드는데 일반적으로 원본으로 해시를 만드는 것은 쉽지만 반대로 해시로부터 원본을 만들어 내는 것은 불가능합니다. 특정한 해시값을 만들어내는 원본을 찾기위해서는 모든 경우의 수를 확인해 보는 수 밖에 없는데 이게 현실적으로 불가능합니다. 아니 가능은 하지요 만일 양자 컴퓨터가 보편화된다면요^^

첫날 블로그에서 얼핏 
SHA-256 기반의 암호 해시 함수 라는 문장을 보신적이 있을것입니다.

이함수를 이용해서 해쉬값을 만들어 내는것입니다.

예를들어 철수가 영희에게 10000원을 보내면서  해시함수에 넣어서 해시 값으로 변형시켜 보내면  006a 라는 값으로 변해서 전달됩니다.
만일 1000원이 10,000원으로 변조되면 해시값은 ed8b 가됩니다.

원본이 조금만 변형되어도 완전히 다른 요약본이 나오도록 되어있어서 두 문서의 원본을 대조하지 않고 해시만 대조하여도 두 문서가 같은지 확인할수 있게 되지요.


 

세번째는 디지탈 서명 입니다.

디지털 서명은 메시지를 보낸 사람을 수학적으로 확인하는 방법이다.
 

예를 들어 철수가 영희에게 돈을 빌려달라는 메시지를 보냈다고 가정하자. 요즘 같은 세상에 영희는 이 메시지가 나에게서 온 것인지 의심스러워 할수 밖에 없다. 이 문제를 해결하는 기본적인 방법은 영희가 철수에게 직접 전화를 해서 확인하는 것이다.

조금 현대적인 방법은 철수가 메시지를 보낼때 자신의 개인키로 메시지를 암호화하고 이를 메시지에 덧붙여 보내는 것이다. 이 메시지를 받은 영희는 덧붙여진 암호화된 메시지 부분을 철수의 공개키로 열어서 이를 원본 메시지와 비교해 본다. 두 메시지가 같다면 이 메시지는 철희 보낸 것으로 확신할 수 있다.

하지만 보내는 문서가 매우 클때는 전체 문서를 개인키로 서명하게 되면 매우 비효율적이다.  이때는 전체 문서의 해시를 만들어 이를 개인키로 잠그고 잠근 해시(서명 부분)를 원본 문서에 덧붙여 보내면 효율적으로 서명이 가능하다. 받은 사람은 자신이 직접 계산한 원본 문서의 해시값과 서명 부분을 보낸 사람의 공개키로 열어서 복원한 해시값이 같은지 확인하면 된다.

축하합니다. 만일 여러분이 여기까지 읽고 이해했다면 아이큐가 최소한 120은 넘는 미래를 설계할수있는 디지탈형 인류입니다.

이제부터는 비트코인 거래방식만 알면되는데 이건 식은죽 먹기라서 다음시간에 계속할게요...

 

좋아요
인기 포스팅 보기