Pages:
Author

Topic: Double spending has already happened when will protocol be fixed? (Read 2682 times)

sr. member
Activity: 347
Merit: 251
There can be only one!
I think some are literally interpreting the term double spend, which is probably a mistake.. double spending is usually associated to a 51% attack and the result is in line with what the poll referenced above indicated..A double spend is not the generation of new bitcoin, but it's confirmed transactions being reversed.. Confirmed money is in your wallet, then suddenly it's not. This is how satoshi saw it if you read through his white paper, this is also why confirmations are so important (at least 6, preferably 100).

I wrote a little blurb on 51% attacks here https://bitcointalksearch.org/topic/anatomy-of-a-51-attack-660959. would love all of your thoughts on the accuracy of it.
legendary
Activity: 1400
Merit: 1013
The blockchain defines the order of transactions.  If we had some way to determine which transaction was "broadcast first", we wouldn't bother with all of the hashing.


There is no such thing as objective reality in a distributed system (unless one is God).  There are two problems here, first physical reality itself is not totally ordered, and second, each person has access to only his individual sense perceptions and measurements unless he trusts others.  In short, your "objective" reality is not mine, especially if I don't happen to trust you.  (From recent forum posts, it would seem prudent not to trust a large number of posters, so please don't take my remark personally.)

It is logically impossible to achieve reliable consensus in a distributed asynchronous system.  This was proven decades ago by Nancy Lynch et. al., and the proof didn't even require malicious nodes, just nodes that could fail or run slowly. Bitcoin doesn't circumvent this proof.  That's because Bitcoin does not ever give 100% confirmation that a transaction was committed.  Bitcoin does not and can not do what is logically impossible. One can circumvent this situation by positing the existence of a reliable central authority who controls the network and serves as "the decider", but then everyone will have to trust this "decider". (And when this "decider" goes "out to lunch" one will still have to wait to see if one's transaction was confirmed.)   This is not what bitcoin is about.

The amount of people who think they have something meaningful to say about double spending, and who also do not fully understand these statements, boggles the mind.
hero member
Activity: 1470
Merit: 504
The statement:

if Bob threw rock A into the lake and 10 second later threw rock B into the lake, then he threw rock A into the lake first  

is true.  And it has nothing to do with relativity and time dilation (a la kjj), nor quantum entanglement and non-locality (pungopete468).  This is just logic and causality--it's really quite simple.

Relativistic time dilation is mind bending, and quantum non-locality is spooky; but neither of these observed phenomena require a breakdown of causality, logic or math.  Time travel, on the other hand, is science fiction.  It is not possible to devise an experiment that would allow one to observe a time machine.  The reason it's not possible is because you can only make a measurement now.  

It's such a simple concept that very few people get it.

It is always now.

So, I'll end on a humorous note with the interesting way Richard Feynman went about these types of questions.





I get it - I'm just suggesting a possibility that in the Universe which existed before the birth of this Universe; Bob threw both rock A and rock B into the lake in some order and this event may have occurred long before the birth of our current Universe. So both rock A and B were thrown before rock A in this version of our Universe. Since time is an illusion and it's always "now," as you say; if you were to draw an arbitrary time line between the two events then you could not say that Bob actually threw rock A into the lake before rock B because you are unaware of all that may have existed long before Bob threw either rock in this period. Causality is a reference to a sequence of events in a segment of our current version of existence; but causality breaks down between the point where a Universe breaks down and a new one is created.
hero member
Activity: 1470
Merit: 504
Objective reality is like a platonic ideal of a sphere or a straight line.  One might exist, but you'll never see anything better than an approximation.  When time gets involved, relativity says that when information is constrained to finite speeds, like it is in our universe, even the approximations are personal to each observer.

Events occur in a causal sequence.  If A came before B, then A came before B in any reference frame, regardless of time dilation, speeds of observers, or other complexities you might want to add.  This is the idea of causality.  If you assume that the universe is not causal, then formal logic breaks down (and X can equal !X for instance).  

