public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
* [bitcoin-dev] Encouraging good miners
@ 2017-03-27 16:12 Btc Ideas
  2017-03-27 16:29 ` Jameson Lopp
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: Btc Ideas @ 2017-03-27 16:12 UTC (permalink / raw)
  To: bitcoin-dev

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

Add a preference for mined blocks to be the one with more transactions. This comes into play when 2 blocks of the same height are found. The first good block mined would be orphaned if it had less transactions than another. Optionally, have this rule apply to the current block and the previous one.

This increases incentive for full blocks because a miner thinking the faster propagation of a smaller block will win him the reward, but that would no longer be a good assumption.

I read some miners could attack a chain by mining small or empty blocks. This makes that a little more difficult, but they can still attack the chain many ways.

Sent with [ProtonMail](https://protonmail.com) Secure Email.

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [bitcoin-dev] Encouraging good miners
  2017-03-27 16:12 [bitcoin-dev] Encouraging good miners Btc Ideas
@ 2017-03-27 16:29 ` Jameson Lopp
       [not found] ` <WM!6b16e14ff3d44b0c6c0030538191fb22c33a979bb09131ef246ffc477e216212e64cfae815c6af871886f74be6b38d7f!@mailhub-mx4.ncl.ac.uk>
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: Jameson Lopp @ 2017-03-27 16:29 UTC (permalink / raw)
  To: Btc Ideas, Bitcoin Protocol Discussion

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

Bitcoin chooses the "best chain" based upon the one that has the most
cumulative proof of work behind it. Are you proposing that the cumulative
proof of work be ignored if two blocks are within a certain threshold of
each others' work and if so, the number of transactions in the block / the
size of the block should be used as a "tie breaker?"

I think this idea needs more fleshing out of exactly how it would work,
with careful consideration that adding complexity to the best chain logic
could introduce exploitable flaws.

On Mon, Mar 27, 2017 at 12:12 PM, Btc Ideas via bitcoin-dev <
bitcoin-dev@lists•linuxfoundation.org> wrote:

> Add a preference for mined blocks to be the one with more transactions.
> This comes into play when 2 blocks of the same height are found. The first
> good block mined would be orphaned if it had less transactions than
> another. Optionally, have this rule apply to the current block and the
> previous one.
>
> This increases incentive for full blocks because a miner thinking the
> faster propagation of a smaller block will win him the reward, but that
> would no longer be a good assumption.
>
> I read some miners could attack a chain by mining small or empty blocks.
> This makes that a little more difficult, but they can still attack the
> chain many ways.
>
>
> Sent with ProtonMail <https://protonmail.com> Secure Email.
>
>
> _______________________________________________
> bitcoin-dev mailing list
> bitcoin-dev@lists•linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>
>

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [bitcoin-dev] Encouraging good miners
       [not found]     ` <WM!1f99375705714ae4f8b1288ea47707c53f573e0597317337d41d22e28f801234a0d946b8ef05335cccb825f27bdd72da!@mailhub-mx2.ncl.ac.uk>
