Block, 즉 블록은 비트코인 이력에 추가되는 다음 거래 묶음입니다. 내 노드가 따르는 체인의 유효한 블록에 결제가 들어가면 첫 번째 확인을 받습니다. 중앙 관리자가 결정하는 것이 아닙니다. 채굴자가 블록을 만들고 다른 노드들이 비트코인 규칙을 지켰는지 검사합니다.
비트코인을 보내면 지갑은 처음에 확인 대기 상태를 표시합니다. 거래는 노드 사이로 퍼지고 각 노드의 미확인 거래 목록인 멤풀에 들어갈 수 있습니다. 채굴자는 일부를 골라 후보 블록을 만듭니다. 필요한 Proof of Work (네트워크 규칙을 충족하는 채굴 계산 결과)를 찾고 노드들이 그 블록을 활성 체인에 받아들이면, 포함된 결제는 첫 확인을 받습니다. 그 뒤에 다음 블록이 연결되면 확인 수는 둘이 됩니다. 목표는 블록 사이가 평균 약 십 분이라는 것이지 모든 결제가 십 분 안에 처리된다는 보장은 아닙니다. [1] [3]
모든 블록에는 짧은 헤더와 거래들이 있습니다. 헤더는 앞선 블록의 암호학적 지문을 포함하며, 그 블록의 데이터가 바뀌면 참조도 바뀝니다. 따라서 결제를 무작위로 쌓는 대신 연결된 이력이 됩니다. 헤더의 또 다른 지문은 해당 블록의 거래를 요약하며 Merkle root라고 합니다. 채굴자는 숫자로 된 지문인 해시가 난이도 목표를 만족할 때까지 헤더의 변형을 반복해 시도합니다. 이것만으로 결제가 올바르다는 사실이 증명되지는 않습니다. 풀 노드는 서명, 지출 권한과 다른 규칙도 검사합니다. 유효한 Proof of Work가 무효인 거래를 고쳐 주지는 않습니다. [1] [3]
첫 거래는 Coinbase Transaction이라고 합니다. 채굴자는 여기에 허용된 신규 발행량과 블록에 포함된 거래 수수료의 합계까지 받을 수 있습니다. 노드는 이어 일반 거래를 순서대로 검사합니다. 아직 쓰지 않은 금액이 사용 가능한 자금에서 빠지고 새 금액이 생깁니다. 이 개별 금액을 UTXO라고 합니다. 다른 조건도 모두 충족하면 같은 블록의 앞선 거래에서 나온 출력을 뒤의 거래가 쓸 수 있습니다. 하지만 같은 출력을 두 번 쓸 수는 없습니다. 새 coinbase 보상도 그 블록에서 즉시 쓸 수 없으며, 100블록이라는 특별한 대기 규칙이 적용됩니다. [1]
블록에는 고정된 결제 자리 수가 없습니다. 단순한 거래는 복잡한 거래보다 데이터가 적게 필요하므로 같은 용량에 들어가는 거래 수가 달라집니다. SegWit (거래 데이터의 저장 방식과 계산 방식을 바꾼 비트코인 규칙 업데이트) 이후 용량은 가중치로 계산하며 한도는 4,000,000단위입니다. 이는 물리적 질량이 아니라 데이터를 세는 기술적 척도이고, 다른 규칙도 적용됩니다. 채굴자는 용량을 전부 채울 의무가 없습니다. 이른바 빈 블록은 일반 결제를 생략할 수 있지만 coinbase는 포함합니다. 따라서 빈 블록은 거래가 하나도 없거나 자동으로 무효라는 뜻이 아닙니다. [1] [2]
두 채굴자가 거의 동시에 같은 이전 블록을 잇는 블록을 찾기도 합니다. 둘 다 유효할 수 있지만 경쟁하는 가지가 생깁니다. 노드는 유효한 가지 중 증명된 총 작업량으로 선택하며, 단순 투표나 블록 수만으로 결정하지 않습니다. 다른 가지로 옮기는 것이 재구성입니다. 떠난 블록의 결제는 확인을 잃을 수 있습니다. 여전히 유효하고 새 가지에 없다면 다시 포함되기를 기다릴 수 있습니다. 추가 확인은 대체로 신뢰를 높이지만, 수학적으로 되돌릴 수 없다는 약속은 아닙니다. 기술적인 내용을 덧붙이면, 헤더는 80바이트입니다. Merkle root는 txid라는 거래 식별자를 블록 안의 순서대로 사용해 계산한 지문입니다. 지출을 검증하는 데 필요한 서명 같은 SegWit의 witness 데이터에는 coinbase를 통해 별도의 암호학적 지문이 기록됩니다. 이 연결 덕분에 노드는 받은 데이터가 해당 블록에 속하는지 확인할 수 있습니다. [1] [2]
더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 Block Header, 트랜잭션, Timechain / Blockchain, 채굴. 다음 항목에서도 이 글을 참조합니다 Block Header, Merkle Tree, 확인, 코인베이스 트랜잭션.