본문 바로가기

블록체인

블록( Block ) 이란?

 

블록 ( Block )

 

블록이란 다수의 트랜잭션을 모아서 하나로 관리하기 위한 묶음이다. 예를 들어, 비트코인의 경우 10분간 진행된 약 2,000건의 거래내역을 하나의 블록으로 묶어서 관리한다.

 

라이트코인의 경우 약 2분 30초 동안 진행된 거래내역을 하나의 블록으로 만들어 관리한다. 하나의 블록을 다음 블록과 이어주기 위해 해시를 이용하여 체인 구조를 만들 수 있다. 이처럼 다수의 트랜잭션을 블록으로 묶은 후 시간 순서에 따라 체인으로 엮은 것을 블록체인이라고 한다. 

 

 

 

블록의 구성요소

 

블록은  데이터를 저장하는 단위로, 바디(body)와 헤더(header)로 구분된다. 바디에는 거래내용이 포함되어 있고 헤더에는 머클해시(머클루트)나 넌스 등의 암호코드가 담겨있다.

 

 

헤더 ( header )

  • 버전( version ) : 블록헤더의 버전을 뜻한다. 

  • 이전 블록해시 ( previousHash ) : 블록체인이 검증 가능한 체인이 되는 중요한 이유이다. 각 블록들은 이전 블록해시를 통해서 연결된다.

    각 블록들이 이전 블록의 내용을 확인하고 저장하고 있으니 그 검증이 최초 블록인 제네니스 블록까지 이어진다. 이 연결된 블록들 중에서 하나의 블록을 고쳐야한다면 그 외에 여러 블록들도 다 고쳐야하기 때문에 누군가가 해킹을 목적으로 블록을 건드릴 수 없다.

  • 머클루트 ( merkle root ) : 머클트리의 뿌리 부분이다. 

    머클트리 :

    머클트리는 블록에 포함된 거래 내역을 나무 형태로 요약한 것이다. 1979년 머클트리를 개발한 랄프 머클의 이름을 따서 머클트리라고 부르며 해시트리, 혹은 이진트리라고도 부른다. 머클트리는 블록 내에서 다수의 원장들을 암호화하고 합치는 과정을 반복하여 최종적으로 하나의 유닛으로 암호화하는 방법이다.

    머클트리의 형태는 블록이 보유하고 있는 거래 내역들의 해시값을 가장 가까운 거래내역끼리 쌍을 지어 해시화하고, 쌍을 지을 수 없을 때까지 해당 과정을 반복하여 완성하는데, 이 과정을 통해 다수의 데이터를 하나로 묶어 용량을 절약할 수 있다.


    머클트리에서는 모든 거래내역들을 해시화한 머클루트를 통해 거래내역의 변동여부를 쉽게 확인할 수 있고, 이 머클루트를 헤더에 담아 트랜잭션의 유효성을 보장한다
  • 타임스탬프 ( timestamp ) : 블록의 대략적인 생성 시간을 뜻한다.

  • 채굴 난이도 ( difficulty 해시 목표값 ) : 블록 생성은 약 10분에 하나씩 만들어지는 것으로 블록체인 네트워크에 설정되어 있다. 그러나 다른 중앙화된 시스템처럼 관리자가 있는 것이 아니므로 네트워크 안에서 이 시간이 조정되게 만들어져 있다. 그 시간을 조정하는 장치가 바로 채굴 난이도이다.
  • 논스 ( nonce ) : 논스는 블록을 만드는 과정에서 적절한 해시값을 찾는 재료이다.