Fork is a project which was started on the basis of another one’s source code. Every one of such projects can develop independently from the basic one and options that weren’t present in the main project can be realized in the fork. In case of cryptocurrencies the base is obviously the Bitcoin and every other coin is a Bitcoin’s fork.
Since the moment of Bitcoin’s appearance there were a lot of forks created but most of them didn’t introduce anything new either being an exact copy of Bitcoin or differing from it in emission limit and speed and/or hash-function algorithm only.
Principal difference between forks after the emission speed is the encryption algorithm.
Hash principles can be explained with an example of a phone number: +1 (813) 651-3792. Let us add all the numbers up until there’s only one digit left:
1+8+1+3+6+5+1+3+7+9+2 =46 => 4+6=10 => 1+0=1
There are commonly following properties sought out in hashing:
- If you know hash-sum (in our case it’s 1) you still can’t find out the original phone number.
- You can’t adapt a phone number to fit a known hash sum (isn’t applicable in our example but necessary for Bitcoin).
- Insignificant change in phone number will lead to radical change in hash sum (same as previous one)
Following sections will examine them in more detail:
SHA-256 belongs to a SHA-2 family of algorithms (Secure Hash Algorithm Version 2) which also includes SHA-224, SHA-384 and SHA-512. Unidirectional hash-function is designed to create messages “imprints” or “digests” of arbitrary length. “256” indicates the lengths of digest in bits. The algorithm was designed in August 2002.
The following is an example of SHA-256 hash sum:
SHA-256("The quick brown fox jumps over the lazy dog") = D7A8FBB3 07D78094 69CA9ABC B0082E4F 8D5651E4 6D3CDB76 2D02D0BF 37C9E592
A slightest change in the original message almost always results in entirely different hash. For example if we change ‘dog’ to ‘cog’ we’ll get the following result:
SHA-256("The quick brown fox jumps over the lazy cog") = E4C4D8F3 BF76B692 DE791A17 3E053211 50F7A345 B46484FE 427F6ACC 7ECC81BE
“Scrypt” hash-function uses “SHA-256” as a subroutine relying on large amount of arithmetic calculations but also requiring fast access to large amounts of memory. This makes running several instances of Scrypt on a current generation GPU a somewhat difficult task. This also means that the cost of creating specialized designs for mining such as ASICs and FPGAs is significantly higher than with SHA-256.
Because more modern GPUs have higher amounts of memory, they are better-suited for mining of Scrypt cryptocurrencies although their advantage over CPUs is less significant than in the case of Bitcoin (10 times better performance against 20 of Bitcoin).
In the beginning of 2014 several companies issued statements about designing devices for Scrypt cryptocurrencies mining. This caused the appearance of cryptocurrencies with hashing algorithm changed in a way that makes building ASIC designs for them impossible.
The basis for this algorithm is mixing SHA-256 and Salsa20 algorithms’ functions with increased requirements for memory reserves. Its calculation complexity is 2 times higher than that of Scrypt and the speed of finding new blocks is consequently 2 times lower.
So far there are less cryptocurrencies based on this algorithm than those based on previous two. First such currency was “VertCoin”.
“Keccak”, also “SHA-3” is a hashing algorithm with variable bits. On October 2nd 2012 Keccak has won cryptographic algorithms competition held by NIST. SHA-3 algorithm is built upon cryptographic “sponge” construction. It is considered a state-of-the-art in the world of hash functions. Keccak algorithm is approximately 2 times more difficult than SHA-256.
There are quite few cryptocurrencies operating under this algorithm. The main two are “CopperLark” and “MaxCoin”.
Some popular forks
- Litecoin (LTC). The second most popular cryptocurrency. A block is generated every 2.5 minutes, there are 84 million of coins to be mined in total, difficulty is changed every 2016 blocks (~3.5 days), initial reward of 50 LTC per block is halved every 840,000 blocks. Hashing algorithm is “Scrypt”. Miners trying to use ASICs won’t be able to reach the same level of efficiency as with Bitcoin because of high memory requirements.
- Namecoin (NMC). It was designed to serve the cryptographically protected domain zone .bit. This “currency” is based on the Bitcoin concept.
The coins themselves are designed to be spent on domains registration in the .bit zone. Thanks to the cryptographic Bitcoin subsystem these domains are protected from changes by anyone other than their owners. Every participant of Namecoin system can set up a DNS-server on their PC.
- Ripple (XRP). Ripple is a financial transactions protocol, just as SMTP is an e-mail protocol. Unlike other cryptocurrencies all coins were available since the start of the system. There are 100 billions of them. Every transaction is commissioned with a fee of around 0.00001 XRP which is raised for users who start heavily loading servers up. Thus a potential attacker will quickly run out of money. Also for an account to be able to conduct transactions its balance has to have at least $0.5 equivalent in XRP. The commission isn’t collected by anybody, it just disappears. That means that XRP amount will go down with time. However the creators of XRP claim that current amount of coins will be enough for decades.
- Peercoin (PPC). It is this currency which was first to introduce a hybrid PoW & PoS design. A transaction requires 520 confirmations but is momentarily displayed in the wallet. This coin is more resistant to 51% attacks.
- Novacoin (NVC). The goal of creating Novacoin was to mimic the PPCoin success without copying its faults such as the excessively high emission amounts. NVC uses Scrypt function as its hashing algorithm. Top emission speed is lowered 100 times and the speed of reward drop with difficulty increase is described by a smoother curve. As with parent project difficulty is adjusted with every new block found by the network and the maximum of a single difficulty adjustment is set at 1%. Target speed of block generation is 6 blocks per hour.
- Dogecoin. This coin is a result of two huge things of 2013: the cryptocurrencies explosion and “doge” meme. The meme is a picture of chinese Shiba Inu dog surrounded by its thoughts clouds written in Comic Sans. On November 27th Jackson Palmer, a marketing specialist employed by Adobe in Sydney who was tracking the development of world cryptocurrencies has tweeted without any foresight: “Investing in Dogecoin, pretty sure it’s the next big thing.” A week later he bought the Dogecoin.com domain. At the same time Billy Marcus who was working on his own cryptocurrency in Portland stumbled upon that site. “This is damn funny” was the first thought that came to his mind. And after that he told himself: “I should be the one who creates this coin”. Just over a week after Palmer’s joke Dogecoin was already launched. In a short time Dogecoin capitalization reached 8 million dollars and it also took 7th place in the Coinmarketcap list.