Crypto Currencies

From kipiki
Jump to: navigation, search

Purpose

This document associated with the talk I will be doing at JaxLUG on Wednesday Nov 15 2017 will attempt to describe the idea, design, usage, mining, and trading of various cryptocurrencies such as Bitcoin and Litecoin.

History

The b-money system was conceptualized and in 1998 by Wei Dai and bit gold was created by Nick Szabo that same year on those ideas. Bitcoin came along later in 2009 and was the first decentralized cryptocurrency. Later other "AltCoins" came about such as LiteCoin to try to resolve issues presented in the bitcoin design and implementation.

Coin Design

Block Chain

The blockchain is a continuously growing list of records called blocks which are linked and secured using cryptography. Each block has a hash pointer as a link to the previous block, a timestamp and transaction data.

Hash Algorithm

Cryptocurrencies rely on a cryptographic hash function that provides a proof of work system that is asymmetrically difficult, being variably difficult for the requester (client) side but easy to check for the service provider (server) side. Bitcoin uses partial hash inversions to prove work was done. A valid proof of work is found by incrementing a nonce until a value is found that gives the block's hash the required number of leading zero bits. A nonce is an arbitrary number that can only be used once in cryptographic communication.

Network

The network is peer-to-peer for bitcoin/altcoins and either uses a Proof of Work or Proof of Stake system for timestamps. The coins themselves are defined by a sequence of digitally signed transactions that begin with the coin's creation as a block reward.

Transaction fees

Sending coins from one wallet to another results in a transaction fee. These fees go to the miner who mines the block that includes your transaction.

Timestamping

Most coins use the Proof of Work scheme, some use others or even hybrid systems.

Proof of Work scheme

This was the first timestamping scheme and is the most widely used scheme with coins based on SHA-256 (such as bitcoin) and scrypt (such as litecoin). It requires the client to do work solving a cryptographic puzzle (such as bitcoin/hashcash using partial hash inversions) to validate transactions and create new blocks, and rewards said participants with these new blocks (coin mining).

Proof of Stake scheme

In a proof of stake scheme, the creator of the next block is chosen via various combos of random selection and wealth or age. The advantage of this system is that it uses far less power then the proof of work, but leads to hoarding (as the more coins you have the more potential you have for getting more). Coins based on this system are Peercoin, BlackCoin and Nxt.

Altcoins

There are a LOT of crypto currencies, currently there are over 1100 different ones in existence. Altcoins are the term for a cryptocurrency that is not bitcoin, Ethereum, Ripple, Litecoin, are some of the biggest according to coinmarketcap.com. These coins have their own block-chains, networks, algorithms and code and are mined/distributed differently then bitcoin.

Wallets

Wallets are a piece of software that does a few things:
- keeps track of the peer to peer network and downloads the entire block chain
- keeps your private key secure and allows you to 'store' coins
- allows you to mine coins (in some cases) for solo mining
- allows you to have a place to receive coins as well as send them
To participate in a crypto currency you must have a wallet. There are generally two types, one managed by you (like bitcoin wallet software), and one managed by someone else (like coinbase and the like).

Transactions

Wallet to wallet

All transactions are wallet to wallet. You have a wallet, and you send a coin or partial coin to someone elses, be that a person, a business, and exchange, ect.

Services

Some businesses such as NewEgg and Steam accept payments in bitcoin, you pay for these services by sending them bitcoin from your wallet.

Exchanges

Exchanges are similar to the money market, where you have money or crypto currency in a wallet and use that to buy or sell different currencies. Many currencies can be exchanged for others in these market places. For instance you can mine LTC and sell it in exchange for BTC, then send that BTC to your wallet, and go to NewEgg and buy that shiny new monitor you've had your eye on using BTC. This way you can mine or have one currency, exchange it for another that may be more useful for you at the time.

Mining

Hardware Mining

The hardware used for mining Crypto Currencies generally comes in 4 stages (depending on the coin, some stages are not available or usable)
- CPU - The computer Central Processing Unit is usually where its easiest to code for and get started
- GPU - The video card provides more specialized hardware that is better at doing complex floating point calculations and has extremely fast and large memory stores
- FPGA - Field Programmable Gate Array allows you to make a more specialized piece of hardware that is more efficient in both power usage and speed then the general purpose counterparts in a computer
- ASIC - Application Specific integrated circuit is a hardware version of a FPGA, it cannot be changed after manufacture so any flaws in design are critical failures, but the speed and power efficiency for the task are far higher then any of the other options. The manufacture cost however is very high.

Mining Software

There is a large set of miner software available, and much of it works with different coins. For bitcoin here is their wiki on the different packages that are available: https://en.bitcoin.it/wiki/Mining_software

Mining Pools

As the difficulty of mining goes up, without significant investment solo mining becomes unfeasible. Pool mining resolves this issue by creating a service that allows people to do 'work' for the pool in exchange for shares, when a block is found by one of the participants, the block is then divided between participants based on the shares they have generated. So if you do 100TH of mining and I do 50TH of mining and we find a coin, you would get 2/3 of the coin and I would get 1/3 of the coin (minus generally a 1-3% fee of whatever pool we use)

Cloud Mining

Cloud mining companies allow you to purchase a contract and provide you with a certain amount of hashrate (minus fees for structure and power costs) for different types of crypto functions such as SHA-256, scrypt or any number of others.
This can be an effective way of getting into coin mining if you do not want to set up your own miner but you want to play with the currency. It allows you to get into things like bitcoin mining for cheaper then buying a whole asic miner on your own. Example companies I've used: hashflare.io genesis-mining.com

Warning

Crypto currencies are fundamentally non-existent, they are just a set of numbers that people assign a value to and thus have no inherit worth. This is one of the reasons that the markets are so very volatile and may lose their worth in an instant and gain it back the next or never. My warning to you is: play with it, enjoy it, but do not sink your life's worth into it because it could all be gone tomorrow, treat it like gambling not like investment.

Sources

https://en.wikipedia.org/wiki/Cryptocurrency
https://en.wikipedia.org/wiki/Bitcoin_network
https://en.wikipedia.org/wiki/Cryptographic_hash_function
https://en.wikipedia.org/wiki/Bitcoin
https://en.wikipedia.org/wiki/Blockchain
https://en.wikipedia.org/wiki/Cryptographic_nonce
https://en.wikipedia.org/wiki/Proof-of-work_system
https://en.wikipedia.org/wiki/Proof-of-stake
Market Capitalizations: https://coinmarketcap.com/all/views/all/
Bitcoin Mining Software: https://en.bitcoin.it/wiki/Mining_software
LiteCoin Mining Software: https://litecoin.info/Mining_software