BIP68은 입력의 nSequence 필드를 출력이 채굴된 뒤 지나야 하는 시간으로 해석합니다. 31번 비트가 꺼져 있을 때 22번 비트가 블록 수인지 512초 단위 시간인지 가르고, 값은 하위 16비트에서 읽습니다. 이 글은 2026-10-27에 연 BIP68 원문(상태 Deployed)으로 확인한 범위만 다룹니다.
확인 기준일 2026-10-27 · 다음 확인 예정 2026-11-26
어떤 거래에 적용될까?
원문은 nVersion이 2 이상인 거래를 전제로 합니다. 코인베이스 거래 입력의 nSequence에는 새 규칙을 적용하지 않습니다. 31번 비트가 설정된 입력은 상대 잠금이 없는 것으로 봅니다. 동기 설명에 따르면 nSequence는 원래 같은 입력의 거래를 더 큰 값으로 교체하려는 구상이었으나 제대로 구현되지 않았고, 이 BIP는 기존 기능을 깨지 않고 용도를 바꿉니다. 목적은 서명된 입력이 출력 확인 뒤 정해진 기간 동안 무효로 남게 하는 것입니다. 구현 주석에는 모든 입력의 nSequence를 SEQUENCE_FINAL인 0xffffffff로 두면 nLockTime도 꺼진다고 적혀 있습니다.
| 비트·값 | 원문의 의미 |
|---|---|
| 1<<31 설정 | 합의상 의미 없음, 어떤 상황에서도 블록에 포함 가능 |
| 1<<22 설정 | 상대 잠금이 512초 단위의 시간 |
| 1<<22 미설정 | 상대 잠금이 블록 수 |
| 0x0000ffff 마스크 | 상대 잠금 값은 하위 16비트만 사용 |
| 적용 대상 | nVersion 2 이상 거래, 코인베이스 입력 제외 |
시간 기준은 무엇으로 잴까?
시간 잠금의 기준은 BIP113에서 정의한 중앙값 시간(MTP)입니다. 기간은 출력을 채굴한 블록의 이전 블록 MTP에서 시작해 새 블록의 이전 블록 MTP에서 끝납니다. 값 n이면 출력 채굴 시각에서 512×n초 뒤에 만든 블록부터 포함될 수 있고, 0이면 어느 블록에든 들어갑니다. 블록 기반에서는 n개 블록 뒤부터 가능합니다. 시간 값을 초로 바꾸는 일은 512를 곱하거나 9비트 위로 옮기는 것과 같습니다.
왜 512초와 16비트일까?
블록이 평균 600초마다 생기므로 같은 비트 수로 블록 수와 시간이 비슷한 길이를 표현하도록 512초(2의 9제곱)를 골랐다고 원문이 설명합니다. 16비트로 약 1년의 상대 잠금을 표현하고 나머지 비트는 앞으로의 확장에 남겨 둡니다. 원문이 드는 용도에는 양방향 결제 채널이 있으며, 채널 잔액의 이해는 라이트닝 채널 잔액 글에서 이어집니다.
스크립트와는 어떻게 이어질까?
22번 비트는 스크립트에서 3바이트 부호 있는 정수의 최상위 비트이므로 OP_CHECKSEQUENCEVERIFY(BIP112)의 3바이트 푸시와 맞물립니다. 스크립트 평가 자체는 스크립트 스택 글에서 볼 수 있습니다.
자주 묻는 질문
nLockTime과 무엇이 다른가요?
원문은 nLockTime이 특정 시점까지 채굴을 막는 데 쓰이는 반면, nSequence는 사용되는 출력의 나이(블록 수 또는 시간)를 기준으로 삼도록 쓰임을 바꾼다고 설명합니다.
시간 잠금 값 하나는 몇 초인가요?
시간 기반일 때 단위는 512초이며, 시퀀스 값에 512를 곱하거나 9비트 위로 옮겨 초로 바꿉니다.
블록 수 기준 값 n은 어떻게 읽나요?
출력이 채굴된 뒤 n개 블록이 지난 블록부터 포함될 수 있다는 뜻이며, 0이면 어느 블록에나 들어갈 수 있습니다.
31번 비트가 설정되면 거래가 무효인가요?
아닙니다. 합의상 의미가 없을 뿐 현재 가능한 모든 상황에서 블록에 포함될 수 있습니다.



