The rapid price increase of Ethereum has not only attracted investors but developers too. Ethereum has tens of thousands of developers in its open source community, each contributing to the many layers of the “Ethereum stack”. This includes code contributions to the core Ethereum clients, second layer scaling tech and the “decentralized applications” (dApps) that are built on top of the platform. The appeal of Ethereum to developers is unique in that it was the first platform to allow anyone in the world to write and deploy code that would run without the risk of censorship. The community of developers which have formed around these core principles have led to the creation of technologies that could not have existed without the inception of Ethereum, many of which were never predicted. Some of the major use-cases of Ethereum so far have been:
The first decentralized cryptocurrency, bitcoin, was created in 2009 by pseudonymous developer Satoshi Nakamoto. It used SHA-256, a cryptographic hash function, as its proof-of-work scheme. In April 2011, Namecoin was created as an attempt at forming a decentralized DNS, which would make internet censorship very difficult. Soon after, in October 2011, Litecoin was released. It was the first successful cryptocurrency to use scrypt as its hash function instead of SHA-256. Another notable cryptocurrency, Peercoin was the first to use a proof-of-work/proof-of-stake hybrid.
Blockchains are secure by design and are an example of a distributed computing system with high Byzantine fault tolerance. Decentralized consensus has therefore been achieved with a blockchain. Blockchains solve the double-spending problem without the need of a trusted authority or central server, assuming no 51% attack (that has worked against several cryptocurrencies).
In 1983, the American cryptographer David Chaum conceived an anonymous cryptographic electronic money called ecash. Later, in 1995, he implemented it through Digicash, an early form of cryptographic electronic payments which required user software in order to withdraw notes from a bank and designate specific encrypted keys before it can be sent to a recipient. This allowed the digital currency to be untraceable by the issuing bank, the government, or any third party.
Ethereum addresses are composed of the prefix "0x", a common identifier for hexadecimal, concatenated with the rightmost 20 bytes of the Keccak-256 hash (big endian) of the ECDSA public key (the curve used is the so called secp256k1, the same as Bitcoin). In hexadecimal, 2 digits represents a byte, meaning addresses contain 40 hexadecimal digits. An example of an Ethereum address is 0xb794F5eA0ba39494cE839613fffBA74279579268. Contract addresses are in the same format, however they are determined by sender and creation transaction nonce. User accounts are indistinguishable from contract accounts given only an address for each and no blockchain data. Any valid Keccak-256 hash put into the described format is valid, even if it does not correspond to an account with a private key or a contract. This is unlike Bitcoin, which uses base58check to ensure that addresses are properly typed.
One of the most important problems that any payment network has to solve is double-spending. It is a fraudulent technique of spending the same amount twice. The traditional solution was a trusted third party - a central server - that kept records of the balances and transactions. However, this method always entailed an authority basically in control of your funds and with all your personal details on hand.
After much debate, the Ethereum community voted and decided to retrieve the stolen funds by executing what’s known as a hard fork or a change in code. The hard fork moved the stolen funds to a new smart contract designed to let the original owners withdraw their tokens. But this is where things get complicated. The implications of this decision are controversial and the topic of intense debate.
To realize digital cash you need a payment network with accounts, balances, and transaction. That‘s easy to understand. One major problem every payment network has to solve is to prevent the so-called double spending: to prevent that one entity spends the same amount twice. Usually, this is done by a central server who keeps record about the balances.
The unit of account of the bitcoin system is a bitcoin. Ticker symbols used to represent bitcoin are BTC[b] and XBT.[c]:2 Its Unicode character is ₿. Small amounts of bitcoin used as alternative units are millibitcoin (mBTC), and satoshi (sat). Named in homage to bitcoin's creator, a satoshi is the smallest amount within bitcoin representing 0.00000001 bitcoins, one hundred millionth of a bitcoin. A millibitcoin equals 0.001 bitcoins; one thousandth of a bitcoin or 100,000 satoshis.