Quote:
Originally Posted by alpha1 Few more questions: |
I am not sure I can explain all of these without writing code excerpts, but let me give a try.
Exchanges etc are just front faces, similar to what the payment networks like Visa/Master card. They just communicate to the bitcoin network.
A block only holds a specific number of transactions along with a header hash. They are chained using the header hash. Current block needs to hold the previous block's hash.
A simple way of thinking about this is
X2 = f(X1)
X3 = f(X2)
X4 = f(X3)
.
.
.
X1000= f(X999)
If a chain is created like above, it would be impossible to tamper X512 without tampering all the 511 blocks before that. And all the blocks after that.
The reason hashing is very important here is because even the information held in the block like your private key is a hash code. Technically, it should be impossible to find the user from the hashkey.
Lets say you get a 512 bit code. You only know it is a hash of 10 values. Lets call this Code A.
If you get another 10 values, you can hash it and get another 512 bit code. Lets call this Code B.
You can compare the codes and verify if the 10 values are equal.
But if they are not equal, you can never derive the values from Code A.
Coming to BlockChain it is a structure that holds all the transactions ever done.
Your account balance and such is not really on the Block chain, but on a wallet.
This wallet is pretty much like any other account, except that the Wallet needs to link to the block that can trace that transaction.
Lets say I hold 5 coins.
My wallet should hold the information to that block within the gazillion
blocks in the block chain that has the transaction which credited these 5 coins to my account.
There are the aspects to this whole network in terms of transactions.
1. How are new bitcoins created and who gets the new coins ?
This is where Mining comes up. New bitcoins are created thru the euphemism called mining. Those who run the mining rigs get new bitcoins.
2. What is mining in reality ?
Mining is the process of validating transactions to add new entries to the block chain. If you have successfully validated transactions
and claims the block as per the lottery, you get X bitcoins.
So essentially, the aspects of transactions is
a) those who get new bitcoins into existance -- these are miners.
b) those who buy the bitcoins from miners or exchanges or other users -- these are users
c) those who transact with each other thru their wallets -- these are users.
With this information, one can arrive at the various things a validating procedure has to do
Check the balance of the issuer
Validate the transactions to ensure this is indeed correct balance
Transfer the required number of coins to the reciever
etc.
This is basic accounting. Bitcoin dudes may say this is such a big deal, but it takes about 5 lines of code, and is one of the most basic
routines in programming to move an amount from one account to another.
The validating procedure needs to be confirmed by the network as well, which simply means at the bare minimum more than one mining nodes will verify whether your validation is correct.
Once this validation is done for X number of transactions, the mining node is ready with a block and you get into the lottery to claim a block and get your bitcoins in return.
Now, think about the questions here
Is it possible to fake a block ? No. Because the chain is created out of blocks, the previous block's header hash is included in current block. So, if a block is created into the chain, it cannot be tampered with.
Is it possible to hold fake balance ? Not on the actual network. Because every transaction should be traceable into the block right to the address. At the end of the day, a bitcoin is a unique hash code. It is traceable.
If I know your private keys and your wallet etc, I can trace your transaction to the hilt.
If we bust a drug racket, say, you can get the transaction down to the private key that paid that racket, but thats about it.
Fake transactions can be made if all the participating nodes agree on a transaction.
Such things are called 50% attacks and these have happened in the past to Ethereum etc.
Basically more than half of the mining nodes agree on a spurious transaction.