<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Apr 10, 2014 at 7:32 PM, Pieter Wuille <span dir="ltr">&lt;<a href="mailto:pieter.wuille@gmail.com" target="_blank">pieter.wuille@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
If you trust hashrate for determining which UTXO set is valid, a 51%<br>
attack becomes worse in that you can be made to believe a version of<br>
history which is in fact invalid.<br></blockquote><div><br></div><div>If there are invalidation proofs, then this isn&#39;t strictly true.<br><br></div><div>If you are connected to 10 nodes and only 1 is honest, it can send you the proof that your main chain is invalid.<br>
<br></div><div>For bad scripts, it shows you the input transaction for the invalid input along with the merkle path to prove it is in a previous block.<br><br></div><div>For double spends, it could show the transaction which spent the output.<br>
<br></div><div>Double spends are pretty much the same as trying to spend non-existent outputs anyway.<br><br></div><div>If the UTXO set commit was actually a merkle tree, then all updates could be included.<br><br></div><div>
Blocks could have extra data with the proofs that the UTXO set is being updated correctly.<br></div><div><br></div><div>To update the UTXO set, you need the paths for all spent inputs.<br><br></div><div>It puts a large load on miners to keep things working, since they have to run a full node.  <br>
<br></div><div>If they commit the data to the chain, then SPV nodes can do local checking.<br><br></div><div>One of them will find invalid blocks eventually (even if one of the other miners don&#39;t).<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="HOEnZb"><div class="h5"><br>
--<br>
Pieter<br>
<br>
------------------------------------------------------------------------------<br>
Put Bad Developers to Shame<br>
Dominate Development with Jenkins Continuous Integration<br>
Continuously Automate Build, Test &amp; Deployment<br>
Start a new project now. Try Jenkins in the cloud.<br>
<a href="http://p.sf.net/sfu/13600_Cloudbees" target="_blank">http://p.sf.net/sfu/13600_Cloudbees</a><br>
_______________________________________________<br>
Bitcoin-development mailing list<br>
<a href="mailto:Bitcoin-development@lists.sourceforge.net">Bitcoin-development@lists.sourceforge.net</a><br>
<a href="https://lists.sourceforge.net/lists/listinfo/bitcoin-development" target="_blank">https://lists.sourceforge.net/lists/listinfo/bitcoin-development</a><br>
</div></div></blockquote></div><br></div></div>