Bitcoin and Ethereum are both digital currencies. Bitcoin is the most popular and first successful decentralized cryptocurrency. As the second-largest cryptocurrency by market capitalization (market cap), Etherium naturally invites comparisons with Bitcoin. In this Answer, we look at some of the key technical differences between Ethereum and Bitcoin.
Consensus means to agree upon something. In Blockchain, a consensus algorithm is used to perform new block insertions.
Bitcoin uses Proof-of-Work (PoW) to achieve consensus. Whereas, Ethereum uses Proof-of-Stake (PoS) as a new update.
Bitcoin uses the unspent transaction output (UTXO) model, while Ethereum uses an account-based model.
In the UTXO model, a transaction consists of inputs and outputs. Both the inputs and outputs are in the form of scripts. These scripts are described in a stack-based language called the Bitcoin Script.
In the account model, a transfer transaction consists of a sender, a receiver, an amount, a nonce, a fee, and a signature. The sender and receiver are public keys.
In simple words, in the UTXO model, the most recent transaction is used as a source of balance. Whereas, in an account-based model, the balance of each user or account is maintained just like a bank account.
Bitcoin uses a scripting language known as Bitcoin Script to perform basic tasks such as transaction signatures, signing, verification, and so on. Bitcoin Script is a stack-based language with limited operations and instructions. It has no loops and, hence, is not a Turing complete language.
Note: A language is Turing complete if, before running a program, we can tell whether it will halt/terminate or not.
Ethereum's EVM supports Turing complete languages such as Solidity and Vyper. The fact that Ethereum is Turing complete means it can compute any program, of any complexity. Therefore, we can write many complex programs and smart contracts easily, unlike with Bitcoin. However, it is very dangerous, particularly in open access systems like public blockchains, because of the halting problem.
Bitcoin is only limited to storing and managing monetary transaction inputs and outputs. Meanwhile, we can use Ethereum to store any key => value
pair.
For example, we can manage ownership of a house using Ethereum.