From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <timo.t.hanke@gmail.com> Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 14EC95AE for <bitcoin-dev@lists.linuxfoundation.org>; Wed, 11 May 2016 22:49:30 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.7.6 Received: from mail-lf0-f54.google.com (mail-lf0-f54.google.com [209.85.215.54]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 01F79123 for <bitcoin-dev@lists.linuxfoundation.org>; Wed, 11 May 2016 22:49:28 +0000 (UTC) Received: by mail-lf0-f54.google.com with SMTP id u64so62551437lff.3 for <bitcoin-dev@lists.linuxfoundation.org>; Wed, 11 May 2016 15:49:28 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=dKh5Q17slN8XLe6H/TnWgtZykEo672WPbVgv5NU0euw=; b=FZjP/XLCteQy7Amd3C6KbkbvKEm51N0vvTpbJDSs4F9TeNtuZV8TmqXFGF6R1MSW+X ++epzO03y7BdUsycdbyYmBd1w/6uBu/kcbjnY9gkwwoWXwssb717VOsir8ZuR4A81uWN iT9dcBPhmj/B2quV6tjqlb7fRueG7lVXVjAX467FyUmL6MTYjc7Bh6Hd6uKuWaGJQFTI LC8aE3u9WCZsRN9mlPNDXMFYR3UpK457ACHJIAIdYsentcoMpiqGiC/w+hpwu13hs2aQ 0VYyAXQ3O7TVQUT30Uz9VjnSgBGb7rJFFJHkq/5q/Qiufzx5g5aY0kr2dDOZp7+FwAvY cFjw== X-Gm-Message-State: AOPr4FVG9YO0tDMc4Ahe0eh18FUxFr4A2cdGJ1194MW9/h1NifjmxTiaGofFbzS8IdR0sw== X-Received: by 10.25.161.141 with SMTP id k135mr2791511lfe.101.1463006967459; Wed, 11 May 2016 15:49:27 -0700 (PDT) Received: from mail-lb0-f174.google.com (mail-lb0-f174.google.com. [209.85.217.174]) by smtp.gmail.com with ESMTPSA id oq7sm777190lbb.47.2016.05.11.15.49.26 for <bitcoin-dev@lists.linuxfoundation.org> (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 11 May 2016 15:49:27 -0700 (PDT) Received: by mail-lb0-f174.google.com with SMTP id h1so2626106lbj.3 for <bitcoin-dev@lists.linuxfoundation.org>; Wed, 11 May 2016 15:49:26 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.112.10.9 with SMTP id e9mr2761333lbb.142.1463006965913; Wed, 11 May 2016 15:49:25 -0700 (PDT) Received: by 10.25.144.8 with HTTP; Wed, 11 May 2016 15:49:25 -0700 (PDT) In-Reply-To: <CAH6h1LsRgZEar8JDR2m-hsTc-DE+=A6BzOq_X2CHSya=bxFRQQ@mail.gmail.com> References: <20160510185728.GA1149@fedora-21-dvm> <CAKzdR-ou2FYjjxmRBLARhvfhHO-46weiMc2Q2f+GZf1E_JUEAg@mail.gmail.com> <CAKzdR-pFZGsQZPrHRbJhviFemSLPf8Bo6UWSaaQ-BurCsnAAWw@mail.gmail.com> <201605111428.25918.luke@dashjr.org> <CAH6h1LuVSSxZtOFNGP-Etx-UQGnWMxp1FL0E137yo7D+Wtcs7A@mail.gmail.com> <CAH6h1LsRgZEar8JDR2m-hsTc-DE+=A6BzOq_X2CHSya=bxFRQQ@mail.gmail.com> Date: Wed, 11 May 2016 15:49:25 -0700 X-Gmail-Original-Message-ID: <CAH6h1Lvao0CXCdGoutEskdtM0gOS0S1bkK_ovGtD523wyab6Zw@mail.gmail.com> Message-ID: <CAH6h1Lvao0CXCdGoutEskdtM0gOS0S1bkK_ovGtD523wyab6Zw@mail.gmail.com> From: Timo Hanke <timo.hanke@web.de> To: Luke Dashjr <luke@dashjr.org>, Bitcoin Protocol Discussion <bitcoin-dev@lists.linuxfoundation.org> Content-Type: multipart/alternative; boundary=001a1136069c81e2e9053298da52 X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,FREEMAIL_FROM, HTML_MESSAGE,RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Subject: Re: [bitcoin-dev] Making AsicBoost irrelevant X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Bitcoin Protocol Discussion <bitcoin-dev.lists.linuxfoundation.org> List-Unsubscribe: <https://lists.linuxfoundation.org/mailman/options/bitcoin-dev>, <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=unsubscribe> List-Archive: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/> List-Post: <mailto:bitcoin-dev@lists.linuxfoundation.org> List-Help: <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=help> List-Subscribe: <https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev>, <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=subscribe> X-List-Received-Date: Wed, 11 May 2016 22:49:30 -0000 --001a1136069c81e2e9053298da52 Content-Type: text/plain; charset=UTF-8 Ups, I forgot that you take the midstate which of course depends on the version number. So forget everything I said about the version bits. You are right. But why take the midstate? It can be any hash of the first chunk. So you probably want to take a hash function that's available in standard software libraries. And I suppose midstate() is not. On Wed, May 11, 2016 at 11:28 AM, Timo Hanke <timo.hanke@web.de> wrote: > Sorry, you must have meant all 12 bytes. That makes finding a collision > substantially harder. However, you may have to restrict yourself to 10 > bytes because you don't know if any hardware does timestamp rolling > on-chip. Also you create an incentive to mess around with the version bits > instead, so you would have to fix that as well. So it basically means a new > mining header with the real blockheader as a child header. > > On Wed, May 11, 2016 at 9:24 AM, Timo Hanke <timo.hanke@web.de> wrote: > >> Luke, do you mean to replace the first 4 bytes of the second chunk (bytes >> 64..67 in 0-based counting) by the XOR of those 4 bytes with the first 4 >> bytes of the midstate? (I assume you don't care about 12 bytes but rather >> those 4 bytes.) >> >> This does not work. All it does is adding another computational step >> before you can check for a collision in those 4 bytes. It makes finding a >> collision only marginally harder. >> >> On Wed, May 11, 2016 at 7:28 AM, Luke Dashjr via bitcoin-dev < >> bitcoin-dev@lists.linuxfoundation.org> wrote: >> >>> On Wednesday, May 11, 2016 12:20:55 PM Sergio Demian Lerner via >>> bitcoin-dev >>> wrote: >>> > On Tue, May 10, 2016 at 6:43 PM, Sergio Demian Lerner < >>> > sergio.d.lerner@gmail.com> wrote: >>> > > You can find it here: >>> > > >>> https://bitslog.wordpress.com/2014/03/18/the-re-design-of-the-bitcoin-blo >>> > > ck-header/ >>> > > >>> > > Basically, the idea is to put in the first 64 bytes a 4 byte hash of >>> the >>> > > second 64-byte chunk. That design also allows increased nonce space >>> in >>> > > the first 64 bytes. >>> > >>> > My mistake here. I didn't recalled correctly my own idea. The idea is >>> to >>> > include in the second 64-byte chunk a 4-byte hash of the first chunk, >>> not >>> > the opposite. >>> >>> What if we XOR bytes 64..76 with the first 12 bytes of the SHA2 midstate? >>> Would that work? >>> >>> Luke >>> _______________________________________________ >>> bitcoin-dev mailing list >>> bitcoin-dev@lists.linuxfoundation.org >>> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev >>> >> >> > --001a1136069c81e2e9053298da52 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr">Ups, I forgot that you take the midstate which of course d= epends on the version number. So forget everything I said about the version= bits. You are right. But why take the midstate? It can be any hash of the = first chunk. So you probably want to take a hash function that's availa= ble in standard software libraries. And I suppose midstate() is not.<div><b= r></div></div><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On = Wed, May 11, 2016 at 11:28 AM, Timo Hanke <span dir=3D"ltr"><<a href=3D"= mailto:timo.hanke@web.de" target=3D"_blank">timo.hanke@web.de</a>></span= > wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bo= rder-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">Sorry, you must= have meant all 12 bytes. That makes finding a collision substantially hard= er. However, you may have to restrict yourself to 10 bytes because you don&= #39;t know if any hardware does timestamp rolling on-chip. Also you create = an incentive to mess around with the version bits instead, so you would hav= e to fix that as well. So it basically means a new mining header with the r= eal blockheader as a child header.=C2=A0</div><div class=3D"HOEnZb"><div cl= ass=3D"h5"><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Wed= , May 11, 2016 at 9:24 AM, Timo Hanke <span dir=3D"ltr"><<a href=3D"mail= to:timo.hanke@web.de" target=3D"_blank">timo.hanke@web.de</a>></span> wr= ote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border= -left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">Luke, do you mean t= o replace the first 4 bytes of the second chunk (bytes 64..67 in 0-based co= unting) by the XOR of those 4 bytes with the first 4 bytes of the midstate?= (I assume you don't care about 12 bytes but rather those 4 bytes.)<div= ><br></div><div>This does not work. All it does is adding another computati= onal step before you can check for a collision in those 4 bytes. It makes f= inding a collision only marginally harder.</div></div><div><div><div class= =3D"gmail_extra"><br><div class=3D"gmail_quote">On Wed, May 11, 2016 at 7:2= 8 AM, Luke Dashjr via bitcoin-dev <span dir=3D"ltr"><<a href=3D"mailto:b= itcoin-dev@lists.linuxfoundation.org" target=3D"_blank">bitcoin-dev@lists.l= inuxfoundation.org</a>></span> wrote:<br><blockquote class=3D"gmail_quot= e" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">= On Wednesday, May 11, 2016 12:20:55 PM Sergio Demian Lerner via bitcoin-dev= <br> wrote:<br> <div><div>> On Tue, May 10, 2016 at 6:43 PM, Sergio Demian Lerner <<b= r> > <a href=3D"mailto:sergio.d.lerner@gmail.com" target=3D"_blank">sergio.= d.lerner@gmail.com</a>> wrote:<br> > > You can find it here:<br> > > <a href=3D"https://bitslog.wordpress.com/2014/03/18/the-re-design= -of-the-bitcoin-blo" rel=3D"noreferrer" target=3D"_blank">https://bitslog.w= ordpress.com/2014/03/18/the-re-design-of-the-bitcoin-blo</a><br> > > ck-header/<br> > ><br> > > Basically, the idea is to put in the first 64 bytes a 4 byte hash= of the<br> > > second 64-byte chunk. That design also allows increased nonce spa= ce in<br> > > the first 64 bytes.<br> ><br> > My mistake here. I didn't recalled correctly my own idea. The idea= is to<br> > include in the second 64-byte chunk a 4-byte hash of the first chunk, = not<br> > the opposite.<br> <br> </div></div>What if we XOR bytes 64..76 with the first 12 bytes of the SHA2= midstate?<br> Would that work?<br> <br> Luke<br> <div><div>_______________________________________________<br> bitcoin-dev mailing list<br> <a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org" target=3D"_blank">= bitcoin-dev@lists.linuxfoundation.org</a><br> <a href=3D"https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev" = rel=3D"noreferrer" target=3D"_blank">https://lists.linuxfoundation.org/mail= man/listinfo/bitcoin-dev</a><br> </div></div></blockquote></div><br></div> </div></div></blockquote></div><br></div> </div></div></blockquote></div><br></div> --001a1136069c81e2e9053298da52--