전 토픽에 나왔던 블락체인 흐름도를 보시죠.
[거래 흐름, 출처]
바로 전 토픽에서 다룬 부분이 위 그림의 2번 트랜잭션 전송까지입니다. 다음이 3번 트랜잭션 공유입니다. 이전 토픽에서 트랜잭션을 생성하고 이것을 개인키로 디지털 서명한 후 블락체인 네트워크에 전송하는 것까지 다뤘습니다. 위 그림에서 처음 트랜잭션을 수신한 노드는 해당 트랙잰션을 주변으로 전파시킵니다. 블락체인 네트워크는 이런 식으로 트랜잭션들이 노드간 공유되어 존재하게 됩니다.
트랜잭션들은 블락체인 네트워크 노드간 공유됩니다.
블락체인은 말 그대로 블락이 연결되는 구성입니다. 특히 일열로 연결되는 구조입니다. 그럼 블락(Block)은 뭣인가하면 블락은 트랜잭션들의 집합입니다. 하나의 블락내에 여러 개의 트랜잭션들이 있는 것이죠. 어떤 블락체인을 사용하느냐에 따라 하나의 블락에 포함되는 트랜잭션의 개수가 달라집니다. 비트코인 블락체인 네트워크는 현재 블락의 크기(Block Size)가 1MB입니다. 이곳을 보면 최신 블락을 볼 수가 있습니다.
최신 블락을 보면 트랜잭션 하나당 대략 998kB/1121B= 890 바이트를 차지하고 있네요. 트랜잭션의 크기는 거래 내용에 따라 변경될 수 있습니다. 또한 하나의 블락에 트랜잭션 개수가 일정하지 않는데 1MB를 넘지않는 범위에서 블락이 생성됩니다. 또 블락이 생성되는 시간(Block Time)이 있는데 말 그대로 블락인 생성되는 주기가 있습니다. 비트코인 네트워크의 경우는 약 10분입니다. 즉 새로운 블락은 10분마다 생성된다는 것입니다. 그렇다면 의문이 들 것입니다. 내 트랜잭션이 블락체인 네트워크에 기재되려면 10분이나 걸린다고? 이걸 결재 시스템으로 사용할 수가 있을까?라는 의문이 들겁니다. 실제 10분 이상이 걸립니다. 특히나 안전한 거래를 위해서는 내 트랜잭션이 들어있는 블락 이후로 최소 6개의 블락이 더 생겨야 거래를 컨펌(Confirm)하기도 합니다. 와우.. 그럼 거래 후 1시간이 지나야 결재가 되는거란 말인가? 하고 하실 수 있지만, 실제 생활에서의 소액 거래는 트랜잭션이 블락체인 네트워크로 전송된 시점에 가결재 하는 방식으로 사용됩니다. 추후에 트랜잭션에 문제가 있다면 나중에 처리되는 방식으로 사용합니다. 거래 금액이 큰 경우는 보다 안전한 거래를 위해 몇 번의 블락이 생성된 후 결재가 완료되도록 하는 것이 좋습니다.
여러 트랜잭션들이 모여 하나의 블락을 구성합니다.
자 그럼 이제 그 유명한 '채굴(Mining)'이 등장합니다. 채굴기라던지 채굴로 돈 벌었다던지, 채굴공장, 채굴 대행 등등 하도 신문에서 떨들어대서 들어보셨을 겁니다. 최근 채굴이 인기를 끌면서 고급 비디오 카드들이 동나는 사태까지 벌어졌을 정도였으니깐요.
채굴이란 단어는 정말 잘 어울리는 단어입니다. 마치 금광에서 금을 캐는 작업을 채굴이라고 하듯이 블락체인 네트워크에서 '블락(Block)'을 캐는 또는 생성하는 작업을 채굴이라고 합니다.
바로 블락체인 네트워크에 블락 생성을 담당하는 '채굴 노드(Mining Node)'들이 채굴합니다. 이들 노드는 블락체인 네트워크에서 공유되고 있는 트랜잭션들을 모아서 블락 만들기를 시도합니다. 이 때 발생되는 문제점이 있습니다! 트랜잭션들이 네트워크 노드들에게 공유되고 있으므로, 동일한 트랜잭션이 서로 다른 블락으로 생성될 수 있습니다. 블락체인 네트워크에서는 이를 방지하기 위해 채굴 노드들간 경쟁을 시킵니다. 즉 블락을 빨리 만드는 노드에 블락 생성 보상(Reward)을 주는 방식으로 경쟁을 시킵니다. 이때 채굴 노드들간 경쟁시키는 방법이 수학 문제(Math Problem) 푸는 것입니다. 엄밀히는 특정 해쉬값이 나오도록 거래에 추가할 임의값(Nonce)를 빨리 찾아내는 노드가 경쟁에서 이기게 됩니다.
여러 트랜잭션들이 모여 하나의 블락을 구성합니다.
블락체인은 블락이 서로 연결된 링크드 리스트 구조입니다.
다음 토픽에서는 채굴 과정을 보다 상세히 다뤄 보겠습니다. 채굴 과정은 블락체인이 돌아가는데 필수적인 과정이고, 아주 기발한 방식이므로 꼭 알고 넘어가면 좋습니다.
블락체인 기반 블로그 Steemit에 Vote가 10개 이상되면 다음 타픽 진행하겠습니다.(희망사항)
Steemit 바로가기