본문으로 건너뛰기
buybitcoinsmart

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

널 데이터 트랜잭션

별칭은 데이터 캐리어 트랜잭션, OP_RETURN 트랜잭션, Null data transaction입니다.

널 데이터 트랜잭션이란 무엇입니까?
널 데이터 트랜잭션이란 돈 대신 짧은 메시지를 저장하는 출력을 담은 트랜잭션으로, 이 출력은 누구도 사용할 수 없음이 증명되는 형태로 표시되어 노드가 사용 가능한 코인 집합에서 이를 제외할 수 있습니다.

사람들은 안전한 방법이 존재하기 훨씬 전부터 블록체인에 무언가를 기록하고 싶어 했습니다. 안전한 방법은 OP_RETURN으로 시작하는 출력이며, 이 출력은 누군가 사용을 시도하면 즉시 실패하므로 풀 노드는 이를 영구히 추적하는 대신 메모리에서 제거할 수 있습니다. 이런 출력은 거의 모두 0 사토시를 담고 있으며, 발신자는 바이트에 대한 비용만 지불합니다.

작동 방식

널 데이터 출력은 결코 충족될 수 없는 잠금 스크립트이며, 바로 그 점이 핵심입니다.

스크립트는 OP_RETURN 오퍼코드로 시작하고 그 뒤에 데이터 푸시가 이어집니다. 이 오퍼코드는 실행되는 순간 스크립트를 중단시키므로 어떤 서명 조합으로도 이 출력을 잠금 해제할 수 없고, 노드는 메모리에 보관하는 미사용 출력 집합에서 이를 자유롭게 제외할 수 있습니다. 그 집합은 풀 노드가 유지하는 비용이 큰 대상이며, 잡동사니를 그 집합에서 배제하는 것이 이 기능의 존재 이유 전부입니다.

Bitcoin Core는 2014년 3월에 출시된 버전 0.9.0에서 이런 출력 1개를 표준으로 삼았으며, 페이로드는 40바이트로 제한했습니다. 상한은 2015년에 데이터 80바이트로 올라갔는데, 오퍼코드와 푸시 접두사를 포함하면 노드는 이를 스크립트 83바이트로 계산합니다. 2025년 10월에 출시된 버전 30.0은 기본 한도와 트랜잭션당 출력 1개 제한을 없앴으며, 이는 중계 정책이 과연 데이터 저장을 억제하려고 해야 하는지에 관한 길고 거친 논쟁 끝에 이루어졌습니다. Bitcoin Knots는 더 엄격한 기본 설정을 유지했기 때문에 현재 가장 많이 사용되는 두 노드 구현은 의도적으로 서로 다른 입장을 취하고 있으며, 노드 운영자는 소프트웨어를 선택함으로써 한쪽 편을 택합니다.

이 변화는 정책의 변화이지 합의의 변화가 아닙니다. OP_RETURN 출력의 데이터는 언제나 유효했습니다. 논쟁은 오직 일반 노드가 이를 중계해야 하는지에 관한 것이었습니다.

확인할 수 있는 곳

탐색기에서 아무 블록이나 살펴보면 값이 0으로 표시되고 스크립트가 OP_RETURN 뒤에 16진수로 표시되는 널 데이터 출력을 찾을 수 있습니다.

가장 오래된 대량 사용자는 비트코인 위에서 Tether의 첫 버전을 발행한 프로토콜인 Omni Layer이며, 이 프로토콜은 명령을 이런 방식으로 인코딩했습니다. OpenTimestamps 같은 타임스탬프 서비스는 문서의 해시를 출력에 커밋하여 나중에 그 문서가 해당 블록 이전에 존재했음을 증명할 수 있게 합니다. 2024년 4월 20일의 반감기 블록에서 출시된 토큰 프로토콜인 Runes는 전체 명령 집합을 단일 널 데이터 출력에 담는데, 그 블록과 그 이후 블록이 이런 출력으로 가득했던 이유가 여기에 있습니다.

비트코인을 구매하는 사람에게 실질적인 영향은 간접적이지만 분명합니다. 데이터 출력은 사용자의 결제와 같은 블록 공간을 두고 경쟁하며, 이런 출력이 몰려 나오면 확인을 받기 위해 지불해야 하는 수수료율이 올라갑니다. 지난 몇 년간 대부분의 수수료 급등 뒤에 있는 원리가 바로 이것입니다.

널 데이터 트랜잭션 vs OP_RETURN

OP_RETURN은 하나의 오퍼코드이고, 널 데이터 트랜잭션은 이를 사용하는 출력을 포함하는 트랜잭션 전체입니다. 이 구분은 노드 설정을 읽을 때 중요합니다. Bitcoin Core의 설정은 오퍼코드가 아니라 트랜잭션 범주를 따라 이름이 붙었기 때문입니다. -datacarrier는 이런 트랜잭션을 중계할지 여부를 결정하고, -datacarriersize는 페이로드가 얼마나 클 수 있는지를 정합니다. 문서에서 OP_RETURN을 검색해도 이 옵션들은 찾을 수 없습니다.

널 데이터 트랜잭션 vs 인스크립션

인스크립션은 데이터를 전혀 다른 곳에 둡니다. 오디널 인스크립션은 페이로드를 탭루트 위트니스 스크립트 안에 숨기며, 이는 SegWit 가중치 할인을 받고 메가바이트에 이를 수도 있는 반면, 널 데이터 출력은 전체 가중치로 계산되고 역사적으로 80바이트로 제한되었습니다. 이러한 가격과 크기의 차이는 이미지와 수집품이 OP_RETURN 데이터가 아니라 인스크립션으로 등장한 이유이자, 이 둘이 블록체인 비대화에 관해 매우 다른 논쟁을 불러일으키는 이유를 설명합니다.

혼동하기 쉬운 용어

자주 묻는 질문

OP_RETURN 출력으로 비트코인을 보내면 손실을 볼 수 있습니까?

예, 그리고 복구할 수 없습니다. 널 데이터 출력에 넣은 가치는 누구도 스크립트를 충족할 수 없기 때문에 소멸합니다. 지갑은 보통 금액을 0으로 설정하므로, 누군가 트랜잭션을 직접 구성할 때만 이런 일이 발생합니다.

비트코인 트랜잭션은 이런 방식으로 데이터를 얼마나 저장할 수 있습니까?

의존하는 노드에 따라 다릅니다. Bitcoin Core는 2015년부터 80바이트로 페이로드를 제한했으며, 2025년 10월의 버전 30.0에서 기본 한도가 없어졌습니다. Bitcoin Knots는 이전 상한을 유지하므로 중계는 이제 네트워크 전체에서 일률적이지 않습니다.

다음에 읽을 글

관련 용어

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

이 페이지를 영어로 읽기