@ 2017-03-27 16:29       ` Btc Ideas
  0 siblings, 0 replies; 8+ messages in thread
From: Btc Ideas @ 2017-03-27 16:29 UTC (permalink / raw)
  To: Patrick Mccorry (PGR); +Cc: Bitcoin Protocol Discussion

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

I know miners can do that, but it is not meant to primarily stop a malicious miner, but just to keep the blocks full. I think it is good to convince greedy miners not to mine empty blocks for a speed advantage.

Sent with [ProtonMail](https://protonmail.com) Secure Email.

-------- Original Message --------
Subject: Re: [bitcoin-dev] Encouraging good miners
Local Time: March 28, 2017 12:23 AM
UTC Time: March 27, 2017 4:23 PM
From: patrick.mccorry@newcastle•ac.uk
To: Btc Ideas <btcideas@protonmail•com>, Bitcoin Protocol Discussion <bitcoin-dev@lists•linuxfoundation.org>

Miner's can include transactions that send themselves bitcoins. Number of transactions is not a good measure of utility.

---------------------------------------------------------------

From: bitcoin-dev-bounces@lists•linuxfoundation.org <bitcoin-dev-bounces@lists•linuxfoundation.org> on behalf of Btc Ideas via bitcoin-dev <bitcoin-dev@lists•linuxfoundation.org>
Sent: 27 March 2017 17:12:19
To: bitcoin-dev@lists•linuxfoundation.org
Subject: [bitcoin-dev] Encouraging good miners

Add a preference for mined blocks to be the one with more transactions. This comes into play when 2 blocks of the same height are found. The first good block mined would be orphaned if it had less transactions than another. Optionally, have this rule apply to the current block and the previous one.

This increases incentive for full blocks because a miner thinking the faster propagation of a smaller block will win him the reward, but that would no longer be a good assumption.

I read some miners could attack a chain by mining small or empty blocks. This makes that a little more difficult, but they can still attack the chain many ways.

Sent with [ProtonMail](https://protonmail.com) Secure Email.

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [bitcoin-dev] Encouraging good miners
  2017-03-27 16:12 [bitcoin-dev] Encouraging good miners Btc Ideas
  2017-03-27 16:29 ` Jameson Lopp
       [not found] ` <WM!6b16e14ff3d44b0c6c0030538191fb22c33a979bb09131ef246ffc477e216212e64cfae815c6af871886f74be6b38d7f!@mailhub-mx4.ncl.ac.uk>
@ 2017-03-27 17:29 ` Tom Zander
  2017-03-27 20:01   ` Eric Voskuil
  2017-03-27 17:50 ` Stian Ellingsen
  2017-03-27 20:56 ` Antoine Le Calvez
  4 siblings, 1 reply; 8+ messages in thread
From: Tom Zander @ 2017-03-27 17:29 UTC (permalink / raw)
  To: bitcoin-dev, Btc Ideas

For some time now the relation between block size and propagation speed has 
been decoupled. Using xthin/compact blocks miners only send a tiny version 
of a block which then causes the receiving node to re-create it using the 
memory pool.  Immediately getting double benefits by including pre-verified 
transactions from the memory pool you avoid the old problem of having to 
validate them again when a block was mined.

As such there is no downside to a miner creating a bigger block, as long as 
all the transactions they include are actually in the mempool.

As such I'm personally convinced that the problem you are trying to solve 
has already been solved.

Cheers!


On Monday, 27 March 2017 18:12:19 CEST Btc Ideas via bitcoin-dev wrote:
> Add a preference for mined blocks to be the one with more transactions.
> This comes into play when 2 blocks of the same height are found. The
> first good block mined would be orphaned if it had less transactions than
> another. Optionally, have this rule apply to the current block and the
> previous one.
> 
> This increases incentive for full blocks because a miner thinking the
> faster propagation of a smaller block will win him the reward, but that
> would no longer be a good assumption.


-- 
Tom Zander
Blog: https://zander.github.io
Vlog: https://vimeo.com/channels/tomscryptochannel


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [bitcoin-dev] Encouraging good miners
  2017-03-27 16:12 [bitcoin-dev] Encouraging good miners Btc Ideas
                   ` (2 preceding siblings ...)
  2017-03-27 17:29 ` Tom Zander
@ 2017-03-27 17:50 ` Stian Ellingsen
  2017-03-28 14:38   ` Juan Garavaglia
  2017-03-27 20:56 ` Antoine Le Calvez
  4 siblings, 1 reply; 8+ messages in thread
From: Stian Ellingsen @ 2017-03-27 17:50 UTC (permalink / raw)
  To: Btc Ideas, Bitcoin Protocol Discussion

On 27/03/17 18:12, Btc Ideas via bitcoin-dev wrote:

> Add a preference for mined blocks to be the one with more
> transactions. This comes into play when 2 blocks of the same height
> are found. The first good block mined would be orphaned if it had
> less transactions than another. Optionally, have this rule apply to
> the current block and the previous one.

This would encourage miners to make their own tiny junk transactions
to fill up their blocks, perhaps leaving larger, more space-efficient
transactions in the mempool.

> This increases incentive for full blocks because a miner thinking
> the faster propagation of a smaller block will win him the reward,
> but that would no longer be a good assumption.

> I read some miners could attack a chain by mining small or empty
> blocks. This makes that a little more difficult, but they can still
> attack the chain many ways.

"Good" miners should probably build upon the block with a set of
transactions more similar to what they themselves would include based
on their mempool at the time.  However, miners don't have an incentive
to do so today.  Instead, they may be better off building upon the
block that leaves the most valuable transactions in the mempool,
e.g. a small or empty block, and maybe leave some valuable
transactions in the mempool for the next miner.[1]  This issue could
possibly be addressed by a soft-fork that requires miners to pay a
portion of their fees to future miners.

