<oembed><type>rich</type><version>1.0</version><author_name>npub1zw7cc8z78v6s3grujfvcv3ckpvg6kr0w7nz9yzvwyglyg0qu5sjsqhkhpx</author_name><author_url>https://nostr.ae/npub1zw7cc8z78v6s3grujfvcv3ckpvg6kr0w7nz9yzvwyglyg0qu5sjsqhkhpx</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2015-05-17&#xA;📝 Original message:Tier Nolan &lt;tier.nolan at gmail.com&gt; writes:&#xA;&gt; On Sat, May 16, 2015 at 1:22 AM, Rusty Russell &lt;rusty at rustcorp.com.au&gt;&#xA;&gt; wrote:&#xA;&gt;&gt; 3) ... or maybe not, if any consumed UTXO was generated before the soft&#xA;&gt;&gt;    fork (reducing Tier&#39;s perverse incentive).&#xA;&gt;&#xA;&gt; The incentive problem can be fixed by excluding UTXOs from blocks before a&#xA;&gt; certain count.&#xA;&gt;&#xA;&gt; UTXOs in blocks before 375000 don&#39;t count.&#xA;&#xA;OK.  Be nice if these were cleaned up, but I guess it&#39;s a sunk cost.&#xA;&#xA;&gt;&gt; 4) How do we measure UTXO size?  There are some constant-ish things in&#xA;&gt;&gt;    there (eg. txid as key, height, outnum, amount).  Maybe just add 32&#xA;&gt;&gt;    to scriptlen?&#xA;&gt;&gt;&#xA;&gt;&#xA;&gt; They can be stored as a fixed digest.  That can be any size, depending on&#xA;&gt; security requirements.&#xA;&gt;&#xA;&gt; Gmaxwell&#39;s cost proposal is 3-4 bytes per UTXO change.  It isn&#39;t&#xA;&gt; 4*UXTO.size - 3*UTXO.size&#xA;&#xA;He said &#34;utxo_created_size&#34; not &#34;utxo_created&#34; so I assumed scriptlen?&#xA;&#xA;&gt; It is only a small nudge.  With only 10% of the block space to play with it&#xA;&gt; can&#39;t be massive.&#xA;&#xA;But you made that number up?  The soft cap and hard byte limit are&#xA;different beasts, so there&#39;s no need for soft cost cap &lt; hard byte&#xA;limit.&#xA;&#xA;&gt; This requires that transactions include scriptPubKey information when&#xA;&gt; broadcasting them.&#xA;&#xA;Brilliant!  I completely missed that possibility...&#xA;&#xA;&gt;&gt; 5) Add a CHECKSIG cost.  Naively, since we allow 20,000 CHECKSIGs and&#xA;&gt;&gt;    1MB blocks, that implies a cost of 50 bytes per CHECKSIG (but counted&#xA;&gt;&gt;    correctly, unlike now).&#xA;&gt;&gt;&#xA;&gt;&gt; This last one implies that the initial cost limit would be 2M, but in&#xA;&gt;&gt; practice probably somewhere in the middle.&#xA;&gt;&gt;&#xA;&gt;&gt;   tx_cost = 50*num-CHECKSIG&#xA;&gt;&gt;                 + tx_bytes&#xA;&gt;&gt;                 + 4*utxo_created_size&#xA;&gt;&gt;                 - 3*utxo_consumed_size&#xA;&gt;&gt;&#xA;&gt;&gt; &gt; A 250 byte transaction with 2 inputs and 2 outputs would have an adjusted&#xA;&gt;&gt; &gt; size of 252 bytes.&#xA;&gt;&gt;&#xA;&gt;&gt; Now cost == 352.&#xA;&gt;&#xA;&gt; That is to large a cost for a 10% block change.  It could be included in&#xA;&gt; the block size hard fork though.&#xA;&#xA;I don&#39;t think so.  Again, you&#39;re mixing units.&#xA;&#xA;&gt; I think have one combined &#34;cost&#34; for&#xA;&gt; transactions is good.  It means much fewer spread out transaction checks.&#xA;&gt; The code for the cost formula would be in one place.&#xA;&#xA;Agreed!  Unfortunately there&#39;ll always be 2, because we really do want a&#xA;hard byte limit: it&#39;s total tx bytes which brings most concerns about&#xA;centralization.  But ideally it&#39;ll be so rarely hit that it can be ~&#xA;ignored (and certainly not optimized for).&#xA;&#xA;Cheers,&#xA;Rusty.</html></oembed>