본문으로 건너뛰기
buybitcoinsmart

용어집 / 채굴과 합의

블록

블록이란 무엇입니까?
블록은 비트코인 트랜잭션 한 묶음에 이를 봉인하는 80바이트 헤더를 더한 것으로, 약 10분마다 가장 먼저 이를 해결한 채굴업자에 의해 체인에 추가됩니다.

블록은 결제의 흐름을 순서가 정해진 영구적인 기록으로 바꿉니다. 블록 하나에는 헤더, 트랜잭션 수, 그리고 트랜잭션 자체가 담기며, 전체는 400만 가중치 단위로 제한되므로 실제로는 수천 건의 결제에 해당합니다. 어떤 결제가 확인되었다고 말할 때는 채굴업자가 그 결제를 블록에 넣었다는 뜻입니다.

작동 방식

블록에는 세 부분이 있고, 그중 첫 부분만 크기가 고정되어 있습니다.

헤더는 80바이트이며 절대 달라지지 않습니다. 그 뒤에는 트랜잭션 수가 비트코인의 가변 길이 compactSize 형식으로 기록됩니다. 그다음에 트랜잭션 자체가 순서대로 오며, 여기에는 엄격한 요건이 하나 있습니다. 첫 번째 트랜잭션은 채굴업자에게 지급하는 코인베이스 트랜잭션이어야 합니다. 코인베이스가 두 번째 자리에 있는 블록은 위조된 서명이 들어 있는 블록만큼이나 단호하게 거부됩니다.

크기는 더 이상 단순 바이트로 세지 않습니다. SegWit이 2017년 8월에 활성화된 이후 한도는 4,000,000 가중치 단위이며, 위트니스 밖의 바이트는 4단위, 위트니스 바이트는 1단위의 비용이 듭니다. 그 결과 위트니스 데이터가 많은 블록은 4 MB에 가까운 상한을, 구식 트랜잭션으로 가득 찬 블록은 약 1 MB의 상한을 가지며, 일반적인 실제 블록은 1.5 MB에서 2 MB 사이에 들어갑니다. 원래의 1,000,000바이트 규칙은 위트니스가 아닌 부분의 상한으로 그 아래에 남아 있으며, 그래서 “블록은 얼마나 커질 수 있는가”에 대한 정직한 답은 숫자가 아니라 범위입니다.

나머지는 모든 노드가 독립적으로 검사합니다. 헤더 해시는 목표값 이하여야 하고, 머클 루트는 실제로 존재하는 트랜잭션과 일치해야 하며, 어떤 입력도 두 번 사용될 수 없고, 코인베이스 출력은 보조금에 포함된 트랜잭션의 수수료를 더한 금액보다 많이 청구할 수 없습니다. 프로토콜은 채굴업자에게 대기 기간도 부과합니다. 블록에서 생성된 코인은 그 위에 100개의 블록이 더 쌓이기 전까지 사용할 수 없으므로, 나중에 재구성으로 블록이 버려진 채굴업자가 이미 그 수익을 써 버렸을 수는 없습니다.

비트코인을 구매할 때 이것이 중요한 이유

블록 공간은 경매이며, 출금에 붙는 수수료는 그 경매의 입찰가입니다.

블록은 유한하고 수요는 그렇지 않으므로, 멤풀이 붐빌 때는 가상 바이트당 가장 많이 지불하는 트랜잭션이 먼저 처리되고 나머지는 기다립니다. 이것이 “왜 내 출금이 멈춰 있습니까”라는 모든 지원 문의의 배경 메커니즘입니다. 코인을 옮기기 전에 수수료 추정기를 확인하고, 가능하면 한적한 시간대에 옮기는 것은 비용이 들지 않으며, 거래소 수수료 차이를 두고 한나절을 비교한 끝에 아낀 차액보다 흔히 더 많이 절약해 줍니다.

10분이라는 수치는 평균이지 시간표가 아닙니다. 블록 발견은 기억이 없는 무작위 과정처럼 작동하므로 간격이 크게 흩어집니다. 블록의 3분의 1 이상이 10분보다 오래 걸리고, 20개 중 약 1개는 30분보다 오래 걸립니다. 따라서 여러 번의 확인 후에 입금을 반영하는 거래소는 배송 시간이 아니라 분포를 알려 주는 것이며, 20분 안에 도착하지 않은 입금은 보통 분실이 아니라 정상입니다.

