<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>The issue is due to Segwit blocks since Testnet has already
      activated Segwit. 0.12.x- nodes will receive a Segwit block with
      all of the witnesses stripped. When they relay this block to a
      0.13.0+ node, the block will be rejected because those have Segwit
      functionality and require the witnesses to be in the block. Given
      that Testnet has a smaller number of nodes and less difficulty,
      this could result in some miners using 0.13.0+ mining blocks which
      do not propagate well and thus causing multiple chain splits and
      reorgs as other miners find blocks for the same height before
      receiving a block for that height.<br>
    </p>
    <br>
    <div class="moz-cite-prefix">On 3/23/2017 6:37 PM, Juan Garavaglia
      via bitcoin-dev wrote:<br>
    </div>
    <blockquote
cite="mid:SC1P152MB1648D0F9DF4279C49D755233F53F0@SC1P152MB1648.LAMP152.PROD.OUTLOOK.COM"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      <meta name="Generator" content="Microsoft Word 15 (filtered
        medium)">
      <style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin-top:0in;
        margin-right:0in;
        margin-bottom:8.0pt;
        margin-left:0in;
        line-height:106%;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <div class="WordSection1">
        <p class="MsoNormal" style="margin-left:.5in">We notice some
          reorgs in Bitcoin testnet, while reorgs in testnet are common
          and may be part of different tests and experiments, it seems
          the forks are not created by a single user and multiple blocks
          were mined by different users in each chain.  My first
          impression was that the problem was related to network issues
          but some Bitcoin explorers were following one chain while
          others follow the other one.  Nonetheless, well established
          explorers like blocktrail.com or blockr.io were following
          different chains at different heights which led to me to
          believe that it was not a network issue. After some time, a
          reorg occurs and it all comes to normal state as a single
          chain.<o:p></o:p></p>
        <p class="MsoNormal" style="margin-left:.5in">We started
          investigating more and we identified that the fork occurs with
          nodes 0.12; in some situations, nodes 0.12 has
          longer/different chains. The blocks in both chains are valid
          so something must be occurring in the communication between
          nodes but not related with the network itself.<o:p></o:p></p>
        <p class="MsoNormal" style="margin-left:.5in">Long story short,
          when nodes 0.13+ receive blocks from 0.13+ nodes all is ok,
          and those blocks propagate to older nodes with no issues. But
          when a block tries to be propagated from bitcoind 0.12.+ to
          newer ones those blocks are NOT being propagated to the peers
          with newer versions while these newer blocks are being
          propagated to peers with older versions with no issues.<o:p></o:p></p>
        <p class="MsoNormal" style="margin-left:.5in">My conclusion is
          that we have a backward compatibility issue between 0.13.X+
          and older versions.<o:p></o:p></p>
        <p class="MsoNormal" style="margin-left:.5in">The issue is
          simple to replicate, first, get latest version of bitcoind,
          complete the IBD after is at current height, then force it to
          use exclusively one or more peers of versions 0.12.X and
          older, and you will notice that the latest version node will
          never receive a new block.<o:p></o:p></p>
        <p class="MsoNormal" style="margin-left:.5in">Probably some
          alternative bitcoin implementations act as bridges between
          these two versions and facilitate the chain reorgs.<o:p></o:p></p>
        <p class="MsoNormal" style="margin-left:.5in">I have not yet
          found any way where/how it can be used in a malicious way or
          be exploited by a miner but in theory Bitcoin 0.13.X+ should
          remain compatible with older ones, but a 0.13+ node may become
          isolated by 0.12 peers, and there is not notice for the node
          owner.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
bitcoin-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:bitcoin-dev@lists.linuxfoundation.org">bitcoin-dev@lists.linuxfoundation.org</a>
<a class="moz-txt-link-freetext" href="https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev">https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>