<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
  <id>tag:blog.stakeventures.com,2005:/articles</id>
  <link rel="alternate" type="text/html" href="https://blog.stakeventures.com"/>
  <link rel="self" type="application/atom+xml" href="https://blog.stakeventures.com/articles.atom"/>
  <title>Stake Ventures Inc.</title>
  <updated>2016-06-29T17:40:56Z</updated>
  <entry>
    <id>tag:blog.stakeventures.com,2005:Article/354</id>
    <published>2016-06-29T17:40:56Z</published>
    <updated>2016-06-30T02:38:36Z</updated>
    <link rel="alternate" type="text/html" href="https://blog.stakeventures.com/articles/smart-contract-terms"/>
    <title>Simple Convention for Human Readable Terms for Smart Contracts</title>
    <content type="html">&lt;p&gt;&lt;img src="https://stakeventures.imgix.net/robothandshake.gif" alt="Smart Contract Acceptance"&gt;&lt;/p&gt;

&lt;p&gt;In the Ethereum world &amp;quot;Smart Contracts&amp;quot; refer to code. On its own a &lt;a href="https://blog.stakeventures.com/articles/how-to-make-sure-a-smart-contract-is-also-a-contract"&gt;Smart Contract doesn&amp;#39;t necessarily create a legally binding contract&lt;/a&gt;. A Contract is neither code, nor a PDF file nor a printed signed document. &lt;/p&gt;

&lt;p&gt;A legally enforceable contract describes a (1) relationship between 2 or more parties (2) with &lt;a href="https://blog.stakeventures.com/articles/rights-and-obligations-in-blockchains"&gt;rights and obligations&lt;/a&gt; attached which (3) is enforceable by a governmental authority.&lt;/p&gt;

&lt;p&gt;A contract can be written down on paper or (sometimes) be based on a verbal understanding. Verbal understandings as well as Smart Contracts can be problematic because they may not include all of the terms necessary to address future potential problems.&lt;/p&gt;

&lt;p&gt;A human readable contract document is particularly useful because it can describe the relationship in language that the parties understand. It also allow gives non-parties such as external dispute resolution systems (judges, arbitrators, reddit etc.)  a roadmap of the expected relationship between the parties. This can used afterwards to clean things up if something bad happens.&lt;/p&gt;

&lt;p&gt;Smart contracts are particularly useful when they are able to automate components of human readable contracts and, in doing so, avoiding conflicts that human language and human agreements can sometimes cause. &lt;/p&gt;

&lt;p&gt;Software code isn&amp;#39;t perfect, however. Indeed, as we’ve seen recently, Smart Contracts can suffer from many of the same problems that verbal contracts have, because smart contract code doesn&amp;#39;t include all of the terms that traditional written contracts might include (indemnity, termination, are a few examples).&lt;/p&gt;
&lt;p&gt;&lt;em&gt;“But Pelle, Smart Contracts contain all the rules of the contract.”&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;If we look at Smart Contracts as just code that may be correct. However if it is intended to serve as a legally enforceable contract, the expectations about it may often be more important than what is written down and in code.&lt;/p&gt;

&lt;p&gt;One limitation Smart Contracts currently face is their inability to monitor and enforce off-chain obligations. But it can’t express what happens off chain. I expected 10 sacks of Coffee delivered on August 1st and you didn&amp;#39;t deliver. It also can’t express every single possible failure case in the future, such as unexpected bugs or regulatory attack.&lt;/p&gt;

&lt;h3&gt;Scope: Provide a simple technical foundation that business and legal minds can build on&lt;/h3&gt;

&lt;p&gt;Solidity and Ethereum need a framework that allow lawyers, business people and developers to work together to make it easier to create legally enforceable Smart Contracts.&lt;/p&gt;

&lt;p&gt;To that end, I&amp;#39;ve created this proposal and example code that begins to allow this, with the specific aim of helping Solidity and Ethereum developers do what we’re good at and let lawyers and business people do what they are good at.&lt;/p&gt;

&lt;p&gt;This proposal can easily be added to any new Solidity smart contract. It can be done at various levels. At the minimum add the first step.&lt;/p&gt;

&lt;h3&gt;1. Upload your terms to IPFS and store the hash at a known place&lt;/h3&gt;

