public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: ZmnSCPxj <ZmnSCPxj@protonmail•com>
To: Damian Williamson <willtech@live•com.au>
Cc: "bitcoin-dev@lists•linuxfoundation.org"
	<bitcoin-dev@lists•linuxfoundation.org>
Subject: Re: [bitcoin-dev] BIP Proposal: Revised: UTPFOTIB - Use Transaction Priority For Ordering Transactions In Blocks
Date: Tue, 26 Dec 2017 22:55:43 -0500	[thread overview]
Message-ID: <ONt0j-_38AOpm9ldDOakEZXEmS-psPbkKn2NFscLYYZ8Q_VEMdbrmQBeSXlqmg2C_O8BmniVTY-CVrh-AzhSv8x7UXuuzvziqPQH8mM_fpA=@protonmail.com> (raw)
In-Reply-To: <PS2P216MB01797C7635C98C5CEF1015529D060@PS2P216MB0179.KORP216.PROD.OUTLOOK.COM>

[-- Attachment #1: Type: text/plain, Size: 3979 bytes --]

Good morning Damian,

I see you have modified your proposal to be purely driven by miners, with fullnodes not actually being able to create a strict "yes-or-no" answer as to block validity under your rules.  This implies that your rules cannot be enforced and that rational miners will ignore your proposal unless it brings in more money for them.  The fact that your proposal provides some mechanism to increase block size means that miners will be incentivized to falsify data (by making up their own transactions just above your fixed "dust size" threshhold whatever that threshhold may be -- and remember, miners get at least 12.5 BTC per block, so they can make a lot of little falsified transactions to justify every block size increase) until the block size increase per block is the maximum possible block size increase.

--

Let me then explain proof-of-work and the arrow of time in Physics.  It may seem a digression, but please, bear with me.

Proof-of-work proves that work was performed, and (crucially) that this work was done in the past.

This is important because of the arrow of time.

In principle, every physical interaction is reversible.  Visualize a video of two indivisible particles.  The two particles move towards each other, collide, and because of the collision, fly apart. If you ran this video in reverse, or in forward, it would not be distinguishable to you, as an outside observer, whether the video was running in reverse or not.  It seems at some level, time does not exist.

And yet time exists.

Consider another video, that of a vase being dropped on a hard surface.  The vase hits the surface and shatters.  Played in reverse, we can judge it as nonsensical: scattered pieces of ceramic spontaneously forming a vase and then flying upwards.  This orients our arrow of time: the arrow of time points from states of the universe where lesser entropy exists (the vase is whole) to where greater entropy exists (the vase is in many pieces).

Indeed, all measures of time are, directly or indirectly, measures of increases in entropy.  Consider a simple hourglass: you place it into a state of low entropy and high energy with most of the sand is in the upper part of the hourglass.  As sand falls, and more of that energy is lost into entropy, you judge that time passes.

Consider a proof-of-work algorithm: you place electrons into a state of low entropy and high energy.  As electrons go through the mining hardware, producing hashes that pass the difficulty requirement, the energy in those electrons is lost into entropy (heat), and from the hashes produced (which proves not only that work was done, but in particular, that entropy increased due to work being done), you judge that time passes.

--

Thus, the blockchain itself is already a service that provides a measure of time.  When a block commits to a transaction, then that transaction is known to have existed at that block height, at the latest.

Thus one idea, is to have each block commit to some view of the mempool.  If a transaction exists in this mempool-view, then you know that the transaction is at least that old, and can judge the age from this and use this to compute the "transaction priority".

Unfortunately, transferring the data to prove that the mempool-view is valid, is equivalent to always sweeping the entire mempool contents per block.  In that case you might as well not have a block size limit.

In addition, miners may still commit to a falsely-empty mempool and deny that your transaction is old and therefore priority and therefore will simply fill their blocks with transactions that have high feerates rather than high priority.  Thus feerate will still be the ultimate measure.

Rather than attempt this, perhaps developers should be encouraged to make use of existing mechanisms, RBF and CPFP, to allow transactions to be sped up by directly manipulating feerates, as priority (by your measure) is not practically computable.

Regards,
ZmnSCPxj

[-- Attachment #2: Type: text/html, Size: 4594 bytes --]

  reply	other threads:[~2017-12-27  3:55 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-26  5:14 Damian Williamson
2017-12-27  3:55 ` ZmnSCPxj [this message]
2017-12-27 12:29   ` Damian Williamson
  -- strict thread matches above, loose matches on Subject: below --
2018-01-01 11:04 Damian Williamson
2018-01-04  9:01 ` Damian Williamson
2018-01-19 23:25   ` Damian Williamson
2018-01-20 12:04     ` Damian Williamson
2018-01-20 14:46       ` Alan Evans
2018-01-21  5:49         ` Damian Williamson
2017-12-07 21:01 Damian Williamson
2017-12-15  9:42 ` Damian Williamson
2017-12-15 16:38   ` Rhavar
2017-12-15 20:59     ` Damian Williamson
2017-12-17  4:14       ` Damian Williamson
     [not found]         ` <AB6BF756-29F1-4442-85A9-B81228E829EC@friedenbach.org>
2017-12-19  7:51           ` Damian Williamson
2017-12-22  6:22             ` Damian Williamson
2017-12-22 18:07               ` Spartacus Rex
2017-12-24  3:44                 ` Damian Williamson
2017-12-24  9:02                   ` Spartacus Rex
2017-12-23  1:24           ` Damian Williamson
2017-12-18 12:09       ` Chris Riley
2017-12-19  7:48         ` Damian Williamson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='ONt0j-_38AOpm9ldDOakEZXEmS-psPbkKn2NFscLYYZ8Q_VEMdbrmQBeSXlqmg2C_O8BmniVTY-CVrh-AzhSv8x7UXuuzvziqPQH8mM_fpA=@protonmail.com' \
    --to=zmnscpxj@protonmail$(echo .)com \
    --cc=bitcoin-dev@lists$(echo .)linuxfoundation.org \
    --cc=willtech@live$(echo .)com.au \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox