<oembed><type>rich</type><version>1.0</version><author_name>npub1j0cee8lvw7v75c0vfsgfpt5xv8qmr3xzhlwpg9lestngmzwu0u9s6u0kje</author_name><author_url>https://nostr.ae/npub1j0cee8lvw7v75c0vfsgfpt5xv8qmr3xzhlwpg9lestngmzwu0u9s6u0kje</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2015-12-12&#xA;📝 Original message:The general concept has merit and the basic outline here seems sound&#xA;enough. I have harboured a notion for having &#34;archived UTXO&#34; for some&#xA;time, this is essentially it. The retrieval from archive cost is on the&#xA;UTXO holder not the entire storage network, which is then only bearing&#xA;full &#39;instant&#39; retrieval costs for N blocks.&#xA;&#xA;On Sat, 2015-12-12 at 15:09 -0500, jl2012--- via bitcoin-dev wrote:&#xA;&gt; It is a common practice in commercial banks that a dormant account might &#xA;&gt; be confiscated. Confiscating or deleting dormant UTXOs might be too &#xA;&gt; controversial, but allowing the UTXOs set growing without any limit &#xA;&gt; might not be a sustainable option. People lose their private keys. &#xA;&gt; People do stupid things like sending bitcoin to 1BitcoinEater. We &#xA;&gt; shouldn’t be obliged to store everything permanently. This is my &#xA;&gt; proposal:&#xA;&gt; &#xA;&gt; Dormant UTXOs are those UTXOs with 420000 confirmations. In every block &#xA;&gt; X after 420000, it will commit to a hash for all UTXOs generated in &#xA;&gt; block X-420000. The UTXOs are first serialized into the form: &#xA;&gt; txid|index|value|scriptPubKey, then a sorted Merkle hash is calculated. &#xA;&gt; After some confirmations, nodes may safely delete the UTXO records of &#xA;&gt; block X permanently.&#xA;&gt; &#xA;&gt; If a user is trying to redeem a dormant UTXO, in addition the signature, &#xA;&gt; they have to provide the scriptPubKey, height (X), and UTXO value as &#xA;&gt; part of the witness. They also need to provide the Merkle path to the &#xA;&gt; dormant UTXO commitment.&#xA;&gt; &#xA;&gt; To confirm this tx, the miner will calculate a new Merkle hash for the &#xA;&gt; block X, with the hash of the spent UTXO replaced by 1, and commit the &#xA;&gt; hash to the current block. All full nodes will keep an index of latest &#xA;&gt; dormant UTXO commitments so double spending is not possible. (a &#xA;&gt; &#34;meta-UTXO set&#34;)&#xA;&gt; &#xA;&gt; If all dormant UTXOs under a Merkle branch are spent, hash of the branch &#xA;&gt; will become 1. If all dormant UTXOs in a block are spent, the record for &#xA;&gt; this block could be forgotten. Full nodes do not need to remember which &#xA;&gt; particular UTXO is spent or not, since any person trying to redeem a &#xA;&gt; dormant UTXO has to provide such information.&#xA;&gt; &#xA;&gt; It becomes the responsibility of dormant coin holders to scan the &#xA;&gt; blockchain for the current status of the UTXO commitment for their coin. &#xA;&gt; They may also need to pay extra fee for the increased tx size.&#xA;&gt; &#xA;&gt; This is a softfork if there is no hash collision but this is a &#xA;&gt; fundamental assumption in Bitcoin anyway. The proposal also works &#xA;&gt; without segregated witness, just by replacing &#34;witness&#34; with &#34;scriptSig&#34;&#xA;&gt; &#xA;&gt; _______________________________________________&#xA;&gt; bitcoin-dev mailing list&#xA;&gt; bitcoin-dev at lists.linuxfoundation.org&#xA;&gt; https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev</html></oembed>