[Cryptography] How does bitcoin find if a transaction output has already been used.

Jameson Lopp jameson.lopp at gmail.com
Thu Jan 24 10:49:40 EST 2019


On Wed, Jan 23, 2019 at 1:50 PM Mike Lisanke <mikelisanke at gmail.com> wrote:

> On Tue, Jan 22, 2019 at 5:36 PM <jamesd at echeque.com> wrote:
>
>> A new transaction is proposed.  How does the validator figure out if one
>> of the transaction outputs has already been used?
>>
>> The blockchain is heading towards a terabyte.  So you cannot search the
>> entire blockchain to make sure a particular transaction output has never
>> been used.
>>
>
> Finally, my question exactly, the question nobody in cryptocurrency
> answers (satisfactorily) ... how does verification work? it's too damn big
> To be more complete... who the heck checks if the verifiers checked?
> where's the procedure to assure it's correct? who verifies Contracts?
> 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.
>
> This answer will vary slightly from network to network. Here's the
long-winded answer for Bitcoin
<https://www.coindesk.com/bitcoins-security-model-deep-dive>. Long story
short, fully validating nodes verify the correctness of contract / script
spending execution.


> 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
> 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)
> 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
> node that won the block mine Didn't do that work... we Wait until 'someone
> else' finds the mistake? then what?
>
> 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 no one can fully understand
<https://www.coindesk.com/nobody-understands-bitcoin-thats-ok> the system
we call Bitcoin. This underlying consensus is emergent in nature.


> Any way, thanks for asking this question!
>
> --
> Best regards,  Mike
> _______________________________________________
> The cryptography mailing list
> cryptography at metzdowd.com
> http://www.metzdowd.com/mailman/listinfo/cryptography
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.metzdowd.com/pipermail/cryptography/attachments/20190124/50d9c239/attachment.html>


More information about the cryptography mailing list