cryptocurrency Virtual currency working on a principle of cryptography and using distributed ledger (typically blockchain). blockchain A data structure recording time-stamped transactions. It consists of linked blocks. Each block points to its previous block, except the very first one (so called genesis block), so blockchain is technically a tree, although it looks more like a list with a few small branches here and there. The longest chain of transactions is taken as the main branch. Transactions recorded in the main branch are taken as confirmed. Blocks outside the main branch are called orphan blocks Orphan blocks can be created due to lag -- if two valid blocks are simultaneously created, the network will only be able to accept one, in case of bitcoin the one with a better, i.e. higher number proof-of-work, will be accepted and the other one orphaned. Miners don't get reward for orphaned blocks (because they're not part of the main branch and so the reward isn't recorded). A block contains all of these: - Hash of the previous block, as a back-link to it. A hash (as opposed to an ID) has to be used so that if the previous block was altered, this block would no longer be pointing to it. - Proof of work. E.g. in Bitcoin this is a number X (called nonce) such that with this number in it the block's hash is lower than the network difficulty level (this is used to adjust mining difficulty). - Transactions. These are takes from transactions broadacst by the newtwork users, and are confirmed by this block (if this block is part of the main branch). mining Doing work (i.e. creating proofs of work) which is rewarded with cryptocurrency. Mining creates and appends new blocks to the blockchain. Mining protects the blockchain against altering. To alter a specific block X, the attacker would have to create a new chain of blocks from X which would surpass the current main blockchain branch in length (to be acepted as the main branch), which would require to add new proof of work to each new block (because altering X would due to linking via hashes alter all following blocks), which would require to do more work that has been done in the main branch since X. Bitcoin proof of work A number prooving some work has been done. E.g. given number X, a string S, such that hash(S) = X, is a proof that machine time has been invested (work has been done) to find this string. hashrate Power of a mining machine, i.e. how quickly it checks hashes, in hashes per second. double spending problem