출력 인덱스 (Output Index)
출력 인덱스(vout)는 하나의 트랜잭션 안에서 각 출력(output)에 붙는 0부터 시작하는 순번으로, 트랜잭션 ID와 함께 특정 출력을 정확히 가리키는 데 쓰입니다. '출력 지수'라고 옮기면 경제 지표 같은 '지수(index number)'로 읽히는데, 여기서 index는 배열의 '인덱스(순번)'입니다.
자세히 알아보기
비트코인 같은 UTXO 방식 블록체인에서 트랜잭션은 여러 개의 출력을 가질 수 있습니다. 예를 들어 받는 사람에게 보내는 금액과, 남은 금액을 내게 돌려주는 거스름돈이 각각 하나의 출력이 됩니다. 이 출력들은 트랜잭션 안에 나열된 순서대로 0, 1, 2… 번호를 받으며, 이것이 출력 인덱스입니다.
나중에 이 돈을 쓰려면 새 트랜잭션의 입력이 "어느 트랜잭션의 몇 번 출력을 쓴다"고 지정해야 합니다. 이 참조를 아웃포인트(outpoint)라고 하며, 32바이트 txid와 4바이트 부호 없는 정수인 출력 인덱스로 구성됩니다. 블록 탐색기나 지갑에서는 흔히 'txid:vout' 형태(예: …a3f9:1)로 표기합니다. 특수한 경우로, 코인베이스 트랜잭션의 입력은 이전 출력을 쓰지 않으므로 txid를 모두 0으로, 인덱스를 0xFFFFFFFF로 채웁니다.
출력 인덱스는 트랜잭션 데이터에 별도의 필드로 저장되지 않고, 출력이 놓인 순서로 정해집니다. 그래서 트랜잭션을 만들 때 출력의 순서를 바꾸면 인덱스도 바뀝니다. 프라이버시를 위해 출력 순서를 무작위나 사전식으로 정렬하는 관행(BIP-69 등)도 있었는데, 이는 거스름돈 출력이 늘 같은 위치에 있으면 추적이 쉬워지기 때문입니다.
원시 트랜잭션 데이터에서 각 입력은 '이전 txid(32바이트) + 출력 인덱스(4바이트, 리틀 엔디언)'로 시작합니다. 개발자가 txid를 다룰 때 바이트 순서를 뒤집어 표시하는 관례 때문에 혼동이 자주 생기는데, 출력 인덱스는 단순한 정수이므로 0번, 1번처럼 그대로 읽으면 됩니다.
블록체인·암호화폐에서는
출력 인덱스는 UTXO 집합을 관리하는 기본 키 역할을 합니다. 풀 노드는 아직 쓰이지 않은 모든 (txid, vout) 쌍과 그 금액·잠금 스크립트를 데이터베이스에 보관하고, 새 트랜잭션이 들어오면 참조한 아웃포인트가 이 집합에 있는지 확인해 이중 지불을 막습니다. 거래소 입금 확인이나 온체인 분석에서도 'txid:vout'은 특정 자금 조각을 식별하는 표준 표기입니다. 이더리움처럼 계정 잔액 방식을 쓰는 체인에는 이런 출력 인덱스 개념이 없고, 대신 트랜잭션 영수증의 로그 인덱스가 토큰 전송 이벤트 등을 식별하는 데 쓰입니다.
쉽게 말하면
한 장의 영수증에 적힌 여러 줄 가운데 몇 번째 줄인지를 가리키는 번호입니다.
이 글은 학습을 위한 일반 정보이며 투자 권유나 법률 자문이 아닙니다. 가상자산은 가격 변동이 크고 원금 손실 위험이 있습니다.