트랜잭션 블록 (Transaction Block)

초급블록체인수정일

트랜잭션 블록은 블록체인에 추가될 수 있도록 해싱되어 블록에 모인 트랜잭션 모음입니다. 네트워크는 트랜잭션을 하나씩 따로 기록하지 않고 일정 시간 동안 모인 트랜잭션을 한 블록으로 묶어 검증하고, 그 블록을 이전 블록에 연결해 원장을 이어 갑니다.

블록의 구성

비트코인을 예로 들면 블록은 블록 헤더와 트랜잭션 목록으로 이루어집니다. 80바이트 크기의 블록 헤더에는 다음 값이 들어갑니다.

  • 버전: 블록이 따르는 규칙 버전입니다.
  • 이전 블록 해시: 바로 앞 블록 헤더의 해시로, 블록들을 사슬처럼 잇는 연결 고리입니다.
  • 머클 루트: 블록 안의 모든 트랜잭션 해시를 둘씩 짝지어 반복 해싱한 머클 트리의 꼭대기 값입니다. 트랜잭션 하나만 바뀌어도 이 값이 달라집니다.
  • 타임스탬프: 블록이 만들어진 대략적인 시각입니다.
  • 난이도 목표(bits)와 논스: 작업증명에서 채굴자는 헤더 해시가 목표값보다 작아질 때까지 논스를 바꿔 가며 해시를 계산합니다.

트랜잭션 목록의 첫 번째는 코인베이스 트랜잭션으로, 블록 보상과 블록 안 트랜잭션들의 수수료를 채굴자에게 지급합니다. 그 뒤로 사용자들이 보낸 일반 트랜잭션이 이어집니다. 블록 해시는 헤더를 SHA-256으로 두 번 해싱한 값입니다.

시장 상인의 장부에 비유하면

  • 개별 트랜잭션: 과일이나 옷을 사는 것처럼 구매 한 건 한 건이 하나의 트랜잭션입니다.
  • 블록: 상인이 한 시간 동안의 모든 거래를 장부의 한 페이지에 기록한다고 생각해 보십시오. 이 페이지가 블록입니다.
  • 해싱: 한 시간이 끝나면 상인은 그 페이지의 모든 거래를 바탕으로 고유한 코드를 계산합니다. 이 코드가 해당 블록의 지문 역할을 하는 해시입니다.
  • 블록체인에 추가: 새 페이지에는 앞 페이지의 지문이 함께 적혀 있어, 앞 페이지를 고치면 그 뒤의 모든 페이지가 맞지 않게 됩니다.

왜 블록으로 묶을까요?

  • 보안: 블록이 해시로 연결되어 있어 과거 트랜잭션을 고치려면 그 뒤의 모든 블록을 다시 만들어야 하므로 변조가 매우 어렵습니다.
  • 효율성: 네트워크 전체가 트랜잭션 하나하나가 아니라 블록 단위로 합의하므로 검증과 전파가 효율적입니다.
  • 투명성: 블록 안의 모든 트랜잭션은 공개 원장에서 누구나 확인할 수 있습니다.

한계

블록에는 크기 제한이 있습니다(비트코인은 세그윗 이후 블록 무게 400만 단위). 트랜잭션이 몰리면 모든 거래를 다음 블록에 담을 수 없어 대기 시간이 길어집니다. 수수료는 사용자가 정해 트랜잭션에 붙이며, 채굴자는 대개 수수료가 높은 트랜잭션부터 블록에 담으므로 혼잡할 때는 수수료가 오릅니다. 이더리움처럼 블록 구조가 다른 체인도 있지만, 트랜잭션을 묶어 해시로 연결한다는 기본 원리는 같습니다.

이 글은 학습을 위한 일반 정보이며 투자 권유나 법률 자문이 아닙니다. 가상자산은 가격 변동이 크고 원금 손실 위험이 있습니다.