블록 공간을 아예 우회하는 방법도 있습니다. 라이트닝 결제는 오프체인에서 정산되고 채널이 열리거나 닫힐 때만 블록을 건드리므로, Strike 같은 앱은 온체인 출금이 다음 블록을 기다리는 동안 몇 초 만에 가치를 이동할 수 있습니다. 모든 비트코인 이전이 채굴업자에게 수수료를 내야 한다고 가정하기 전에 이 맞교환을 이해해 둘 가치가 있습니다.

역대 가장 크게 채굴된 블록 774,628의 내부

2023년 2월 1일에 Luxor 풀이 채굴한 블록 774,628은 비트코인이 만들어 낸 가장 큰 블록으로, 3.96 MB입니다.

여기에는 63건의 트랜잭션이 들어 있었고, 그중 하나가 전체의 3.94 MB를 차지했는데, Taproot 위트니스에 밀어 넣은 Taproot Wizard 이미지의 인스크립션이었습니다. 이 풀은 해당 트랜잭션을 멤풀에서 골라내지 않고 직접 조율했으며, 블록에는 거의 아무것도 지급하지 않았습니다. 당시에도 여전히 6.25 BTC였던 보조금에 비해 수수료는 약 0.009 BTC였습니다. 이전 기록은 2.77 MB였습니다.

이 블록은 가중치 규칙이 작동하는 모습을 보여 주므로 찾아볼 가치가 있습니다. 예전의 1 MB 한도라면 그 트랜잭션은 불가능했을 것이고, 4,000,000 가중치 단위 예산에서 그것이 가능한 것은 오로지 위트니스 데이터가 할인되기 때문입니다. 또한 참여자 한 명이 블록 전체를 차지할 수 있음을 보여 주는데, 이것이 바로 블록 크기 전쟁에서 다툰 문제입니다.

블록 vs 블록 헤더

블록은 전체 객체이고, 헤더는 그 앞부분에 있는 80바이트 요약입니다. 이 구분은 지엽적이 아니라 실용적입니다. 채굴업자는 헤더만 해시하고, 라이트 지갑은 헤더만 내려받으며, 처음 동기화하는 노드는 트랜잭션을 하나도 요청하기 전에 헤더 체인을 먼저 가져옵니다. 어떤 문서가 “블록 해시”라고 말한다면 그것은 그 80바이트의 해시를 뜻하며, 내부의 결제들에 대한 해시가 아닙니다.

블록 vs 스테일 블록

블록은 네트워크가 합의한 체인 위에 있는 것이고, 스테일 블록은 그 체인이 되기 위한 경쟁에서 진, 완벽하게 유효한 블록입니다. 두 채굴업자가 이따금 거의 같은 순간에 블록을 풀면 네트워크는 잠시 두 후보를 보유하고, 성장을 멈춘 가지는 버려집니다. 버려진 블록에는 아무 문제가 없었고 그 트랜잭션은 거의 항상 다음 블록에 다시 나타납니다. 이것이 확인 1회가 6회보다 약한 이유이기도 합니다. 블록이 깊이 자리할수록 경쟁하는 가지가 그것을 앞지르는 일은 덜 그럴듯해집니다.

혼동하기 쉬운 용어

자주 묻는 질문

비트코인 블록 하나에 트랜잭션은 몇 건까지 들어갑니까?

보통 수천 건입니다. 한도가 트랜잭션 수가 아니라 4,000,000 가중치 단위이기 때문입니다. 작은 최신 트랜잭션으로 가득 찬 블록에는 멀티시그나 인스크립션 데이터를 담은 블록보다 트랜잭션이 더 많이 들어갑니다.

제 트랜잭션이 다음 블록에 왜 들어가지 않았습니까?

채굴업자가 수수료율로 정렬하는데, 입찰한 수수료율이 해당 블록의 기준선보다 낮았기 때문입니다. 트랜잭션은 멤풀에 남아 있다가 수요가 줄거나 replace-by-fee로 수수료를 올리면 포함됩니다.

블록이 10분보다 빨리 생성되는 경우가 있습니까?

자주 있습니다. 10분은 난이도 조정이 목표로 하는 장기 평균이며, 개별 간격은 수 초에서 1시간을 훨씬 넘는 경우까지 다양합니다. 간격 20개 중 대략 1개가 30분을 넘습니다.

다음에 읽을 글

관련 용어

채굴과 합의 분야의 다른 용어

이 페이지를 영어로 읽기