용어집 / 트랜잭션과 수수료
무게 단위
별칭은 WU입니다.
- 무게 단위란 무엇입니까?
- 무게 단위는 비트코인의 블록 크기 한도에서 바이트를 대체한 회계 단위로, 서명 데이터를 4분의 1 가격으로 책정하여 SegWit이 하드 포크 없이 처리 용량을 늘릴 수 있게 했습니다.
BIP-141에 명시되어 있습니다.
구형 노드는 블록의 스트립된 바이트를 세고 1,000,000을 넘는 것을 거부하며, 신형 노드는 무게를 세고 4,000,000을 넘는 것을 거부합니다. 이 두 규칙은 같은 블록에서 동시에 충족되며, 이것이 Segregated Witness가 2017년 8월의 블록 481,824에서 활성화될 때 소프트 포크가 될 수 있었던 방법입니다. 비트코인을 이동하기 위해 지불하는 모든 것은 이 단위 또는 이 단위의 4분의 1로 가격이 매겨집니다.
작동 방식
무게 단위가 존재하는 이유는 서로 다른 소프트웨어를 실행하는 노드들이 같은 바이트를 보고 있지 않더라도 블록이 언제 가득 찼는지에 대해 합의해야 하기 때문입니다.
업그레이드하지 않은 노드에는 위트니스 데이터가 아예 전송되지 않습니다. 그 노드는 스트립된 블록을 보고 늘 적용해 온 한도인 1,000,000 바이트를 적용합니다. 업그레이드된 노드는 전체를 재구성하고 4,000,000 무게의 한도를 적용합니다. 위트니스가 아닌 바이트마다 4단위를, 위트니스 바이트마다 1단위를 책정하면 두 검사는 결코 어긋날 수 없습니다. 무게 예산 안에 들어오는 블록은 스트립된 상태에서도 1메가바이트 미만이 되기 때문입니다. 구형 소프트웨어가 이미 수용하는 것만 더 엄격하게 제한하는 규칙이 바로 소프트 포크이며, 이러한 가격 책정이 처리 용량 증가를 소프트 포크 안에 들어맞게 만든 것입니다.
4분의 1이라는 선택은 임의적이지 않았습니다. 위트니스 바이트는 서명이며, 서명은 지출이 깊이 묻힌 후에 노드가 버릴 수 있는 트랜잭션의 일부입니다. 서명은 모든 검증 기기가 영구히 보관해야 하는 유일한 구조인 UTXO 집합에 결코 들어가지 않습니다. 서명의 가격을 낮게 책정한 것은 지갑을 비용이 많이 드는 집합을 더 느리게 키우는 형식으로 유도했으며, 책임 있는 선택을 동시에 저렴한 선택으로 만들어 그렇게 했습니다.
두 번째 예산은 같은 척도로 측정되지만 훨씬 덜 주목받습니다. BIP141은 블록을 80,000 서명 연산 단위로 제한하며, 레거시 연산은 4배로 계산되므로 구형 방식의 멀티시그로 가득 찬 블록은 공간이 떨어지기 전에 서명 검사가 먼저 소진될 수 있습니다.
따라서 처리 용량은 하나의 숫자가 아니라 범위입니다. 순수하게 레거시 결제로만 이루어진 블록은 여전히 1,000,000 바이트를 넘을 수 없으며, 위트니스 데이터가 많은 블록은 4메가바이트에 가까워질 수 있지만, 대부분의 블록은 혼합되어 있기 때문에 1메가바이트와 2메가바이트 사이에 들어갑니다.
확인할 수 있는 곳
무게 단위는 모든 탐색기에서 블록 옆에 표시되며, 채굴 풀이 실제로 최적화하는 기준이 되는 숫자입니다.
무게 단위가 가장 분명하게 드러나는 곳은 2017년 8월에 더 이상 사실이 아니게 된 한 문장입니다. 비트코인에는 1메가바이트 블록 한도가 없습니다. 비트코인에는 400만 단위 예산이 있으며, 탐색기에서 보는 블록이 찬 정도를 나타내는 막대는 그 예산을 기준으로 측정됩니다. 채굴 풀은 가장 높은 수수료를 내는 후보들로 예산을 채우고 일부는 코인베이스 트랜잭션을 위해 남겨 두어 블록 템플릿을 구성하므로, 채굴된 블록은 보통 한도에 정확히 닿기보다는 바로 아래에 머뭅니다.
무게 단위는 비트코인에서 가장 시끄러운 논쟁의 숨은 주제이기도 합니다. 위트니스 공간에 데이터를 저장하는 비용은 같은 바이트를 다른 곳에 저장할 때의 4분의 1이며, 바로 이 때문에 인스크립션이 그곳에 존재합니다. 그러한 데이터가 체인에 속하는지에 관한 논쟁은 소음 아래에서 BIP141이 2015년에 작성되었을 때 선택된 비율에 관한 논쟁입니다.
구매하여 보유하는 사람에게 이 단위는 간접적으로 적용됩니다. 지갑에 무게를 입력할 일은 없지만, 구형 형식의 코인을 지출하는 비용이 현대적인 코인을 지출하는 비용보다 더 드는 이유가 바로 이 단위입니다.
무게 단위 vs 블록 무게
무게 단위는 자이고, 블록 무게는 그 자로 잰 하나의 측정값입니다. 트랜잭션에도 무게가 있으며, 블록의 수치는 트랜잭션들의 무게 합에 헤더와 카운터를 더한 값이므로 두 단어는 서로 바꾸어 쓸 수 없습니다. 누군가 4,000,000이라는 수치를 트랜잭션당 허용량으로 읽을 때 혼동은 큰 비용을 초래합니다. 이 수치는 트랜잭션당 허용량이 아닙니다. 중계 정책은 단일 표준 트랜잭션이 블록 한도에 가까워지기 훨씬 전에 거부하며, 합의는 블록만 측정합니다.