BIP 9분야 · 유형 · 정보성상태 · 배포됨

타임아웃·지연이 있는 버전 비트

Version bits with timeout and delay

쉬운 설명

비트코인에서 소프트포크를 안전하게 활성화하기 위한 「버전 비트」 기반 신호·타임아웃 방식의 표준이에요. 여러 소프트포크를 병렬로 배포하고, 2016블록 구간에서 95% 신호가 모이면 lock-in 후 활성화돼요.

BIP 9 diagram
BIP 9 시각 다이어그램

BIP0009(BIP9)는 비트코인에서 소프트포크를 안전하게 활성화하기 위해 만든 "버전 비트(version bits)" 기반 신호·타임아웃 방식의 표준입니다.

BIP9의 목적

여러 소프트포크를 동시에 병렬로 배포할 수 있게 합니다. 채굴자들이 블록 헤더의 version 비트로 "업그레이드 지원 여부"를 신호하도록 표준화합니다. 일정 기간 안에 충분한 신호(해시 파워)가 모이지 않으면 자동으로 "실패"로 처리하여, 같은 비트를 나중에 재사용할 수 있게 합니다.

어떻게 동작하나요?

버전 비트 선택: 블록 헤더의 version 필드는 32비트이고, 이 중 특정 1비트를 해당 소프트포크의 신호용 비트로 정합니다. 파라미터 설정: 각 소프트포크마다 name(제안 이름), bit(0–28 중 하나, 동시 소프트포크끼리는 서로 다른 비트), starttime(신호 시작 시점, 보통 릴리스 후 약 한 달 뒤), timeout(이때까지 lock-in에 실패하면 실패로 보는 시점, 보통 starttime 후 1년)을 정합니다. 채굴자 신호: 채굴자는 자신이 지지하는 소프트포크에 해당하는 비트를 1로 설정한 version 값을 블록 헤더에 넣어 채굴합니다. 윈도우와 임계치(95%): 비트코인은 2016블록 단위로 난이도 조정(약 2주)을 하는데, BIP9도 같은 2016블록을 하나의 "측정 구간"으로 사용합니다. 한 구간 안에서 약 95%에 해당하는 블록(2016 중 1916개)이 해당 비트를 세트하면 "lock-in" 조건을 만족합니다.

상태(state) 머신

DEFINED: 제안이 정의만 되어 있고, starttime 전이라 아직 신호를 안 보는 상태. STARTED: starttime 이후, 각 2016블록마다 비트가 얼마나 세트됐는지 집계하는 상태. LOCKED_IN: 어떤 2016블록 구간에서 95% 이상 신호를 달성해, 다음 구간부터 새 규칙이 "활성 예정"인 상태. ACTIVE: 그 다음 구간부터 새 규칙이 실제로 적용·강제되는 상태. FAILED: timeout까지도 95%에 도달하지 못해, 이 제안은 더 이상 진행되지 않는 상태(비트를 나중에 다른 제안에 재사용 가능).

왜 중요한가?

안전성: 충분한 해시 파워가 동의했을 때만 소프트포크 규칙을 적용하므로, 체인 분열 위험을 줄입니다. 유연성: 여러 소프트포크를 서로 다른 비트에 매핑해 병렬로 추진할 수 있어, 프로토콜 진화를 더 유연하게 합니다. 거버넌스 모델: "채굴자 신호를 통해 소프트포크를 활성화한다"는 명확한 거버넌스 절차를 제공하여 이후 BIP8 등 다른 활성화 방식 논의의 기준이 되었습니다.

공식 BIP 문서open_in_new