<div dir="ltr"><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jan 23, 2019 at 1:50 PM Mike Lisanke <<a href="mailto:mikelisanke@gmail.com">mikelisanke@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr" class="gmail-m_-511903396694335440gmail_attr">On Tue, Jan 22, 2019 at 5:36 PM <<a href="mailto:jamesd@echeque.com" target="_blank">jamesd@echeque.com</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">A new transaction is proposed.  How does the validator figure out if one <br>
of the transaction outputs has already been used?<br>
<br>
The blockchain is heading towards a terabyte.  So you cannot search the <br>
entire blockchain to make sure a particular transaction output has never <br>
been used.<br clear="all"></blockquote></div><div><br></div><div>Finally, my question exactly, the question nobody in cryptocurrency answers (satisfactorily) ... how does verification work? it's too damn big</div><div>To be more complete... who the heck checks if the verifiers checked? where's the procedure to assure it's correct? who verifies Contracts? <br></div><div>who 
verifies ACLs for blockchain DBs? I've asked a bunch of 'experts' who seamed (very -  and I never use this) put off by the question.<br></div><div><br></div></div></blockquote><div>This answer will vary slightly from network to network. <a href="https://www.coindesk.com/bitcoins-security-model-deep-dive">Here's the long-winded answer for Bitcoin</a>. Long story short, fully validating nodes verify the correctness of contract / script spending execution. </div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div></div><div>If the Only thing you have is a chain of hashed transactions, and proof Only that one version path a Proof of Work test But Not what verification</div><div>that 'node' did... then you don't have enough. Yes, everybody Might be running the software common to a node And (assume it's open source)</div><div>I can check that it would do Something to verify Transaction double-spend And smart-contract, etc/ But as other responses state, what if the</div><div>node that won the block mine Didn't do that work... we Wait until 'someone else' finds the mistake? then what? <br></div><div><br></div></div></blockquote><div>It sounds like you're asking a more fundamental question of "how do I know that other entities on the network agree with me about what 'correct' actually means" - there is no solution to that on a public permissionless network because anyone can run whatever code they want. The machine consensus rests upon a foundation of human consensus which is not a written specification, and I'd argue that trying to write such a written specification is an exercise in futility. This is the basis of my claim that <a href="https://www.coindesk.com/nobody-understands-bitcoin-thats-ok">no one can fully understand</a> the system we call Bitcoin. This underlying consensus is emergent in nature.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div></div><div>Any way, thanks for asking this question!<br></div><div><br></div>-- <br><div dir="ltr" class="gmail-m_-511903396694335440gmail_signature">Best regards,  Mike</div></div>
_______________________________________________<br>
The cryptography mailing list<br>
<a href="mailto:cryptography@metzdowd.com" target="_blank">cryptography@metzdowd.com</a><br>
<a href="http://www.metzdowd.com/mailman/listinfo/cryptography" rel="noreferrer" target="_blank">http://www.metzdowd.com/mailman/listinfo/cryptography</a></blockquote></div></div></div>