Bitcoin Forum

Bitcoin => Bitcoin Discussion => Topic started by: remotemass on February 07, 2014, 10:02:51 PM



Title: A bitcoin is not a string of digits
Post by: remotemass on February 07, 2014, 10:02:51 PM
A bitcoin is not a string of digits.

That is a confusion between bitcoins and private keys.
Bitcoins actually only exist as balances associated with a bitcoin address.
Although those balances are not actually registered: only the inputs and outputs of transactions are.
That string of alphanumeric digits that is often said to be a bitcoin is the private key.
A private key is like an ATM pin number that allows one to spend the balance associated with his bitcoin address.
Bitcoin addresses are actually not created out of thin air. In a sense all of them already exist. You just pick a random private key (256 bits) and find out the corresponding bitcoin address. From then on you know the private key of that bitcoin address and can access its coins.
That's why I think it is better to say that bitcoin addresses are acquired, rather than created.
Private keys are worth as much as a key to a door/locker. It is what is inside that matters. Having the keys means you can claim ownership and use what is inside. By themselves, keys don't have much value.
So I can't agree with people that say that private keys are what is worth. Private keys are what you need to keep safe but what is actually worth is the balance you have on the corresponding bitcoin address. It's different, so please don't confuse people that are already so much confused with misleading statements.
Unless you want to force people to think and wonder. But they will probably just get confused and it is probably not going to help.
If bitcoins were indeed strings of alphanumeric digits, as you pretend, what would prevent you from replicating and double spending it?
Interestingly bitcoins are not digital coins at all. They are actually a new form of money that is made possible with a public ledger that accounts for the balances of everyone, through a chain of transactions protected by public key cryptography.

I kind of understand that if you see bitcoins (that are actually just balances/outcomes) as something tangible, like a coin, that that will give people a sense of money in the sense of something that you can keep safe and protected in a material sense, which our evolutionary features and instincts to protect will easily recognize and feel at ease with but on the other hand I find it most importantly - and please don't say that that is too complicate and dificult in a non-technical explanation, because that is simply not true - to tell people the following:
A private key is a secret code which allows the user to prove his ownership of his Bitcoins. Every Bitcoin address has a matching private key, which is saved in the wallet file of the person who owns the balance. The private key is mathematically related to the Bitcoin address, and is designed so that the Bitcoin address can be calculated from the private key, but importantly, the same cannot be done in reverse.

The reason I think this is so important is because this was my initial struggling in understanding bitcoin and also because I don't think you will be able to appreciate paper wallets without understanding this very simple concept.
Understanding this mathematical boundary between private key and bitcoin address seems crucial.

To be honest I think there shouldn't even be wallets. The bitcoin client should just have 256 boolean toggle buttons to tell the private key you wanted to use and a button to pick a random one if you wanted.
After you picked it, the bitcoin client would display the corresponding bitcoin address and balance and allow you to spend that coins.
It would be the user job to keep private keys registered somewhere.

Anyway, I hope we get better in explaining bitcoin.
Otherwise we will probably keep seeing people asked on the street about bitcoin matters saying the same things as of today.

If you haven't done so yet, please watch my youtube video production:
United Colors of Bitcoin
http://www.youtube.com/watch?v=HV6LMWwGEqg

You may also find these youtube videos worth viewing:
How Bitcoin Works Under the Hood
http://www.youtube.com/watch?v=Lx9zgZCMqXE

and

Korea Today : Bitcoin: Currency for the future?
http://www.youtube.com/watch?v=p1ZzA7ADpTE

To explain bitcoin mining, here it goes:

The latest transactions are put in a list/group called a block.
All previous transactions were also put in blocks and this makes a chain of blocks. But each new block needs information from the previous blocks because its ID is actually the cryptographic hash of a previous one. The cryptographic hash used is called SHA256 and hashing is a bit like a compressed tweet unique to a text of characters of any length. When you hash a text of any length with SHA256 you get a number of 256 bits, that is, 256 zeros and ones.
So the ID of each block, that is, the sha256 of previous one, will be a number with 256 bits.
One important propriety of a cryptographic hash is that a small change to the input text of characters makes a complete change to the output in a way that you cannot relate these results to guess the origin of them and so this result uniquely identifies that text length of characters without giving you any hints of what made it actually give that output.
Anyway, all these blocks make a linked list because each block has as its id the hash of the previous one that as also as ID the hash of its previous one, and so on, till the genesis block.
So new blocks get stacked on previous ones and because the ID of a block has to be the same as the cryptographic hash of the one before it, you cannot make a new block that can be added to the chain without it having in it all the history of the chain.
Pretty much like with our DNA. It has all the history of life on Earth in it. In the same way, the ID of a block has also all the history of blocks in it.
Mining is to find a block of the latest validated transactions with an arbitrary imaginary transaction called the "nonce" added at the end.
This imaginary transaction added at the end is a complete fiction and is not a real transaction. It is just a random gibberish added so that it will make the hash of the block different every time you change it.
So in mining computers are always changing this imaginary transaction to see if the cryptographic hash of the block with it added to the list of real transactions that comprises the block will give a hash result starting with the number of zeros actually required by the puzzle challenge at present level of difficulty.
The difficulty level is how many zeros are at the start of this 256 bits hashing result. The more zeros that are required at the left the harder the puzzle gets because the computers need to find by trial and error a match that is much more unlikely and so will probably need to try much more hashing the block with a different imaginary transaction - called the nonce, as was said - to see if it will give a result with the required number of leading zeros.
An added zero required makes it twice as much harder and so the difficulty rises exponentially with the number of zeros required following: two to the power of n, where n is the number of zeros.
This makes sure all transactions in the chain are valid and mutually consistent and makes it possible to achieve consensus and agree on the current block as for the new block to be agreed on it must have a comparable value regarding how much valuable it is in terms of being computationally expensive. As the latest block has in it a kind of DNA that accounts for the whole history of the chain of blocks it is astronomically computationally expensive and all extra spurious work of the puzzle/difficulty/nonce will be making the following blocks with even more expensiveness added to it.