Ethereum applications

The EVM's instruction set is Turing-complete.[25] Popular uses of Ethereum have included the creation of fungible (ERC-20) and non-fungible (ERC-721) tokens with a variety of properties, crowdfunding (e.g. initial coin offerings), decentralized finance, decentralized exchanges, decentralized autonomous organizations (DAOs), games, prediction markets, and gambling.

Contract source code

Ethereum's smart contracts are written in high-level programming languages and then compiled down to EVM bytecode and deployed to the Ethereum blockchain. They can be written in Solidity (a language library with similarities to C and JavaScript), Serpent (similar to Python, but deprecated), Yul (an intermediate language that can compile to various different backends—EVM 1.0, EVM 1.5, and eWASM are planned), LLL (a low-level Lisp-like language), and Mutan (Go-based, but deprecated). There was also[when?] a research-oriented language under development called Vyper (a strongly-typed Python-derived decidable language).[citation needed] Source code and compiler information are usually published along with the launch of the contract so that users can see the code and verify that it compiles to the bytecode that is on-chain.[citation needed]

One issue related to using smart contracts on a public blockchain is that bugs, including security holes, are visible to all but cannot be fixed quickly.[57] One example of this is the 2016 attack on The DAO, which could not be quickly stopped or reversed.[34]

ERC-20 tokens

The ERC-20 (Ethereum Request-for-Comments #20) Token Standard allows for fungible tokens on the Ethereum blockchain. The standard, proposed by Fabian Vogelsteller in November 2015, implements an API for tokens within smart contracts. The standard provides functions that include the transfer of tokens from one account to another, getting the current token balance of an account, and getting the total supply of the token available on the network. Smart contracts that correctly implement ERC-20 processes are called ERC-20 Token Contracts, and they keep track of created tokens on Ethereum. Numerous cryptocurrencies have launched as ERC-20 tokens and have been distributed through initial coin offerings.[58]

Main article: Non-fungible token

Ethereum also allows for the creation of unique and indivisible tokens, called non-fungible tokens (NFTs).[59] Since tokens of this type are unique, they have been used to represent such things as collectibles, digital art, sports memorabilia, virtual real estate, and items within games.[60] The first NFT project, Etheria, a 3D map of tradable and customizable hexagonal tiles, was deployed to the network in October 2015 and demonstrated live at DEVCON1 in November of that year.[61] In 2021, Christie's sold a digital image with an NFT by Beeple for US$69.3 million, making him the third-most-valuable living artist in terms of auction prices at the time, although observers have noted that both the buyer and seller had a vested interest in driving demand for the artist's work.

Decentralized finance

Decentralized finance (DeFi) offers traditional financial instruments in a decentralized architecture, outside of companies' and governments' control, such as money market funds which let users earn interest.[64] DeFi applications are typically accessed through a Web3-enabled browser extension or application, such as MetaMask, which allows users to directly interact with the Ethereum blockchain through a website.[65] Many of these DApps can connect and work together to create complex financial services.[66]

Examples of DeFi platforms include MakerDAO and Compound.[67] Uniswap, a decentralized exchange for tokens on Ethereum grew from US$20 million in liquidity to US$2.9 billion in 2020.[68] As of October 2020, over US$11 billion was invested in various DeFi protocols.[69] Additionally, through a process called "wrapping", certain DeFi protocols allow synthetic versions of various assets (such as bitcoin, gold, and oil) to be tradeable on Ethereum and also compatible with all of Ethereum's major wallets and applications.[69]

Enterprise software

Ethereum-based software and networks, independent from the public Ethereum chain, are being tested by enterprise software companies.[70] Interested parties include Microsoft, IBM, JPMorgan Chase,[51] Deloitte, R3, and Innovate UK (cross-border payments prototype).[71] Barclays, UBS, Credit Suisse, Amazon, Visa, and other companies are also experimenting with Ethereum.[72][73]

Permissioned ledgers

Ethereum-based permissioned blockchain variants are used and being investigated for various projects:

  • In 2017, JPMorgan Chase proposed developing JPM Coin on a permissioned-variant of Ethereum blockchain dubbed "Quorum".[74] It is "designed to toe the line between private and public in the realm of shuffling derivatives and payments. The idea is to satisfy regulators who need seamless access to financial goings-on while protecting the privacy of parties that don't wish to reveal their identities nor the details of their transactions to the general public."[75]

Performance

The downside is that performance issues arise because every node calculates all the smart contracts in real-time. As of January 2016, the Ethereum protocol could process about 25 transactions per second; this did not change after the proof-of-stake implementation. In comparison, the Visa payment platform processes 45,000 payments per second. This has led some to question the scalability of Ethereum.[76]

Ethereum engineers have been working on sharding the calculations, and the next step (Ethereum 2) was presented at Ethereum's Devcon 3 in November 2017.[77]

Ethereum's blockchain uses Merkle trees for security reasons, to improve scalability, and to optimize transaction hashing.[78] As with any Merkle tree implementation, this allows for storage savings, set membership proofs (called "Merkle proofs"), and light client synchronization. The network has faced congestion problems, such as in 2017 in relation to CryptoKitties