Ever go to a site like http://blockchain.info and just wonder what all those numbers mean? Well, wonder no more! This guide will have you exploring the block chain like a pro. This guide is separated into two main sections – a brief, high level overview of transactions and blocks, followed by a deep inspection of a single block, and the transactions within it. <!–more–>
Before understanding the charts and what they are telling us, it’s important to have a firm grounding in the underpinnings of how the bitcoin protocol works.
The first thing to understand about bitcoins is that they do not exist, neither in digital or real form. The only thing that exists is the list of transactions.
A transaction is simply a record of someone exchanging bitcoin with someone else.
The fundamental components of a transaction are as follows:
Conceptually a block is the method in which data is permanently recorded in the networks. It is a record of some or all transactions that have not been recorded in any other blocks.
Blocks also contain a pointer to the previous block. So, in computer science speak, a block behaves much like a linked list. This list is called the block chain.
All bitcoin clients are part of a peer-to-peer network, so everyone is talking with everyone else. When a transaction is performed, it is broadcast out to all the clients. A transaction is said to be confirmed when the transaction is part of the longest block, and 5 blocks follow that block.
Miners are responsible for recording and confirming transactions into blocks.
Miners pay attention to the current transactions coming in, and perform a computationally difficult hashing algorithm against the current transaction data created since the last block was created.
If a miner is able to solve the hashing algorithm, they effectively “seal off” the block, and a new block is created to store transactions. It is very easy for other clients to validate the work done by the miner. The hashing algorithm is basically like a contest. Each time the miner tries to solve, it is like rolling dice. Therefore, it behooves a miner to have a lot of computing horsepower, so they can better their chances, by rolling the dice more often.
When a block is “discovered”, the discoverer may award themselves a certain number of coins. For dogecoin, that number is currently 500,000. For bitcoin, it is 25. This number gets halved over time. Eventually, the reward will be 12.5, 6.25, and so on, until there is no more bitcoins awarded for mining.
The miner also collects any fees involved with a transaction. Fees on transactions are a further incentive to mine coins. This will further incentivize miners to continue mining, even after all bitcoins are found.
If we look at the latest dogecoin block (at time of writing), we see a lot of different information.
So what are each of these fields?
The unique id of this block.
The unique id of the previous block in the chain. This is what links blocks into a chain.
This is simply the length of the chain, or the number of blocks in the chain.
For dogecoin, it’s always 1. For bitcoin, it’s 2. This specifies the version of the coin protocol.
This is the SHA-256d hash based on all of the transactions in the block. It is updated when a transaction is accepted into the block. This hash of all hashes is known as the merkle root.
The timestamp of when this block was found.
The difficulty of finding a new block. The difficulty is a human-friendly way of expressing how hard it is for a computer to do the proof-of-work algorithm, when mining. The bitcoin protocol controls the level of difficulty very tightly. As more miners join, and as computer hardware gets more adept at mining, the difficulty gets increased by the protocol.
The difficulty is adjusted to keep the number of blocks found over time at a steady pace.
The graph below shows the difficulty of mining bitcoin over the last 60 days.
For bitcoin, litecoin and dogecoin, the difficulty gets re-calculated every 2016 blocks.
This is used when mining. When mining, the nonce gets inremented so the next guess is completely random. Part of the block header. See more about nonce here.
The number of transactions in this block.
This is the total value of all the transactions in the block.
This is the average age of the transaction inputs, for the block. The average age of the coins in this block is 9.1 days, which means on average, the coins transacted in this block were mined about 9 days ago.
This is the packed representation of the target the miners are trying to reach.
“Coin-days destroyed” attempts to be a measurement of the true economic activity in the system1. It can’t be measured simply by transaction volume, as the same user could be sending coins back and forth to herself over and over, thus artificially inflating the number.
The idea is to multiply the amount of each transaction by the number of days since those coins were last spent. This gives you the idea of coin-days. These coin-days are destroyed when a new transaction occurs with the coins in question.
Above is a picture of a transaction within a block. This particulart transaction showing someone sending 419 coins from address
DPrrn to address
DPrrn had a previous transaction of 430 coins earlier, and that is serving as the input to this transaction.
The outputs are that 419 coins were transacted to
D69b, 1 coin was the transaction fee, and 10 coins were returned back to the sender.
“But wait”, I hear you say, “Those 10 coins were sent to some other address!”
This is correct. The other address,
DTFj, is actually what is known as a change address, which is generated by your client. All of this is an attempt at keeping transactions somewhat anonymous.2 It also obfuscates the transaction as well. In the above example, it’s impossible to determine if 419 was transacted and 10 is the change, or vice versa.
The unique id of the transaction.
The timestamp of when the transaction occurred.
The number of transactions that make up the from part of the transaction.
Consider the below example, where Alice wants to send 50 dogecoin to Bob. She has been sent 25 doge and 35 doge before, in previous transactions. Those previous transactions will serve as inputs to sending bob 50 dogecoins.
Alice sending 50 dogecoin to Bob Inputs: --------> Outputs: 25 doge 50 doge to Bob's address 35 doge 10 doge to Alice's change address
The total number of coins that make up the input of the transaction.
The number of wallets the output was sent to. If the transaction requires making change, then one of the wallets is the change wallet back to the original sender.
The total number of coins that make up the output of the transaction, minus any fees.
If the transaction generated a fee, that would be listed here.
Fees go to the miner who validated the block that this transaction was part of. This further incentivizes miners to mine, and will continue to do so, even when mining yields no new coins. Additionally it discourages transactions from yielding very small fractions of coins, which can litter a wallet.
Well, hopefully you have gained a more thorough understanding of what you’re seeing when you look at the block chain!