Author

Topic: I don't think that I understand. (Read 8544 times)

sr. member
Activity: 294
Merit: 252
Firstbits: 1duzy
July 31, 2010, 04:34:41 PM
#8
1)  The 'wallet' seems to be mis-named.  As I understand it, it's a cryptographic ID and account number in one; but does not actually hold 'coins' within itself.  Is this correct?
Yes.  A 'wallet' might better be called a 'private bank' which is filled with many different account numbers, each of which contain a number of 'coins'.

2-5, what Red said.

Quote
And I *really* don't understand how change works.

You always have to spend all the money in an account (address) at once.

eg:
I have 10 BTC in Address1, I want to pay you 1 BTC.

TXin:
Address1: 10 BTC

TXout:
Address2: 1 BTC (this goes to you)
Address3: 9 BTC (this goes to me - the change)

Address1: is now empty.

A cool side-effect here is that anyone analyzing the transactions can't easily tell if I paid 1 BTC or 9 BTC. (assuming they know I have Address1, but don't know who has Address2 or Address3)
Red
full member
Activity: 210
Merit: 111
July 31, 2010, 03:08:52 AM
#7

Trust meaning that it is possible for the sender to double spend the coins before the receiver broadcasts the transaction. Also, it is not possible for the receiver to spend the coins until the transaction is confirmed.

How do you know this? I was explicitly told otherwise. I'll check my source in a minute.

Which part?

If I passed a transaction to you offline, you could validate that it was a good transaction using your locally stored block list. Now say I connected to the network first, and instead of broadcasting the transaction I gave you, instead I broadcast a similar transaction sending the same coins to another address. Now when you connect to broadcast the previously valid transaction I gave you, it will have already been spent.

If I remember correctly from the code, the in-points of a transaction reference the end-points of a previous transaction in a particular block. If the transaction is not in the block list, there is no way to generate a subsequent transaction. I could be wrong on the details, but this is the generally expected behavior of the system.
legendary
Activity: 1246
Merit: 1014
Strength in numbers
July 31, 2010, 02:58:23 AM
#6

Trust meaning that it is possible for the sender to double spend the coins before the receiver broadcasts the transaction. Also, it is not possible for the receiver to spend the coins until the transaction is confirmed.

How do you know this? I was explicitly told otherwise. I'll check my source in a minute.
Red
full member
Activity: 210
Merit: 111
July 31, 2010, 01:50:37 AM
#5
I figured that the transaction would have to be announced eventually, but I was considering the possibility of a trade occuring in the absence of internet service for one or both parties and in person.

You can make a complete confirmed transfer with the receiving party completely off line if that helps.

It is logically possible to create the transaction and send it to the receiving party while both are offline. However, this becomes a trust situation until one of the parties broadcasts the transaction to the network and it is confirmed in the block list.

Trust meaning that it is possible for the sender to double spend the coins before the receiver broadcasts the transaction. Also, it is not possible for the receiver to spend the coins until the transaction is confirmed.
legendary
Activity: 1246
Merit: 1014
Strength in numbers
July 30, 2010, 09:38:16 PM
#4
You can give someone a wallet file. It is just that they couldn't verify the contents while offline, right? So it would be pretty much the same as a transfer.
legendary
Activity: 1708
Merit: 1007
July 30, 2010, 09:14:18 PM
#3


3. You could generate a transaction in a detached fashion but it would still need to be transmitted to the internet connected nodes for the transaction to be confirmed in everyone else's mind. Until that point, the another transaction could spend the coins in advance of your detached transaction clearing. There is no way to private go, "Gere are 5 coins. Don't tell anyone I gave them to you."



I figured that the transaction would have to be announced eventually, but I was considering the possibility of a trade occuring in the absence of internet service for one or both parties and in person.  For example, me buying a gallon of milk at the corner store for half price because there is a power outage after a storm.  Or I want to buy a rick of firewood from a farmer on my way to the campground, but I am out of my cell service area while the farmer might not be.  Basicly, I'm asking if the cash like properties of bitcoin can be extended beyond an ever present Internet for a period of time, allowing a bitcoin 'cash' exchange to take place in the absence of connectivity.


Creighton
Red
full member
Activity: 210
Merit: 111
July 30, 2010, 08:34:32 PM
#2
You have a pretty correct understanding.

1. Yes that is correct
2. The block chain is a massive ledger of all the transactions using coins. It will grow linearly with the number of trades. However, all trades don't need to be kept forever. Old trades can be culled from the list. Not sure if this is being done now.
3. You could generate a transaction in a detached fashion but it would still need to be transmitted to the internet connected nodes for the transaction to be confirmed in everyone else's mind. Until that point, the another transaction could spend the coins in advance of your detached transaction clearing. There is no way to private go, "Gere are 5 coins. Don't tell anyone I gave them to you."
4. Difficulty is computed and considered.
5. It could be done. Don't know if anyone is working on such an app.

legendary
Activity: 1708
Merit: 1007
July 30, 2010, 07:15:07 PM
#1
I'm new to Bitcoin, and I've been reading up as much as I can find, but I still have some unanswered questions....

1)  The 'wallet' seems to be mis-named.  As I understand it, it's a cryptographic ID and account number in one; but does not actually hold 'coins' within itself.  Is this correct?

2)  If I'm right about the wallet, then the block chain is basicly a massive ledger of all the 'coins' and most of the transactions that have occured with each coin.  If this is correct, then what prevents the size of the block chain file from going parabolic in growth once the number of people who actually trade in bitcoins hits critical mass?

3)  Is it possible that two people, say using idependent Android clients on smartphones, could trade directly over Bluetooth or Ad-hoc Wi-Fi rather than over the Internet?  Is there any talent working on such an app?

4)  I understand that the odds of an attacker overtaking the block chain is remote, but what if the attacker artificially reduced the difficulty of his chain, do the clients consider the difficulty of the blocks in dispute, or just consider the longest one to be authoritative without regard to the difficulty of the blocks?

5)  If the block chain is a massive collective ledger, is there any app out there that can crunch market stats from the block chain?  Such as total trade volume or total trade velocity across time?  Or total number of traders in a day?

And I *really* don't understand how change works.

Creighton
Jump to: