[Cryptography] How does bitcoin find if a transaction output has already been used.
jamesd at echeque.com
jamesd at echeque.com
Wed Jan 23 19:56:53 EST 2019
On 23/01/2019 23:19, Mike Lisanke wrote:
> 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.
What verifies everything is consensus between miners.
The blockchain is a global consensus of transactions on the database,
and there is a chain of hashes, a merkle dac, guaranteeing that everyone
agrees on what transactions have been committed, and if all transactions
are applied correctly, everyone should agree on the resulting database,
the important and most heavily accessed part of the database being the
set od unspent transaction outputs, UTXO.
At present a miner has to keep the entire set of unspent transactions in
ram, which is a hard scaling limit on bitcoin.
But as things scale, database failure becomes more common, resulting in
consensus failure. Peers may be operating off different databases, and
not know that is why they are having trouble agreeing.
You need early detection of discrepancies between the many peer
databases that represent the result of going through all the
transactions and applying them to the database.
Because of the likelihood of database failure, which becomes common as
databases get to a terabyte or so, you need a chain of hashes
representing not only the transactions committed to the database, but
also the current state of the entire database, or the current state of
the list of unspent transaction outputs.
For crypto currency to take over the world, need a mechanism for
managing the list of unspent transaction outputs where those generating
consensus do not need the entire unspent transaction output list in
memory, and where we have efficient means for detecting and resolving
disagreements in the current state of the database on top of efficient
means for ensuring one unchanging append only blockchain of committed
transactions.
More information about the cryptography
mailing list