public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: Peter Todd <pete@petertodd•org>
To: Mike Hearn <mike@plan99•net>
Cc: Bitcoin Dev <bitcoin-development@lists•sourceforge.net>
Subject: Re: [Bitcoin-development] Auto-generated miner backbone
Date: Mon, 4 Nov 2013 06:53:14 -0500	[thread overview]
Message-ID: <20131104115314.GA1013@savin> (raw)
In-Reply-To: <CANEZrP3iYBdg3p7Ru4O-UENY_yyQDA8=9PGn=KDKGGTrZ-xkRw@mail.gmail.com>

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

On Mon, Nov 04, 2013 at 12:26:30PM +0100, Mike Hearn wrote:
> W.R.T. this paper and the oft-discussed miner backbone,
> 
>   http://arxiv.org/pdf/1311.0243v1.pdf
> 
> I'm wondering about an alternative protocol change that perhaps has less
> subtle implications than their suggested change. Rather than address the
> problem by assuming the network is full of sybil nodes and changing the
> rules for selecting the chain to build on, how about if we wrote code to
> automatically build a miner backbone by having IP addresses of nodes
> embedded into coinbases, then having any bitcoind that is creating work
> automatically connect to IPs that appeared in enough recent blocks?

I proposed this as a means of giving a mechanism for wallets to get
non-sybilled peers as well.

> This would have the effect of automatically linking all the major pools
> together, with no administration overhead.
> 
> For bonus points, the IPs could be IPv6 and then the trick we use to pack
> hidden services into IPv6 address space would allow nodes to be reached via
> Tor. This might be useful in the case of pools that don't to reveal the
> location of their bitcoin node[s], like for anti-DoS reasons.
> 
> It feels like this should be achievable with a few days of solid coding and
> a couple of new command line flags, and the impact is much easier to reason
> about than a fundamental rule change like the one proposed by the paper.

Doing so encourages pools to only bother connecting to other pools,
which is a strong centralizing force. But given the nasty incentives
present anyway - it's in your advantage to distribute your blocks to no
more than a majority of hashing power if you can do so consistently -
I'm unconvinced that this won't happen anyway.

The maximal benefit would be if two sets of addresses were published:
public and private. The issue with publishing addresses is DoS attacks,
but publishing Tor addresses doesn't stop attacks. What would discourage
attacks however would be to encrypt that data such that only the
creators of specific prior blocks could decrypt it. This limits the
audience to those with incentives not to commit a DoS attack. (DoS
attack the IP, and you'll no longer get preferential peering)

Say what you want about centralization, but for the pools involved it's
a good idea.


On a technical level, the coinbase is limited in size, and people use it
for other purposes, so lets define a standard where this data is stored
in an OP_RETURN txout of the form:

OP_RETURN <key> <value> <key> <value> ...

Multiple values with the same key should be allowed. This data should be
placed in the last txout so that SPV nodes can eventually be given it
with a SHA256 midstate.

-- 
'peter'[:-1]@petertodd.org
00000000000000080e395c361bdf9db583d5f4c0e144f476c229285b15eae59c

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 685 bytes --]

  reply	other threads:[~2013-11-04 11:53 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-04 11:26 Mike Hearn
2013-11-04 11:53 ` Peter Todd [this message]
2013-11-04 12:00   ` Mike Hearn
2013-11-04 18:16     ` [Bitcoin-development] Committing to extra block data/a better merge-mine standard Peter Todd
2013-11-04 18:32       ` Peter Todd
2013-11-04 19:11       ` Mark Friedenbach
2013-11-15 22:06         ` Peter Todd
2013-11-04 19:38       ` Mike Hearn
2013-11-04 19:53         ` Mark Friedenbach
2013-11-04 20:10           ` Mike Hearn
2013-11-04 11:58 ` [Bitcoin-development] Auto-generated miner backbone Michael Gronager
2013-11-04 12:03   ` Mike Hearn
2013-11-04 12:20     ` Peter Todd
2013-11-04 12:40     ` Michael Gronager
2013-11-04 15:58   ` Gregory Maxwell
2013-11-04 14:26 ` Peter Todd
2013-11-04 14:34   ` Pieter Wuille
2013-11-04 14:46     ` Peter Todd
     [not found]   ` <CABT1wWm1NzKSS9H=Qh3Z6pFmNHbOFKC12WaE=b3kE0mNsRgfmw@mail.gmail.com>
2013-11-04 15:04     ` Peter Todd
     [not found]       ` <CABT1wWmONUeOWRg-=FKr88bgBQf0un4bvjYW2h8d-10ys-VKtA@mail.gmail.com>
2013-11-04 15:46         ` Peter Todd
     [not found]           ` <CABT1wWmM466jWWdWAo5GmzP58xJFT70Vcr74ta+2QF2fWT+1SA@mail.gmail.com>
2013-11-04 16:07             ` Peter Todd
     [not found]               ` <CABT1wWm5BDZf7U40pOqZvTqdOKeTWUTekjUNckq5McMV=LDu_g@mail.gmail.com>
2013-11-04 16:51                 ` Peter Todd
     [not found]         ` <CABT1wWmwb17b4ACHMmDKqd94tUSKsvwAPx344mZ0VS+47myeWg@mail.gmail.com>
2013-11-04 21:04           ` Peter Todd
2013-11-04 21:45             ` Alan Reiner
2013-11-04 22:03               ` Peter Todd
2013-11-04 15:27   ` Mike Hearn
2013-11-04 17:36     ` Peter Todd
2013-11-04 15:51 ` Gregory Maxwell
2013-11-05  4:14 Gustaw Wieczorek
2013-11-05  4:39 ` Peter Todd
2013-11-05  6:37   ` Gregory Maxwell

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=20131104115314.GA1013@savin \
    --to=pete@petertodd$(echo .)org \
    --cc=bitcoin-development@lists$(echo .)sourceforge.net \
    --cc=mike@plan99$(echo .)net \
    /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