[1]
https://freedom-to-tinker.com/2016/10/21/bitcoin-is-unstable-without-the-block-reward/

-- 
Stian




^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [bitcoin-dev] Encouraging good miners
  2017-03-27 17:29 ` Tom Zander
@ 2017-03-27 20:01   ` Eric Voskuil
  0 siblings, 0 replies; 8+ messages in thread
From: Eric Voskuil @ 2017-03-27 20:01 UTC (permalink / raw)
  To: Tom Zander, Bitcoin Protocol Discussion, Btc Ideas

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

On 03/27/2017 10:29 AM, Tom Zander via bitcoin-dev wrote:
> For some time now the relation between block size and propagation
> speed has been decoupled. Using xthin/compact blocks miners only
> send a tiny version of a block which then causes the receiving node
> to re-create it using the memory pool.  Immediately getting double
> benefits by including pre-verified transactions from the memory
> pool you avoid the old problem of having to validate them again
> when a block was mined.
> 
> As such there is no downside to a miner creating a bigger block, as
> long as all the transactions they include are actually in the
> mempool.

All transactions being publicly available is not something that can be
assumed.

With no opportunity cost for a miner to generate withheld
transactions, a larger miner still maintains the economic advantage of
latency as a function of block size. Fast relay works to reduce
latency in relation to the opportunity cost created by the space
constraint. IOW, the more fees a miner must give up to mine withheld
transactions, the greater the economic disadvantage of doing so. So
there is a "downside" (i.e. centralization pressure) up to the point
where the advantage gained from withholding transactions turns negative.

The rational competing miner must presume that a block is valid upon
confirming the announcement's PoW. He then has the choice of mining on
top of the (partially-visible) block, or ignoring it until it can be
fully populated. The former *eliminates fee opportunity*, since the
next block must remain free of all public fee-generating transactions
until all of the preceding block's transactions are visible. The
latter increases orphaning probability, since it implies mining on the
weak chain, which *increases total reward loss*.

One can conclude that no matter how much space is created, it will
always be filled by a rational miner, as a competitive necessity,
given the centralizing effect of latency. Making blocks big enough to
include low cost transactions nullifies the benefits of fast relay
techniques based on your above assumption, since a rational miner will
simply substitute withheld transactions.

e
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)

iQEcBAEBCAAGBQJY2W+bAAoJEDzYwH8LXOFOzkwH+wUulsdvUcfEHMspolfDjTD+
f4egP1FDoOFgXzaGJ+Bq1AjWP+CDYup9msYhp1NTk6xRnG4uGvaEA3DFYGbAzLut
INtkpCi38O1QGtDJaxmkJHXLoWJPS6VudcDEoam4W6qSKgHFB+ZRnIN4T7jnGMLI
rp/cGdom9wE/pcq/fvF/fonGfVWf/YP2YjBzJzaJy+zOYPTH2rNcnYBCHFPs4/KX
9Gu7tDw9WNxM5idnd0TiidublQhYui6xo7ZbZpmXQePcHQoQO5XqaO6yWwiWRWaU
mqXhalASOtP6xnPzj6FfAHYS7qA7JCaDfwT8UIzt9xv9XsPrhQ/r6Sfgfhvbm2k=
=b9sf
-----END PGP SIGNATURE-----


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [bitcoin-dev] Encouraging good miners
  2017-03-27 16:12 [bitcoin-dev] Encouraging good miners Btc Ideas
                   ` (3 preceding siblings ...)
  2017-03-27 17:50 ` Stian Ellingsen
