Bitcoin Forum
September 29, 2016, 08:25:25 AM *
News: Latest stable version of Bitcoin Core: 0.13.0 (New!) [Torrent]. Make sure you verify it.
 
   Home   Help Search Donate Login Register  
Pages: « 1 2 3 4 [5] 6 7 »  All
  Print  
Author Topic: Bitcoin snack machine (fast transaction problem)  (Read 28155 times)
pera
Sr. Member
****
Offline Offline

Activity: 364


­バカ


View Profile WWW
May 05, 2013, 12:52:48 AM
 #81

For small transactions, you actually don't need to wait for confirmations because chances someone will do a double spend for a chocolate bar are pretty small and if they would succeed it isn't a huge loss.
yeah... just wait for a double-spend app in google play..

satoshi solved the double-spend problem in a distributed network and you guys don't think that confirmations are important?  Undecided

Imagine this:
- you install easy double-spend in your smartphone
- you send 0.0001btc to a "community wallet" address
- other people around the world using the same app do the same
- when it reach 0.01btc an alert is broadcasted with the private key so everybody spend at the same time the 0.01btc
- everybody gets a chocolate bar for 1 cent, and easy double-spend keeps a commission Smiley

キタ━━━━(゚∀゚)━━━━ッ!!
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1475137525
Hero Member
*
Offline Offline

Posts: 1475137525

View Profile Personal Message (Offline)

Ignore
1475137525
Reply with quote  #2

1475137525
Report to moderator
dave111223
Hero Member
*****
Offline Offline

Activity: 812



View Profile
May 05, 2013, 12:55:30 AM
 #82

For small transactions, you actually don't need to wait for confirmations because chances someone will do a double spend for a chocolate bar are pretty small and if they would succeed it isn't a huge loss.
yeah... just wait for a double-spend app in google play..

satoshi solved the double-spend problem in a distributed network and you guys don't think that confirmations are important?  Undecided

Imagine this:
- you install easy double-spend in your smartphone
- you send 0.0001btc to a "community wallet" address
- other people around the world using the same app do the same
- when it reach 0.01btc an alert is broadcasted with the private key so everybody spend at the same time the 0.01btc
- everybody gets a chocolate bar for 1 cent, and easy double-spend keeps a commission Smiley

Yeah pretty easy...all you got to do is get everyone using the app around the world to hit the button on the vending machine faster than the internet between machine...so what's that maybe 300ms...no problem...Cheesy

Plus all the machine would need to do is delay the candy bar falling for a couple of seconds and verify no double spends.

pera
Sr. Member
****
Offline Offline

Activity: 364


­バカ


View Profile WWW
May 05, 2013, 12:57:34 AM
 #83

[...]
Yeah pretty easy...all you got to do is get everyone using the app around the world to hit the button on the vending machine faster than the internet between machine...so what's that maybe 300ms...no problem...Cheesy

Plus all the machine would need to do is delay the candy bar falling for a couple of seconds and verify no double spends.
you are wrong: the propagation of a new spending is not 300ms

キタ━━━━(゚∀゚)━━━━ッ!!
dave111223
Hero Member
*****
Offline Offline

Activity: 812



View Profile
May 05, 2013, 01:04:40 AM
 #84

Plus the vending machine company could just setup a centralized database to record transactions, independent of the blockchain, so in order to even attempt a double spend you'd have to find 2 machines which were not utilizing the same database.  So it's fairly conceivable that all vending machines could utilized the same shared database.

For example you try to buy candy the transaction is not only sent to the bitcoin network, but also stored in the vending central database, if you were to attempt 2 transactions at the same time on different machines, only one could be inserted into the database, so first one into the database wins.

pera
Sr. Member
****
Offline Offline

Activity: 364


­バカ


View Profile WWW
May 05, 2013, 01:18:21 AM
 #85

yeah I think that's an acceptable workaround, actually I was going to suggest a centralized service for syncing the mempool... but then everybody should start using this centralized service if they want to accept 0 confirmations, and that's not so cool..
probably in the future bitcoin will be just a backbone for this kind of services

