• Gary Varga (5/13/2014)


    Eric M Russell (5/13/2014)


    patrickmcginnis59 10839 (5/13/2014)


    I know next to nothing about the technical implementation or bitcoin or even how it work conceptually, but relational databases typically use unique key constraints to prevent events like "cashing out the same bitcoin twice". Each bitcoin should have a unique id, and a table inserted with one row when it is debited for cash.

    You do at least know that there is no centralized database for bitcoins right? (Reading your comment, it seems this might not be the case, I keep reading folks who think that bitcoin has some sort of "bank" or federal reserve or something issuing them.)

    Yes, I know at least that much about bitcoin, but the distributed nature of the architecture doesn't necessarily excuse the same coin from being cashed out twice. There is latency when it comes to distributed transactions, but did both cash out transactions occur within MtGox's own node?

    Yes. Same node. It was supposedly repeats of the same transaction. A quick search online provides plenty of evidence that suggests that in the public domain no one can be certain what occurred.

    The reason they were able to be repeated is because of the transaction id getting changed by a third party, and it subsequently looks like a different transaction because MtGox based their system on interpreting it like such, despite it being advised not to do so. This was on the same node, and nosql doesn't seem to have much to do with it, because only one database node is required for this bug to take place, and furthermore, MtGox is (was) an exchange, not an issuer of bitcoin, the actual issuing of bitcoin is through the distributed block chain. Obviously we don't even know this for sure, but other than the mutable transaction id, bitcoin as such doesn't seem to be broken.