You can't forget about quantum entanglements... Einstein referred to this as "spooky action at a distance" and causality relies on a time scale.

Here's a thought experiment:

In quantum computing there exists a process called postselection. Postselction allows the variables within an expression to take any value at random. Using an extra pair of qubit gates, the computer will place a condition that the answer output must be true. Postselection effectively allows a quantum computer to disregard all wrong answers returning only the correct answer without wasting qubits; it's as if they were never used. If you combine the quantum process of postselection with quantum teleportation then causality no longer applies. Say you use postselection to ensure that only a certain type of particle state may be teleported. In this scenario you've limited the quantum state of which a particle must have been in before it was ever teleported. Causality no longer applies because the particle state has been teleported backwards in time...

http://www.technologyreview.com/view/419893/quantum-time-machine-solves-grandfather-paradox/

More on postselection and quantum computing:
http://rspa.royalsocietypublishing.org/content/461/2063/3473.full

Quote
"That two transactions that spent at least one of the same outputs were broadcast to the network, and the transaction that was broadcast first was not the transactions that got confirmed"

as "nonsense."  I agree that I cannot know what TX you sent first unless I was observing you send them, but the statement is still valid.  One of your TXs was sent first.

It sounds like you simply don't believe in causality.  



I view causality as an interaction rather than a physical law. Causality cannot account for the sequence of events before the big bang or for the first moments of when the fundamental fields were in hyper expansion. Causality is as flexible as time in my view.

Just because Bob threw stone A into the lake first does not mean than Bob did not also throw stone B into the lake first; it simply implies that we're observing the effects of a quantum state in which Bob threw stone A into the lake first.

Ever wonder why entangled particle states alter non locally upon measurement? If two disconnected observers were to measure the same entangled particle, those two observers will always find the entangled particles to be in the same state. Once one of the entangled particles has been observed, neither particle will ever change state again. It's as if the only thing binding us to this reality is our collective consciousness and that there is a connection between all of us within this reality in that we are conscious. Our observations alter the quantum state of our universe and these alterations are observed by anybody and everybody else forever within this state of consciousness.

Bob has infinite opportunities to choose which stone to cast out first and will choose an infinite number of choices. Causality I believe to be an effect of a linked consciousness. We can't feel it but it's there...

I believe when we die our consciousness will transcend time beyond the life of our current Universe until the Higgs field has dispersed and all matter in this Universe has degraded/dissolved into subatomic particles. There will inevitably be another big bang in a timeless subatomic space and our consciousness will be reincarnated thanks to the properties of quantum mechanics which ensure that every particle must exist simultaneously in superposition. This means that the subatomic fabric that allows us to exist will exist in superposition within an infinite probability. It just means that there will be a reality after this reality has ended and that we are all entangled within infinity...
kjj
legendary
Activity: 1302
Merit: 1026
I agree that I cannot know what TX you sent first unless I was observing you send them

Generalize this to everyone else, and you'll understand why I'm done with this topic.  To me, it makes no difference whether an objective ordering exists, but is not knowable, vs does not exist at all.  It would be more productive to define double spending as any transaction that does not have the approval of the Easter Bunny.  The arguments are the same:

Quote
I agree that I cannot know which TX the Easter Bunny prefers, unless I was observing him doing the approving, but the statement is still valid.  One of your TXs was approved.
legendary
Activity: 4424
Merit: 4794

Unfortunately lead Bitcoin developer Gavin only left us with this level of peace of mind on the 51% risk:   (paraphrase):  "Bitcoin is still a young technology. Only invest what you're willing to lose".

well he is not going to say throw everything you got at it. even smart gold hoardrs wont tell you to throw every penny at gold. the only people that would say throw it all in, are th people that want your money so they can cash out, because they are greedy and selfish.

i have yet to see a honest life insurance guy say, put all your salary (after bills) into life policies
i have yet to see a honest stock trader guy say, put all your salary (after bills) into life policies
i have yet to see a honest forex trader guy say, put all your salary (after bills) into life policies

