Block Fork

블록 Fork란, 블록체인 네트워크에서 두 개 이상의 블록이 동시에 같은 부모 블록 위에 생성되면서, 체인이 일시적으로 분기되는 현상이다.

예시로 이해해보자면 다음과 같다.

원래 체인:

... → 블록 #100 → 블록 #101

동시에 두 노드가 블록 생성:

          ↘ 블록 #102-A (노드 A)
블록 #101
          ↘ 블록 #102-B (노드 B)

이렇게 두 갈래로 갈라진 상태가 Fork 상태이다.

Fork가 생기는 이유

  1. 동시 블록 생성: 여러 노드가 거의 같은 시간에 블록을 생성
  2. 일부 노드가 최신 블록을 늦게 받는 경우(네트워크 지연)
  3. 프로토콜 업그레이드 또는 체인을 변경하는 경우
  4. 이중 지불 등의 공격 시도가 있을 때

Fork 이후에는 어떻게 처리되나?

  1. 네트워크는 더 긴 체인을 정식 체인으로 선택
  2. 짧은 체인의 블록은 버려짐 (orphan block)
  3. 그 안에 있던 트랜잭션은 다시 mempool로 돌아감