キタ━━━━(゚∀゚)━━━━ッ!!
NoL1m1tZ
Member
**
Offline Offline

Activity: 80


View Profile
May 05, 2013, 02:05:18 AM
 #86

I for one do not know of any vending machines connected to the internet, so that seems like the first problem to solve...
FlappySocks
Hero Member
*****
Offline Offline

Activity: 504



View Profile
May 05, 2013, 02:09:35 AM
 #87

I for one do not know of any vending machines connected to the internet, so that seems like the first problem to solve...

Sure they do. They send messages to say they need restocking, or out of change.
They use GPRS mostly.
dave111223
Hero Member
*****
Offline Offline

Activity: 812



View Profile
May 05, 2013, 03:52:18 AM
 #88

I for one do not know of any vending machines connected to the internet, so that seems like the first problem to solve...

We'll just give the midget inside a smartphone and a bitcoin app.

MoonShadow
Legendary
*
Offline Offline

Activity: 1666



View Profile
May 05, 2013, 04:26:45 AM
 #89

Why doesn't someone who wants to operate vending machines also operate a mining rig that specifically prioritizes confirms from transactions from it's vending machines?  This way, it could release the goods immediately from receiving the btc and then expedite the confirmations thus minimizing risk of double spends.
Because you don't know how mining works  Roll Eyes

You have a point. After your comment, I realized there are probably a lot of things regarding bitcoin that I only have a cursory knowledge of.  So, I started to do some research to try and catch up.  Any response to help verify or dispute my understanding would be greatly appreciated.

The first thing I started with was the Satoshi original white paper. Something stood out to me, in section 8:

Quote
... Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification.

This sounds very similar to what I was describing, except exchange miner with node.

So then, I thought to myself: well, what is the difference between a miner and a node? This is something I always assumed was the same thing.

But, AFAIK, it would seem that a business would be wise to run a node for speed and security. Wouldn't businesses do this in the future and wouldn't that in turn become a lot of the power of the network, even when there are no more block rewards.

To make it more effective, you would verify your own transactions faster than others. I suppose it would be difficult to single out transactions from their business; so like, confirm the vending machine transactions before others.  Would that be possible?  Could the miner single out transactions that are a certain value, technically?




Yes and no.  This is more like the Walmart versus target contract mining issue.  Use the search function against "walmart" and my screenname, and you will find that I have commented along these lines extensively in the past.

"The powers of financial capitalism had another far-reaching aim, nothing less than to create a world system of financial control in private hands able to dominate the political system of each country and the economy of the world as a whole. This system was to be controlled in a feudalist fashion by the central banks of the world acting in concert, by secret agreements arrived at in frequent meetings and conferences. The apex of the systems was to be the Bank for International Settlements in Basel, Switzerland, a private bank owned and controlled by the world's central banks which were themselves private corporations. Each central bank...sought to dominate its government by its ability to control Treasury loans, to manipulate foreign exchanges, to influence the level of economic activity in the country, and to influence cooperative politicians by subsequent economic rewards in the business world."

- Carroll Quigley, CFR member, mentor to Bill Clinton, from 'Tragedy And Hope'
MoonShadow
Legendary
*
Offline Offline

Activity: 1666



View Profile
May 05, 2013, 04:32:29 AM
 #90

yeah I think that's an acceptable workaround, actually I was going to suggest a centralized service for syncing the mempool... but then everybody should start using this centralized service if they want to accept 0 confirmations, and that's not so cool..
probably in the future bitcoin will be just a backbone for this kind of services

Not a centralized service so much as a combined contract mining agency & insurance agency.  You pay a small monthly fee, and it becomes the insurance agency's problem that your vending machines don't get double spent against.  Your machines connect to the agency's servers, which then make every effort to get those transactions out to the largest of the mining pools as fast as possible, in order to limit the risk of being the loser in a double spend.  Agencies also might trade lists of addresses that have been known to attempt a double spend, and therefore flag those addresses should they pop up in their customers' machines.  There are many ways to undermine the likelyhood of success of a double spend attempt.