&lt;p&gt;This is simply adding the convention of adding a single line of code to your Solidity contract:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;contract FancyDAO {
  bytes32 public terms = 0x28678b42f7fcf403009f1805e4e...;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Now wallets and other third party code can always extract the terms for your Smart Contract.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://ipfs.io/"&gt;IPFS&lt;/a&gt; is a distributed protocol allowing you to store any static data. It is a great complement to Ethereum.&lt;/p&gt;

&lt;p&gt;For more advanced functionality you can use my new Solidity library &lt;a href="http://github.com/pelle/solidterms"&gt;SolidTerms&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;2. Add Acceptance&lt;/h3&gt;

&lt;p&gt;In many cases publishing the terms alone is fine. You maybe be able to get away with saying something like: “Sending Ether to this smart contract means you’ve accepted the terms”.&lt;/p&gt;

&lt;p&gt;But particular when dealing with money it is often a good idea to have a firm procedure of recording acceptance of the contract.&lt;/p&gt;

&lt;p&gt;To avoid you writing your own I have written this simple Abstract Contract &lt;a href="https://github.com/pelle/solidterms/blob/master/contracts/Acceptable.sol"&gt;Acceptable&lt;/a&gt; that implements this.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;import &amp;quot;Acceptable.sol&amp;quot;;
contract FancyDAO is Acceptable {
 bytes32 public terms = 0x28678b42f7fcf403009f1805e4e...;

 function split(...) hasAccepted public {
   ...
 }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This adds an &lt;code&gt;accepted&lt;/code&gt; mapping to the contract and a public function called &lt;code&gt;accept(bytes32 _terms)&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Once a user through their wallet calls &lt;code&gt;accept&lt;/code&gt; it is recorded on the blockchain.&lt;/p&gt;

&lt;p&gt;The library also adds a nice little modifier called &lt;code&gt;hasAccepted&lt;/code&gt; that you can use on your own functions. This requires acceptance to be able to call the given function.&lt;/p&gt;

&lt;p&gt;Did you notice that the &lt;code&gt;accept(bytes32 _terms)&lt;/code&gt; function takes a parameter? It requires the user to present the same IPFS hash of the terms. This is primarily to encourage the wallet user interface to actually load and show the user the terms.&lt;/p&gt;

&lt;h3&gt;3. Add change management&lt;/h3&gt;

&lt;p&gt;Sometimes contracts need to change and the terms behind them as well.&lt;/p&gt;

&lt;p&gt;You could write your own, but if we have a common interface, third party tools can be created allowing non technical people to update the terms in a simple transparent manner.&lt;/p&gt;

&lt;p&gt;I have a simple abstract contract here &lt;a href="https://github.com/pelle/solidterms/blob/master/contracts/Changeable.sol"&gt;Changeable&lt;/a&gt; that will allow you to add this with very little code to your own Smart Contracts&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;import &amp;quot;Acceptable.sol&amp;quot;;
contract FancyDAO is Acceptable, Changeable {
 bytes32 public terms = 0x28678b42f7fcf403009f1805e4e...;

 // Override this method to decide who can change therms
 function canProposeChange() constant returns(bool) {
   return (msg.sender == offerer );
 }
// Adds the following function to be called from a GUI with changed terms
// function proposeChange(bytes32 _terms) {};

// Now you can ensure that the function caller has always accepted the latest version
function split(...) hasAcceptedLatest public {
   ...
 }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;4. Standard Events&lt;/h3&gt;

&lt;p&gt;It would be useful to have a set of standard events that auditing tools and wallets can listen to.&lt;/p&gt;

&lt;p&gt;Here are the 3 most basic events I think are necessary:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;// Event created when agreement is reached (active)
event AgreementReached (
  bytes32 indexed terms
);
// Event to be created when terms are accepted by a single party
event TermsAccepted(
  address indexed accepter,
  bytes32 indexed terms
);
// Event to be created if Terms are changed
event TermsChanged(
  address indexed changer,
  bytes32 indexed terms
);
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Example implementations&lt;/h3&gt;

&lt;p&gt;Here are 3 more complete examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/pelle/solidterms/blob/master/contracts/TermsOfService.sol"&gt;&lt;code&gt;TermsOfService&lt;/code&gt;&lt;/a&gt; A simple complete Terms of Service implementation that can be used in your own Smart Contracts&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pelle/solidterms/blob/master/contracts/SimpleAgreement.sol"&gt;&lt;code&gt;SimpleAgreement&lt;/code&gt;&lt;/a&gt; An example of a 2 party negotiable contract. An offerer invites the invitee and they both can change the contract until they both accept it. This could be used as the basis for a sales or consulting contract.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pelle/solidterms/blob/master/contracts/RicardoCoin.sol"&gt;&lt;code&gt;RicardoCoin&lt;/code&gt;&lt;/a&gt; Is an example of adding the &lt;code&gt;TermsOfService&lt;/code&gt; contract to a really simple token issuance contract.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Isn’t this a Ricardian Contract?&lt;/h3&gt;

&lt;p&gt;Well I’m glad you asked. This is indeed my interpretation of a &lt;a href="http://webfunds.org/guide/ricardian.html"&gt;Ricardian Contract&lt;/a&gt;. I have another article drafted on why Ricardian Contracts are awesome. So watch this space.&lt;/p&gt;

&lt;h3&gt;Format of Terms&lt;/h3&gt;

&lt;p&gt;Lawyers would probably instinctively post a PDF file of the terms to IPFS and use that. I would recommend against that as it would be useful that they can easily be viewed in a mobile app or web browser. So I would personally recommend plain text, markdown or html.&lt;/p&gt;

&lt;p&gt;An IPFS hash can actually point to a folder. So you could have multiple files as part of your terms.&lt;/p&gt;

&lt;h3&gt;Technical note regarding storing IPFS hashes in Smart Contracts&lt;/h3&gt;

&lt;p&gt;IPFS hashes are 34 byte Base58 encoded MultiHash strings. We can easily store 34 bytes in a dynamic byte array in Ethereum, but it is more efficient to store them as a fixed &lt;code&gt;byte32&lt;/code&gt; value. &lt;/p&gt;

&lt;p&gt;There may be many of these both in transaction calls, contract storage and events. So I think we might as well save the gas
The first 2 bytes just tell MultiHash what kind of algorithm it is.&lt;/p&gt;

&lt;p&gt;In javascript you can convert the hex back to IPFS like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;var bs58 = require(&amp;#39;bs58&amp;#39;);
function hex2ipfshash(hash) {
 return bs58.encode(new Buffer(&amp;quot;1220&amp;quot; + hash.slice(2), &amp;#39;hex&amp;#39;))
}

function ipfs2hex(ipfshash) {
 return &amp;quot;0x&amp;quot; + new Buffer(bs58.decode(ipfshash).slice(2)).toString(&amp;#39;hex&amp;#39;);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;I will shortly release a small javascript library for wallet and dApp developers to use. This will include the above functions as well as extract the full terms of any SmartContract that supports the basic conventions outlined above.&lt;/p&gt;

&lt;p&gt;Thanks to &lt;a href="https://twitter.com/palleylaw"&gt;Stephen Palley&lt;/a&gt; and &lt;a href="http://financialcryptography.com/"&gt;Ian Grigg&lt;/a&gt; for reviewing this. Neither my writing nor their review should be considered legal advice.&lt;/p&gt;

&lt;p&gt;Robot handshake image copyright: &lt;a href='http://www.123rf.com/profile_alperium'&gt;alperium / 123RF Stock Photo&lt;/a&gt;&lt;/p&gt;
</content>
    <author>
      <name>Pelle Braendgaard</name>
    </author>
  </entry>
  <entry>
    <id>tag:blog.stakeventures.com,2005:Article/353</id>
    <published>2016-06-17T18:01:13Z</published>
    <updated>2016-06-18T00:44:06Z</updated>
    <link rel="alternate" type="text/html" href="https://blog.stakeventures.com/articles/piercing-ethereums-veil"/>
    <title>Crisis based forking can pierce the Decentralized Veil of Ethereum</title>
    <content type="html">&lt;p&gt;A large &lt;a href="https://blog.ethereum.org/2016/06/17/critical-update-re-dao-vulnerability/"&gt;vulnerability has been found in The DAO&lt;/a&gt; and someone is at the time of writing funneling all it’s Ether out.&lt;/p&gt;

&lt;p&gt;A proposal has been made for the various Ethereum implementations to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a Soft Fork to freeze funds in any DAO sharing the same code as The DAO. This would stop funds being released while giving the community time to correctly implement the next step&lt;/li&gt;
&lt;li&gt;A hard fork allowing people to get their funds out&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;On the sound of it to most smart compassionate people in particular programmers, this sounds like a good solution. However it introduces certain major risks:&lt;/p&gt;
&lt;h3&gt;Pierces the decentralized veil of Ethereum&lt;/h3&gt;

&lt;p&gt;What does this mean? A corporation is a legal fiction, separated from its share holders from a legal liability standpoint. This separation is known in law as the corporate veil. &lt;/p&gt;

&lt;p&gt;If shareholders don’t follow official governance procedures and treat the companies property as their own they can lose the legal protection of this veil. This is known as &lt;a href="https://en.wikipedia.org/wiki/Piercing_the_corporate_veil"&gt;Piercing the corporate veil&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Ethereum and Bitcoin have their own veil protecting the developers and promoters. You could call it the “veil of decentralization”. Core developers can not be held legally liable through this, since the code is run by independent miners and written by multiple code implementations.&lt;/p&gt;

&lt;p&gt;These same developers are now coming up with and promoting a fix that is unrelated to the protocol itself. By doing so they are unintentionally opening the possibility of “The veil of Decentralization” being pierced.&lt;/p&gt;

&lt;p&gt;In other words they are setting precedence for future interventions and even more worrying introducing personal liability for themselves in these cases in the future.&lt;/p&gt;

&lt;p&gt;Where before there was plausible deniability if someone lost funds, now they have said we have the ability to act if there is enough pressure.&lt;/p&gt;

&lt;p&gt;For a developer this may not make sense, but this is exactly the kind of hole a lawyer will go for in the future.&lt;/p&gt;

&lt;h3&gt;Converts a large but limited liability by investors in to a unlimited liability for Ethereum core team&lt;/h3&gt;

&lt;p&gt;As it stands the current legal liability is primarily on the investors. Securities lawyers and regulators would have a pretty good case in court that the promoters of The DAO (Slock.it UG) and it&amp;#39;s principals are also liable.&lt;/p&gt;

&lt;p&gt;Creating this takes the pressure off of those 2, but adds a large potential future liability onto the Ethereum Foundation and Vitalik Buterin instead. Which is a shame as they are only trying to help out the investors.&lt;/p&gt;

&lt;h3&gt;Turning Ethereum into a semi-permissioned ledger&lt;/h3&gt;

&lt;p&gt;No, this does not mean we need to show ID to be able to have an Ethereum account. It does mean that there is precedence for blacklisting code and accounts in the future.&lt;/p&gt;

&lt;p&gt;Now we have shown that we can blacklist code we have unintentionally opened the flood gate.&lt;/p&gt;

&lt;h3&gt;Moral Hazard&lt;/h3&gt;

&lt;p&gt;The DAO’s developers and investors were warned repeatedly of the risks of releasing a large piece of code without some sort of investment cap.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.reddit.com/r/ethereum/comments/4h4p24/the_dao_this_is_not_being_marketed_properly/"&gt;The DAO: This is not being marketed properly, nobody understands what this is&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.reddit.com/r/ethereum/comments/4gtq3a/slockit_ug_commits_to_the_dao/"&gt;Comment&amp;#39;s to Stephan Tual&amp;#39;s post&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.reddit.com/r/ethereum/comments/4goyix/the_dao_a_rebel_without_a_cause/"&gt;The DAO a rebel without a cause&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I wrote the following a couple weeks before the launch: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It may seem clever to call it &amp;quot;The DAO&amp;quot;. Yet it also takes the fate of &amp;quot;The DAO&amp;quot; and forever more taints any future DAO&amp;#39;s with it. Let&amp;#39;s say there is flaw in the code and all funds invested are lost for ever.
Or a group of hackers get a bunch of naive investors investing via data fields on exchanges to sign over control to them. Or any number of other possible failures.
Now the word &amp;quot;DAO&amp;quot; will forever be tainted with this failure.
This is not just academic. Bitcoin was tainted by association with MTGox. Just imagine if MTGox had been called &amp;quot;The Bitcoin Company&amp;quot;? They would have been free to call it that. But it would have done even more harm to bitcoin that it has. &lt;a href="https://www.reddit.com/r/ethereum/comments/4goyix/the_dao_a_rebel_without_a_cause/"&gt;The DAO a Rebel Without a Cause&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To which Stephan Tual from Slock.it wrote:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Unencumbered by a centralized control structure and at the center of arguably the most exciting technology development of the decade, The DAO will initially set its sights on the Blockchain + IoT economy but is ultimately free to engage on any product or services it may desire. With such powerful attributes, it’s no wonder this DAO is called The DAO. &lt;a href="https://blog.slock.it/slock-it-ug-commits-to-the-dao-f11676e3cc01#.3jjsc6lqn"&gt;Slock.it UG commits to “The DAO”&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ironically same Stephan Tual is begging for what is really a centralized fix.&lt;/p&gt;

&lt;p&gt;The arrogance of both was very similar to the arrogance of wall street before the crash in 2007.&lt;/p&gt;

&lt;p&gt;A fork to protect them is very similar to a bank bailout. It creates Moral Hazard.&lt;/p&gt;

&lt;p&gt;MTGox taught the Bitcoin world a lot of lessons. These lessons were important to be had by individual investors as well.&lt;/p&gt;

&lt;p&gt;If the promoters and investors are able to go unscathed away, it is very likely that none of them have learned from this experience.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.fooledbyrandomness.com"&gt;Nassim Taleb&lt;/a&gt; argues in &lt;a href="http://www.amazon.com/gp/product/0812979680/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0812979680&amp;linkCode=as2&amp;tag=nassimtalebsfavo"&gt;Anti-Fragile&lt;/a&gt; that pretty much all that happened up to the Wall Street crash was due to such lack of Skin in the Game.&lt;/p&gt;
</content>
    <author>
      <name>Pelle Braendgaard</name>
    </author>
  </entry>
  <entry>
    <id>tag:blog.stakeventures.com,2005:Article/352</id>
    <published>2016-05-17T15:42:58Z</published>
    <updated>2016-05-17T16:21:47Z</updated>
    <link rel="alternate" type="text/html" href="https://blog.stakeventures.com/articles/decision-making-in-daos-voting-or-buying"/>
    <title>Decision making in DAOs through voting or buying</title>
    <content type="html">&lt;p&gt;&lt;img src="http://stakeventures.imgix.net/townmeeting.jpg" alt="New England Town meeting"&gt;&lt;/p&gt;

&lt;p&gt;Direct voting does not work well outside small groups that know each other. Think New England town meetings, a group of business partners.&lt;/p&gt;

&lt;p&gt;The traditional way to get around this in a large group is through representative democracy. Once in a while we vote in a small group of people that can vote between themselves. &lt;/p&gt;
&lt;h2&gt;Shareholder votes are not important in traditional companies&lt;/h2&gt;

&lt;p&gt;In traditional companies this normally works by the shareholders just accepting the current board or insiders proposals for board members. Actually it probably happens mostly through inaction by shareholders. Every now and again you will get share holder fight, but it’s the exception not the rule.&lt;/p&gt;

&lt;p&gt;Most shareholders are quite happy with this, because they actually made their original decision when they bought the share in the first place. In public markets the real voting happens when people buy or sell the shares.&lt;/p&gt;

&lt;p&gt;You can look at shareholder voting as a final safety for investors, allowing them to kick out the board. Even though it rarely happens.&lt;/p&gt;

&lt;h2&gt;Direct democracy in “The DAO” with 18,191 anonymous voters&lt;/h2&gt;

&lt;p&gt;Now in “The DAO” we have &lt;a href="https://daohub.org" title="The DAO"&gt;an experiment containing at the time of writing $130M worth of Ethereum&lt;/a&gt; and &lt;a href="https://etherscan.io/token/TheDAO"&gt;18,191 Token Holders&lt;/a&gt;. It is based entirely on the idea of ballot voting proposals.&lt;/p&gt;

&lt;p&gt;Dan Larimer writes pointedly about his experiences creating &lt;a href="https://steemit.com/crypto-news/@dan/is-the-dao-going-to-be-doa?utm_content=buffera147b&amp;utm_medium=social&amp;utm_source=twitter.com&amp;utm_campaign=buffer"&gt;a similar experiment with Bitshares&lt;/a&gt;. It is pretty hard to see how it can possibly work. Maybe no proposals will ever be voted through.&lt;/p&gt;

&lt;h2&gt;Use a market based approach instead&lt;/h2&gt;

&lt;p&gt;I have been working on &lt;a href="https://web.archive.org/web/20041010155224/http://econotrix.com/archives/000302.html"&gt;DAO like ideas&lt;/a&gt; for over 15 years and my idea was always about having lots of DAO’s each working on well defined problems. &lt;/p&gt;

&lt;p&gt;Real voting on the success of projects in free markets (and the true wisdom of the crowds) comes from people buying and refraining from buying.&lt;/p&gt;

&lt;p&gt;Ethereum allows us to have an unlimited amount of small and large DAO’s, but each focusing on solving a specific problem.&lt;/p&gt;

&lt;p&gt;If I believe in the team, the problem and the solution I can buy in. If I don’t I don’t buy. Thats how markets work, and how it should work with DAO’s.&lt;/p&gt;

&lt;p&gt;It may be clever from a technical standpoint to emulate traditional institutions using Ethereum Smart Contracts. But if you’re implementing a broken system, you just have a broken system implemented on Ethereum.&lt;/p&gt;

&lt;h2&gt;Does traditional voting still have a place in DAOs?&lt;/h2&gt;

&lt;p&gt;It absolutely does. The founding team should be able to vote. Maybe at some point they decide to create an external board for oversight? They should be able to vote as well. This external board could create trust in the project for potential token buyers.&lt;/p&gt;

&lt;h2&gt;A potential fix for The DAO - A dynamic market driven board&lt;/h2&gt;

&lt;p&gt;I am a big believer in the ideas of &lt;a href="http://www.fooledbyrandomness.com"&gt;Nassim Taleb&lt;/a&gt; about &lt;a href="http://www.amazon.com/gp/product/0812979680/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0812979680&amp;linkCode=as2&amp;tag=nassimtalebsfavo"&gt;anti-fragility&lt;/a&gt;. He is also a proponent of many of small experiments instead of a couple of large ones.&lt;/p&gt;

&lt;p&gt;Another thing he believes in is skin in the game. Decision makers need to risk their own money.&lt;/p&gt;

&lt;p&gt;So you could create a fluid market driven board by simply having a minimum requirement of say 5% of tokens to be able to vote. At the same time increase quorum to 50% of all of these token holders.&lt;/p&gt;

&lt;p&gt;This may seem counter intuitive but it would allow a small group of knowledgeable investors buy enough tokens on the free markets to make decisions that matter. Small token holders would simply vote by buying and selling their tokens.&lt;/p&gt;
</content>
    <author>
      <name>Pelle Braendgaard</name>
    </author>
  </entry>
  <entry>
    <id>tag:blog.stakeventures.com,2005:Article/351</id>
    <published>2016-05-10T17:05:35Z</published>
    <updated>2016-05-10T18:45:09Z</updated>
    <link rel="alternate" type="text/html" href="https://blog.stakeventures.com/articles/balance-sheets-and-blockchains"/>
    <title>Balance Sheets and Blockchains</title>
    <content type="html">&lt;p&gt;&lt;img src="https://stakeventures.imgix.net/oldbalancesheet.png" alt="Balance Sheets"&gt;&lt;/p&gt;

&lt;p&gt;Balance sheets are useful terms from accounting showing a snapshot of the financial state of a company. Balance sheets consists generally of 3 columns:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Assets&lt;/li&gt;
&lt;li&gt;Liabilities&lt;/li&gt;
&lt;li&gt;Equity&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These map directly to the &lt;a href="https://blog.stakeventures.com/articles/rights-and-obligations-in-blockchains"&gt;Rights and Obligations&lt;/a&gt; I rambled on about a couple of weeks ago.&lt;/p&gt;

&lt;p&gt;An Asset is a Right and a Liability is an Obligation, just with numbers assigned to it. The Equity I will get to shortly.&lt;/p&gt;
&lt;p&gt;As an example here is Apple’s latest balance sheet in a simplified form:&lt;/p&gt;

&lt;table&gt;&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Assets&lt;/th&gt;
&lt;th&gt;Liabilities&lt;/th&gt;
&lt;th&gt;Equity&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;305,277,000&lt;/td&gt;
&lt;td&gt;174,820,000&lt;/td&gt;
&lt;td&gt;130,457,000&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;For more details see the&lt;a href="https://finance.yahoo.com/q/bs?s=AAPL"&gt;Full Quarterly Balance Sheet for Apple&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This breaks down to what accountants call the Balance Sheet equation:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;assets - liabilities = equity
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Essentially it is a simple way of getting an overview of the current value of a business. Equity is the current value of the business as owned by the shareholders.&lt;/p&gt;

&lt;h2&gt;Blockchains are ledgers&lt;/h2&gt;

&lt;p&gt;Everyone knows that Blockchains are ledgers, but a lot people don’t know what ledgers are. &lt;/p&gt;

&lt;p&gt;Essentially ledgers are long lists of transactions between accounts. The transactions are added up to create balances.&lt;/p&gt;

&lt;p&gt;Creating a balance sheet is thus pretty simple. Adding up any debts and any assets.&lt;/p&gt;

&lt;h2&gt;Bitcoin’s balance sheet&lt;/h2&gt;

&lt;p&gt;Traditional currency accounting has a central issuer that issues currency. All currency issued is a liability on it’s balance sheet which is balanced against assets held somewhere. Traditionally gold now often USD. With Fractional Reserve banking this is a lot more complex, so I won’t go into that now.&lt;/p&gt;

&lt;p&gt;Bitcoin does not have an issuer unless you count as some people do Bitcoin as a DAO (Decentralized Autonomous Organization).&lt;/p&gt;

&lt;p&gt;So what would be a helpful way of creating a balance sheet for Bitcoin?&lt;/p&gt;

&lt;p&gt;Bitcoin’s current circulation is roughly BTC 15.5M.&lt;/p&gt;

&lt;p&gt;Using the traditional currency balance sheet:&lt;/p&gt;

&lt;table&gt;&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Assets&lt;/th&gt;
&lt;th&gt;Liabilities&lt;/th&gt;
&lt;th&gt;Equity&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;15.5M&lt;/td&gt;
&lt;td&gt;&lt;span style="color:red"&gt;(15.5M)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;This is based on the fact that Bitcoin itself does not have any assets. I’m not sure this is the correct way of modeling it.&lt;/p&gt;

&lt;p&gt;Maybe if we look at it as a DAO it makes more sense:&lt;/p&gt;

&lt;table&gt;&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Assets&lt;/th&gt;
&lt;th&gt;Liabilities&lt;/th&gt;
&lt;th&gt;Equity&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;15.5M&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;15.5M&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;I’m still not 100% happy with it, but I think that is the best way of squeezing bitcoin the currency into a traditional balance sheet.&lt;/p&gt;

&lt;h2&gt;Balance sheets for Bitcoin Addresses&lt;/h2&gt;

&lt;p&gt;As I mentioned in the &lt;a href="https://blog.stakeventures.com/articles/rights-and-obligations-in-blockchains"&gt;Rights and Obligations&lt;/a&gt; article you either own Bitcoin or you don’t in it’s simplest form. This would mean that any bitcoin owned by anyone would just be an asset:&lt;/p&gt;

&lt;table&gt;&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Assets&lt;/th&gt;
&lt;th&gt;Liabilities&lt;/th&gt;
&lt;th&gt;Equity&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;BTC 1&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;BTC 1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;So if you look at any address on a blockchain explorer it is pretty easy to work out it’s balance sheet.&lt;/p&gt;

&lt;p&gt;What about the Equity? Well a Bitcoin address is not an identity it is just an account. An account has an owner. That owner may or may not be known. But the Equity is the owners share of the account. Which in Bitcoin is always the same as the Balance.&lt;/p&gt;

&lt;h2&gt;Ethereum Smart Contracts&lt;/h2&gt;

&lt;p&gt;Ethereum Smart Contracts introduce the concept of obligations into the blockchain world. Therefore we must also talk about liabilities now.&lt;/p&gt;

&lt;p&gt;In my previous &lt;a href="https://blog.stakeventures.com/articles/how-to-make-sure-a-smart-contract-is-also-a-contract"&gt;Escrow Smart Contract example&lt;/a&gt; the Smart Contract controls funds sent to it by a buyer to send on to a seller.&lt;/p&gt;

&lt;table&gt;&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Assets&lt;/th&gt;
&lt;th&gt;Liabilities&lt;/th&gt;
&lt;th&gt;Equity&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ETH 1000&lt;/td&gt;
&lt;td&gt;ETH 1000&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;The contract has a balance of 1000 ETH, but those 1000 ETH are owed to the seller, thus it has 0 equity itself.&lt;/p&gt;

&lt;h2&gt;Token Contracts&lt;/h2&gt;

&lt;p&gt;Basic Token Contracts with a central issuer are in some respect just centralized currencies. The issuer holds the funds but the token holders are owed some sort of value.&lt;/p&gt;

&lt;p&gt;For the token holders each token issued is essentially an asset, which is why us old timers in the Crypto space used to call these Asset contracts instead of tokens.&lt;/p&gt;

&lt;p&gt;In the following example I am drastically over simplifying this by having an ETH denominated Token Contract to show the basic accounting.&lt;/p&gt;

&lt;p&gt;1000 people have each bought 10 ETH’s worth of our ETHR token:&lt;/p&gt;

&lt;table&gt;&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Assets&lt;/th&gt;
&lt;th&gt;Liabilities&lt;/th&gt;
&lt;th&gt;Equity&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ETH 10,000&lt;/td&gt;
&lt;td&gt;ETH 10,000&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;Again you can see zero equity in this approach, the value is transparent in the contract.&lt;/p&gt;

&lt;h2&gt;Floating exchanges rates means risk&lt;/h2&gt;

&lt;p&gt;Where things start getting complicated is if you decide to issue USD denominated tokens instead of ETH denominated tokens.&lt;/p&gt;

&lt;p&gt;Lets say your token holders bought with ETH when the USD/ETH price was $5 and now the price is $10.&lt;/p&gt;

&lt;table&gt;&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Assets&lt;/th&gt;
&lt;th&gt;Liabilities&lt;/th&gt;
&lt;th&gt;Equity&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ETH 10,000&lt;/td&gt;
&lt;td&gt;ETH 5000&lt;/td&gt;
&lt;td&gt;ETH 5000&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;You as the issuer have now made ETH 5000 in equity.&lt;/p&gt;

&lt;p&gt;But what happens if the price dropped instead? Your token holders bought at $10 and the price is now worth $5.&lt;/p&gt;

&lt;table&gt;&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Assets&lt;/th&gt;
&lt;th&gt;Liabilities&lt;/th&gt;
&lt;th&gt;Equity&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ETH 10,000&lt;/td&gt;
&lt;td&gt;ETH 20,000&lt;/td&gt;
&lt;td&gt;&lt;span style="color:red"&gt;(ETH 10,000)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;Oops disaster. Now your token holders want to get their money out and you now need to find ETH 10,000.&lt;/p&gt;

&lt;p&gt;This is where we need some level of off-blockchain integration. This kind of risk is pretty easy to manage in the “real-world” essentially you would just immediately sell the ETH for USD and keep it in an USD account. &lt;/p&gt;

&lt;p&gt;But of-course this is not visible on &lt;a href="http://live.ether.camp"&gt;Ether.Camp&lt;/a&gt;, so you will need some kind of legal contract promising off blockchain enforcement of your promises.&lt;/p&gt;

&lt;h2&gt;The DAO Balance Sheet&lt;/h2&gt;

&lt;p&gt;All the talk at the moment is about the poorly named &lt;a href="https://daohub.org/"&gt;The DAO&lt;/a&gt; which at the time of writing has issued 371.96M tokens each sold for 1/100 of an ETH.&lt;/p&gt;

&lt;p&gt;There are many discussions of what a DAO is, but for the sake of  accounting purposes I will define a DAO an organization whose ownership is defined by tokens. This is very similar to a traditional Corporation and the accounting is also very similar.&lt;/p&gt;

&lt;p&gt;So at the time of writing the balance sheet of the particular instance of a DAO currently called “The DAO” looks like this:&lt;/p&gt;

&lt;table&gt;&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Assets&lt;/th&gt;
&lt;th&gt;Liabilities&lt;/th&gt;
&lt;th&gt;Equity&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ETH 3.72M&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;ETH 3.72M&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;The SmartContract allows any token holder to take out their share of current equity at any point.&lt;/p&gt;

&lt;p&gt;The balance sheet gets more complex when Proposals starts being approved. I am currently researching this and will write a more in-depth article about it later.&lt;/p&gt;

&lt;p&gt;But to give an example, The DAO could invest a lump sum into a business in exchange for future rewards.&lt;/p&gt;

&lt;p&gt;This would lower the liquid ETH assets by the lump sum amount and replace it on the balance sheet with a longer term asset, called Reward Tokens. I’m still trying to understand how Reward Tokens work. But the valuation of them will be important in the future.&lt;/p&gt;

&lt;h2&gt;Balance Sheets of regular Ethereum Addresses&lt;/h2&gt;

&lt;p&gt;Regular Ethereum Addresses are similar to Bitcoin Addresses in that they can only contain Assets. We need Smart Contracts to manage Liabilities.&lt;/p&gt;

&lt;p&gt;Unlike Bitcoin Addresses they can contain many types of assets. So an Ethereum Address may have bought 10,000 “The DAO” tokens.&lt;/p&gt;

&lt;p&gt;This address would currently have a balance sheet looking like this: &lt;/p&gt;

&lt;table&gt;&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Assets&lt;/th&gt;
&lt;th&gt;Liabilities&lt;/th&gt;
&lt;th&gt;Equity&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ETH 100&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;ETH 200&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;THEDAO 10,000&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;Mind you the valuation of DAO token will change in the future. Valuation of assets is a complex issue. &lt;/p&gt;

&lt;p&gt;There is a fundamental price which is the Stock Holders Equity and there is a market price. In Apple’s example above if you divide the Equity by the amount of issued shares you will probably not get the same number as Apple’s current stock price.&lt;/p&gt;

&lt;p&gt;So while it is currently simple to calculate The DAO’s equity value. Future Market price will take into account future revenue, management, risk and sentimental thoughts into account.&lt;/p&gt;

&lt;h2&gt;A useful tool&lt;/h2&gt;

&lt;p&gt;The Balance Sheet is only one of the 3 traditional corner stone reports in accounting. The others being the Income Statement (aka Profit/Loss) and the Cashflow Statement.&lt;/p&gt;

&lt;p&gt;Balance Sheets can also seem the most abstract and the hardest to understand. Yet it proves a really useful tool for us, in particular in understanding and analyzing Smart Contracts.&lt;/p&gt;
</content>
    <author>
      <name>Pelle Braendgaard</name>
    </author>
  </entry>
  <entry>
    <id>tag:blog.stakeventures.com,2005:Article/350</id>
    <published>2016-05-03T14:26:48Z</published>
    <updated>2016-05-03T22:08:57Z</updated>
    <link rel="alternate" type="text/html" href="https://blog.stakeventures.com/articles/counter-party-risk-on-blockchains"/>
    <title>Counter-Party risk on block chains</title>
    <content type="html">&lt;p&gt;&lt;img src="https://stakeventures.imgix.net/jimmystewartbankrunwonderfullife.jpg" alt="Jimmy Steward explaining the need for acceptable counter party risk"&gt;&lt;/p&gt;

&lt;p&gt;In my previous article I talked about &lt;a href="https://blog.stakeventures.com/articles/rights-and-obligations-in-blockchains"&gt;Rights and Obligations&lt;/a&gt; and how they apply to blockchains. &lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;There are whole industries of rating agencies that are supposed to analyze this risk and allow people to take this risk into account.&lt;/p&gt;
&lt;h2&gt;Counter party risk in personal banking&lt;/h2&gt;

&lt;p&gt;As mentioned in the previous article a bank account is defined  by an agreement between you and the bank.&lt;/p&gt;

&lt;p&gt;As a depositor your bank balance is an Asset (or a right) and for your bank it is a Liability (or an obligation).&lt;/p&gt;

&lt;p&gt;Of the money the bank owes you is invested elsewhere. Such as in  loans to individuals or more complex structures.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;In theory as the depositor you are now affected by the counter party risk involved with your bank lending money to another individual.&lt;/p&gt;

&lt;p&gt;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. &lt;/p&gt;

&lt;p&gt;In this case we start seeing bank runs as we saw recently in &lt;a href="https://michaelkimani.me/2016/04/09/kenyas-banking-crisis-is-a-testament-to-bitcoin/"&gt;Kenya&lt;/a&gt; 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.&lt;/p&gt;

&lt;h2&gt;Systemic Risk&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Settlement Networks&lt;/li&gt;
&lt;li&gt;Correspondence banks&lt;/li&gt;
&lt;li&gt;Rating agencies&lt;/li&gt;
&lt;li&gt;Custodial services&lt;/li&gt;
&lt;li&gt;Central Banks&lt;/li&gt;
&lt;li&gt;National governments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;Counter-Party and Systemic Risks in Bitcoin&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Another kind of Systemic Risk in Bitcoin are when exchanges and wallet services are hit by fraud and hackers. See what happened at &lt;a href="https://en.wikipedia.org/wiki/Mt._Gox"&gt;MTGox&lt;/a&gt; as a great example. This caused the bitcoin price to plunge even though there was no problem with Bitcoin itself.&lt;/p&gt;

&lt;h2&gt;Counter-Party risk in Ethereum&lt;/h2&gt;

&lt;p&gt;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. &lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;Counter-Party risk in Smart Contracts with external obligations&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;Technical risk in Smart Contract&lt;/h2&gt;

&lt;p&gt;Smart Contracts are written by humans and like any other program things go wrong. &lt;/p&gt;

&lt;p&gt;As programmers we learn from this, fix the code and deploy a new version.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Until this problem is solved, the best way of using smart contracts are for solving small isolated problems and having short lifetimes.&lt;/p&gt;

&lt;h2&gt;Fraud in Smart Contract&lt;/h2&gt;

&lt;p&gt;There is also a fraud risk in Smart Contracts. Someone can easily write bad code to defraud rights holders.&lt;/p&gt;

&lt;p&gt;Vitalik points out this example of &lt;a href="https://www.reddit.com/r/ethereum/comments/4e5y30/live_example_of_underhanded_solidity_coding_on/"&gt;underhanded solidity&lt;/a&gt; where the programmer in plain site pays out all the funds to himself instead of the rights holders.&lt;/p&gt;

&lt;p&gt;These are problems that we can mostly solve, but it will take a while for the tools to be created. &lt;a href="http://live.ether.camp"&gt;Ether.Camp&lt;/a&gt; are doing possibly the greatest job in this space right now, through their  contract auditing tools and their excellent &lt;a href="http://blog.ether.camp/post/143428269688/the-blockchain-paparazzi-project-kudos"&gt;Blockchain Paparazzi posts&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I would recommend for the time being only dealing with smart contracts after checking them out on Ether.Camp first.&lt;/p&gt;

&lt;h2&gt;Systemic risk in Smart Contracts&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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. &lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;Small Composeable Contracts vs Jumbo Kitchen Sink contracts&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;
</content>
    <author>
      <name>Pelle Braendgaard</name>
    </author>
  </entry>
</feed>
