{"type":"rich","version":"1.0","author_name":"npub1g6vxlp4e0nyhs2dqxxcryztyf5f5hyuaq93nw4r87zcnv0sdsa0qqsl5wd","author_url":"https://nostr.ae/npub1g6vxlp4e0nyhs2dqxxcryztyf5f5hyuaq93nw4r87zcnv0sdsa0qqsl5wd","provider_name":"njump","provider_url":"https://nostr.ae","html":"📅 Original date posted:2015-12-13\n📝 Original message:On Sun, Dec 13, 2015 at 6:11 PM, jl2012--- via bitcoin-dev \u003c\nbitcoin-dev at lists.linuxfoundation.org\u003e wrote:\n\n\u003e Back to the topic, I would like to further elaborate my proposal.\n\u003e\n\u003e We have 3 types of full nodes:\n\u003e\n\u003e Archive nodes: full nodes that store the whole blockchain\n\u003e Full UTXO nodes: full nodes that fully store the latest UTXO state, but\n\u003e not the raw blockchain\n\u003e Lite UTXO nodes: full nodes that store only UTXO created in that past\n\u003e 420000 blocks\n\u003e\n\nThere is a risk that miners would eventually react by just refusing to\naccept blocks that spend dormant outputs.  This is a risk even without the\nprotocol, but I think if there are already lots of UTXO-lite nodes\ndeployed, it would be much easier to just define them as the new\n(soft-forked) consensus rule.\n\nThere is a precedent for things to be disabled rather than fixed when\nsecurity problems arise.\n\nImagine a crisis caused by a security related bug with the revival proofs.\nDisabling them is much lower risk than trying to find/fix the bug and then\ndeploy the fix.  The longer it takes, the longer the security problem\nremains.\n\n\n\u003e\n\u003e What extra information is needed?\n\u003e\n\u003e (1) If your UTXO was generated in block Y, you first need to know the TXO\n\u003e state (spent / unspent) of all outputs in block Y at block (Y + 420000).\n\u003e Only UTXOs at that time are relevant.\n\u003e\n\u003e (2) You also need to know if there was any spending of any block Y UTXOs\n\u003e after block (Y + 420000).\n\u003e\n\nIs this how it works?\n\nSource transaction is included in block Y.\n\nIf the output is spent before Y + 420,000, then no further action is taken.\n\nThe miner for block Y + 420,000 will include a commitment to\nmerkle_hash(Block Y's unspent outputs).\n\nIt is possible for someone to prove that they didn't spend their\ntransaction before Y + 420,000.\n\nI think the miners have to remember the \"live\" UTXO merkle root for every\nblock?\n\nWith the path to the UTXO and the miner can recalculate the root for that\nblock.\n\nIf there were 20 dormant outputs being spent, then the miner would have to\ncommit to 20 updates.\n-------------- next part --------------\nAn HTML attachment was scrubbed...\nURL: \u003chttp://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20151213/a4cf6d21/attachment.html\u003e"}