i personally think bitcoin is robust and has a long life-time ahead of it, and huge potential for profit, but id never tell anyone to throw everything at it.

anyone telling you to throw it all into an investment are usually the ones that know something is gonna crash and they want you to be left holding their old bag of crap. (EG pump and dump altcoin devs)
hero member
Activity: 924
Merit: 1001
Double spending has already happened and will continue to do so the 51% attack feared by many is just a larger scale also many people theorize Gash has 51%+ currently anyway. My question is when will the 51%/double spending problem be fixed? Why aren't p2p pools implemented better to mitigate this? When will the devs make an effort to fix this obvious flaw? It's common knowledge that double spending has happened and if there is really any naive people I'll build up some sources and put some links here.

Unfortunately lead Bitcoin developer Gavin only left us with this level of peace of mind on the 51% risk:   (paraphrase):  "Bitcoin is still a young technology. Only invest what you're willing to lose".
ffe
sr. member
Activity: 308
Merit: 250
Last time we polled the community to determine the accepted definition of "successful double spend," the results were as follows:




35 voters is not the community determining the definition.

i can get 35 people to determine that superman is real and that kryptonite can be bought for $12 at a 7-11

You're still ignoring what the community defines as double spending just to twist this around and give your argument more credibility. When your comment isn't what I'm talking about and you know it.

The system was designed to combat double spends as defined by the community by saying payments must not be accepted before a number of confirmations have occurred.

If the human does not wait and gets cheated, that's his loss. This is the same as if he shows his secret key and gets cheated. No magic needs to be invented here.
legendary
Activity: 1260
Merit: 1029
Sorry guys there were no double spends. Only pure old style thefts. Buyer gave something that later on turned to be fake to seller and seller gave his goods / service. In most cases, sellers need to wait for at least some confirmations before they give out what they sell. Of course, if it's cup of coffie, you wont wait for 1 confirmation as it's too low value to bother.
And...devs are talking about mechanism that would enable instant transactions...who knows, maybe in near future things like paying few bucks for something will not need any confirmations and will be instant.
legendary
Activity: 1106
Merit: 1005
No, Bob never said anything to anyone in my example.  He simply threw rock A into the lake, and then 10 seconds later he threw rock B into the lake.  This means that he threw rock A first.  If you disagree, then you're arguing that X != X.  If something happened then it happened.

If Charlie trusts Alice who claims that Bob threw rock B first, then Charlie's opinion doesn't change the fact the Bob actually threw rock A first.  Charlie and Alice could convince the entire world that Bob threw rock B first, and everyone might call Bob a liar.  But if he threw rock A first then he threw rock A first.  

Objective reality exists independent of our perception of it.  

Einstein is snickering at you from his grave.

Objective reality is like a platonic ideal of a sphere or a straight line.  One might exist, but you'll never see anything better than an approximation.  When time gets involved, relativity says that when information is constrained to finite speeds, like it is in our universe, even the approximations are personal to each observer.

At any rate, all that you can accomplish with this sophistry is to swap the labels on the problem around.

Unless we are some kinds of gods there is currently no known way to experience time in any other way than on a linear scale. Therefore things like 'past' and 'future' make sense and we experience the passage of time at roughly the same pace. If we experience something in a certain way it is the truth to our limited knowledge. And unless evidence proves our perception was wrong it is assumed to be right.
legendary
Activity: 1106
Merit: 1005
Double spending has already happened and will continue to do so the 51% attack feared by many is just a larger scale also many people theorize Gash has 51%+ currently anyway. My question is when will the 51%/double spending problem be fixed? Why aren't p2p pools implemented better to mitigate this? When will the devs make an effort to fix this obvious flaw? It's common knowledge that double spending has happened and if there is really any naive people I'll build up some sources and put some links here.
P2P pools are not as easy as joining ghash.

More pools like ghash should be created, until that happens ghash will continue to be the facebook of mining pools.
kjj
legendary
Activity: 1302
Merit: 1026
No, Bob never said anything to anyone in my example.  He simply threw rock A into the lake, and then 10 seconds later he threw rock B into the lake.  This means that he threw rock A first.  If you disagree, then you're arguing that X != X.  If something happened then it happened.

