Blockchain und Smart Contracts
Autor: Simon Schnetzler
Datum: 26 October 2017
Note: This article was first published in Newsletter 2017/2
of Legis Rechtsanwälte AG.
Summary
Blockchain technology allows information to be recorded on a register in a forgery-proof manner. Such information may be values which be transferred solely based on instructions based on a code. Sometimes, in the context of blockchain this is also referred to as smart contracts. However, from a legal perspective such instructions could not be further from an actual contract in a legal sense. In fact, they lack the main features of any contract. If someone refers to smart contracts in the context of blockchain, this refers merely to an independent execution of a code or an agreement, for instance to transfer some values on the blockchain. In principle, it is comparable to a plain rusty vending machine in a train station. From a legal perspective it is interesting however that the basic principle of the prevailance of the parties will would allow the parties to come to an agreement in a language known only to the contracting parties. As a consequence, even an agreement written in a specific programming language may constitute an actual agreement and could be called a “contract”, as long as it represents the will of the involved parties.
Blockchain and especially the cryptocurrency Bitcoin are on everyone’s lips. Reason enough to take a closer look at the basic features of the technology and legal aspects related to this technology, especially smart contracts.
Concept
Blockchain refers to a method of recording data. As the name suggests, this data is recorded and stored in blocks. This data is then mapped into a much shorter key (the so-called hash) by means of a cryptographic algorithm (hash algorithm, in Bitcoin with the SHA-256 algorithm). It is a sequence of 64 characters consisting of numbers and letters. Whether a block contains one word or the entire content of the Swiss Federal Archives, the hash always remains the same length due to the algorithm. However, if only one character in the block is changed, the output hash changes completely. The data content can thus be signed with a hash, and changes are basically no longer possible (subject to a so-called hash collision) without the hash value changing.
The hash of a block is now placed in a new (subsequent) block, and together with the new data a new hash can be generated from it. This can be continued indefinitely and new blocks with their data can each be linked using the preceding hash. A change in the data in one block causes the hash in the next block to change, and thus also the hash in all subsequent blocks. Through this link, the blocks form an entire – unchangeable – chain, the blockchain.
Principle of a Blockchain
The immutability of data is not the only feature of the blockchain. Another central characteristic of blockchain technology is its redundancy; in this context, it is referred to as distributed ledger technology. The information in a blockchain is not stored in a central location, but is distributed across a large number of servers (known as nodes). These all have the same copy of the entire blockchain. This makes the system fail-safe and resistant to attacks on individual participants.
Whether and how a new block is accepted by the network depends on how the servers in the network reach consensus. In the Bitcoin network, for example, specifications are made on the hash value to be achieved. To reach these specifications and find the required hash value requires a lot of computing power. However, if a hash value is found that meets the specifications, the new block is “signed” and appended to the blockchain. Another method of finding consensus, for example, is that only a certain number of the network participants (e.g., elected participants) are allowed to append new blocks.
Blockchain technology also makes it possible to establish trust via the use of public and private keys. The system of public and private keys allows a private key to be assigned to a public key without any doubt. In the networks, identities are lent via this system and data is cryptographically securely assigned to a key holder.
Applications
The properties of the blockchain make it perfect for keeping track of registers with which value rights can be exchanged like money. Probably the best-known application is the cryptocurrency Bitcoin. There are now over 800 cryptocurrencies. The best-known currency, Bitcoin, represented a value of USD 100 billion at the end of October 2017. The fact that money is paid for such uncertificated securities depends to a large extent on trust in the existence and functionality of the system behind the cryptocurrency. It is comparable to trust in the existence and solvency of a state.
However, blockchain technology can be used not only to map value transactions in registers (be they transactions via cryptocurrencies or other values such as real property, shares, etc.), but also to run entire programs. In this context, the term smart contracts is often used.
Smart Contracts
As a rule, a smart contract is a program that issues instructions within a specified environment under specified conditions, whether for the transfer of money or for the execution of other commands that the environment enables to be executed. However, a first problem is already apparent here: as far as can be seen, there is no uniform and generally accepted definition. This naturally also complicates the discussion about smart contracts, especially in the legal context.
The link to blockchain technology in the case of smart contracts is that the program is mapped and executed (unchangeably) on the blockchain, with the corresponding possibility of exchanging services between the parties involved. The most prominent use case is the Etherum network, which enables the execution of smart contracts through its platform and using its own cryptocurrency, Ether. The prospects seem intoxicating: within seconds, contracts are executed with absolute certainty for the parties involved, the identity of the parties and the execution of their promises as certain as the amen in the church. The (justified) expectation is that transaction costs will be drastically reduced in the execution of contracts.
From a legal perspective, however, the question arises as to what extent such a program should have the qualifying characteristics of a contract. What is widely described as a smart contract often turns out on closer inspection to be a single aspect of a contract, a combination of terms, an execution modality, or simply the execution of a contract. In its given environment, a program is of course also capable of performing contract-typical services such as making a payment or other dispositional acts (changes in property registers, opening an electronic lock, etc.).
However, all this does not make the smart contract a contract. As is well known, a contract is characterized by the agreement of two parties on the relevant content. This agreement is the essence of every contract. However, the content of the expression of will would then be hidden in a code that is unreadable for ordinary people. One may now object that this is all the same, that legalese is also incomprehensible. Even if there is some truth in this, the step to the code as a language is much bigger for the party.
A central question is how and whether the parties can agree on the level of the code. For the time being, one solution could be to guarantee individual (programmed) areas in the “clear” language, but this would shift the agreement back to the level of the clear language and thus not conclude a “smart contract” in the sense of an agreement solely at the program level. This would mean that the content of the declaration of intent would not result from the code itself, but from the clear language, which would contradict the concept of a “pure” smart contract. However, should the code once be accepted by the parties as the authoritative language, this medium would then represent the will of the parties as an agreed, albeit atypical language, in application of the will theory under Art. 18 CO. An agreement on the program level would therefore be possible in principle.
Risks and Common Issues
In addition to system-inherent risks (a so-called 51% attack within the blockchain or a hash collision), errors, inadequacies or deliberate falsifications at the program level are also conceivable. In implementing the concept of smart contracts, undefined legal terms pose a particular challenge. Such terms regularly obtain their content in the concrete environment. In the case of warranties or non-performance, the focus is on the specific case, whereby a large amount of the information required for this is regularly likely to lie outside the smart contract environment. It is extremely difficult to anticipate and map this with a ready-made code. A smart contract would also have to establish a connection to the “chaotic” outside world if it wanted to penetrate such areas of everyday life.
Outlook
The central challenge of any contract, and this includes smart contracts in perfection, will continue to be to connect reality with the contract and make it coherent. A person may have a very specific idea of how they want something to be regulated. To implement this idea, to find the consensus of diverging interests, that is the great challenge of the author of a contract, may he be a lawyer or a developer. Nevertheless, with the increasing implementation of programs in contractual relationships, a further acceleration is to be expected.
In this sense: Please fasten your seatbelts, we are expecting turbulence.
Author: Simon Schnetzler
Many thanks to Ivo Graber (grabersoftware.ch) for technical support and review.