본문으로 건너뛰기
buybitcoinsmart

용어집 / 트랜잭션과 수수료

트랜잭션 입력

별칭은 Input, TxIn입니다.

트랜잭션 입력이란 무엇입니까?
트랜잭션 입력은 이미 보유한 특정 코인 하나를 지목하고 그 코인을 사용할 권한이 있음을 증명하는, 지급의 한쪽 절반으로서, 그 코인을 전부 소비합니다.

모든 입력은 포인터에 증명을 더한 것이며, 그 비용은 사용하는 코인의 종류에 따라 달라집니다. Taproot 코인은 약 57.5 가상 바이트, 네이티브 SegWit 코인은 약 68, 레거시 코인은 약 148입니다. 입력은 항상 전부 소비되므로, 작은 입금을 많이 보유한 지갑은 같은 결제에 대해 큰 코인 하나를 보유한 지갑보다 더 많은 비용을 냅니다. 받는 입금 하나하나가 나중에 비용을 치를 입력입니다.

작동 방식

입력에는 네 개의 필드가 있고, 그중 서명은 하나뿐입니다.

첫 번째는 아웃포인트로, 36 바이트입니다. 코인을 만든 트랜잭션의 ID에 이어, 그 트랜잭션의 출력 목록에서 코인의 위치가 붙습니다. 이것이 포인터이며, 누구나 이를 거꾸로 따라가 가치가 만들어진 블록까지 추적할 수 있기 때문에 비트코인을 감사 가능하게 만듭니다.

두 번째는 스크립트 길이이고, 세 번째는 서명 스크립트로, 오래된 코인 유형에서는 이전 출력의 잠금을 만족하는 서명과 공개 키를 담습니다. SegWit은 그 데이터가 사는 위치를 바꾸었을 뿐 내용을 바꾸지는 않았습니다. bc1 코인의 경우 스크립트 필드는 비어 있고 잠금 해제 자료는 별도의 위트니스 구획으로 옮겨가며, 여기서는 각 바이트가 가중치 단위의 4분의 1로 계산됩니다. 암호 방식은 같고 청구는 4분의 1입니다.

네 번째는 시퀀스 번호로, 4 바이트입니다. 본래는 한 번도 작동하지 않은 멤풀 내 교체 방식을 위해 고안되었다가 용도가 바뀌었습니다. BIP68은 여기에 상대적 타임록이라는 의미를 부여했으며, 이것이 라이트닝 채널이 "사용 가능하지만 144 블록 이후에만"이라고 말할 수 있게 합니다. 0xfffffffe보다 작은 값은 그 트랜잭션이 더 높은 수수료의 버전으로 교체될 수 있음을 알리기도 합니다.

사람들을 놀라게 하는 속성은 소비입니다. 입력은 전부 아니면 전무입니다. 0.4 BTC짜리 코인 하나를 보유하고 0.01 BTC를 지급하려 한다면, 입력은 0.4 BTC 전체를 소비하고 지갑은 나머지를 돌려주기 위해 잔돈 출력을 만듭니다. 부분 소비는 없고 금액을 차감한다는 개념도 없습니다.

특별한 입력이 하나 있습니다. 채굴업자에게 지급하는 트랜잭션인 코인베이스 트랜잭션은 아웃포인트가 아무것도 가리키지 않는 입력을 정확히 하나 가집니다. 32개의 0 바이트와 0xffffffff의 인덱스입니다. 그 스크립트는 서명 대신 임의의 데이터를 담으며, 여기에 블록 높이가 들어가고 제네시스 블록의 메시지 같은 메시지가 기록되었습니다.

확인할 수 있는 곳

입력은 블록 탐색기의 왼쪽 열이며, 다른 것을 바꾸지 않았는데도 지갑의 수수료 추정치가 움직이는 이유입니다.

코인 컨트롤 화면에서는 체크박스입니다. 작은 코인 네 개 대신 큰 코인 하나를 선택하는 것은 입력 하나와 네 개의 차이이며, 각 68 가상 바이트에 수수료율 20 sat/vB를 적용하면 한 번의 결제에서 약 4,080 사토시를 절약하는 셈입니다.

또한 정보를 흘립니다. 한 트랜잭션에 입력이 둘이면 한쪽 당사자가 두 코인을 모두 통제했다는 사실을 모든 관찰자에게 알려주며, 이것이 거의 모든 블록체인 클러스터링의 전제입니다. 따라서 어느 입력을 조합할지 고르는 것은 비용 결정인 동시에 프라이버시 결정입니다.

정기적으로 모으는 사람을 위한 실용적 결론은 구매를 더 적은 출금으로 묶는 것입니다. 매달 한 번씩 12회 출금하면 입력 12개가 대기하게 되고, 그 청구서는 마침내 지출하는 날 시장이 부과하는 요율로 도착합니다.

트랜잭션 입력 vs 트랜잭션 출력

입력은 과거에 대한 청구권이고 출력은 미래에 대한 제안이며, 같은 가치 덩어리가 생애 동안 두 역할을 모두 합니다. 출력으로 태어나 미사용 집합에 머물다가, 그것을 소비하는 트랜잭션에서 입력으로 죽습니다. 중요한 비대칭은 경제적입니다. 출력은 각 31에서 43 바이트로 만드는 데 저렴하고, 입력은 각 57.5에서 148 가상 바이트로 소비하는 데 비쌉니다. 받는 데는 거의 비용이 들지 않고 쓰는 데는 실제 돈이 들며, 이는 대부분의 사람이 결제 네트워크의 청구 방식을 기대하는 것과 정확히 반대입니다.

혼동하기 쉬운 용어

자주 묻는 질문

지갑이 보내는 금액보다 더 많은 코인을 소비하는 이유는 무엇입니까?

입력은 일부만 소비할 수 없기 때문입니다. 코인을 소비하면 그 코인 전부가 소모되므로, 지갑은 지급액과 수수료를 충당하는 코인을 가져가고 나머지는 잔돈 출력으로 자기 자신에게 돌려줍니다.

입력이 많을수록 트랜잭션이 더 비쌉니까?

예, 그리고 이것이 비트코인 수수료의 주된 요인입니다. 네이티브 SegWit 입력이 하나 추가될 때마다 약 68 가상 바이트가 더해지므로, 작은 코인 여덟 개를 소비하는 지급은 큰 코인 하나를 소비하는 같은 지급보다 몇 배의 비용이 들 수 있습니다.

다음에 읽을 글

관련 용어

트랜잭션과 수수료 분야의 다른 용어

이 페이지를 영어로 읽기