Bram Cohen,

My apologies, I guess I glossed over your "The TXO bitfield" because by subject 
I thought it just had something to do with changing the txo's data structure.

Yes what you are proposing with "The TXO bitfield" is pretty much exactly the 
same as the MMR data structure... EXCEPT yours has the wonderful benefit of the 
MMR proofs not changing. Excellent idea!

Basically your idea is a change in how the MMR data is modified on spend... 
moving it from changing the leaf nodes to changing a node closer to the root... 
and particularly it seems you are making such a deltaLeaveHeight = block 
height... which might be a different height for each block, but not that big of 
a deal.

Which leads me to modifying the MMR structure so that the spentness bit array 
is actually part of the nodes at height DLH_REQUIRED's hash... and that the 
leaf nodes don't actually get changed to empty as Peter is proposing, instead 
the leaf nodes stay the same. This results in the same wonderful benefit of the 
MMR proofs not changing, just like in your "TXO bitfield" proposal.

I still like the MMR structure better, in the case that only utxos are added 
after a long delay. The delay and adding only utxos allows much fewer additions 
to the spentness bitfield and it's merkle tree. But if we are going to make 
commitments on the entire txo set instead of some policy of N blocks delayed 
utxos... your "TXO bitfield" idea looks great.

Say... one bad thing about only adding delayed utxos to the MMR, as I am 
proposing, is that the index changes/is created when the delayed addition 
happens. Verses with "txo bitfield" or adding all txos to the MMR, the index is 
created when the block is first made.

Thank you so much for your TXO bitfield idea... and harping on me about it. I'm 
really excited about these designs. :) As a funny side note,I had actually 
considered putting the spentness bitfield in the deltaLeafHeight = DLH_REQUIRED 
node's merkle hash... but quickly dismissed it since we were already were 
replacing the leafs w/ empties (which is a duplication of information). Your 
idea was the inspiration to switch from changing to empties to changing the 
spentness bits.

Humbled, Thanks,

Praxeology Guy
_______________________________________________
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev

Reply via email to