# 블록 우선 동기화 (Blocks-First Sync)

**블록 우선 동기화**는 피어로부터 각 블록을 다운로드한 다음 유효성을 검사하여 블록체인을 동기화하는 방식입니다. 새로운 노드(네트워크의 장치)가 블록체인의 완전하고 확인된 사본을 얻는 초기 블록 다운로드(IBD) 방법 가운데 하나로, 비트코인 코어(Bitcoin Core)는 0.10.0 버전 이전까지 이 방식을 사용했습니다.

조각 하나하나가 맞는지 꼼꼼히 확인해야 하고 끝없이 커지는 거대한 퍼즐을 맞춘다고 상상해 보세요. 새 장치가 블록체인 네트워크에 참여해 동기화할 때가 바로 이런 상황입니다. 블록 우선 동기화는 이 퍼즐을 조각별로, 순서대로 맞춰 가는 과정과 같습니다.

## 어떻게 작동하나요?

1. **블록 다운로드:** 새로운 노드는 동기화 상대로 정한 피어(다른 노드)에 자신이 가진 마지막 블록을 알리고, 그 뒤의 블록 목록을 받아 블록을 차례로 내려받습니다. 블록은 확인된 트랜잭션 묶음을 담은 퍼즐 조각과 같습니다.
2. **유효성 검사가 핵심입니다:** 새로운 노드는 이러한 블록을 맹목적으로 수락하지 않습니다. 블록체인의 규칙을 사용하여 각 블록의 작업 증명과 모든 트랜잭션이 유효하며 변조되지 않았는지 확인합니다.
3. **체인 구축:** 블록의 유효성이 검사되면 새 노드가 보유한 블록체인 사본에 추가됩니다. 이 프로세스는 새로운 노드가 네트워크의 나머지 부분을 따라잡을 때까지 블록별로 계속됩니다.

## 헤더 우선 동기화와의 비교

비트코인 코어는 0.10.0 버전부터 **헤더 우선 동기화(headers-first sync)**로 바꾸었습니다. 이 방식은 먼저 블록 헤더(블록당 80바이트)만 내려받아 작업 증명이 가장 많이 쌓인 체인을 확인한 뒤, 그 체인의 블록 본문을 여러 피어에게서 동시에 병렬로 내려받습니다.

- **속도:** 블록 우선 방식은 보통 하나의 동기화 피어에게서 블록을 순서대로 받으므로, 그 피어가 느리면 전체 동기화가 느려집니다. 헤더 우선 방식은 여러 피어에서 블록을 나누어 받습니다.
- **잘못된 체인 위험:** 블록 우선 방식에서는 전체 블록을 받아 보기 전까지 그 체인이 최선의 체인인지 알기 어려워, 피어가 최선이 아닌 체인을 보내면 많은 데이터를 받고 검증한 뒤에야 알아챌 수 있습니다. 헤더 우선 방식은 가벼운 헤더로 먼저 최선의 체인을 정합니다.
- **메모리 사용:** 블록 우선 방식에서는 순서가 어긋나 도착한 블록(부모 블록이 아직 없는 블록)을 메모리에 쌓아 두어야 하는 문제가 있었습니다.

## 블록 우선 동기화의 장점

- **보안:** 각 블록의 유효성이 검사되어 데이터가 정확하고 안전합니다.
- **일관성:** 모든 노드가 블록체인의 동일한 사본을 갖도록 하여 네트워크 전체의 일관성을 유지합니다.
- **단순성:** 프로세스는 선형 시퀀스를 따르므로 구현하고 이해하기가 더 쉽습니다.

## 블록 우선 동기화의 단점

- **시간 소모적:** 각 블록을 다운로드하고 유효성을 검사하는 데 시간이 오래 걸릴 수 있으며, 특히 블록이 많은 대규모 블록체인인 경우 더욱 그렇습니다.
- **리소스 집약적:** 전체 블록을 내려받고 검증해야 하므로 저장 공간, 대역폭, 연산 능력이 많이 필요합니다.
- **불안정한 네트워크에서의 낮은 성능:** 블록을 차례로 받아야 하므로 연결이 느리거나 끊기면 동기화가 크게 지연됩니다.

따라서 블록 우선 동기화는 블록을 하나씩 검증하는 단순하고 꼼꼼한 방식이지만, 이러한 한계 때문에 비트코인 코어에서는 헤더 우선 동기화로 대체되었습니다.

---
출처: https://achivx.kr/glossary/blocks-first-sync-%EB%B8%94%EB%A1%9D-%EC%9A%B0%EC%84%A0-%EB%8F%99%EA%B8%B0%ED%99%94/ · ACHIVX 용어 사전 · 수정일 2026-10-20
