블록체인이란?
블록체인의 핵심은 인터넷 상에 있는 사람들과 동일한 데이터를 가지는 것이다.
- 누구나 데이터를 추가할 수 있다.
- 데이터는 한 번 추가되면, 수정하거나 삭제할 수 없다.
- 개인이나 단체가 데이터를 관리하는 것이 아니라, 블록체인 네트워크에 있는 모든 사람들이 함께 관리한다.
블록(Block)
- 블록은 데이터를 저장하는 공간
- 블록에는 자산에 대한 정보를 담거나, 개인 정보를 암호화해서 담는 등 다양한 유형의 정보를 담을 수 있다.
- 블록의 구성은 어떤 종류의 데이터를 저장하느냐에 따라 결정된다.
- 비트코인과 같은 일반적인 암호화폐에서는 블록에 거래기록(트랜잭션)을 저장한다.
체인(Chain)
- 블록 하나에 모든 거래 기록을 담는 것은 비효율적이고 편의성이 떨어짐
- 네트워크에 참여한 사용자가 하나의 블록에 일정한 갯수의 트랜잭션을 넣어 네트워크에 공유하면, 새로운 블록을 만들어 새롭게 생긴 트랜잭션들을 담는다.
- 이 새로운 블록에는 이전 블록을 지칭하는 데이터를 함께 넣어, 직전 블록이 어떤 블록인지 지정한다.
- 연결 리스트와 비슷한 형태
- 모양이 마치 체인처럼 연결되어 있다고 해서 이러한 데이터 구조를 블록체인이라고 부른다.
블록 생성
- 블록체인 네트워크에서 거래가 발생하여 새로운 트랜잭션이 생기면, 이 트랜잭션은 네트워크 내에 있는 모든 노드들에게 공유된다.
- 블록체인에서는 다양한 검증(Verification)절차를 수행한다.
- 노드들은 공유받은 트랜잭션이 실제 송금자가 만든 트랜잭션이 맞는지, 악의적인 사용자가 타인을 사칭하는 것은 아닌지, 트랜잭션이 만들어지고 난 후 수정되지는 않았는지 검사한다.
- 트랜잭션에 대한 유효성 검사가 끝나면 트랜잭션이 블록에 담기고, 해당 블록이 체인에 추가되어 블록체인의 일부가 될 때 트랜잭션에 대한 처리가 완료된다.
- 트랜잭션을 모아서 하나의 블록으로 만드는 과정을 채굴(Mining)이라고 한다.
분산원장과 블록체인
블록체인은 특정 기술들이 추가된 분산 원장의 한 종류이다. 블록체인은 네트워크 내 모든 노드들이 새로운 블록에 대한 유효성을 검증하고 난 후에, 블록을 체인에 추가할 수 있기 때문이다.
일반적인 분산 원장과 블록체인의 차이점
- 블록 구조
블록체인은 일반적으로 블록 형태로 데이터가 저장된다. 그러나 모든 분산 원장이 블록 형식으로 데이터를 저장하지는 않는다. 분산원장은 여러 노드에 데이터를 분산시켜 저장하는 데이터베이스이며, 블록 형식이 아닌 다른 다양한 방식으로 데이터를 저장할 수 있다.
- 순서
블록체인 기술은 모든 블록이 직전 블록을 가리킴으로써 순서대로 배열되어 있다. 그러나 모든 분산 원장에서 데이터를 꼭 순서대로 저장하지는 않는다.
- 블록 생성 메커니즘
블록체인에서는 블록을 생성할 노드를 정하기 위해 PoW, PoS 와 같은 메커니즘을 사용한다. 이러한 메커니즘은 보통 자원을 소모하게 한다. 그러나 일반적인 분산 원장에서는 블록을 경쟁적으로 생성하지 않는 메커니즘을 사용하는 경우도 있다.
- 토큰
블록체인에서는 블록을 생성하기 위해 자원을 소모한 노드에게 보상을 주기 위해 코인을 제공하며, 이 코인은 화폐의 역할을 한다. 만약 자원을 소모해 블록을 생성했는데 아무런 보상도 주어지지 않는다면 아무도 블록을 만들려 하지 않을 것이다. 따라서 블록체인에는 코인이 필수적이다.