블록(Block) + 체인(Chain)
관리 대상 데이터를 '블록'이라고 하는 소규모 데이터들이 P2P 기반으로 생성된 '체인' 형태의 연결고리 기반 분산 데이터 저장 환경에 저장하는 분산원장 관리 기술이다.
블록은 데이터를 저장하는 공간을 의미한다. 블록에는 자산에 대한 정보를 담거나, 개인 정보를 암호화해서 담는 등 다양한 유형의 정보를 담을 수 있다.
비트코인과 같은 일반적인 암호화폐에서는 블록에 거래 기록을 저장한다. 블록체인에서는 이 거래기록을 “트랜잭션”이라고 한다. 이 트랜잭션에는 송금자에 대한 정보, 송금자의 잔액, 보내려는 금액, 수신자에 대한 정보 등이 담기게 된다. 또한 블록체인에서는 사용자가 직접 자신의 자산에 대한 소유권을 증명하기 위한 디지털 서명을 추가하게 된다.
블록은 이러한 트랜잭션들을 담은 거래 기록의 집합이다.
블록 하나에 전세계의 모든 거래 기록을 담고자 하면 블록의 크기가 너무 커지게 된다. 또한 네트워크의 수많은 사람들이 동시에 하나의 블록에 거래를 기록하려 하면 여러 불편함을 겪을 것이다. 그래서 네트워크에 참여한 사용자가 하나의 블록에 일정한 갯수의 트랜잭션을 넣어 네트워크에 공유하면, 새로운 블록을 만들어 새롭게 생긴 트랜잭션들을 담는다. 그리고 이 새로운 블록에는 이전 블록을 지칭하는 데이터를 함께 넣어, 직전 블록이 어떤 블록인지 알 수 있게 한다.
이처럼 일정 트랜잭션들이 생성될때마다 새 블록들이 생성되고 각 블록들이 이전 블록을 가리켜 연결되어 있는 모습이 꼭 체인처럼 연결되어 있다고 해서 이러한 데이터 구조를 블록체인이라고 부른다.
블록체인 네트워크에서 거래가 발생하여 새로운 트랜잭션이 생기면, 이 트랜잭션은 네트워크 내에 있는 모든 노드들에게 공유된다. 이 과정에서 다양한 검증(verification) 절차를 수행하게 되는데 노드들은 공유받은 트랜잭션이 실제 송금자가 만든 트랜잭션이 맞는지, 악의적인 사용자가 타인을 사칭하는 것은 아닌지, 트랜잭션이 만들어지고 난 후 수정되지는 않았는지 검사한다.
유효성 검사가 끝나고 해당 트랙잭션이 블록에 담긴 후, 해당 블록이 체인에 추가되어 블록체인의 일부가 되면 그제서야 트랜잭션의 처리가 완료된다. 이처럼 트랜잭션을 모아서 하나의 블록으로 만드는 과정을 채굴(mining)이라고 한다.
채굴은 트랜잭션을 처리하는 작업이므로 암호화폐 시스템에서는 송금 처리를 의미한다. 따라서 채굴은 암호 화폐 송금 서비스를 운영하는 핵심 역할을 하기 때문에 채굴 노드에게는 보상이 주어진다. 이 보상을 위해 채굴은 경쟁적으로 이루어진다. 경쟁에 참여한 노드들은 저마다 블록을 만들어 네트워크에 전파하며, 이 블록 생성에 대한 보상으로 코인을 받는다.