@ 2017-03-27 20:56 ` Antoine Le Calvez
  4 siblings, 0 replies; 8+ messages in thread
From: Antoine Le Calvez @ 2017-03-27 20:56 UTC (permalink / raw)
  To: bitcoin-dev

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

I don't think encouraging mining more transactions is a good idea since 
it would promote inefficient transaction patterns. It's more efficient 
to send transactions with a high number of outputs/inputs instead of 
creating long transaction chains as some services do.

You might consider incentivizing miners to mine blocks that reduce the 
UTXO set size the most, or some other metric that promotes efficient 
uses of the blockchain.

On 27/03/17 17:12, Btc Ideas via bitcoin-dev wrote:
> Add a preference for mined blocks to be the one with more 
> transactions. This comes into play when 2 blocks of the same height 
> are found. The first good block mined would be orphaned if it had less 
> transactions than another. Optionally, have this rule apply to the 
> current block and the previous one.
>
> This increases incentive for full blocks because a miner thinking the 
> faster propagation of a smaller block will win him the reward, but 
> that would no longer be a good assumption.
>
> I read some miners could attack a chain by mining small or empty 
> blocks. This makes that a little more difficult, but they can still 
> attack the chain many ways.
>
>
> Sent with ProtonMail <https://protonmail.com> Secure Email.
>
>
>
> _______________________________________________
> bitcoin-dev mailing list
> bitcoin-dev@lists•linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [bitcoin-dev] Encouraging good miners
  2017-03-27 17:50 ` Stian Ellingsen
@ 2017-03-28 14:38   ` Juan Garavaglia
  0 siblings, 0 replies; 8+ messages in thread
From: Juan Garavaglia @ 2017-03-28 14:38 UTC (permalink / raw)
  To: Stian Ellingsen, Bitcoin Protocol Discussion

If a miner try to hurt the network mining just empty blocks at some time the rest will start rejecting their blocks and will be orphans so will loss the reward incentive and that miner will join the behavior of the rest of the miners, if that miner has 51% of hashrate there the smallest problem are the empty blocks.

-----Original Message-----
From: bitcoin-dev-bounces@lists•linuxfoundation.org [mailto:bitcoin-dev-bounces@lists•linuxfoundation.org] On Behalf Of Stian Ellingsen via bitcoin-dev
Sent: Monday, March 27, 2017 2:50 PM
To: Btc Ideas <btcideas@protonmail•com>; Bitcoin Protocol Discussion <bitcoin-dev@lists•linuxfoundation.org>
Subject: Re: [bitcoin-dev] Encouraging good miners

On 27/03/17 18:12, Btc Ideas via bitcoin-dev wrote:

> Add a preference for mined blocks to be the one with more 
> transactions. This comes into play when 2 blocks of the same height 
> are found. The first good block mined would be orphaned if it had less 
> transactions than another. Optionally, have this rule apply to the 
> current block and the previous one.

This would encourage miners to make their own tiny junk transactions to fill up their blocks, perhaps leaving larger, more space-efficient transactions in the mempool.

> This increases incentive for full blocks because a miner thinking the 
> faster propagation of a smaller block will win him the reward, but 
> that would no longer be a good assumption.

> I read some miners could attack a chain by mining small or empty 
> blocks. This makes that a little more difficult, but they can still 
> attack the chain many ways.

"Good" miners should probably build upon the block with a set of transactions more similar to what they themselves would include based on their mempool at the time.  However, miners don't have an incentive to do so today.  Instead, they may be better off building upon the block that leaves the most valuable transactions in the mempool, e.g. a small or empty block, and maybe leave some valuable transactions in the mempool for the next miner.[1]  This issue could possibly be addressed by a soft-fork that requires miners to pay a portion of their fees to future miners.

[1]
https://freedom-to-tinker.com/2016/10/21/bitcoin-is-unstable-without-the-block-reward/

--
Stian


_______________________________________________
bitcoin-dev mailing list
bitcoin-dev@lists•linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2017-03-28 14:38 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-27 16:12 [bitcoin-dev] Encouraging good miners Btc Ideas
2017-03-27 16:29 ` Jameson Lopp
     [not found] ` <WM!6b16e14ff3d44b0c6c0030538191fb22c33a979bb09131ef246ffc477e216212e64cfae815c6af871886f74be6b38d7f!@mailhub-mx4.ncl.ac.uk>
     [not found]   ` <VI1PR0701MB2240F0890E5F19E53CF94B43B5330@VI1PR0701MB2240.eurprd07.prod.outlook.com>
     [not found]     ` <WM!1f99375705714ae4f8b1288ea47707c53f573e0597317337d41d22e28f801234a0d946b8ef05335cccb825f27bdd72da!@mailhub-mx2.ncl.ac.uk>
2017-03-27 16:29       ` Btc Ideas
2017-03-27 17:29 ` Tom Zander
2017-03-27 20:01   ` Eric Voskuil
2017-03-27 17:50 ` Stian Ellingsen
2017-03-28 14:38   ` Juan Garavaglia
2017-03-27 20:56 ` Antoine Le Calvez

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox