Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 4426FF0F for ; Fri, 11 Sep 2015 19:26:23 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.7.6 Received: from mail-wi0-f182.google.com (mail-wi0-f182.google.com [209.85.212.182]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 0E261E9 for ; Fri, 11 Sep 2015 19:26:22 +0000 (UTC) Received: by wicfx3 with SMTP id fx3so75288738wic.1 for ; Fri, 11 Sep 2015 12:26:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=u0myEGx8LDhJOpXqpIvFC5u7jO9WTnmOvCCSJ9fvcsY=; b=pbxvsYN+6EHEgi0WFkPx6TKMLK5N/j4nT0IubiZnmIHOmWbDbUvv+ueBMjIccLS7WS hQ7xldSZ6HxBo/Tv3mJKQLfmEtJJ/2pqdGkeK2DAtHXF0Q318bpqrIiVQyEXI2easp7N mdG6bxkODeL8Om1zsQg7RAL+froN0fq8TAcwtlAbuef9nBYPGLqhw/9PqNYoVsASszgg b0kjP90np4zuZfwQEV51Yxrd6eiVacGxTko/oZ2ne2hixZJ8WOCJHyYxBkTDumoamtwm cY2Q3XmDOS92ZTD0TQzG4q5JzTRU6Lcr5W2Lte3uhb2I+Z68i7gJFjMUdTLv2T3OKXqL 6VNQ== MIME-Version: 1.0 X-Received: by 10.194.239.167 with SMTP id vt7mr754026wjc.5.1441999580660; Fri, 11 Sep 2015 12:26:20 -0700 (PDT) Sender: dscotese@gmail.com Received: by 10.27.211.132 with HTTP; Fri, 11 Sep 2015 12:26:20 -0700 (PDT) In-Reply-To: References: Date: Fri, 11 Sep 2015 12:26:20 -0700 X-Google-Sender-Auth: _c0cwW6fze9ldQ7uIyQIyuIsO80 Message-ID: From: Dave Scotese To: =?UTF-8?B?Sm9yZ2UgVGltw7Nu?= Content-Type: multipart/alternative; boundary=089e013c60c0c589db051f7db0a7 X-Spam-Status: No, score=-0.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FREEMAIL_FROM,HTML_MESSAGE,RCVD_IN_DNSWL_LOW,URIBL_BLACK autolearn=no version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Cc: Bitcoin Dev Subject: Re: [bitcoin-dev] Bitcoin Days Destroyed as block selection heuristic X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Bitcoin Development Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Sep 2015 19:26:23 -0000 --089e013c60c0c589db051f7db0a7 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Yes, this proposal is a policy that everyone would be free to ignore. I should have introduced the situation in which this *unenforceable* policy makes sense to me. Here it is: Every miner is listening for valid block solutions but might receive two valid blocks and then they have to decide which one to use. Choosing the one you saw first is the default behavior. In that situation, we'd all like everyone to choose the same block. I propose that a better heuristic than "first seen" is to compare the BTCDD, *but only of transactions you already have in your mempool*, and *weight the BTCDD so that txns you got earlier are more important.* The heuristic is most useful when the two blocks are received within a small window of time, opting for the first-seen rule otherwise. I assume many miners have an idea of how long it takes for anyone's new block to get across the network, and more specifically, the range of times it takes for new solutions to get to themselves. During this little time window, the chances are 50/50 that they'll choose the right block. If the default behavior were to use BTCDD during that time window (one second? I have no idea!), then the chances would be significantly better. I think Jorge is right that it doesn't benefit miners. It doesn't hurt them either, unless they are trying to do selfish mining. Well, it benefits them in terms of increased bitcoin stability by A) making it easier for clients to decide which block is valid when they see two competing with each other, B) motivating miners to add transactions instead of mining empty blocks, C) severely decreasing the utility of any global private network of nodes intended to spread selfishly-mined blocks, and D) motivating miners to stay well-connected so that they get transactions quickly. I sent this to the list because it is only useful if it is set as default behavior since most miners leave the defaults alone, and the benefits don't materialize unless a majority follows the policy. On Fri, Sep 11, 2015 at 11:37 AM, Jorge Tim=C3=B3n wrote= : > > On Sep 11, 2015 1:18 PM, "Christophe Biocca" > wrote: > > > > It's pretty obvious that Dave is suggesting an alternate tie-breaker: > > I thought he was proposing a new consesnsus rule. I see, this would be > just a policy validation that everybody would be free to ignore (like the > "first seen" spend conflict tx replacement policy). > > I don't see how miners would benefit from running this policy so I would > not expect them to run it in the long run (like the "first seen" spend > conflict tx replacement policy). > If miners don't use it, I don't see how users can benefit from running > that policy themselves. > They will still have to keep waiting some block confirmation to > exponentially reduce the chances of a successful double-spend attack with > each new confirmation (as explained in the bitcoin white paper). > > > Mind you, that risk doesn't apply if we prefer non-empty blocks to > > empty blocks and leave it at that, or only switch if the new block > > doesn't double spend transactions in the old one, so it's a fixable > > issue. > > How do you know which of 2 blocks with the same height is "newer"? > > > On 11 September 2015 at 12:32, Jorge Tim=C3=B3n > > wrote: > > > > > > On Sep 11, 2015 12:27 PM, "Dave Scotese via bitcoin-dev" > > > wrote: > > >> > > >> Rather than (promising to, and when they don't actually, at least > > >> pretending to) use the first-seen block, I propose that a more > sophisticated > > >> method of choosing which of two block solutions to accept. > > > > > > There's already a criterion to chose: the one with more work (in vali= d > > > blocks) on top of it. > > > > > > > > > _______________________________________________ > > > bitcoin-dev mailing list > > > bitcoin-dev@lists.linuxfoundation.org > > > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev > > > > --=20 I like to provide some work at no charge to prove my value. Do you need a techie? I own Litmocracy and Meme Racing (in alpha). I'm the webmaster for The Voluntaryist which now accepts Bitcoin. I also code for The Dollar Vigilante . "He ought to find it more profitable to play by the rules" - Satoshi Nakamoto --089e013c60c0c589db051f7db0a7 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Yes, this proposal is a policy that ev= eryone would be free to ignore.=C2=A0 I should have introduced the situatio= n in which this unenforceable policy makes sense to me.=C2=A0 Here i= t is:

Every miner is listening for valid block solutions but m= ight receive two valid blocks and then they have to decide which one to use= .=C2=A0 Choosing the one you saw first is the default behavior.=C2=A0 In th= at situation, we'd all like everyone to choose the same block.=C2=A0 I = propose that a better heuristic than "first seen" is to compare t= he BTCDD, but only of transactions you already have in your mempool,= and weight the BTCDD so that txns you got earlier are more important.
The heuristic is most useful when the two blocks are receiv= ed within a small window of time, opting for the first-seen rule otherwise.= =C2=A0 I assume many miners have an idea of how long it takes for anyone= 9;s new block to get across the network, and more specifically, the range o= f times it takes for new solutions to get to themselves.=C2=A0 During this = little time window, the chances are 50/50 that they'll choose the right= block.=C2=A0 If the default behavior were to use BTCDD during that time wi= ndow (one second? I have no idea!), then the chances would be significantly= better.

I think Jorge is right that it doesn't benefit mi= ners.=C2=A0 It doesn't hurt them either, unless they are trying to do s= elfish mining.=C2=A0 Well, it benefits them in terms of increased bitcoin s= tability by A) making it easier for clients to decide which block is valid = when they see two competing with each other, B) motivating miners to add tr= ansactions instead of mining empty blocks, C) severely decreasing the utili= ty of any global private network of nodes intended to spread selfishly-mine= d blocks, and D) motivating miners to stay well-connected so that they get = transactions quickly.

I sent this to the list = because it is only useful if it is set as default behavior since most miner= s leave the defaults alone, and the benefits don't materialize unless a= majority follows the policy.
On Fri, Sep 11, 2015 at 11:37 AM, Jorge Tim=C3= =B3n <jtimon@jtimon.cc> wrote:


On Sep 11, 2015 1:18 PM, "Christophe Biocca" <christophe.biocca@gmail.co= m> wrote:
>
> It's pretty obvious that Dave is suggesting an alternate tie-break= er:

I thought he was proposing a new consesnsus rule. I s= ee, this would be just a policy validation that everybody would be free to = ignore (like the "first seen" spend conflict tx replacement polic= y).

I don't see how miners would benefit from running this p= olicy so I would not expect them to run it in the long run (like the "= first seen" spend conflict tx replacement policy).
If miners don't use it, I don't see how users can benefit from runn= ing that policy themselves.
They will still have to keep waiting some block confirmation to exponential= ly reduce the chances of a successful double-spend attack with each new con= firmation (as explained in the bitcoin white paper).

> Mind you, that risk doesn't apply if we prefer non-= empty blocks to
> empty blocks and leave it at that, or only switch if the new block
> doesn't double spend transactions in the old one, so it's a fi= xable
> issue.

How do you know which of 2 blocks with the same heigh= t is "newer"?

> On 11 September 2015 at 12:32, Jorge Tim=C3=B3n
> <bitcoin-dev@lists.linuxfoundation.org> wrote:
> >
> > On Sep 11, 2015 12:27 PM, "Dave Scotese via bitcoin-dev"= ;
> > <bitcoin-dev@lists.linuxfoundation.org> wrote:
> >>
> >> Rather than (promising to, and when they don't actually, = at least
> >> pretending to) use the first-seen block, I propose that a mor= e sophisticated
> >> method of choosing which of two block solutions to accept. > >
> > There's already a criterion to chose: the one with more work = (in valid
> > blocks) on top of it.
> >
> >
> > _______________________________________________
> > bitcoin-dev mailing list
> > bitcoin-dev@lists.linuxfoundation.org
> > https://lists.linuxfoundation.org/mailman/listi= nfo/bitcoin-dev
> >




--
I like to provide some work at no cha= rge to prove my value. Do you need a techie?=C2=A0
I own Litmocracy and Meme Racing (in alpha).
I= 'm the webmaster for The Voluntaryist which now accepts Bitcoin.
I also code for = The Dollar Vigila= nte.
"He ought to find it more profitable to play by the rules&= quot; - Satoshi Nakamoto
--089e013c60c0c589db051f7db0a7--