What is the smallest possible number of bits/bytes for a valid UTXO?
#asknostr
What is the smallest possible number of bits/bytes for a valid UTXO?
#asknostr
Bitcoin's Planck's constant
Yes, I need this number to get there as this is the smallest memory structure for a UTXO to be valid. I’m seeing 52 bytes but I think that’s wrong.
It provides both bounds as the smallest destiny particle (1 sat) and the largest destiny particle (21M btc). Both are potentially valid configurations that could exist in the smallest units of memory.
Iirc it's 8 bytes for amount and then scriptpubkey serialization varies a fair bit. E.g. taproot being 32 bytes + 1 version byte plus a couple for serialization. I mean you can look it up, but, remember the format used for storage of the utxo database, in the node software, is not the same as the format used in transaction serialization within blocks.
I kind of understand what you are saying, but it’s alittle bit above my head in terms of verifying myself.
You’re saying: how nodes store the data of UTXOs locally has a different footprint than the virtual blockspace we bid for?
Out if the 4 vMB possible in a block (post segwit) what is the smallest block footprint (vbyte) allowed to have a single valid and spendable UTXO. I understand this minimum will vary depending on the script used, but I’m just looking for the actual smallest structure of memory for a valid utxo (as a % of the 4vMB available for each block).
OK, then you can ignore the other part.
For utxos (outputs), vbytes == bytes, because there is no witness discount.
You'd want to look up utxo sizes for each type: p2pk, p2pkh, p2sh, p2wpkh, p2wsh, p2tr. As above i think p2tr is 43? Maybe p2wpkh is 1 byte less? I forget.
I see, it gets more complex without having the witness discount; so witness basically increases our potential by 3MB (4MB total) and without witness we still bound by original 1MB?
The total available blocksize varies depending on the outputs selected by miners; selecting more segwit addresses increases the possible max size from 1MB to some amount X <4MB?
Yeah that's basically it. No witness at all, 1MB size. Arranging to have a huge amount of witness data in the block can get it close to 4MB. But that's extremely artificial.
Thank you for the clarification. This makes sense. I was trying to understand why the real world outcome is ~2.5MB vs the theoretical 4MB.
The speed of information (MB/Block) written to the chain depends on the outputs, and the maximum allowable blocksize varies between1MB-4MB depending if segwit transactions are selected and how much witness data is included.
Lots of complexity to take into account!