<oembed><type>rich</type><version>1.0</version><author_name>npub1kc0zulxt7j4a0ayhzhrz7jk84y7tm4026qcky7w97hlfkxxap24qnwjfw4</author_name><author_url>https://nostr.ae/npub1kc0zulxt7j4a0ayhzhrz7jk84y7tm4026qcky7w97hlfkxxap24qnwjfw4</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2015-12-13&#xA;📝 Original message:-----BEGIN PGP SIGNED MESSAGE-----&#xA;Hash: SHA256&#xA;&#xA;On Mon, Dec 14, 2015 at 12:14 AM, Danny Thorpe &lt;danny.thorpe at gmail.com&gt; &#xA;wrote:&#xA;&gt; What is the current behavior / cost that this proposal is trying to &#xA;&gt; avoid? Are ancient utxos required to be kept in memory always in a &#xA;&gt; fully validating node, or can ancient utxos get pushed out of memory &#xA;&gt; like a normal LRU caching db?&#xA;&#xA;I don&#39;t see why it must be kept in memory. But storage is still a &#xA;problem. With the 8 year limit and a fixed max block size, it indirectly &#xA;sets an upper limit for UTXO set.&#xA;&#xA;&#xA;Chris Priest via bitcoin-dev :&#xA;&gt; This isn&#39;t going to kill bitcoin, but it won&#39;t make it any better.&#xA;&#xA;Do you believe that thousands of volunteer full nodes are obliged to &#xA;store an UTXO record, just because one paid US$0.01 to an anonymous &#xA;miner 100 years ago? It sounds insanely cheap, isn&#39;t it? My proposal (or &#xA;similar proposal by Peter Todd) is to solve this problem. Many &#xA;commercial banks have a dormant threshold less than 8 years so I believe &#xA;it is a balanced choice.&#xA;&#xA;Back to the topic, I would like to further elaborate my proposal.&#xA;&#xA;We have 3 types of full nodes:&#xA;&#xA;Archive nodes: full nodes that store the whole blockchain&#xA;Full UTXO nodes: full nodes that fully store the latest UTXO state, but &#xA;not the raw blockchain&#xA;Lite UTXO nodes: full nodes that store only UTXO created in that past &#xA;420000 blocks&#xA;&#xA;Currently, if one holds nothing but a private key, he must consult &#xA;either an archive node or a full UTXO node for the latest UTXO state to &#xA;spend his coin. We currently do not have any lite UTXO node, and such &#xA;node would not work properly beyond block 420000.&#xA;&#xA;With the softfork I described in my original post, if the UTXO is &#xA;created within the last 420000 blocks, the key holder may consult any &#xA;type of full node, including a lite UTXO node, to create the &#xA;transaction.&#xA;&#xA;If the UTXO has been confirmed by more than 420000 blocks, a lite UTXO &#xA;node obviously can&#39;t provide the necessary information to spend the &#xA;coin. However, not even a full UTXO node may do so. A full UTXO node &#xA;could tell the position of the UTXO in the blockchain, but can&#39;t provide &#xA;all the information required by my specification. Only an archive node &#xA;may do so.&#xA;&#xA;What extra information is needed?&#xA;&#xA;(1) If your UTXO was generated in block Y, you first need to know the &#xA;TXO state (spent / unspent) of all outputs in block Y at block (Y + &#xA;420000). Only UTXOs at that time are relevant.&#xA;&#xA;(2) You also need to know if there was any spending of any block Y UTXOs &#xA;after block (Y + 420000).&#xA;&#xA;It is not possible to construct the membership prove I require without &#xA;these information. It is designed this way, so that lite UTXO nodes &#xA;won&#39;t need to store any dormant UTXO records: not even the hash of &#xA;individual dormant UTXO records. If the blockchain grows to insanely &#xA;big, it may take days or weeks to retrieve to records. However, I don&#39;t &#xA;think this is relevant as one has already left his coins dormant for &gt;8 &#xA;years. Actually, you don&#39;t even need the full blockchain. For (1), all &#xA;you need is the 420000 blocks from Y to Y+420000 minus any witness data, &#xA;as you don&#39;t need to do any validation. For (2), you just need the &#xA;coinbase of Y+420001 to present, where any spending would have been &#xA;committed, and retrieve the full block only if a spending is found.&#xA;&#xA;So the Bitcoin Bank (miners) is not going to shred your record and &#xA;confiscate your money. Instead, the Bank throws your record to the &#xA;garage (raw blockchain). You can search for your record by yourself, or &#xA;employ someone (archive node) to search it for you. In any case it &#xA;incurs costs. But as thousands of bankers have kept your record on their &#xA;limited desk space for 8 years for free (though one of them might &#xA;receive a fraction of a penny from you), you shouldn&#39;t complain with any &#xA;moral, technical, or legal reason. And no matter what users say, I &#xA;believe something like this will happen when miners and full nodes can&#39;t &#xA;handle the UTXO set.&#xA;&#xA;I&#39;d like to see more efficient proposals that archive the same goals.&#xA;&#xA;p.s. there were some typos in my original. The second sentence of the &#xA;second paragraph should be read as &#34;For every block X+420000, it will &#xA;commit to a hash for all UTXOs generated in block X.&#34;&#xA;-----BEGIN PGP SIGNATURE-----&#xA;Version: GnuPG v2&#xA;&#xA;iQGcBAEBCAAGBQJWbbR2AAoJEO6eVSA0viTScEoL/RPlsxr0A5wTtgdi+9i4AFlV&#xA;Sw/He89+YPGe5VCG74YNAPLEUF1/rICzUJ4DulvNTOo/5xtmkv5ok4bD7v1JZnH3&#xA;DE2PExMQYs2X4Qm6mkcwi8IWlMR2U5j5ebUq21Kj4AqVFj9UcQmYGhPehB2f+cM9&#xA;Wki/TDwNj5fV8AZ4uR9pPgaf+bvVQQ9BOOLiIMiTbphNCx1hfGfYcsqmXlCbGk9A&#xA;PatGR88aQTxpa7PhbCZwwf76cKuOaYYZeHr9jRR9RL5rZVXgE1SI/niBytJhXaP8&#xA;lwYtk4Bpz0IGd23v1dArNQQoOp5Xycbeq1l1qyv/qtxju65No+dhqiEcFBZVI1AS&#xA;VcndMQ+yvNuxVgib2Ifh9YjXelWAqqLzzoVcz2RxXh6HJ0tVKxBokwdAcsclZb93&#xA;zQ1JhDR4vBpLquytZA8lDIxJraNCdB/KEAOAey6ljP3zL7fBLBp1oZw4DDDtFy8V&#xA;EMjrOSVnjyuyfey2YXsGnnHuQS0mpwmSroV2400uGQ==&#xA;=2xRy&#xA;-----END PGP SIGNATURE-----</html></oembed>