If Charlie trusts Alice who claims that Bob threw rock B first, then Charlie's opinion doesn't change the fact the Bob actually threw rock A first.  Charlie and Alice could convince the entire world that Bob threw rock B first, and everyone might call Bob a liar.  But if he threw rock A first then he threw rock A first.  

Objective reality exists independent of our perception of it.  

Einstein is snickering at you from his grave.

Objective reality is like a platonic ideal of a sphere or a straight line.  One might exist, but you'll never see anything better than an approximation.  When time gets involved, relativity says that when information is constrained to finite speeds, like it is in our universe, even the approximations are personal to each observer.

At any rate, all that you can accomplish with this sophistry is to swap the labels on the problem around.
legendary
Activity: 4424
Merit: 4794
no one can show a true double spend where a single input has 2 outputs which both have confirmations.

the double spend as people call it is not a bug on the protocol. the protocol has no double spend bugs. the bug is human error.. lazyness to not do checks and not wait for confirmations.

bitcoin is a thing of beauty that truly works, yet humans choose to ignore the rules of bitcoin, humans choose to aimlessly accept unconfirmed payments, humans choose to send out payments twice because someone complains they never received the funds.

you cant fix a human no matter what code you put in its way.

even if new code was added to somehow prevent the relaying of a tx input twice.. humans would find a way to be stupid and lose funds by ignoring certain aspects of bitcoins function
sr. member
Activity: 278
Merit: 254
Quote
I'm talking about what is true in reality

Bob says he threw one rock before the other. But perhaps he threw it higher or further from Alice and she heard the second one splash first.  Charlie wasn't there but he heard what Bob said and what Alice said. Who should Charlie trust?

Mathematically, the ordering of events in a distributed system is a partial ordering. There is a total ordering of events at individual nodes and a causal ordering that a rock doesn't splash before it was thrown.  That's it. This was described by Leslie Lamport back in 1978.

http://www.stanford.edu/class/cs240/readings/lamport.pdf
copper member
Activity: 1498
Merit: 1528
No I dont escrow anymore.
There are double spends from time to time.

You can find some here. https://blockchain.info/double-spends

They usually come from orphaned blocks though. What I understand as a doublespend is:

Transaction A spends coins from A1 to B1 and gets confirmed at least once. So A is in one block and there have been 0 or more blocks after this block.
Now if this block or the chain of blocks after it get orphaned and the identical transaction A is in another block, thats no double spend, because the coins have been send to the very samd B1 it just took them longer.
A successfull doublespend would be a new transaction E which sends coins from A1 to E1.

Why is this a double spend?

Because whoever made A could have gotten some good from whoever controls B1. The owner of B1 has no coins and no goods, thus the coins can be spend again (twice, thus the word doublespend). With the transaction E the attacker makes sure that the old transaction A can not be confirmed because the inputs have been used otherwise, thus A is no longer a valid TX.

legendary
Activity: 1162
Merit: 1007
Quote
For the observer to deny that A was actually sent first is to deny objective reality.

There is no such thing as objective reality in a distributed system (unless one is God)...

You're missing the point.  I'm talking about what is true in reality and not about the limitations of a distributed consensus system.  

If Bob throws rock A into the lake and 10 seconds later throws rock B into the lake, then he threw rock A into the lake first.  For Bob to deny this fact is to deny objective reality.  Alice might not be able to confirm this fact, but it is still true.

Bitcoin is a distributed system designed to achieve consensus on the ordering of competing transactions.  If the network is 100% objective and if information flows instantly and accurately, then the order between physical reality and the blockchain will be preserved perfectly.  But we don't have 100% objectivity due to attackers, so proof-of-work is used to force them to expend resources in this reality to influence the order agreed upon by the network.  Mining is useful because it translates a fact of nature into a fact of mathematics, thereby providing a tether to what is objectively true.  Still, if the attacker gains 51% of the network hashrate and burns sufficient resources in physical reality, he can freely spend the same coins for as long as he can fool people into thinking the network is still objective.    

