What’s a Bitcoin Smart Contract?

The idea of a smart contract originated by Nick Szabo. He was the first person to really question the purpose of security and discusses a great example of a vending machine and a smart lien protocol in this great article.

Smart contracts are contracts that use software (usually a web/mobile app) and protocols to facilitate, verify, or enforce the negotiation or performance of a contract eliminating any third parties/laws. In our case, bitcoin is the currency and the blockchain is the protocol. This combination forms a distributed contract for your clients, freelancers, employees, etc. Minimal trust is required since human judgement is removed from the engagement. Clearly this disruptive methodology opens up many new opportunities for consumers and businesses. *mind blown*

As a reminder: the concept of a smart contract is independent of BTC in fact, as you read on you’ll also learn about smart contracts with Blackcoin and Viacoin.

Types of Smart BTC Contracts

Assurance Contracts –

A hypothetical example of an assurance contract could be a kickstarter-like project for a book to be published if at least 25 BTC is raised. Each individual wishing to own a copy of the book contributes BTC to a server without broadcasting their transaction. Once the balance has been raised, the server merges all of the separate transactions into one that pays the campaign’s BTC address. This final transaction is broadcasted while sending the contributors information on receiving the book. If the campaign is unsuccessful everyone gets their BTC back.

Smart Property –

A smart property is property in which its ownership is controlled by the blockchain and a smart contract. The blockchain gives control to the cryptographic token (to operate the property) to the rightful owner, based on the agreement. This could include any typical physical purchase like a motorcycle, your private jet, smartphones, etc.

Smart property contracts can also be used for digital property like company shares, or access rights to an online service. Additionally, Mike Hearn covers some interesting logic around loans and collateral on bitcoin.it’s Smart Property page.

Transferable Virtual Property –

Transferable virtual property are digital objects like MP3’s or epic body armor in a videogame that are not controlled by a central authority like Xbox live. They can be transferred between users and only have a single ownership at a time.

Autonomous Agents –

To understand Autonomous Agents, think of an agent as robot-like software (which could have a hardware/physical component) that’s able to execute functions, maintain its own BTC wallet, spawn children, hire a human for software upgrades, or even die if it runs out of BTC. As the name suggests, an agent’s autonomy is able to reduce costs by cutting out any middle man or having human interactions and liabilities.

Gregory Maxwell has a fascinating concept exploring the use of an agent in a dropbox-like service in this forum post. Be sure to also check out storj.

Distributed Markets –

Distributed markets are primarily used for trading securities like stocks and bonds with no centralized clearing house. I also watched a talk on Ripple which is an example of a distributed currency exchange. Ripple is an open-source, distributed payment protocol which allows users to exchange various currencies instantly, for free.

bitcoin.it wiki also includes some examples on providing a deposit, escrow and dispute mediation, using external state, pay-for-proof contracts, and agile micro payments.

Smart Contract Platforms and Services

Codius – uses smart oracles to implement smart contracts. Each of the contracting parties implements their terms of an agreement into code — aka. code sandboxing. Since Codius uses Google’s Native Client contracts can currently be written in C, C++, Python, V8 JavaScript, Ruby, Go, Mono, and Lua.

Black Halo – is beta software that has a ton of interesting features including trading cash, barter bridges, micro-trading, joint accounts, employment deposits, and escrow-free real estate. From a development POV, they’ve only really mentioned their upcoming feature to create python contracts. Black Halo works with both Bitcoin and Blackcoin. Their development team is also working on NightTrader which is a decentralized exchange that will be implemented into BlackHalo’s Market section. I’m definitely going to keep an eye on these different services, very curious to see where they head.

Clearing House – is an asset insurance p2p trading protocol built on the Viacoin blockchain. Clearwallet is a web app built on the Clearing House protocol. You’re currently able to do exchanges, betting, and a rock-paper-scissors game. Overall feels like they’re early on in the development stages.

Mastercoin – serves as the binding between BTC, smart properties and smart contracts created on top of the Mastercoin Protocol. Mastercoin allows users to create tokens which can be used for titles, deeds, user-backed currencies, and even investments in a company. They also have tons of great documentation on Master Protocal Education.

Ethereum – I won’t go into much detail on Ethererum since there are several Coin Brief articles on it already — check out: what is ethereum. I also dug up this great Writing Smart Contracts FAQ. This is definitely one to pay attention to.

Conclusion – How Can We Use Smart Contracts?

In my opinion and being a rails developer, Codius is of most interest to me. You may find that some of this technology is difficult to visualize implementing professionally. I’ll be doing some more digging around for demos and experimenting with various apps, I encourage you to do the same.

As a web designer, I’ve worked on various types of contracts: one off gigs, full time employment, full time contracting and retainers. I have several ideas around how I’d like to structure smart contracts for my services.

Question of the Day

Do you have any concepts around how you’d like to implement a smart contract into your business or personal life? I’d love to hear your thoughts and ideas.

All post graphics were created by myself, Ryan Bollenbach.