Bitcoin Forum

Bitcoin => Bitcoin Discussion => Topic started by: btc12546 on March 24, 2011, 11:53:37 AM



Title: New user, have some questions.
Post by: btc12546 on March 24, 2011, 11:53:37 AM
First off, I'd like to say I think this is so fascinating. I've been interested in the idea of currency ever since I was a kid. I've always loved to imagine how currency got started, or to think about the vast network of exchange currency allows. I like to imagine treating each dollar as worth nothing but the work or good you provided to earn it, and tracing the exchange of real goods and services around.

It blows my mind. Treating dollars as dollars vastly simplifies things, but imagining the real goods and services being provided is an insanely complicated and beautiful thing to me. The fact that I have the entire history of transactions of bitcoins stored on my computer is pretty cool to me.

And now onto my two questions. I was reading https://en.bitcoin.it/wiki/Transaction_Fee and I noticed from text under the inset picture that it says the account's btcs are made up of only .01 btc cents, which makes transactions require more data to be encoded into the block. Why? Are individual whole bitcoins "fragmented" and transferred around? I got the .05 btc from the faucet, if someone else gave me .95 and then I later transferred 1 btc, would the recipient "really" receive .05+.95 btcs?

If that is the case, wouldn't bitcoins get more and more fragmented over time causing the average data to record transactions to go up?

And my other question is about block chain forks. From what I understand, it has a relatively low chance of happening, but when it happens are the two blocks essentially identical, or do they each contain slightly different transaction data? If that is the case, can bitcoins (other than the 50+fee generated) be lost? How often do forks occur, and how long do fork chains get?

Anyways, like I said, I absolutely love this whole concept and I hope it takes off. Its very interesting to me. I've already told my friends and family about this.

Oh, I have another question. If changes to the way the client works is necessary, how will you get everyone to upgrade to the new way without having to pause the economy? From what I've heard, bitcoin only works among people who use the exact same client. It makes sense that you could simply import the old blockchain into a new version, and then as people joined the new version it would continue on, but that requires that the economy is essentially put on hold.


Title: Re: New user, have some questions.
Post by: caveden on March 24, 2011, 01:18:25 PM
Regarding fragmentation, I don't know the details since I haven't browsed the code that much, but from what I can grasp from all I've read and what's available on the block explorer, what really counts is the number of addresses.

If you receive 0,05 in an address A and then 0,95 in another address B, and then you transfer 1 to address X, your transaction would contain:
Address A as input with 0,05 BTC
Address B as input with 0,95 BTC
Address X as output with 1 BTC.

If the owner of X transfer all at once to Y, the transaction will only have:
Address X as input with 1 BTC
Address Y as output with 1 BTC.

Regarding the block chain split, the transactions may be the same, with the exception of the reward transaction to the miner. But they may be different too, it doesn't actually matter. The sender of a transaction that doesn't get in will keep trying until it gets into a block.
Problems would arise if the miner uses his coins before the split gets merged, but the 120 blocks maturity limit makes this very unlikely.

And finally, the block chain is backward compatible, you don't need to use the same version.


Title: Re: New user, have some questions.
Post by: Mike Hearn on March 24, 2011, 01:41:34 PM
TX fees are only usually necessary today if you produce a big transaction, where big means in terms of data size, not value transferred. As an example of a large transaction see this one:

http://blockexplorer.com/tx/eaebb606cb476753d2cf05bad017896e718d9d600baf5bac71af6351765d9b71

It's 2 kilobytes, which for a BitCoin tx is unusual. The reason it's so large is that it combines and splits value in a complex manner. It included a small fee to ensure it got into a block in a timely manner, otherwise it may have had to wait a while.

Block chain forks are fairly rare and usually only last for a single block. There have been a few that lasted longer, for instance after fixing bugs. In a normally functioning network the forked chain should end up the same in the sense that the transactions that were in the other side of the fork all make it into blocks fairly quickly or immediately, but those new blocks will have different coinbases, and as such different merkle roots and nonces meaning they are not byte-for-byte identical.


Title: Re: New user, have some questions.
Post by: btc12546 on March 24, 2011, 02:15:55 PM
I understand why the transaction fee exists, what I was asking is what is the complex manner in which values get combined and split.

I've been reading/listening to more stuff since I made this topic, so I understand a little better now about some of my questions, like block chain forks. And I think I might understand my question about bitcoins getting fragmented: when someone spends bitcoins, it keeps track of how they got them (ex the person I send 1 btc to sees .05+.95) but when it gets spent again later it gets joined (if that person then spends it, the person receiving sees 1 btc). Is that correct?


Title: Re: New user, have some questions.
Post by: MoonShadow on March 24, 2011, 02:29:49 PM
And now onto my two questions. I was reading https://en.bitcoin.it/wiki/Transaction_Fee and I noticed from text under the inset picture that it says the account's btcs are made up of only .01 btc cents, which makes transactions require more data to be encoded into the block. Why? Are individual whole bitcoins "fragmented" and transferred around? I got the .05 btc from the faucet, if someone else gave me .95 and then I later transferred 1 btc, would the recipient "really" receive .05+.95 btcs?

If that is the case, wouldn't bitcoins get more and more fragmented over time causing the average data to record transactions to go up?


The coins are made up of transaction records, which can be any value up to the full 21 million BTC possible and down to 0.00000001 BTC.  The coins don't actually exist as a digital artifact independent of the transactions that relate to them.  When coins are spent, the client will add up different transactions to greater than the total needed, and then output those coins to two new addresses.  One would be the address that you are sending coins to, another will be a new address of your own for the change.  So transactions merge as easily as they are fragmented, and this is done my the client by default.

Quote

And my other question is about block chain forks. From what I understand, it has a relatively low chance of happening, but when it happens are the two blocks essentially identical, or do they each contain slightly different transaction data? If that is the case, can bitcoins (other than the 50+fee generated) be lost? How often do forks occur, and how long do fork chains get?


Blockchain forks likely occur quite often, but it isn't problem unless the fork were to persist for more than 100 blocks, which is both very unlikely to occur and very unlikely to go unnoticed.  Short forks, of one or two blocks each, likely occur about once or twice each day, and will likely occur more often as the network latency grows with the user base.


Title: Re: New user, have some questions.
Post by: theymos on March 24, 2011, 06:24:30 PM
And I think I might understand my question about bitcoins getting fragmented: when someone spends bitcoins, it keeps track of how they got them (ex the person I send 1 btc to sees .05+.95) but when it gets spent again later it gets joined (if that person then spends it, the person receiving sees 1 btc). Is that correct?

Yes. If you send someone 0.05 and 0.95, they will have two "coins" of these sizes. They can break them apart into smaller coins or combine them into larger coins.