<div dir="ltr">Putting the efficacy of coinjoin to one side:<div class="gmail_extra"><br><div class="gmail_quote">On Mon, Aug 11, 2014 at 1:38 PM, Tim Ruffing <span dir="ltr">&lt;<a href="mailto:tim.ruffing@mmci.uni-saarland.de" target="_blank">tim.ruffing@mmci.uni-saarland.de</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Then the only remaining reason why it could be invalid is that the input could have<br>
been spent already otherwise. But in this case, only one honest client with<br>
full information would suffice: a signed transaction that spends the money<br>
would convince even SPV-clients that the participant with this inputs tries to<br>
cheat.</blockquote><div><br></div><div>Bear in mind that getutxo does not return the spending transaction - it can&#39;t because the UTXO set doesn&#39;t record this information (a spent txo is deleted). </div><div><br></div>
<div>However, if you have sufficient peers and one is honest, the divergence can be detected and the operation stopped/the user alerted. If all peers are lying i.e. your internet connection is controlled by an attacker, it doesn&#39;t really make much difference because they could swallow the transaction you&#39;re trying to broadcast anyway. Ultimately if your peers think a TXO is spent and refuse to relay transactions that spend them, you can&#39;t do much about it even in the non-SPV context: you <i>must</i> be able to reach at least one peer who believes in the same world as you do.</div>
<div><br></div></div></div></div>