이번 토픽에서는 앞 토픽에서 나온 용어들을 이용해서 블락체인이 어떻게 동작하는지 그 흐름을 짚어 보려고 합니다.
위키피디아에서 '블록체인'이라고 검색하면 아래와 같이 정의가 나옵니다.
블록체인(blockchain)은 공공 거래 장부이며 가상 화폐로 거래할 때 발생할 수 있는 해킹을 막는 기술이다. 분산 데이터베이스의 한 형태로, 지속적으로 성장하는 데이터 기록 리스트로서 분산 노드의 운영자에 의한 임의 조작이 불가능하도록 고안되었다. 잘 알려진 블록체인의 응용사례는 암호화폐의 거래과정을 기록하는 탈중앙화된 전자장부로서 비트코인이 있다. 이 거래 기록은 의무적으로 암호화되고 블록체인 소프트웨어를 실행하는 컴퓨터상에서 운영된다. 비트코인을 비롯한 대부분의 암호화폐들이 블록체인 기술 형태에 기반하고 있다.
정말 쉽게 설명하기 어렵습니다. 위 정의를 좀 더 쉽게 요약해 보겠습니다.
'이타인'이 '유니세프'에 코인을 보내는데 중앙 관리자 없이도 해킹 위험없고 안전하게 송금할 수 있는 전자 장부 시스템을 블락체인이라고 합니다.
아 쉽게 하려도 해도 아직 어려운 것 같습니다. 일단 블락체인은 전자 장부이고, 모든 사람들이 동일한 장부의 복사본을 가지고 있는 것으로 생각하시면 되겠습니다. 한가지 헷갈릴 수 있는 점은 블락체인은 분산 장부라고도 불리우는데, 장부의 데이터가 여기 저기 나누어져 저장되는게 아니라 모두가 원본과 동일한 복사본을 가지고 있는 것입니다. 블락체인의 정의는 아직 만족하지 않지만 이대로 정의하고 넘어가야 겠습니다. 은행을 통해 돈을 송금하는 것과 블락체인을 이용하여 송금하는 것 두 가지 모두 결과적으로 '이타인' 지갑에서 송금한 돈이 빠져나가서 '유니세프' 지갑에 들어가게 됩니다. 과정의 큰 차이점이라면 블락체인은 어떤 은행없이도 거래가 이루어 진다는 것입니다. 은행을 거치지 않으니 수수료를 낼 필요가 없고(블락체인 네트워크 사용 수수료는 내야 함), 송금하는데 걸리는 시간이 짧다는 것입니다. 더욱 놀라운 것은 블락체인은 '송금'만을 위한 것이 아닙니다. 블락체인은 그 어떤 거래도 안전하고 싸게 할 수 있습니다. 부동산 계약 같은 거 말이죠. 앞으론 부동산 중계업같은 건 거의 사라질 것입니다.
블락체인은 전자장부이고, 모든 사람이 동일한 장부의 복사본을 가진 시스템입니다.
그럼 이제 블락체인이 동작하는 흐름을 아래 그림으로 짚어보겠습니다. 아래 그림에는 이전 토픽에 나타난 용어들이 많이 빠져 있으므로, 이전 토픽의 그림도 같이 보시면 좋습니다. 주요 용어들을 굵게 이탤릭으로 표시했습니다.
[거래 흐름, 출처]
그림을 보면 블락체인 네트워크는 여러 개의 노드(Node)들로 구성되어 있습니다. 노드는 간단히 하면 개인 PC라고 볼 수 있습니다. P2P처럼 개인들의 PC가 인터넷을 통해 연결되어 있는 상황입니다.
1. 클라이언트 A가 B에게 10만원을 송금하려 합니다.
각 노드는 블락체인 네트워크상에서 구별될 수 있는 고유의 주소(Address)가 있습니다. 그렇지 않다면 B를 특정할 수 없으니 송금이 불가능 할 것입니다. 이타인의 비트코인 주소는 이렇게 생겼습니다. 실제 사용되는 주소입니다.
복잡한 숫자와 문자의 무작위한 나열로 만들어진 주소입니다. 주소가 겹칠지 모른다는 걱정을 하실 수 있는데, 주소 생성 조합의 셀 수 없을 만큼 가능해서 걱정할 필요가 없습니다. 이렇다보니 거래에 동일한 주소를 사용하지 않고 거래마다 다른 주소를 생성해서 사용하기도 합니다. 또는 여러 주소를 만들어 놓고 지갑(Wallet)에 보관해 놓고 사용하기도 합니다.
고유의 복잡하게 생긴 주소를 이용하여 송금합니다.
위 1번과 같이 A가 B에게 얼마를 보내는지에 대한 정보를 암호화(Encryption)한 데이터가 거래(Transaction)입니다.
2. A의 비밀키로 서명하고 블락체인 네트워크에 전송합니다.
생성한 거래에 대해서 송신자의 비밀키 또는 개인키(Private Key)로 서명한다는 것은 계좌이체할 때 공인인증서의 암호를 입력하는 것과는 개념이 다릅니다. 즉 여기서 말하는 비밀키는 우리가 일반적으로 사용하는 '암호(Password)'와는 다른 개념입니다. 위에서 얘기하는 비밀키, 정확히는 개인키로 서명한다는 얘기는 '디지털 서명(Digital Signature)'의 의미입니다. 개인키와 관련된 내용은 다음 토픽에서 알아볼 것인데요, 디지털 서명을 간략히 설명하면 이렇습니다.
디지털 서명은 A가 B에게 송금하려고 생성한 거래는 A가 생성한 것이 맞다는 것을 보증하기 위한 것입니다.
다음 토픽에서 설명될 개인키, 공개키, 주소 등의 관계를 알면 왜 디지털 서명의 개념이 잡히실 것입니다.
블락체인은 디지털 서명 방식으로 보낸 사람을 확인합니다.
이번 토픽의 홈워크는 기존의 은행 인증서 방식의 거래에 대해 좋은 점이나 불편한 점을 댓글에 남기는 것입니다.
블락체인 기반 블로그 Steemit에 Vote가 10개 이상되면 다음 타픽 진행하겠습니다.(희망사항)
Steemit 바로가기
https://steemit.com/blockchain/@etainclub/blockchain-4