Bitcoin OP_RETURN uitgelegd: data carriers, nulldata en onuitgeefbare outputs
Lees hoe OP_RETURN openbare gegevens vastlegt, waarom de output niet kan worden uitgegeven, hoe het relaybeleid van Bitcoin Core 31.1 verschilt van consensus en hoe dit afwijkt van witness-inscripties.
In deze gidsOP_RETURN plaatst gegevens in het vergrendelingsscript
Korte samenvatting
OP_RETURN voegt openbare gegevens toe aan het outputscript van een Bitcoin-transactie. Bitcoin Core behandelt outputs waarvan het script met OP_RETURN begint als aantoonbaar onuitgeefbaar en laat ze buiten de UTXO-set. De huidige relaylimieten zijn lokaal nodebeleid, geen consensuslimiet voor payloads die voor elk knooppunt geldt.
OP_RETURN plaatst gegevens in het vergrendelingsscript
Een Bitcoin-output bevat een bedrag en een vergrendelingsscript dat scriptPubKey heet. Een OP_RETURN-output, ook nulldata genoemd, begint met de opcode OP_RETURN en kan daarna bytes pushen. Zodra de transactie in een blok staat, zijn die bytes openbaar vastgelegd als onderdeel van de output. Dit patroon maakt geen aparte datalaag, tokenbalans of privébericht.
Waarom de output niet opnieuw kan worden uitgegeven
OP_RETURN is een opcode die faalt zodra de uitvoering hem bereikt. Een poging om een output uit te geven waarvan het script hiermee begint, kan daarom niet slagen. Bitcoin Core classificeert de output als onuitgeefbaar en kan hem direct uit de UTXO-set weglaten in plaats van een munt te bewaren die nooit kan worden gebruikt. Zie de implementatie in Bitcoin Core 31.1 script.h. Bitcoin Core 31.1 script implementation.
Het script is groter dan de payload
Een datacarrierlimiet telt niet noodzakelijk alleen de applicatiebytes. Het ruwe outputscript bevat de opcode OP_RETURN, de pushinstructie met lengtecodering en de payload. Een payload van 80 bytes kan een script van 83 bytes opleveren: één byte voor de opcode, twee voor de OP_PUSHDATA1-header en 80 databytes. Oude verwijzingen naar ‘80 bytes’ bedoelen vaak de payload; nieuwere instellingen kunnen het volledige script tellen.
Standaardbeleid voor data carriers in Bitcoin Core 31.1
Bitcoin Core 31.1 schakelt -datacarrier standaard in. -datacarriersize staat standaard op 100.000 bytes en telt de ruwe scriptPubKey-grootte van alle data-carrieroutputs in één transactie op. Meerdere NULL_DATA-outputs delen dezelfde ruimte; de opcode en pushcodering tellen mee. Core 30.0 verving de oude scriptlimiet van 83 bytes door een geaggregeerde 100.000 bytes en stond meerdere outputs toe; Core 31.1 houdt dat aan. Zie de Core 31.1-opties, de beleidsimplementatie en de release notes van 30.0.

