Researchers have pointed out at a "trend towards centralization". Although bitcoin can be sent directly from user to user, in practice intermediaries are widely used.[32]:220–222 Bitcoin miners join large mining pools to minimize the variance of their income.[32]:215, 219–222[115]:3[116] Because transactions on the network are confirmed by miners, decentralization of the network requires that no single miner or mining pool obtains 51% of the hashing power, which would allow them to double-spend coins, prevent certain transactions from being verified and prevent other miners from earning income.[117] As of 2013 just six mining pools controlled 75% of overall bitcoin hashing power.[117] In 2014 mining pool obtained 51% hashing power which raised significant controversies about the safety of the network. The pool has voluntarily capped their hashing power at 39.99% and requested other pools to act responsibly for the benefit of the whole network.[118] Between 2017 and 2019 over 70% of the hashing power and 90% of transactions were operating from China.[119]
Ethereum was announced at the North American Bitcoin Conference in Miami, in January, 2014.[9] During the same time as the conference, a group of people rented a house in Miami Gavin Wood, Charles Hoskinson, and Anthony Di Iorio, a Torontonian who financed the project.[9] Di Iorio invited friend Joseph Lubin, who invited reporter Morgen Peck, to bear witness.[9] Six months later the founders met again in a house in Zug Switzerland, where Buterin told the founders that the project would proceed as a non-profit. Hoskinson left the project at that time.[9]
The Ethereum Virtual Machine (EVM) is the runtime environment for smart contracts in Ethereum. It is a 256-bit register stack, designed to run the same code exactly as intended. It is the fundamental consensus mechanism for Ethereum. The formal definition of the EVM is specified in the Ethereum Yellow Paper.[34][37] On February 1, 2018, there were 27,500 nodes in the main Ethereum network.[38] Ethereum Virtual Machines have been implemented in C++, Go, Haskell, Java, JavaScript, Python, Ruby, Rust, Elixir, Erlang, and soon, WebAssembly (currently under development).
There is ongoing research on how to use formal verification to express and prove non-trivial properties. A Microsoft Research report noted that writing solid smart contracts can be extremely difficult in practice, using The DAO hack to illustrate this problem. The report discussed tools that Microsoft had developed for verifying contracts, and noted that a large-scale analysis of published contracts is likely to uncover widespread vulnerabilities. The report also stated that it is possible to verify the equivalence of a Solidity program and the EVM code.[41]
While it’s still early days, Mist, MetaMask and a variety of other browsers look set to make blockchain-based applications accessible to more people than ever before. Even people without a technical background can now potentially build blockchain apps. This is a revolutionary leap for blockchain technology that could bring decentralized applications into the mainstream.