Bitcoin is a digital currency system that enables participants to create and transfer bitcoins using a blockchain which are the rails upon which the bitcoins are created and transferred. A bitcoin is a digital descriptor of a unit of value and its ownership, one bitcoin is currently worth about $255 and this represents the market forces of supply, demand and speculation. Unlike other currencies such as gold or platinum bitcoins have no other utility value they are an entry in a blockchain ledger. New transactions can be created to change the ownership of the bitcoins by forming new entries in the ledger or blockchain. A bitcoin can be subdivided by 8 orders of magnitude when it is then called a Satoshi named after the Bitcoin inventor or more likely his pseudonym (1 Satoshi = 0.00000001 bitcoin), most people really don’t know who he/she/they are.
The Bitcoin rails are a decentralised ledger called the blockchain that is freely available in the cloud but what you can’t do is easily change it. A new block (think of it as a page in a ledger) is created every 10 minutes or so and contains all the transactions submitted by users since the last block was created. Each block has to be agreed by the community before it is added to the previous blocks, i.e. the block chain. So approximately every 10 minutes the block chain increases in size by one block. There are currently about 351,200 blocks in the chain and each block today has about 700 transactions. The blockchain effectively contains a record of every transaction from the start which is called the genesis block (of 50 bitcoins).
So how does a community manage the public decentralised blockchain? You can see from the previous comments that each page of the ledger or block of the blockchain needs to be verifiably signed in some shape or form in a way that the community will accept and that will not provide any viable vulnerability to hackers. With a centralised system this would probably just be a digital signature where everybody accepts the authority of the central source. However you cannot trust the individuals of a community even if all the members trust the club. So what is required is some form of consensus within the community about the correctness of a particular block.
The Bitcoin approach is core to the way the blockchain is constructed. Each block is hashed by members of the community called miners because their reward for hashing a block is to receive bitcoins, well at least until the limit of all 21 million bitcoins has been reached.
You will remember that a hash is a one way function that reduces an input message to a digest, it is easy to take a message and create a hash digest but the reverse is by design very difficult or in other words not economically viable. The Bitcoin approach to consensus is to make the hash calculation a proof of work by adding constraints. For more more on hash functions and collisions go to Choosing a Cryptographic Hash Function.
The design requires the hash digest to have a leading number of zeros and since the output of the digest is practically random there is no short cut. The person creating the hash using the SHA256 algorithm needs to add a nonce into the input to the hash function where the nonce is consistently changed until the minimum desired number of leading zeros is achieved. The Bitcoin miners are effectively competing with each other to be the first to achieve a hash with the minimum number of leading zeros. Part of the input to the hash apart from the current transactions in the block is the hash from the last block of the chain by which means the blocks are all linked together to form the new blockchain which is now one block longer. The successful miner published the new blockchain to the community as soon as possible and if agreed by his peers then everybody moves on to validating the next block. The Bitcoin design deliberately alters the number of zeros required to increase the work function to stabilise the time taken to validate a block at about 10 minutes on average. You can see that it is not practically viable for a hacker to go back and alter transactions because as the length of the chain increases the work function is too high. The Bitcoin community always accept the longest validated chain as the true blockchain.
There is just a little loose end, how is a transaction created and validated? Each bitcoin owner has a public key/secret key pair. When you create a bitcoin transfer the current owner includes the address of the new owner, i.e. the one to which bitcoin value is being transferred. The current owner protects this transaction message by digitally signing the transaction (using elliptic curve cryptography) with their secret key. Anyone with access to the owner’s public key (a bitcoin address is a hash of the public key) can check that the signature is correct. You can effectively track back through the blockchain to follow the complete life cycle of a bitcoin. When the miner sets out to create the hash for the new block they do of course first check that the transaction signatures are valid and that the source of the transfer has title to that bitcoin from a previous transaction.
So far we have talked about an individual bitcoin but in practice transactions will be some multiple of a bitcoin, more or less than one. An individual transaction can have one or more inputs or outputs. A particular participant might have 3 bitcoins attached to their address from a previous transaction. Let’s say they want to transfer 2.5 bitcoins to the address of a new owner. The input would be the reference to the 3 bitcoins belonging to the source owner and there would be two outputs, 2.5 bitcoins to the address of the new owner and 0.5 bitcoins to the address of the current owner, in other words this is also a way of getting change.
We haven’t mentioned it but eventually the limit of 21 million bitcoins is reached, but it was the creation of new bitcoins that rewarded the miners for their efforts which is not insignificant in terms of cost, the time averages at 10 minutes but the computing power increases significantly. If you include the cost of the capital equipment and the electricity costs there are arguments that the average cost to mine a bitcoin is greater than $100, many think much higher. Anyway eventually the mining reward vanishes and the block validators need to collect transaction fees. The difference between the total output value and total input value which of course must be zero or positive is taken by the Bitcoin miners as a transaction fee. For validating a block today a miner earns 25 bitcoins (this reduces in time) with a current street value of $6,375 ($255 X 25) or about $9 per transaction validated assuming 700 transactions in a block. The current size of the blockchain is 27 GBytes.
Dr David Everett, SCN Technical Researcher.
For the last 7 years West Sussex County Council (WSCC) has published on-line the personal details of over 1400 carers, foster carers and disabled people. It cam.....Read More
While Donald Trump and Kim Jong-Un carry on their public rhetoric behind the scenes the greatest interest is focussed on the power of the hackers and their coun.....Read More
An attack on the user names, passwords and personal details of the company's clients which happened earlier this year was reported last month. At the time the c.....Read More
ADP has announced the acquisition of Global Cash Card, a leader in digital payments, including paycards. Paycards have been the fastest growing method of pay .....Read More