"The powers of financial capitalism had another far-reaching aim, nothing less than to create a world system of financial control in private hands able to dominate the political system of each country and the economy of the world as a whole. This system was to be controlled in a feudalist fashion by the central banks of the world acting in concert, by secret agreements arrived at in frequent meetings and conferences. The apex of the systems was to be the Bank for International Settlements in Basel, Switzerland, a private bank owned and controlled by the world's central banks which were themselves private corporations. Each central bank...sought to dominate its government by its ability to control Treasury loans, to manipulate foreign exchanges, to influence the level of economic activity in the country, and to influence cooperative politicians by subsequent economic rewards in the business world."

- Carroll Quigley, CFR member, mentor to Bill Clinton, from 'Tragedy And Hope'
CasinoBit
Sr. Member
****
Offline Offline

Activity: 350



View Profile
May 05, 2013, 05:06:10 PM
 #91

This is a good start, but still not impermeable.
I didn't say impermeable, I said good-enough.  The loss in practice would be far lower than with credit cards.

Quote
(for example, by refusing to propogate word of the transaction at the vending machine)
No, the vending machine talks to a big service provider (aka payment processor) that provides this service to many merchants.  Think something like a credit card processor with a new job.  They would have many well connected network nodes.

Wohoo Satoshi come play at our casino!  Cheesy

coinerd
Full Member
***
Offline Offline

Activity: 196


View Profile
May 06, 2013, 12:01:45 AM
 #92

Why doesn't someone who wants to operate vending machines also operate a mining rig that specifically prioritizes confirms from transactions from it's vending machines?  This way, it could release the goods immediately from receiving the btc and then expedite the confirmations thus minimizing risk of double spends.
Because you don't know how mining works  Roll Eyes

You have a point. After your comment, I realized there are probably a lot of things regarding bitcoin that I only have a cursory knowledge of.  So, I started to do some research to try and catch up.  Any response to help verify or dispute my understanding would be greatly appreciated.

The first thing I started with was the Satoshi original white paper. Something stood out to me, in section 8:

Quote
... Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification.

This sounds very similar to what I was describing, except exchange miner with node.

So then, I thought to myself: well, what is the difference between a miner and a node? This is something I always assumed was the same thing.

But, AFAIK, it would seem that a business would be wise to run a node for speed and security. Wouldn't businesses do this in the future and wouldn't that in turn become a lot of the power of the network, even when there are no more block rewards.

To make it more effective, you would verify your own transactions faster than others. I suppose it would be difficult to single out transactions from their business; so like, confirm the vending machine transactions before others.  Would that be possible?  Could the miner single out transactions that are a certain value, technically?




A node keeps the block chain, and propagates new blocks.

Miners get their work from nodes.

A merchant wants to have a node, so that they can be responsible for making sure that their transactions are broadcast to miners.  But this does not mean that the miners will accept the transaction when it reaches the node they are mining from.  There are several reasons ranging from not enough fees to finding a valid block before re-writing the current work to include your transaction.

A merchant can also be a miner, and attempt to encode either all transactions or even just their own transactions into a block.

But there's no guarantee that they will find the next block, or even one any time soon.

So neither running a node, or mining yourself, becomes a guarantee against a double spend made on someone else's equipment (vending machine, online merchant, whatever).

It's not directly possible to directly affect the "speed of confirmation" for your own transactions except by adding masses of your own hashing power to the overall network (as a miner, not a node). And if you overdo that you'll just push difficulty up and start the cycle over.

You increase the "speed and security" of transaction when you run a node by ensuring that your transaction gets delivered and included in the workload of as many miners as quickly as possible.

As to whether or not a vendor, or third party can selectively decide what to add to a block, they sure can.  But it doesn't mean they can just add that block to the block chain.

hth
pera
Sr. Member
****
Offline Offline

Activity: 364


­バカ


View Profile WWW
May 06, 2013, 02:40:10 PM
 #93

^what coinerd says^

maybe an alternative fee service could solve this: the company could pay some amount of money to the main mining pools to include every transaction made to their addresses