This also explains the history-rewrite problem (nothing-at-stake) that proof-of-stake systems suffer from.  Because there is no tether to objective reality, an attacker can rewrite history for very little real cost.    
sr. member
Activity: 278
Merit: 254
Quote
For the observer to deny that A was actually sent first is to deny objective reality.


There is no such thing as objective reality in a distributed system (unless one is God).  There are two problems here, first physical reality itself is not totally ordered, and second, each person has access to only his individual sense perceptions and measurements unless he trusts others.  In short, your "objective" reality is not mine, especially if I don't happen to trust you.  (From recent forum posts, it would seem prudent not to trust a large number of posters, so please don't take my remark personally.)

It is logically impossible to achieve reliable consensus in a distributed asynchronous system.  This was proven decades ago by Nancy Lynch et. al., and the proof didn't even require malicious nodes, just nodes that could fail or run slowly. Bitcoin doesn't circumvent this proof.  That's because Bitcoin does not ever give 100% confirmation that a transaction was committed.  Bitcoin does not and can not do what is logically impossible. One can circumvent this situation by positing the existence of a reliable central authority who controls the network and serves as "the decider", but then everyone will have to trust this "decider". (And when this "decider" goes "out to lunch" one will still have to wait to see if one's transaction was confirmed.)   This is not what bitcoin is about.

One can make a case, possibly a good case, that the bitcoin protocol can be improved to minimize the time constants involved, which are presently nowhere near the underlying physical limits because each node does extensive computation prior to forwarding transactions and blocks.  But this is not going to change the underlying situation, which is that there simply is no such thing as "objective reality" just a ceaseless flow of events that are relative to time, place and person.




legendary
Activity: 1162
Merit: 1007
35 voters is not the community determining the definition.

I agree.  The word "determine" was too strong for this small of a poll.  But I think it is correct: IMO most people mean definition 2 when they say "successful double spend."

But the point I was trying to make is valid: very few people use your definition.  According to your definition, double-spends are impossible.  But if they are impossible, we wouldn't worry about them.  So your definition is not useful because people do worry about double spends.  

To me, definition 3 is correct.  A "successful double spend" occurs when an attacker is able to spend the same coins twice.  For example, if he uses 5000 bits to buy a coffee at Starbucks, and then (for example by using Peter Todd's replace by fee tools) uses those same coins to buy lunch, then that's a "successful double spend."  Either Starbucks or the lunch restaurant has lost out on 5000 bits because the attacker was able to "spend them twice."
legendary
Activity: 1162
Merit: 1007

Nonsense.  The blockchain defines the order of transactions.  If we had some way to determine which transaction was "broadcast first", we wouldn't bother with all of the hashing.

Imagine that an observer creates two transactions, A and B, that both spend the same outputs. He structures A so that it sends a few bits to an on-chain miner because he knows Eligius won't accept it into mempool.  He broadcasts A to the network at t=0 s according to his clock and then broadcasts B at t=10 s.  Eligius finds the next block and B gets mined into the blockchain instead of A.  

For the observer to deny that A was actually sent first is to deny objective reality.  Transaction A was sent first!  The fact that the rest of the world has no way to prove this fact does not make it false.  
legendary
Activity: 4424
Merit: 4794
Double spending has already happened and will continue to do so the 51% attack feared by many is just a larger scale also many people theorize Gash has 51%+ currently anyway. My question is when will the 51%/double spending problem be fixed? Why aren't p2p pools implemented better to mitigate this? When will the devs make an effort to fix this obvious flaw? It's common knowledge that double spending has happened and if there is really any naive people I'll build up some sources and put some links here.
Please put some links.

he wont link you, because there are no transactions that have confirmations where it was the same exact coin used twice. there are however many times there the same 'coin' is on more then one transaction, but one is revealed as a fake (unconfirmed). its not a bug or a protocol issue. its a human error for not doing any checks to confirm its real (zero confirm)
Pages:
Jump to: