He explains it so:
"Since taproot script spends can only be made from existing taproot outputs, inscriptions are made using a two-phase commit/reveal procedure. First, in the commit transaction, a taproot output committing to a script containing the inscription content is created. Second, in the reveal transaction, the output created by the commit transaction is spent, revealing the inscription content on-chain."
Even for non-ordinals, that "
two-phase" procedure is basically what other bitcoin transaction do.
First, the output doesn't reveal anything in the output script aside from a hash of the the 'redeem script', public key, etc. depending on the script type.
Then, when used as input, the required data is revealed.
Wouldn't it be possible to have ONE transaction to create an Inscription?
It still falls under the structure of a valid transaction.
With using the current structure, under "
inputs" field, we'll need to get the TXID of the UTXO that we're trying to spend; in your case, the same transaction that you're creating.
The transaction should be finalized (
fully signed, ready to be broadcasted) in order to compute a hash to generate a valid txid and we can't do that while the data of the input still needing that txid.