<div>Hello Kalle,</div><div> </div><div>If want to talk theoretically:</div><div> </div><div>"a hacker has have to hash power than hash value of the entire bitcoin network, it could mislead all operations and invalidate the node."</div><div> </div><div>This bitcoin.pdf is clearly written.</div><div><div> </div><div>Ask your questions, Yes will now hacked the blockchain that has more of total power and No the stub record is up-to-date and secure.</div><div>So, the bans node solution is not good, if good bitcoin couldn't be a reliable proof-of-work currency.</div><div> </div><div>Read: <a href="http://satoshi.nakamotoinstitute.org/posts/">http://satoshi.nakamotoinstitute.org/posts/</a></div><div> </div><div>Regards</div><div> </div><div>Ozgur</div></div><div> </div><div>18.12.2017, 14:55, "Kalle Rosenbaum via bitcoin-dev" &lt;bitcoin-dev@lists.linuxfoundation.org&gt;:</div><blockquote type="cite"><div><div>Dear list,</div><div> </div><div>I find it hard to understand why a full node that does initial block</div><div>download also must download witnesses if they are going to skip</div><div>verification anyway. If my full node skips signature verification for</div><div>blocks earlier than X, it seems the reasons for downloading the</div><div>witnesses for those blocks are:</div><div> </div><div>* to be able to send witnesses to other nodes.</div><div> </div><div>* to verify the witness root hash of the blocks</div><div> </div><div>I suppose that it's important to verify the witness root hash because</div><div>a bad peer may send me invalid witnesses during initial block</div><div>download, and if I don't verify that the witness root hash actually</div><div>commits to them, I will get banned by peers requesting the blocks from</div><div>me because I send them garbage.</div><div> </div><div>So both the reasons above (there may be more that I don't know about)</div><div>are actually the same reason: To be able to send witnesses to others</div><div>without getting banned.</div><div> </div><div>What if a node could chose not to download witnesses and thus chose to</div><div>send only witnessless blocks to peers. Let's call these nodes</div><div>witnessless nodes. Note that witnessless nodes are only witnessless</div><div>for blocks up to X. Everything after X is fully verified.</div><div> </div><div>Witnessless nodes would be able to sync faster because it needs to</div><div>download less data to calculate their UTXO set. They would therefore</div><div>more quickly be able to provide full service to SPV wallets and its</div><div>local wallets as well as serving blocks to other witnessless nodes</div><div>with same or higher assumevalid block. For witnessless nodes with</div><div>lower assumevalid they can serve at least some blocks. It could also</div><div>serve blocks to non-segwit nodes.</div><div> </div><div>Do witnessless nodes risk dividing the network in two parts, one</div><div>witnessless and one with full nodes, with few connections between the</div><div>parts?</div><div> </div><div>So basically, what are the reasons not to implement witnessless</div><div>nodes?</div><div> </div><div>Thank you,</div><div>/Kall</div></div></blockquote>