<oembed><type>rich</type><version>1.0</version><author_name>npub1g6vxlp4e0nyhs2dqxxcryztyf5f5hyuaq93nw4r87zcnv0sdsa0qqsl5wd</author_name><author_url>https://nostr.ae/npub1g6vxlp4e0nyhs2dqxxcryztyf5f5hyuaq93nw4r87zcnv0sdsa0qqsl5wd</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2015-05-16&#xA;📝 Original message:On Sat, May 16, 2015 at 1:22 AM, Rusty Russell &lt;rusty at rustcorp.com.au&gt;&#xA;wrote:&#xA;&#xA;&gt; Some tweaks:&#xA;&gt;&#xA;&gt; 1) Nomenclature: call tx_size &#34;tx_cost&#34; and real_size &#34;tx_bytes&#34;?&#xA;&gt;&#xA;&#xA;Fair enough.&#xA;&#xA;&gt;&#xA;&gt; 2) If we have a reasonable hard *byte* limit, I don&#39;t think that we need&#xA;&gt;    the MAX().  In fact, it&#39;s probably OK to go negative.&#xA;&gt;&#xA;&#xA;I agree, we want people to compress the UTXO space and a transaction with&#xA;100 inputs and one output is great.&#xA;&#xA;It may have privacy problem though.&#xA;&#xA;&#xA;&gt;&#xA;&gt; 3) ... or maybe not, if any consumed UTXO was generated before the soft&#xA;&gt;    fork (reducing Tier&#39;s perverse incentive).&#xA;&gt;&#xA;&#xA;The incentive problem can be fixed by excluding UTXOs from blocks before a&#xA;certain count.&#xA;&#xA;UTXOs in blocks before 375000 don&#39;t count.&#xA;&#xA;&#xA;&gt;&#xA;&gt; 4) How do we measure UTXO size?  There are some constant-ish things in&#xA;&gt;    there (eg. txid as key, height, outnum, amount).  Maybe just add 32&#xA;&gt;    to scriptlen?&#xA;&gt;&#xA;&#xA;They can be stored as a fixed digest.  That can be any size, depending on&#xA;security requirements.&#xA;&#xA;Gmaxwell&#39;s cost proposal is 3-4 bytes per UTXO change.  It isn&#39;t&#xA;4*UXTO.size - 3*UTXO.size&#xA;&#xA;It is only a small nudge.  With only 10% of the block space to play with it&#xA;can&#39;t be massive.&#xA;&#xA;This requires that transactions include scriptPubKey information when&#xA;broadcasting them.&#xA;&#xA;&#xA;&gt;&#xA;&gt; 5) Add a CHECKSIG cost.  Naively, since we allow 20,000 CHECKSIGs and&#xA;&gt;    1MB blocks, that implies a cost of 50 bytes per CHECKSIG (but counted&#xA;&gt;    correctly, unlike now).&#xA;&gt;&#xA;&gt; This last one implies that the initial cost limit would be 2M, but in&#xA;&gt; practice probably somewhere in the middle.&#xA;&gt;&#xA;&gt;   tx_cost = 50*num-CHECKSIG&#xA;&gt;                 + tx_bytes&#xA;&gt;                 + 4*utxo_created_size&#xA;&gt;                 - 3*utxo_consumed_size&#xA;&gt;&#xA;&gt; &gt; A 250 byte transaction with 2 inputs and 2 outputs would have an adjusted&#xA;&gt; &gt; size of 252 bytes.&#xA;&gt;&#xA;&gt; Now cost == 352.&#xA;&gt;&#xA;&#xA;That is to large a cost for a 10% block change.  It could be included in&#xA;the block size hard fork though.  I think have one combined &#34;cost&#34; for&#xA;transactions is good.  It means much fewer spread out transaction checks.&#xA;The code for the cost formula would be in one place.&#xA;-------------- next part --------------&#xA;An HTML attachment was scrubbed...&#xA;URL: &lt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150516/8e5f1099/attachment.html&gt;</html></oembed>