용어집 / 채굴과 합의
스테일 블록
- 스테일 블록이란 무엇입니까?
- 스테일 블록은 완전히 유효한 블록이지만 경쟁에서 패한 블록입니다. 같은 높이의 다른 블록이 승리하여 네트워크가 그 블록 위에 체인을 쌓았고, 이 블록은 버려졌습니다.
두 채굴업자가 1초 이내의 차이로 해답을 찾는 일은 흔하며, 잠시 동안 네트워크는 두 개의 후보 체인 끝을 갖게 됩니다. 어느 쪽이 먼저 연장되든 그쪽이 이기며, 2013년에 비트코인을 측정한 연구자들은 약 1.7%의 블록이 패배하는 쪽에 남는다는 사실을 발견했습니다. 사용자에게 이것은 보이지 않습니다. 스테일 블록 안의 결제는 멤풀로 돌아가 다시 채굴됩니다.
작동 방식
스테일 블록은 블록 자체의 결함이 아니라 지연 때문에 생깁니다.
채굴은 조율이 없는 추첨입니다. 한 기계가 해답을 찾으면 해당 풀이 블록을 알리는데, 그 알림이 지구 반대편까지 전달되는 데 시간이 걸립니다. 알림이 도착할 때까지 다른 모든 채굴업자는 여전히 이전 체인 끝 위에서 해답을 찾고 있으며, 그중 누구든 같은 높이에서 두 번째 유효한 해답을 찾을 수 있습니다. 이제 두 가지 버전의 진실이 존재하며 둘 다 맞고, 그중 하나 위에 다음 블록을 먼저 발표하는 쪽이 동점을 깨뜨립니다. 나머지는 스테일이 됩니다.
이 창의 크기는 측정할 수 있습니다. Christian Decker와 Roger Wattenhofer는 2013년에 네트워크를 계측하여 블록이 대다수 노드에 도달하는 데 걸리는 시간의 중앙값이 6.5초이며, 그 결과 약 1.7%의 블록이 버려진다는 사실을 발견했습니다. 이후 중계 방식은 크게 개선되었습니다. BIP152에 규정되어 2016년 8월에 Bitcoin Core 0.13.0에 포함된 컴팩트 블록 중계를 사용하면 피어가 이미 멤풀에 보유한 트랜잭션으로 블록을 재구성할 수 있어, 1~2메가바이트 대신 몇 킬로바이트만 전송합니다. 전용 중계 네트워크는 일반적인 전파 시간을 1초 미만으로 끌어내립니다.
패배하면 풀은 블록 전체를 잃습니다. 스테일 블록의 코인베이스 출력은 승인된 기록에 포함되지 않으므로 그 보조금과 수수료는 전혀 가치가 없습니다. 프로토콜도 이런 일이 일어날 수 있다고 전제합니다. 블록에서 생성된 코인은 이후 100개 블록, 대략 16시간 동안 잠기는데, 이는 나중에 잘못된 브랜치에 있었던 것으로 밝혀질 보상을 아무도 쓸 수 없게 하기 위해서입니다.
확인할 수 있는 곳
스테일 블록은 주로 다른 이름으로 블록 탐색기와 풀 대시보드에 나타납니다.
여러 탐색기는 버려진 블록 목록을 공개하며 이를 고아 블록으로 분류하는데, 비트코인의 이 분야에서 용어 혼란이 대부분 생기는 지점이 바로 여기입니다. 풀 대시보드는 채굴업자가 제출한 셰어에 대한 스테일 비율 또는 거부 비율을 보고합니다. 셰어당 지급 방식에서는 개별 채굴업자에게도 그 작업이 여전히 적립되고 풀이 손실을 부담하는데, 이는 풀 수수료로 지불하는 것 중 하나입니다.
Bitcoin Core는 이를 명확히 보여 줍니다. 노드에 알려진 체인 끝을 물으면 최근 스테일 블록이 유효한 포크로 표시된 별도의 체인 끝으로 나타납니다. 완전히 검증되었고 모든 면에서 올바르지만, 단지 가장 많은 작업이 쌓인 체인이 아닐 뿐입니다.
확인 횟수가 존재하는 이유로도 이것을 보게 됩니다. 확인 1회인 결제는 아직 경쟁에서 패배한 쪽이 될 수 있는 블록에 들어 있습니다. 블록 6개 깊이의 결제는 그렇지 않으며, 거래소가 입금 정책을 분 단위가 아니라 블록 단위로 명시하는 이유가 여기에 있습니다.
스테일 블록 vs 체인 재구성
스테일 블록은 객체이고, 재구성은 동작입니다. 둘은 같은 사건을 다른 위치에서 설명합니다. 사용자의 노드가 승리한 블록을 먼저 받았다면 패배한 블록은 그저 사용자의 체인에 포함되지 않고 재구성은 일어나지 않습니다. 패배한 블록을 먼저 받았다면 노드는 그것을 연결 해제하고 전환해야 하며, 이것이 블록 1개의 재구성입니다. 이런 단일 블록 사건은 1년에 몇 번 일어나며 문제가 있다는 뜻이 아닙니다. 여러 블록 깊이의 재구성은 다른 이야기이며, 비트코인 메인 체인에서는 극히 드물었습니다.