Relaybeleid en consensus beantwoorden andere vragen
Elke node kan relay van data carriers uitschakelen of de lokale limiet verlagen. Andere nodes en softwareversies kunnen andere instellingen gebruiken. Een node die een transactie niet in zijn mempool accepteert, weigert die mogelijk alleen volgens zijn eigen beleid door te sturen; dat betekent niet automatisch dat consensus de transactie verbiedt. Bitcoin Core past de datalimiet toe bij de standaardnesscontrole en controleert consensusregels afzonderlijk bij blokvalidatie. Core consensus transaction checks. See Bitcoin Core 31.1 mempool standardness implementation.
De outputwaarde gaat verloren; de vergoeding wordt apart berekend
Een OP_RETURN-output kan waarde bevatten, maar die kan niet worden teruggewonnen en blijft onuitgeefbaar. Wallets gebruiken meestal nul. De 1.000 sats die je eventueel toewijst, worden niet automatisch minersvergoeding; de vergoeding is nog steeds de som van inputs min alle outputs. Scriptbytes gebruiken transactiewicht en kunnen de vergoeding bij dezelfde sat/vB verhogen. Zie de gids over Bitcoin-transactiekosten.
Meerdere data-outputs vermenigvuldigen de limiet niet
Bitcoin Core 31.1 staat meerdere standaard NULL_DATA-outputs toe, maar telt hun scripts op binnen dezelfde transactielimiet. Payload verdelen vergroot de limiet niet en elke extra output voegt transactiegegevens en blokgewicht toe. Relay hangt ook af van transactiewicht, kosten en andere standaardnessregels. Acceptatie door één wallet of explorer garandeert geen verspreiding over het hele netwerk.
OP_RETURN verschilt van een Taproot-witness-inscriptie
OP_RETURN-gegevens staan bij het maken van de transactie in de scriptPubKey van een output. SegWit-witnessgegevens worden per input apart geserialiseerd; BIP 141 beschrijft ze als stackgegevens per input. Een Taproot-scriptpath-uitgave kan het script en de control block in de inputwitness onthullen. Ordinals-software kan een formaat daarin als inscriptie interpreteren volgens een toepassingsconventie; dat is iets anders dan een nulldata-output. Zie BIP 141, BIP 341 en de gids over [Bitcoin Ordinals en inscripties](/learn/bitcoin-ordinals-inscriptions-satoshi-numbering-witness-data-explained).
Controleer beleid, waarde en privacy voor gebruik
Controleer de Bitcoin Core-versie en lokale opties waarop je vertrouwt. Bereken apart de volledige ruwe outputscriptgrootte, het transactietotaalgewicht, de waarde van de onuitgeefbare output en de minersvergoeding. Consensus geeft geen betekenis aan willekeurige payloadbytes; controleer ook of het protocol of de ontvanger de indeling herkent. Wat op de keten staat is openbaar. Voor outputs en wisselgeld, zie de gids over Bitcoin-UTXO’s en coin control.
Veelgestelde vragen
Q1Beperkt Bitcoin-consensus OP_RETURN tot 80 databytes?
Nee. 80 bytes is de payloadwaarde in een ouder voorbeeld van standaardnessbeleid, geen universele consensuslimiet. Bitcoin Core 31.1 gebruikt standaard een totale limiet van 100.000 bytes voor ruwe datascripts; nodes kunnen hun beleid aanpassen.
Q2Verhoogt een grotere OP_RETURN de transactiekosten?
Dat kan. Scriptbytes verhogen het transactiewicht en kunnen daardoor de vergoeding bij dezelfde sat/vB verhogen. Sats die aan de onuitgeefbare output zijn toegewezen, gaan daarnaast verloren en zijn geen minersvergoeding.
Q3Is OP_RETURN hetzelfde als een Ordinals-inscriptie?
Nee. OP_RETURN staat in een outputscript en maakt die output onuitgeefbaar. Een gebruikelijke Taproot-inscriptie plaatst inhoud in inputwitnessgegevens van het scriptpad, die Ordinals-software volgens eigen conventies interpreteert.
Bronnen en verder lezen
Probleem melden
We bereiden een e-mail met de link naar dit artikel voor. Mark ontvangt je melding pas nadat je die verstuurt
Snelle check
De gids gelezen? Test jezelf met 3 vragen
Vraag 01
Wat meet de standaardwaarde van -datacarriersize in Bitcoin Core 31.1?
Kies een antwoord om de uitleg te zien
Optiewoordenlijst
A call or put whose strike is near the underlying price; it has little intrinsic value and often substantial sensitivity to time and volatility.
Lees de uitgebreide gidsCall optionA contract that gives its holder the right, but not the obligation, to buy the underlying at the strike before or at expiration under the contract terms.
Lees de uitgebreide gidsPut optionA contract that gives its holder the right, but not the obligation, to sell the underlying at the strike before or at expiration under the contract terms.
Lees de uitgebreide gids