Table of Links
-
Bitcoin and the Blockchain
-
Decentralized Finance and 8.1 MakerDAO
-
Decentralized Autonomous Organizations - DAOs
-
International Cooperation and Exchange of Information
10.1 FATF Standards on VAs and VASPs
10.2 Crypto-Asset Reporting Framework
7.2 Smart Contracts
Smart contracts are agreements written in code which are automatically executed by the Ethereum Blockchain when certain conditions are met. For example, few individuals might pool Ether in a smart contract for organizing a fair lottery and making a pay-out to the winner without relying on any central authority for trust and fairness. Another analogy is that of a vending machine which delivers the desired product and the residual amount, if any. It follows a specific algorithm for delivering the item automatically.
These contracts try to eliminate third party risk as once crypto assets are kept in the custody of the smart contract, they can only be withdrawn or released when the contract conditions are met. The smart contracts contain code which has well defined functions which execute the contract. Invocation of functions can alter the balance of the contract by depositing or releasing Ether to or from the contract, change the internal contract state like assign a token like Tether (USDT) from one account to another and alter the data stored in the contract. Smart contracts are used to perform important functions in the Ethereum Blockchain like
i) Authenticating the identity of the user invoking the transaction with the smart contract
ii) Store and update the data intended to be stored by users. For example, ownership information of fungible and non-fungible tokens, maximum supply of a token etc.
iii) Provide trust as a third party governed solely by terms of an agreement subjected to public scrutiny by users.
iv) Expose functions to be invoked by other contracts
The transaction that creates a smart contract is special transaction as it has a special destination address called a zero address. The smart contracts once created cannot be altered ever in the Ethereum Blockchain. Only if a smart contract has a self-destruction function, it could be destroyed earlier, leaving a blank Ethereum account and destruction of the storage and state of that smart contract, but this function has been deprecated in the later releases of Ethereum.
From the discussion above it can be seen that a smart contract is essentially code running on the Ethereum Virtual Machine which executes when certain conditions are met. There are multiple viewpoints on the legality and enforceability of a smart contract and many argue that smart contracts are neither smart nor contracts (Durovic, 2021). Levi & Lipton (2018) argue that smart contracts can be categorized into code-only smart contracts and ancillary smart contracts which are essentially vehicles to effectuate the provisions of the traditional text-based contracts. In common law, a contract is a “an agreement between private parties creating mutual obligations enforceable by law. The basic elements required for the agreement to be a legally enforceable contract are: mutual assent, expressed by a valid offer and acceptance; adequate consideration; capacity; and legality” [86]. This definition can be satisfied by ancillary smart contracts. As agreements need not always be in writing to be enforced[87], code-only smart contracts might also be enforceable in some jurisdictions. Just like a user using the vending machine sees the price displayed for each item in the display and acts according to the instructions written on the vending machine, he/she gains certain implied rights and a contract is formed without any written terms, conditions and obligations.
Levi & Lipton (2018) argue that the Uniform Electronic Transactions Act (UETA) in the USA provides for records created by computer programs, and electronic signatures the same legal effect as written documents. UETA states that an Electronic Agent is “capable within the parameters of its programming, of initiating, responding or interacting with other parties or their electronic agents once it has been activated by a party, without further attention of that party,”. The federal Electronic Signatures Recording Act (E-Sign Act) in the US provides that a contract or other record relating to a transaction “may not be denied legal effect, validity, or enforceability solely because its formation, creation, or delivery involved the action of one or more electronic agents so long as the action of any such electronic agent is legally attributable to the person to be bound.”[88].
Article 9 of the EU Directive on Electronic Commerce 2000 states that “Member States shall ensure that their legal system allows contracts to be concluded by electronic means. Member States shall in particular ensure that the legal requirements applicable to the contractual process neither create obstacles for the use of electronic contracts nor result in such contracts being deprived of legal effectiveness and validity on account of their having been made by electronic means”. Sates like Arizona89 and Nevada90 have amended their UETA to include blockchain and smart contracts which can have far reaching implications on their legal status and enforceability. However, most of the users who interact with a smart contract would have no means to verify what the code actually does and pre-emptively find out the vulnerabilities if any, this may be treated as a case where the user was unaware of the terms of agreement of the contract and the smart contract might not be enforceable.
7.2.1 Issue with code-only smart contracts
Code-only smart contracts might also face challenges due to a fundamental issue in Computer Science called the ‘halting problem.’ The halting problem refers to the challenge of determining whether a given computer program, when provided with input, will eventually terminate, or run indefinitely. It is proven to be undecidable, indicating that there is no universal algorithm capable of solving the halting problem for all combinations of programs and inputs. For code-only smart contracts the undecidability of the halting problem poses challenges, as the user of the smart contract has no means to verify the deterministic execution of the smart contract code. If a party engages with a smart contract without understanding its code or implications, it may call into question whether true consent was given. The legality and other aspects of smart contracts are an active area of research and more judicial amendments and court rulings are expected to bring more clarity on the legality and enforceability of smart contracts. This may also have profound implications for tax treatment of various transactions involving smart contracts.
To prove that the halting problem is undecidable, we can use a proof by contradiction. We assume that there exists a Turing machine 𝐻 that can decide the halting problem, and then we derive a contradiction.
7.3 Tokens
Smart contracts enable creation of tokens which may represent a wide variety of tangibles and intangibles. There can be different types of tokens like:
i) Payment Tokens: These are native assets of the blockchain, also known as coins, which are used for making payments. For example, Ether, Bitcoin and Monero
ii) Utility Tokens: These tokens provide access to a specific product or service on the blockchain. For example, the WRX or the WazirX token is used to make payments for transaction fee on the WazirX crypto exchange and sometimes enables users to get a discount on the transaction fee.
iii) Security Token: These tokens derive their value from external assets like stocks and bonds. For example, the tZero token which represents tokenized assets like stocks and bonds.
iv) Governance Token: These tokens provide voting rights to the holders regarding various proposals for changes in a Decentralized Application or a Decentralized Autonomous Organization. For example, The Maker token (MKR) allows holders to vote on decisions regarding the decentralized lending platform Maker.
v) Non-Fungible Tokens: These tokens represent a collectible or something unique which is not interchangeable with any other token. For example, the Bored Ape Yacht Club[92] NFTs with each ape being unique.
The tokens mentioned in examples above cannot be classified strictly into the categories. There are tokens which have multiple characteristics and can be categorized into more than one category. For example, the MKR token is a utility token in the Maker ecosystem as well as its governance token which can be used for initiating and voting on proposals. It can also be exchanged for other crypto assets and purchased on crypto exchanges. This makes the regulation of these tokens complicated. As security tokens are essentially tokenized assets like securities and bonds, they are regulated by securities market regulators like the SEC. In some instances, like in case of Ripple (XRP), the regulators may treat the issued/minted tokens as securities, giving rise to litigation[93].
From the discussion above it can be observed that there are certain tokens which purportedly represent real underlying assets like real estate, securities, US Dollars and Gold. The transfer of these assets on the blockchain may not mitigate the counterparty risk in a real-world environment. For example, a user on Ethereum Blockchain may have no means to authenticate the ownership of a corporation’s equity for a particular Ethereum address without involving the real-world custodian of listed securities, posing a counter-party risk to the transaction. On the other hand, ownership of tokens like WRX, MKR can be cryptographically proven on the blockchain and their transfer on the blockchain does not involve any counterparty risk.
7.3.1 ERC-20 Token Standard
The ERC-20 is an Ethereum Blockchain standard for fungible tokens. Many tokens are based on the ERC-20 standard. An ERC-20 token smart contract should have some mandatory functions like those for defining the total supply of tokens, transfer of tokens from one account to another, functions authorizing certain accounts to transfer tokens from authorizing accounts etc. Some examples of popular ERC-20 tokens are USDT, DAI and MKR which are discussed in detail in later sections. Anyone can create their own ERC-20 token. However, to make the token popular and widely acceptable, bootstrapping through incentives like ICOs and airdrops is required, which may be taxable events for the users as well as creators.
The USDT is a so-called stablecoin that is told to be pegged to the US Dollar. It is an asset backed ERC20 token which enables the owner to exchange 1 USDT for 1 USD. The total supply of the USDT tokens on Ethereum is controlled using the USDT smart contract on the Ethereum Blockchain (Fig. 35). Whenever a request for exchanging a Dollar with USDT is made, the smart contract issues new USDT tokens to the Ethereum account with corresponding addition on the asset side. On the other hand, when a user converts USDT to USD or an equivalent asset, USDT tokens are burnt and equivalent assets held are released. As the so-called stablecoin is pegged to USD it can be used to buy or sell other crypto assets using a dollar-pegged stablecoin.
Author:
(1) Arindam Misra.
This paper is
-
Lumhoo v. Home Depot USA, Inc., 229 F. Supp. 2d 121, 160 (E.D.N.Y. 2002)
-
15 U.S.C. § 7001(h).
-
https://etherscan.io/address/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d