<oembed><type>rich</type><version>1.0</version><author_name>Tomas [ARCHIVE] (npub1rs…9evk4)</author_name><author_url>https://nostr.ae/npub1rsp4w56r24w3zv4xy8zfgesep45qmf9rq6aghxfw3wr7yemqnnwsf9evk4</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2017-04-08&#xA;📝 Original message:On Sat, Apr 8, 2017, at 02:44, Gregory Maxwell wrote:&#xA;&gt; As you note that the output costs still bound the resource&#xA;&gt; requirements. &#xA;&#xA;Resource cost is not just a measure of storage requirement; data that&#xA;needs to be accessed during peak load induce more cost then data only&#xA;used during base load or only rarely used.&#xA;&#xA;&gt; Latency related costs in Bitcoin Core also do not depend on the number&#xA;&gt; of outputs in transactions in a block. When a transaction is handled&#xA;&gt; it goes into an in-memory buffer and only gets flushed later if isn&#39;t&#xA;&gt; spent before the buffer fills.  A block will take more time to&#xA;&gt; validate with more inputs, same as you observer, but the aggregate&#xA;&gt; resource usage for users depends significantly on outputs (so, in fact&#xA;&gt; there is even further misaligned incentives than just the fact that&#xA;&gt; small outputs have a outsized long term cost).&#xA;&#xA;In Core, when a block comes the inputs are checked against the UTXO set&#xA;(which grows with outputs)  even if pre-synced, to verify order. Am I&#xA;wrong there? This is not in the case in bitcrust; it is instead checked&#xA;against the spend-tree (which grows with inputs).&#xA;&#xA;How &#34;significant&#34; this is, I neither know nor claim,  but it is an&#xA;interesting difference. &#xA;&#xA;&gt; Then I think you may want to retract the claim that &#34;As this solution,&#xA;&gt; reversing the costs of outputs and inputs, [...] updates to the&#xA;&gt; protocol addressing the UTXO growth, might not be worth considering&#xA;&gt; *protocol improvements* &#34;&#xA;&#xA;I think you are being a bit harsh here . I am also clearly explaining&#xA;the difference only applies to peak load, and just making a suggestion.&#xA;I simply want to stress the importance of protocol / implementation&#xA;separation as even though you are correct UTXO data is always a resource&#xA;cost for script validation (as I also state), the ratio of different&#xA;costs are  not necessarily *identical* across implementation. &#xA;&#xA;Note that the converse also holds: In bitcrust, if the last few blocks&#xA;contain many inputs, the peak load verification for this block is&#xA;slower. This is not the case in Core.&#xA;&#xA;Tomas</html></oembed>