지금까지 트랜잭션의 생성, 디지털 서명, 채굴, 블락 생성, 블락체인 분기까지 살펴봤습니다. 다시 아래 거래 흐름 그림으로 돌아와 보죠.
[거래 흐름, 출처]
전체 흐름을 다시 한 번 짚어 보겠습니다. 제일 먼저 트랜잭션에 생성(1)되었고, 이 트랜잭션의 송신자의 개인키로 디지털 서명을 하고(2) 이것을 블락체인 네트워크 노드들에게 전파합니다(3). 그 다음 채굴 노드에 의해서 트랜잭션들을 모아서 채굴을 통해서 블락을 생성하고(4), 생성된 블락을 자신의 블락체인에 이어 붙입니다(5). 그리고, 이 블락을 네트워크의 다른 노드로 전파하여 다른 노드들도 동일한 블락체인을 구성하도록 합니다(6). 그 결과 블락체인 네트워크 상의 모든 노드들은 동일한 블락체인을 가지게 됩니다(7). 이러한 과정을 통해 전세계 노드들이 동일한 거래 장부(Ledger)를 가지게 됩니다. 이것이 바로 블락체인 장부인 것입니다. 블락 생성은 의도적으로 10분 마다 하게 되어 있지만 거래는 수초면 전세계 노드들에게 전파됩니다.
거래는 단 수초면 전세계 노드들에게 전파됩니다.
여기서 각 단계의 부연 설명을 해보겠습니다. 디지털 서명이 끝난 거래는 주변 노드들에게 전파된 후, 각 노드들은 거래 검증을 하게 됩니다. 일반 은행의 인터넷 뱅킹을 이용할 때와 유사하게 송신자의 잔액, 수신자의 계좌번호 등을 검사하듯이, 블락체인의 거래 검증에서는 거래의 형식이 맞는지, 거래에 사용된 코인이 유효한지 등을 검사합니다. 이 단계를 거래의 검증의 단계므로, 아직 블락이 생성되기 전입니다. 블락이 생성되려면, 비트코인 기준으로 10분 정도가 소요됩니다. 커피샵가서 커피 한잔 사먹고 10분을 기다려 결제 승인이 나길 기다릴 사람은 없을 것입니다. 따라서 소액 결제의 경우는 거래가 네트워크 노드들에 의해 검증된 후면 결제 처리하면 될 것입니다. 비트코인은 실제 이와 같은 방식으로 소액결제를 처리하고 있습니다. 만약 거래 금액이 크다면 안전을 위해서 블락이 생성 된 후, 더 안전하게는 6개의 블락이 쌓인 후 결제가 되도록 합니다.
소액 결제는 거래의 검증 후 정상 거래로 취급됩니다.
Nonce를 가장 빨리 찾아낸 채굴한 노드는, 즉 블락을 생성한 노드는 자신이 가지고 있는 블락체인에 방금 생성된 블락을 이어 붙입니다. 그 다음 이웃 노드들에게 새로 생긴 블락을 전송합니다. 이렇게 되면 블락은 수 초내에 전세계 노드들에게 전파됩니다. 블락을 수신한 노들은 자신이 보유한 블락체인에 해당 블락을 추가하게 되어, 전세계 모든 노드들이 동일한 블락체인 장부를 갖게 됩니다. 각 노드들이 하나의 블락체인 장부를 가지고 있지만 공유의 형태가 아니라 복사의 형태입니다. 따라서 특정 노드의 장부가 변질되어도 수 많은 원본 장부들이 존재하므로, 장부의 안전성이 확보되는 것입니다.
블락체인 장부는 공유가 아닌 복사의 형태로 존재합니다.
그런데 채굴에 성공하지 못한 노들들이 작업하던 트랜잭션들은 어떻게 되는 것일까요? 다시 채굴 가능 상태가 되어 채굴 노드가 채굴하길 기다리게 됩니다. 어떤 채굴 집단은 트랜잭션 처리를 빨리 해준다며 웃돈을 받기도 합니다. 웃돈을 받고도 고객의 거래를 특별히 우선순위로 채굴해 주는 서비스도 생겨난 것입니다. 검색해보니 이런 서비스가 불가능하다는 얘기도 나오는데, 일정부분 가능한 것처럼 나오네요. 무료로 트랜잭션 처리 속도를 빨리하는 서비스가 있으니 참고하세요.
블락체인 기반 블로그 Steemit에 Vote가 10개 이상되면 다음 타픽 진행하겠습니다.(희망사항)
Steemit 바로가기