A hacker has stolen over 30% of The DAO. The community is considering a hard fork to stop the damage, raising issues of security, governance, and political philosophy that underlie cryptocurrency projects.
Solidity and Smart Contracts
Solidity is a high-level programming language used natively in Ethereum to code smart contracts. Solidity is Turing-complete, which allows developers to create smart contracts of arbitrary complexity for a wide variety of applications. The high-level Solidity code is later compiled into byte code that gets uploaded on the Ethereum blockchain. The network token, Ether (ETH), functions as a payment system to execute smart contracts on the network. Broadly, smart contracts are coded protocols that execute digital contracts according to specified parameters. Whereas cryptocurrencies such as Bitcoin are transferred on manual user command, Ethereum assets (ETH and ERC20 tokens) can be transferred according to defined conditions such as date, price, etc. This general functionality provides a wide variety of use cases for dApps (decentralized applications) built on Ethereum, such as finance, IoT, and gambling.
Users can create and transact meta-tokens using the same address and consensus infrastructure as the primary Ethereum blockchain. They can represent a variety of fungible, tradeable assets or enable usage in particular dApps. The most widely used token standard is ERC20, which defines various functionality parameters for these meta-tokens. This framework is widely used in ICOs as a turn-key distribution mechanism, where a smart contract written in Solidity distributes tokens automatically to contributors. OmiseGO, Status, and Basic Attention Token are examples of prominent ERC20 tokens.
In contrast to Bitcoin’s UTXO system that records a list of “unspent” amounts sent to a user, Ethereum uses an account model to record transactions on chain. This is a ‘state based’ global system that records the net balance of credits and debits as an account value. Individual ETH are more difficult to track because they are added and subtracted to user balances. A transaction is valid if one can prove ownership over the account and the account’s balance is sufficient. This approach reduces the amount of storage space needed on chain, since each node only has to store a single value per address, and increases the fungibility of ETH.
The native network token, ether, is an access token that purchases computational resources on the Ethereum Virtual Machine. This concept of ‘gas’ payments is central to the Ethereum system; broadly, it provides an economic incentive for nodes to use their computational resources to run and store contracts on the Ethereum network. Gas is a fractional amount of ETH paid to nodes, with the amount depending on the complexity of the code. This acts as a spam-prevention mechanism and prevents major inefficiency. The amount of ETH paid for a transaction or contract execution, the gas cost, is the product of the amount of computational work necessary and the amount that the transaction is willing to pay per computational step. This is analogous to time worked * wage. Users can expedite their transaction by specifying a high gas price, effectively offering nodes a higher return on their computational resources. ETH can also be used outside of the smart contracts functionality as a payment system.
Unlike many cryptocurrencies, the future supply of ETH is not fixed. The projected inflation rate is 18 million ETH per year, though a rate of 0.5-2% is possible with the release of the Casper PoS system.
The Ethereum codebase is open source, and a distributed group of core developers are responsible for development and updates. The Ethereum Foundation is a Swiss non-profit organization that facilitates development and governance of the protocol, though it does not have legal control. A portion of the funds raised in the crowdsale were allocated to the Foundation to facilitate future development. Vitalik Buterin is the founder and public face of Ethereum, and has significant influence over the project’s direction and governance.
Though Ethereum has emerged as a popular protocol over the past three years, it has faced governance issues and protocol conflict along the way. In 2016, users exploited a security vulnerability in the DAO, an early tokenized investment fund and decentralized autonomous organization, to siphon off 3.6 out of 11.5 million ETH under its control. In response to this attack, the community elected to hard fork the protocol to an earlier state in order to refund the lost ETH. Some users took issue with this decision to alter a supposedly immutable blockchain, and in response formed a competing implementation, Ethereum Classic.