キタ━━━━(゚∀゚)━━━━ッ!!
MoonShadow
Legendary
*
Offline Offline

Activity: 1666



View Profile
May 08, 2013, 12:46:24 AM
 #94

^what coinerd says^

maybe an alternative fee service could solve this: the company could pay some amount of money to the main mining pools to include every transaction made to their addresses

Or simply pay an access fee to be a first tier peer to one or many of the largest mining pools.  If you think about it, BTC Guild could crediblely charge a small monthly fee for peers to be added to the top of their peer list, garranteed to have the highest connectivity (wherein free peers might be throttled, or not even able to connect continuously).  Logically, the major mining pools already have direct peer connections to each other, so a direct peer connection to any of the top five would only be a single hop connection to the lot.  Such a direct connection would be of value to any retailers that accepted zero confirm transactions, which would likely be the norm for meatspace retailers like Wal-Mart should they ever start accepting Bitcoin directly.

"The powers of financial capitalism had another far-reaching aim, nothing less than to create a world system of financial control in private hands able to dominate the political system of each country and the economy of the world as a whole. This system was to be controlled in a feudalist fashion by the central banks of the world acting in concert, by secret agreements arrived at in frequent meetings and conferences. The apex of the systems was to be the Bank for International Settlements in Basel, Switzerland, a private bank owned and controlled by the world's central banks which were themselves private corporations. Each central bank...sought to dominate its government by its ability to control Treasury loans, to manipulate foreign exchanges, to influence the level of economic activity in the country, and to influence cooperative politicians by subsequent economic rewards in the business world."

- Carroll Quigley, CFR member, mentor to Bill Clinton, from 'Tragedy And Hope'
oakpacific
Hero Member
*****
Offline Offline

Activity: 798


View Profile
May 08, 2013, 01:13:51 AM
 #95

Put a notice on the machine "any bitcoin coming from an address with unconfirmed transactions will not be accepted and refund may not be processed in real time-you have been warned."

https://tlsnotary.org/ Fraud proofing decentralized fiat-Bitcoin trading.
BitcoinUK
Jr. Member
*
Offline Offline

Activity: 58


View Profile
May 08, 2013, 01:45:57 AM
 #96

you are all thinking first generation bitcoin transactions based purely on the blockchain. I still think a reputable vending machine will add a loyalty/membership card system where you deposit bitcoins to your membership balance and then the machines deduct the amounts from the membership balance. off the blockchain.

That way coins are preconfirmed when you have deposited your funds into your balance and you are spending the coins much like MTGOX/BTC-e using databases not blockchains for internal transactions.

At my work we are given a Kenco card which has a 2 free coffee's per day and then any other coffee's add to a balance which you pay off on payday.
prophetx
Legendary
*
Offline Offline

Activity: 1050


he who has the gold makes the rules


View Profile WWW
May 08, 2013, 03:00:23 AM
 #97

Who is going to do a double spend attack to buy some skittles....  Huh

So I risk the value of a massive amount of hardware i would need to have under my control for a 50 cent bag of candy... lets be rational here.  Just check their public key to ensure they have enough btc, and give them the candy.

██████████████████████
████████████████████████
████████████████████████
████████████████████████
███████████████████████
█████████████████████
████████████████████████
████████████████████████
██████████████████████
██████████████████████
███████████████████████
████████████████████████
████████████████████████
████████████████████████
███████████████████████
██████████████████████
|
WINGS        [/u]
Where DAO Unicorns are born
|
.
1st Bitcoin & Ethereum DAO for DAOs                                               
1st Decentralized Chatbot to Smart Contracts Interaction System

|
.
Wings Bounties Earn Eggs    
X-Blockchain DAO

R2D221
Hero Member
*****
Offline Offline

Activity: 658



View Profile
May 08, 2013, 05:12:21 AM
 #98

you are all thinking first generation bitcoin transactions based purely on the blockchain. I still think a reputable vending machine will add a loyalty/membership card system where you deposit bitcoins to your membership balance and then the machines deduct the amounts from the membership balance. off the blockchain.

That way coins are preconfirmed when you have deposited your funds into your balance and you are spending the coins much like MTGOX/BTC-e using databases not blockchains for internal transactions.

At my work we are given a Kenco card which has a 2 free coffee's per day and then any other coffee's add to a balance which you pay off on payday.
I would certainly not use a vending machine where I need a special card. Vending machines are something I use in some cases when I want the snack the fastest and easiest way. Having to add credit to a card negates both qualities.

An economy based on endless growth is unsustainable.
BitcoinUK
Jr. Member
*
Offline Offline

Activity: 58


View Profile
May 08, 2013, 07:42:54 AM
 #99

to do a SUCCESSFUL double spend requires alot of speed and hardware. but to send out 2 transactions to 2 different addresses using 2 clients but only using one private key supply does not require expensive equipment. A successful double spend requires a confirm on both sides. meaning the 10 minute wait. but sending out 2 transactions that don't require waiting the 10 minutes is piss easy.

accepting unconfirmed transactions should only be allowed on products with delayed delivery. such as bitpay which can inform merchants that the payment has failed in 10 minutes and the merchant still has time to email the customer to attempt the payment again before losing their next-day delivery slot.

it is never EVER acceptable for instant access content.

examples.
if i sent
0.1BTC from 1HomeMachineAddress to 1VendMachineAddress
0.1BTC from 1HomeMachineAddress to 1VendMachineAddress

one of those transactions would instantly be ignored as it would appear as just an echo of the other, where many nodes pass around the same transaction (to avoid repeats)

but if i sent
0.1BTC from 1HomeMachineAddress to 1HomeMachineAddress
0.1BTC from 1HomeMachineAddress to 1VendMachineAddress

it would appear as 2 different transactions and would require a confirm to sort out the mess (10 minute wait)
prophetx
Legendary
*
Offline Offline

Activity: 1050


he who has the gold makes the rules


View Profile WWW
May 08, 2013, 02:17:18 PM
 #100

to do a SUCCESSFUL double spend requires alot of speed and hardware. but to send out 2 transactions to 2 different addresses using 2 clients but only using one private key supply does not require expensive equipment. A successful double spend requires a confirm on both sides. meaning the 10 minute wait. but sending out 2 transactions that don't require waiting the 10 minutes is piss easy.

accepting unconfirmed transactions should only be allowed on products with delayed delivery. such as bitpay which can inform merchants that the payment has failed in 10 minutes and the merchant still has time to email the customer to attempt the payment again before losing their next-day delivery slot.

it is never EVER acceptable for instant access content.

examples.
if i sent
0.1BTC from 1HomeMachineAddress to 1VendMachineAddress
0.1BTC from 1HomeMachineAddress to 1VendMachineAddress

one of those transactions would instantly be ignored as it would appear as just an echo of the other, where many nodes pass around the same transaction (to avoid repeats)

but if i sent
0.1BTC from 1HomeMachineAddress to 1HomeMachineAddress
0.1BTC from 1HomeMachineAddress to 1VendMachineAddress

it would appear as 2 different transactions and would require a confirm to sort out the mess (10 minute wait)

Right but you are assuming that the receiver is not checking the balance on the address and that the user has spent in excess of the balance.  That is not hard to do...


If my address has 1 btc and I have 2 tx for 1 btc each... the receiver can tell me to wait 10 minutes....  honest actors are not going to do double spends...

██████████████████████
████████████████████████
████████████████████████
████████████████████████
███████████████████████
█████████████████████
████████████████████████
████████████████████████
██████████████████████
██████████████████████
███████████████████████
████████████████████████
████████████████████████
████████████████████████
███████████████████████
██████████████████████
|
WINGS        [/u]
Where DAO Unicorns are born
|
.
1st Bitcoin & Ethereum DAO for DAOs                                               
1st Decentralized Chatbot to Smart Contracts Interaction System

|
.
Wings Bounties Earn Eggs    
X-Blockchain DAO

Pages: « 1 2 3 4 [5] 6 7 »  All
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!