용어집 / 프라이버시와 보안
더스트 한도
별칭은 Dust limit, 더스트 임계값입니다.
- 더스트 한도란 무엇입니까?
- 더스트 한도는 비트코인 출력이 보유할 수 있는 최소 금액으로, 이보다 작으면 노드가 그 출력을 만드는 트랜잭션의 중계를 거부합니다. 레거시 주소의 경우 현재 546 사토시입니다.
노드는 지출할 가치가 없을 만큼 작은 출력을 만드는 트랜잭션을 버리며, 이로써 네트워크가 지출할 수 없는 자투리로 가득 차는 것을 막습니다. Bitcoin Core는 향후 지출의 가상 바이트당 3사토시로 이 한도를 정합니다. pay-to-public-key-hash 출력은 546 사토시, 네이티브 SegWit은 294 사토시, Taproot는 330 사토시입니다. 지갑이 금액 전송을 거부한다면 보통 이 규칙이 그 이유입니다.
작동 방식
Bitcoin Core는 더스트 한도를 각 출력에 따로 적용하며, 한 가지 질문만 던집니다. 나중에 이 출력을 지출하는 비용이 그 출력의 가치보다 큽니까?
계산은 src/policy/policy.cpp의 GetDustThreshold에 있습니다. 노드는 원장에 있는 그대로의 출력 크기에 나중에 그 출력을 지출할 입력의 크기를 더한 뒤, DUST_RELAY_TX_FEE를 곱합니다. 이는 킬로가상바이트당 3,000 사토시, 즉 3 sat/vB인 정책 상수입니다. 세 가지 일반적인 스크립트 유형에 대해 계산해 보겠습니다.
- pay-to-public-key-hash 출력은 34바이트이고 지출에 148 가상 바이트가 들므로, 3 sat/vB에서 182 vbyte를 곱하면 546 사토시가 됩니다.
- 네이티브 SegWit 출력(bech32,
bc1q로 시작)은 31바이트이고 그 입력은 약 67 vbyte로 할인되므로, 98 vbyte가 되어 294 사토시가 됩니다. - Taproot 출력(
bc1p)은 43바이트이고 입력 할인은 같으므로, 110 vbyte가 되어 330 사토시가 됩니다.
두 가지 세부 사항이 중요합니다. 첫째, 이것은 합의 규칙이 아니라 중계 정책입니다. 더스트 트랜잭션을 정규 경로 밖에서 받은 채굴업자는 그것을 블록에 넣을 수 있고, 모든 노드는 그 블록을 받아들입니다. 둘째, OP_RETURN 출력은 지출이 불가능함이 증명되므로 면제됩니다. 따라서 지불해야 할 향후 입력이 없습니다.
또한 이 임계값은 수수료 시장이 움직이는 동안에도 그대로 머물러 왔습니다. 200 sat/vB의 급등기에는 같은 레거시 출력을 지출하는 데 대략 29,600 사토시가 들므로, 네트워크가 더스트라고 부르기 훨씬 전에 이미 경제적으로 죽은 상태입니다.
확인할 수 있는 곳
더스트 한도는 개념으로보다 거의 항상 오류 메시지로 나타납니다.
지갑은 이를 "amount below dust threshold", "output too small"로 표현하거나, 그냥 전송 버튼을 비활성화합니다. Bitcoin Core와 대부분의 지갑 소프트웨어는 잔돈에도 이를 조용히 적용합니다. 결제 후 남은 잔돈이 임계값 아래로 떨어지면, 지갑은 잔돈 출력을 없애고 아무도 지출할 수 없는 것을 만들기보다 그 가치를 추가 수수료로 채굴업자에게 넘깁니다.
거래소는 어차피 한도보다 훨씬 위에 있습니다. 출금 최소액은 정책이 아니라 요청을 처리하는 자체 비용으로 정해지므로, 546 사토시에 이르기 훨씬 전에 0.0001 BTC 또는 10 달러 하한에 부딪힙니다.
라이트닝 네트워크에는 이 규칙의 자체 버전이 있습니다. 각 채널은 dust_limit_satoshis 값을 협상하며, BOLT 2는 앵커 출력을 사용하는 채널에 최소 354 사토시를 요구합니다. 그 한도 아래의 결제는 커밋먼트 트랜잭션에서 출력을 전혀 받지 못합니다. 이런 결제가 진행 중일 때 채널이 강제 종료되면 그 금액은 수수료로 채굴업자에게 갑니다.
더스트 한도 vs 더스트
더스트는 코인이고, 더스트 한도는 코인에 관한 규칙입니다. 일상적인 용법에서 더스트는 오늘날의 수수료로 지출할 가치가 없는 모든 출력을 뜻하며, 이 경계는 멤풀이 찰 때마다 움직입니다. 더스트 한도는 전혀 움직이지 않는 고정된 정책 상수입니다. 이 차이 때문에 네트워크가 문제없이 중계한 출력을 보유하고도 지출하는 것이 비경제적이라고 판단하게 됩니다.
더스트 한도 vs 최소 중계 수수료
최소 중계 수수료는 트랜잭션 전체에 대한 하한으로, 기본값은 킬로가상바이트당 1,000 사토시, 즉 1 sat/vB입니다. 더스트 한도는 단일 출력에 대한 하한이며, 의도적으로 더 높은 3 sat/vB의 비율을 사용합니다. 그래야 출력이 생성된 조건보다 약간 더 나쁜 조건에서도 여전히 지출 가능할 때만 출력이 만들어지기 때문입니다. 트랜잭션은 최소 중계 수수료를 넉넉히 넘기고도 200 사토시 출력 하나가 더스트 검사를 통과하지 못해 거부될 수 있습니다.