Virtual sub-outputs of UTXO for minting

You send 350 PPCs to one output with flag to divide it into 100 PPC parts.
Logically it will create 3 virtual sub-outputs, 100PPC each, and one with 50PPCs.

tx A3FB... :
   output 0: 350 -> virtual output 0: 100
                |-> virtual output 1: 100
                |-> virtual output 2: 100
                |-> virtual output 3: 50
   output 1: ...
    ...

When you mint a block you describe your stake as TX_HASH:OUTPUT_INDEX:SUB_INDEX.
Minting with such virtual output doesn’t „spend” UTXO in a standard protocol way, it „consumes” this sub output.

Discussion and modifications Welcome++.

Hi kac-, could you explain a bit more why you want to do that?

Stake spread w/o actual spread. IDK if it really presents any meaningful gains :slight_smile:

First question would be why this is a benefit over creating new utxo’s?
Second is that the stake hash uses the utxo index postition in the hash, so these virtual outputs would all create the same hash right? So some modification to staking code would be needed I think. Or am I misunderstanding?

Edit- reading this again, you aren’t trying to change staking it seems. But somehow stake without spending your virtual output?

First question would be why this is a benefit over creating new utxo's?
I'm wondering if such UTXO representation, not only for minting but for transfers, is a benefit at all. One obvious thing is that there is one UTXO instead of multiple, 10, 100 new UTXOs. But outputs make little overhead so the gain is also small. If you have 10k PPC and want to mint using 200 PPC pieces, you have to create 50 UTXOs. Later you change your mind and want to send it, you have to create tx w/ 50 inputs - overhead here is bigger. With sub-outputs you could spend 50 virt. outputs using one input, 0.01 fee probably. Penalty is additional logic, index size and memory.