What is a Blockchain:
Blockchains are digital ledgers maintained by a network of computers. Anybody with internet access can set up an account to use a blockchain. The account is comprised of a public and private key. The public key can be analogized to an email account where the private key is like the password. Using the account allows to owner to send and receive tokens (such as bitcoin) and other information.
All the transactions for a given cryptocurrency are recorded to its blockchain. This list of transactions is stored redundantly on various computers within the network. These computers maintain a consensus among each other regarding the correct data in the blockchain. This makes the network resistant to tampering or damage. Whenever a discrepancy is detected in the blockchain, the corrupted versions are updated to the consensus version of the blockchain. So long as one uncorrupted copy of the blockchain exists, the network has access to the ledger and transactions can continue.
Because of the architecture of blockchains the entire database is stored on all the computers in the network. For major cryptocurrencies, this means the data is maintained by thousands of computers and therefore the data cannot be changed easily changed or lost.
What is a Smart Contract:
Blockchains can store and process small computer programs. These programs can create transactions on the blockchain and are often referred to as smart contracts. Smart contracts essentially allow part or all of a contractual agreement to be written in computer code. This code can execute automatically based on blockchain transactions or based on data imported from the rest of the world through ‘oracles’. The execution of the smart contract serves to implement some or all of the terms of the contract.
Although smart contracts exist for the bitcoin blockchain, the Ethereum blockchain was first to enable Turing complete smart contracts through its associated programming language, Solidity. Solidity enables anyone with the requisite skills to store and run smart contracts on the Ethereum blockchain. When a smart contract is run, all the computers on the network run the code. This simultaneous execution makes the outcome of the code and the code itself resilient and unchangeable, just like other data on the blockchain.
The smart contract could represent the whole agreement, or only part of it, with the rest of the contract being written in a natural language. The written, natural language, agreement would then reference and incorporate the smart contract into the larger contractual arrangement.
Consider the example of a smart contract which enables a simple auction on the Ethereum blockchain. The interested parties could rely on the smart contract to manage the sale of the item instead of using an auction house. The smart contract would facilitate the bidding and identify the highest bidder. After bidding, the smart contract could automatically transfer the funds. However, the actual mailing of the auctioned good would remain manual. This example illustrates both the used and the limits of a smart contract. The payment obligations are easily achieved programmatically, but a physical process remains. Furthermore, should the seller not send the product, the other party may need to turn to traditional legal remedies.
Statute of Frauds Analysis:
The statute of frauds, requires that (i) agreements relating to executorship, suretyship, marriage, and performance over one year; (ii) agreements for the transfer of an interest in land; and (iii) agreements for the sale of goods over $500 be memorialized in writing and signed.
The writing must state all essential terms, including identifying the parties and the amounts owed. The writing can take a variety of forms. In Bibb v. Allen, 149 U.S. 481 (1893), the Court accepted that the contract need not be in natural language. Specifically, the Court found that a contract assented to in the Shepperson Cotton Code, a telegraphic cipher code, was binding. The Cotton Code was merely the language used, the important issue for the court was whether the parties knew what they were agreeing to. If the parties understand what they are agreeing to, it is not relevant that all or part of the contract is written in Solidity, or another programming language. Indeed, a computer program is often more definite than traditional legal prose.
With regards to smart contracts, the statute of frauds signature requirement may be satisfied by the usage of private keys. Transactions to arrange and run smart contracts require the parties to sign transactions with their private keys. The private keys act to verify the parties’ identities. The key inquiry is whether the signing parties did so with an intention to authenticate the writing. Hence, if the parties used the private keys to sign the smart contract with the intent to authenticate, the private key should satisfy the statute of frauds signature requirement.
Supporting this view, consider Lamle v. Mattel, 394 F.3d 1355 (Fed. Cir. 2005). The Federal Circuit held that an email and typed name could satisfy the statute of frauds. The court looked to precedential holdings which stated that names at the end of telegrams are sufficient under the Statute of Frauds. The court then established that there is no important difference between a typewritten signature on a telegram and an email. Similarly, there is likely no meaningful difference between entering a private key with intention to authenticate and an actual signature.
Further, the Electronic Signatures Recording Act (“E-Sign Act”), and state laws modeled on the Uniform Electronic Transactions Act (“UETA”), both indicate that signatures, contracts, and other records cannot be denied legal effect solely because they are in electronic form. These statues further support the validity of the smart contract and the private key signatures under the statute of frauds.
As such, a smart contract can likely pass a statute of frauds inquiry because the use of private keys to authenticate is likely to satisfy signature requirements, and if the smart contract’s terms are understood by the parties’, it is immaterial that it is written in a code language.