In my previous article I talked about Rights and Obligations and how they apply to blockchains.
If you have the right to someone’s obligation there may be a risk that the other party can’t (or won’t) comply. This is called Counter-Party risk.
A simple example of counter-party risk is if you lend money to your nephew who lives on his parents couch playing computer games all day long, there is a risk he doesn’t pay it back.
Differences in counter-party risk explains the differences in prices for currencies and shares. It also explains why different levels of risk provides different interest rates, both for personal loans and for individual country’s bond rates.
There are whole industries of rating agencies that are supposed to analyze this risk and allow people to take this risk into account.
Counter party risk in personal banking
As mentioned in the previous article a bank account is defined by an agreement between you and the bank.
As a depositor your bank balance is an Asset (or a right) and for your bank it is a Liability (or an obligation).
Of the money the bank owes you is invested elsewhere. Such as in loans to individuals or more complex structures.
In the case of an individual loan. The right holder is now the bank and is an asset on their balance sheet and is a liability (or an obligation) for the borrower.
In theory as the depositor you are now affected by the counter party risk involved with your bank lending money to another individual.
Assuming the bank If they do fine and people trust what they are doing the whole system works well. When it doesn’t it is mainly because the bank does not handle it’s own counter party risk well.
In this case we start seeing bank runs as we saw recently in Kenya and on a larger scale in Cyprus. The depositors who were not able to access their funds, felt counter-party risk up front and personal.
We have only talked about the simple basic Rights and Obligations here. But in the traditional financial system the basic Right and Obligation between me and my bank is protected by many layers of other Rights and Obligations.
- Settlement Networks
- Correspondence banks
- Rating agencies
- Custodial services
- Central Banks
- National governments
We don’t see these directly but we are all affected by them. When there is a risk in the system itself and the interaction between all it’s parties, it is called a systemic risk.
The end result is that the safety of money in a personal savings account in Germany, can and has been affected by mortgage holders in Florida.
Counter-Party and Systemic Risks in Bitcoin
The counter party risk is thus the trust in the bitcoin system itself. Every now and again people loose trust in the bitcoin system and the price falls, then it proves yet again that it survived and the price rises. You could also call this systemic risk.
Another kind of Systemic Risk in Bitcoin are when exchanges and wallet services are hit by fraud and hackers. See what happened at MTGox as a great example. This caused the bitcoin price to plunge even though there was no problem with Bitcoin itself.
Counter-Party risk in Ethereum
If a smart contract is entirely determined by the rules of the code and has no concept of rights outside the Ethereum network, there is no Counter Party risk.
There is still the same Systemic Counter-Party risk that Bitcoin has. You could also argue that the success or failure of a large scale Smart Contract on Ethereum could affect the value of Ethereum, even though it strictly speaking is not directly related.
Counter-Party risk in Smart Contracts with external obligations
Any right being promised that requires someone to do something outside the Ethereum system has a counter-party risk. It is the same kind of counter-party risk as found in traditional financial instruments, only with fewer institutions to help enforce them.
If there is an external obligation there is an implied legal contract. It would be best to have some sort of human readable contract documenting the rules and even determining which venue (court, arbitration etc.) any disagreements should be dealt in.
I am trying to work out good mechanisms for doing this, but I think it would be a good idea to a human readable contract stored on IPFS with the IPFS hash stored in the Smart Contract.
Technical risk in Smart Contract
Smart Contracts are written by humans and like any other program things go wrong.
As programmers we learn from this, fix the code and deploy a new version.
This is much harder to do with Smart Contracts. They have to be specifically written to be able updateable. A lot of work in the Ethereum community is being spent on solving this problem.
Until this problem is solved, the best way of using smart contracts are for solving small isolated problems and having short lifetimes.
Fraud in Smart Contract
There is also a fraud risk in Smart Contracts. Someone can easily write bad code to defraud rights holders.
Vitalik points out this example of underhanded solidity where the programmer in plain site pays out all the funds to himself instead of the rights holders.
These are problems that we can mostly solve, but it will take a while for the tools to be created. Ether.Camp are doing possibly the greatest job in this space right now, through their contract auditing tools and their excellent Blockchain Paparazzi posts.
I would recommend for the time being only dealing with smart contracts after checking them out on Ether.Camp first.
Systemic risk in Smart Contracts
When we have many collections of rights and obligations tied up as in some of the more complex proposals for Smart Contracts, we start running into the same unintentional systemic risks as found in the traditional financial system.
Lets say your Smart Contract is well written, but it relies on external Smart Contracts to work. This means there is a greater risk involved.
This is fine and one of the great potentials of Ethereum is the idea of Smart Contracts interacting. It is just important to take these risks into consideration.
Small Composeable Contracts vs Jumbo Kitchen Sink contracts
Don’t try to do too much in a single contract. Make sure there is a mechanism for fairly replacing external contracts. Also make it sure to have a mechanism to be able to shut the contract down fairly and return funds. When I say fairly, it still needs to respect the rights and obligations of each party.
Instead of having one large contract managing many different kinds of Option contracts. It would be better to have each Option Contract be it’s own Smart Contract.