Abstract and 1. Introduction
Bitcoin and the Blockchain
2.1 The Origins
2.2 Bitcoin in a nutshell
2.3 Basic Concepts
Crypto Exchanges
Source of Value of crypto assets and Bootstrapping
Initial Coin Offerings
Airdrops
Ethereum
7.1 Proof-of-Stake based consensus in Ethereum
7.2 Smart Contracts
7.3 Tokens
7.4 Non-Fungible Tokens
Decentralized Finance and 8.1 MakerDAO
8.2 Uniswap
8.3 Taxable events in DeFi ecosystem
8.4 Maximal Extractable Value (MEV) on Ethereum
Decentralized Autonomous Organizations - DAOs
9.1 Legal Entity Status of DAOs
9.2 Taxation issues of DAOs
International Cooperation and Exchange of Information
10.1 FATF Standards on VAs and VASPs
10.2 Crypto-Asset Reporting Framework
10.3 Need for Global Public Digital Infrastructure
10.4 The Challenge of Anonymity Enhancing Crypto Assets
Conclusion and References
Bitcoin is mainly used to transfer value from one address to another in a secure and efficient manner. However, it does not offer many opportunities to build applications on top of the Bitcoin Blockchain as the Bitcoin script is not Turing complete[69] and does not allow user defined logic and customized functions to execute in transactions. As seen earlier, Bitcoin transactions also require the entire UTXO amount to be spent and do not provide control over the amount that can be withdrawn from a UTXO. Ethereum is different from Bitcoin as it provides above and beyond the capacity to transfer value from one address to another. Ethereum is mistakenly considered a crypto asset whereas it is a decentralized platform that is designed to run smart contracts, with Ether as its native asset which gives basis to its value.
\ As Ethereum’s language is Turing complete, it can act like a giant decentralized general-purpose computer which is censorship resistant and minimizes third party risks in transactions. To understand Ethereum it is important to imagine a blockchain as a state-machine where transactions change the state of the blockchain. A blockchain is essentially a "cryptographically secure transactional singleton machine with shared-state."[70]. This is depicted pictorially in Fig.28 [71]. The consensus mechanism essentially aims to make all the nodes/validators of the Ethereum network agree on the current state of the blockchain.
\
\ Ethereum is an account based blockchain unlike Bitcoin which is UTXO based. For a Bitcoin user the ‘Balance’ of his/her account is the sum of all the UTXOs for which he/she owns the private keys. In Ethereum, the accounts keep a track of the balance automatically. There are two types of accounts in Ethereum a) Externally Owned Accounts which have private keys and no code associated with them and b) Contract Accounts which do not have private keys and have code associated with them. Both these types of accounts have a Balance field associated with them, which shows the amount of Ether owned by these accounts. The state of the Ethereum Blockchain consists of the balance, data, code, and all other fields of all the accounts. The fields in a transaction on the Ethereum Blockchain are given in Table 4.
\ A contract account contains the code of the smart contract and it is controlled by the smart contract code. In an Ethereum transaction when the destination address is a contract address, the smart contract code is executed on the Ethereum Virtual Machine. The smart contract function specified in the data payload is called, if no function is specified, a fallback function is called.
\
\ An Ethereum block consists of transactions which i) change the balance associated with EOA and smart contract accounts ii) change data stored in a smart contract or iii) create, destroy(deprecated) or change the code of a smart contract. Each transaction affects the data stored in contracts in every single full node on the Ethereum network. Thus, Ethereum can be imagined as a giant decentralized computer where users can run their code and store data after paying the fee for the transaction. However, these computations are mainly used for basic functions like changing the balance and ownership of tokens held by the smart contract and validating signatures instead of storing large files or executing complex programs.
\ Ethereum also has a much smaller block time of 12 seconds as opposed to ~10 Minutes in Bitcoin. It also has much lower fees as compared to the Bitcoin Blockchain. The fee to be paid for any transaction in Ethereum is called gas. To complete a transaction, the user needs to provide appropriate amount of gas depending on the size and nature of the transaction. Simple transactions to transfer Ether from one account to another do not cost as much gas as breeding CryptoKitties[73] using a smart contract. The user must provide adequate gas for the entire transaction to go through, if the entire gas is not used for the transaction, the excess gas is refunded. However, if the gas amount is not enough for the entire transaction to take place, the entire gas amount is consumed and forfeited.
\ Gas also protects the Ethereum Blockchain from infinite loops as even if a malicious user tries to execute an infinite loop on the Ethereum EVM it would stop after the transaction runs out of gas. Any contract execution in Ethereum must be triggered by an externally owned account. The triggered transaction can in-turn trigger further transactions on other contract accounts. The triggered transactions are executed atomically, i.e., either the full transaction involving all the intended smart contracts is executed or all the changes made by the incomplete transaction are reversed. Ethereum also uses digital signature and hash functions like Bitcoin. However, Ethereum uses the KECCAK-256 algorithm and an Ethereum address is a 42-character hexadecimal address derived from the last 20 bytes of the public key. The signed transactions are sent to a mempool, thereafter the nodes verify and propagate the transactions using flooding.
\
:::info Author:
(1) Arindam Misra.
:::
:::info This paper is available on arxiv under CC BY 4.0 DEED license.
:::
In Computer Science a Turing Complete system is one that can mimic a Turing Machine. A Turing Machine is a theoretical machine with a memory tape of infinite length which can calculate or compute anything for which an algorithm exists.
\
https://docs.ethhub.io/ethereum-roadmap/ethereum-2.0/stateless-clients/
\
https://www.preethikasireddy.com/post/how-does-ethereum-work-anyway
\
Source: https://uploads-ssl.webflow.com/5ddd80927946cdaa0e71d607/5ddd80927946cdd1dd71d6f1_howdoes-ethereum-work-anyway-2.png
\
https://www.cryptokitties.co/about
\