Smart Contracts

Innovator’s Guide to Smart Contracts

Over 20 years ago, a cryptographer and computer scientist named Nick Szabo floated the idea of smart contracts. Now, with the advent of blockchain, smart contracts are poised to change an incredible number of industries. But they’re also a misunderstood technology that’s neither artificially intelligent nor legally binding. We’re here to set the record straight.


 

The smart idea

In 1996, cryptographer and computer scientist Nick Szabo wondered: what would happen if someone moved contracts from physical paper to the digital world? After all, he figured, basic everyday contracts are just “a set of promises” governing agreements and relationships in our business, personal, political and economic lives. Couldn’t those be translated to computer code?

His conclusion was that you could digitally formalize and enforce these agreements. In fact, he imagined the only difference between traditional and digital contracts is that the latter would be defined in computer code as “a set of promises, specified in digital form.”

 

Enter smart contracts

Szabo’s thoughts laid the foundation for what we now know as smart contracts. If you’ve read about blockchain, chances are you’ve come across the term. However, the name causes a lot of confusion. Smart? Do they have artificial intelligence? Contracts? Are they legally binding?

In reality, smart contracts aren’t smart, nor are they contracts—at least not in the traditional, legal sense. Smart contracts are just software ensuring an agreement is automatically carried out between two or more parties.

For example, a smart contract might say an artist should receive a royalty every time her song is played online. The smart contract’s code could automatically track whenever the song is used, ensuring the artist is automatically paid.

The other thing making smart contracts special is their automation. They help two or more parties complete transactions without a middleman. Physical contracts generally need some kind of trusted third-party to enforce them, like a bank, government, lawyer or other institution. They can’t self-execute or self-enforce. But code, unlike paper, can make certain things happen automatically.

Learn more about AI in our Innovator’s Guide to AI. Brush up on blockchain in our Innovator’s Guide to Blockchain.

 

Like a vending machine

Smart contracts are often compared to vending machines. In the past, you had to pay a salesperson for a bag of chips. Now you can just feed money into a vending machine. The machine makes sure you gave it enough money, then it automatically dispenses the product. When you meet the condition “was enough money inserted?”, the vending machine dispenses the food.

Just as a vending machine replaces a salesperson, smart contracts can replace middlemen in many everyday scenarios. Transactions that once needed a trusted mediator, like renting a car or selling a house, could someday become peer-to-peer—automatically mediated by code instead of institutions or people. Smart contracts can also automatically enforce penalties for breaking the agreement, too.

 

Better with blockchain

Although smart contracts can exist without a blockchain, they’re especially powerful when combined. A blockchain on its own just tracks basic transaction records—the movement of cryptocurrency between people and organizations. Add smart contracts and more complex functionality is possible: for example, tracking digital identities or selling houses.

Conversely, smart contracts benefit from blockchain’s cryptographic security and immutability. Like any blockchain data, they’re untamperable once they’re written to the blockchain, sort of like a black box; their internal rules can’t be altered.

Because it’s guaranteed to be uncompromised, a blockchain-based smart contract provides unbiased transactional trust and transparency. Anyone interacting with a blockchain smart contract can be guaranteed it will follow its instructions. Although, this doesn’t always go as planned, as we’ll explain shortly.

But are they actually contracts?

The term “smart contract” can sometimes seem misleading. For one thing, smart contracts don’t have any AI. In this sense, they aren’t “smart.” And, although some real-world contracts can be translated to the digital world as smart contracts, they aren’t innately legally binding. However, they are an agreement between two or more parties: when condition X is fulfilled, some action Y will automatically be executed, and some set of consequences Z may even be enforced if someone backs out.

When it comes to smart contracts and legality, community debates can get pretty heated. Some people strongly believe smart contracts will someday completely replace legal contracts and lawyers. Others argue that smart contracts are far too simplistic to even warrant the term “contract.”

Jeff Garzik, the owner of blockchain services Bloq, says that: “Smart contracts […] guarantee a very, very specific set of outcomes. There’s never any confusion and there’s never any need for litigation.” He’s clearly an optimist, believing that smart contracts could potentially eliminate any kind of future legal action.

Conversely, Berkeley law student Andrew Glidden is more of a pessimist: “[Smart contracts] reduce the need for litigation by clarifying basic obligations and automating performance,” he says. “But once you’re in litigation mode, they have very little impact.” In other words, when litigation is inevitable, he thinks smart contracts won’t help.

Time will tell what really happens. On one hand, if smart contracts can enforce certain agreements solely through code, some simple legal contracts probably can be completely automated to reduce or remove real-world litigation. On the other hand, smart contracts aren’t likely to replace lawyers or courts anytime soon. But people are already planning ahead for all these nuances. Cornell Tech is just one of many groups considering how smart contracts and the law will someday interact.

Different kinds of smart contracts

By replacing middlemen and manual labor with untamperable code, smart contracts can provide trust, efficiency, and automation for formerly error-prone and inefficient processes. However, not all smart contracts are the same. Here are a few of the different kinds.

Self-executing, self-enforcing and both

A self-executing smart contract is one which automatically carries out an agreement when a certain condition is met. However, it doesn’t guarantee the parties entering the agreement will hold up their end of the deal.

A self-enforcing smart contract ensures the parties entering the agreement can’t back out without consequences. One way a smart contract self-enforces is through escrow deposits. For example, all parties entering the agreement might be required to pay money as collateral. If they don’t meet their obligations, they lose those funds. Participants are incentivized to uphold their end of the bargain.

A smart contract that’s both self-executing and self-enforcing automatically carries out an agreement and ensures everyone is incentivized to carry out a contract. Although it doesn’t always make sense for a smart contract to be self-enforcing, they’re almost always self-executing.

Implicit vs. explicit

As Alex Barrera explains, normal contracts can be either explicit or implicit. The same goes for smart contracts.

An explicit agreement would be if a client agreed to pay a freelancer $500 when work is completed. The arrangement is agreed to and signed by both parties. It might even be mediated by a lawyer.

Implicit agreements are less cut-and-dry. Someone who parks in a garage is implicitly agreeing to the building’s rules: they’re paying to use the building, and they’ll have to pay a fee to exit. They accepted this implicit agreement when they parked.

Either scenario could easily be managed by smart contracts. In the freelancer example, the smart contract would hold the client’s funds in escrow until the freelancer digitally submits her work. Then the smart contract pays the freelancer. If the freelancer misses her deadline or doesn’t deliver, the smart contract automatically returns the client’s money.

A garage smart contract could use computer vision technology to scan a driver’s license plate and automatically debit their account. The smart contract could even automatically determine how much to charge the driver based on the time spent in the parking garage.

Implementations

Smart contracts existed before blockchains; even Amazon Dash buttons are a kind of smart contract. Push the button and a specific product shows up at your door two days later. Amazon’s various services are automatically fulfilling an automated contract to deliver a product at the push of a button.

However, blockchain’s immutability and cryptographic security make it ideal for storing smart contracts. Some blockchains supporting smart contracts include Bitcoin, Ethereum, Tezos, Cardano, NEM, Hyperledger Fabric, Stellar, and many others.

Later we’ll discuss some of the tradeoffs between some of these blockchain smart contract platforms.

Smart contracts in today’s world

One of the best ways to understand smart contracts is with real-world examples. We’ve combined some of our favorites with PolySwarm’s:

Ascribe and Binded

Intellectual property, copyright and fair use are notoriously difficult problems to solve in the digital age. Writers, photographers, singers and other content creators put their work online only to discover it’s been used without attribution or payment. Both Ascribe and Binded use a very simple kind of smart contract—timestamping and a unique hash “fingerprint” on the Bitcoin blockchain—to uniquely tie a creator’s work back to them. In the future, these services might use smart contracts for licensing and automatic royalty payments when work is used.

Etherparty

After seeing the challenges everyday people face creating smart contracts, Etherparty resolved to improve life for non-coders. After the initial success of their smart contract creation wizard, they’re re-launching with three different upcoming products intended to simplify out-of-box smart contract creation. “Rocket” creates smart contracts for crowdfunding, “Hero” is a wizard for transparent charitable giving campaigns and “Saturn” provides ready-made smart contracts for supply-chain management.

The benefit of using smart contracts for these services is that decentralized code manages these relationships. As Maxx Chatsko explains for the Motley Fool, in traditional crowdfunding campaigns there’s one single owner (Kickstarter or IndieGogo) who controls all resources and decisions. With a smart contract crowdfunding campaign, funds are distributed across the network and there’s no single stakeholder. Decentralized smart contract code dictates the terms of the agreement, not the service provider.

Fizzy AXA

Fizzy AXA’s promise: “smart insurance, automatic compensation.”  If you’ve ever spent hours fighting customer service trying to get money back for a late flight, they have a solution. They’re putting flight insurance on the blockchain and using smart contracts to ensure you’re automatically paid. Just enter your flight details into the app, and, if your flight is over two hours late, you’re automatically compensated. There’s no need for customer service or airline mediation when everything is handled by a smart contract.

Propy

One of the most exciting use cases for smart contracts is real estate. However, until Propy, there were few real-world implementations. By using smart contracts, Propy streamlines today’s real estate processes. Their v1 implementation removes the middleman wherever possible. However, their ultimate vision is peer-to-peer, cross-border, decentralized real estate transactions without any middlemen. Their smart contract currently walks buyers and sellers through legacy real estate processes, ensuring they’re meeting requirements in various jurisdictions. Someday, they foresee everything being managed digitally by the smart contract. They also envision several different smart contracts: one for property identity, one for property titles and another for property deeds.

Populous

This platform takes the niche invoice financing market and turns it into a global peer-to-peer marketplace. With Populous, business owners can sell unpaid invoices at a discounted rate to invoice buyers. When debtors pay up, invoice buyers get the money. It’s basically a way of buying and selling debt through unpaid invoices. Smart contracts remove middlemen like financial institutions by automatically mediating payments between business owners and invoice buyers. Now invoice buyers and sellers world can transact directly and instantly across international borders.

Share&Charge

Share&Charge is using smart contracts to change Germany’s sharing economy. Their peer-to-peer app lets people make private electric vehicle charging stations publicly available. Sharers make money, while electric vehicle browse to find nearby charging stations. If an electric vehicle owner uses a charging station, the smart contract automatically charges them and pays the charging station owner. Everything is decentralized and runs on the Ethereum virtual machine.

Slock.it

Slock.it, the parent company behind Share&Charge, wants anyone to “rent, sell or share anything” using a mobile app and smart contracts. They believe anything from an AirBnB to a bike rental can be completely automated. A mobile app will enable discovery, while a smart contract interfaces between the mobile app and hardware to lock/unlock the item being rented, sold or shared. The smart contract also manages payments between renters and rentees or sellers and buyers.

Synaps

Synaps is using smart contracts to remove middlemen from syndicated loans, also known as microlending. In this case, the Synaps smart contract acts as the bank, holding funds from many peer-to-peer funding sources until they’re ready to be released to the borrower. The smart contract becomes the trusted middleman because the code holds funds in escrow until the right conditions are met.

Smart contracts have many other applications, too

Many other industries stand to benefit from smart contracts, including finance, entertainment, startups, non-profits and even government. Use cases range from simple to complex.

Researcher Alan Morrison says the long-term vision for smart contracts is, “a blue-sky future in which not only entire companies could operate in automated fashion (distributed autonomous organizations), but also a form of government (distributed autonomous government) and some aspects of society could be automated.”

The DAO (Decentralized Autonomous Organization) was one organization ahead of its time. It was a venture-capital fund, but no one was in charge of it; its behavior was wholly dictated by code (smart contracts.) They were publicly-auditable and transparent, so anyone could see how the DAO was supposed to behave. The DAO even set the world record for the largest crowdfunding campaign in history, raising ETH 11.5 million (worth USD $6.8 billion today.) It was a revolutionary experiment: there’s never been a larger or wealthier stateless organization. Unfortunately, the DAO didn’t have a happy endingit was infamously compromised by a hacker who found an exploit in the DAO smart contract code. This is what ultimately led to the split between Ethereum Classic and Ethereum, also called the Ethereum hard fork.

As a smart contract-based, fully autonomous organization, the DAO was highly advanced. Fully autonomous organizations and governments dictated by smart contracts are likely anywhere from a few years to decades away, simply because of the security risks plaguing these more complex smart contracts. But, in the near term, many industries can still benefit from simpler smart contracts, including:

    • Supply chain: Today, accurately tracking items from origin and ensuring authenticity is expensive and difficult. According to Deloitte’s report Supplychain Meets Blockchain, blockchain could provide an immutable “chain of custody” for supply chains, while smart contracts could provide automated, real-time tracking for “supply chain stakeholders […] to make rapid decisions and update inventory levels on a continuous basis.” Deloitte has already developed a proof-of-concept called “TraceChain” in their US Blockchain lab.
    • Digital identity: Ericsson Research describes a way for smart contracts to maintain secure, digital identities. In their example, IoT (internet of things) devices combine with smart contracts and the blockchain to make life easier on vacationing pet owners. Specifically, they envision pairing RFID chip-enabled cat collars with smart pet doors and smart contracts tracking pet identities. In their example, Blue family might agree to take care of Orange cat when Orange family goes on vacation. A temporary smart contract is issued, giving Orange cat temporary access to Blue house’s pet door. When Orange family returns, the temporary smart contract is revoked. This can be extrapolated to other digital identity matters like passports and company IDs.
    • Entertainment, media and IP law: It’s historically difficult to keep track of work once it’s published online, but blockchain and smart contracts can make it easier. As lawyer Taylor Wessing says, blockchain could act as an IP rights registry tracking all licenses and sublicenses for work. Smart contracts could also ensure creators are paid any time their work is used. Since smart contracts are self-executing, as soon as someone uses a work, their account could be debited and the creator could be paid. Both the aforementioned Ascribe and Binded are making strides in this direction by providing ownership registries (though they still face plenty of legal nuances.)
    • Banking: In Smart Contracts in Financial Services:
      Getting from Hype to Reality
      , Capgemini Consulting anticipates smart contracts could significantly improve the banking sector’s efficiency and accuracy. They predict loan settlement times could drop from 20 days to 6 to 10 days, retail banking consumers would save US $480 to $960 per loan and banks would save US $3 billion to $11 billion annually by reducing processing costs.  
    • Real estate: According to Deloitte, smart contracts improve commercial real estate transparency and efficiency, especially for management and cash flow. Startups are already implementing some of these proposed solutions. Even rentals benefit from traditional lease agreements becoming “smart tenancy contracts.” Rent payments can be instantly automated. Deloitte anticipates automated smart contract lease agreements could work something like this:
      • Lease terms are written to the blockchain. These terms officially become the automated, code-based smart contract.
      • The smart contract initiates a security deposit/advance rent payment through cryptocurrency wallets or bank accounts.
      • The lessor transfers property ownership to the lessee.
      • The transaction agreement is officially recorded on the blockchain.

     

    Smart contracts have many strengths

    As with anything automating manual processes, smart contracts can seriously improve organizational efficiency, saving them time and money. Benefits include:

    • Speed: By cutting out the middleman (e.g. notaries), many processes are faster or even instantaneous. Multi-step, manual processes can be automated by the smart contract. According to the Wall Street Journal, it typically takes three months to close commercial mortgages. Smart contract-based document-signing and blockchain property identity registries can significantly speed up these processes.
    • Cost: Notaries, mortgage brokers, banks, escrow services and payment processors all charge service fees. Without these middlemen each taking their cut, costs go down.
    • Accuracy: Many transactions require manually filling out forms, which leads to repeated errors. According to the American Land Title Association and Wall Street Journal, “[today] most real estate transactions contain at least one title defect that must be corrected before transferring the title.” These mistakes can also add up to high legal fees. Smart contracts can digitally fill forms and enforce data validation to eliminate errors, and blockchain can create accurate digital registries.
    • Security: Data written by a smart contract to a blockchain is automatically backed up and protected. It can’t be lost or stolen because there are numerous redundant, encrypted copies spread across the peer-to-peer network. This is a “freebie”—an innate part of blockchain architecture.
    • Trust and neutrality: Smart contract code on a public blockchain can be audited and reviewed by anyone. However, no one can tamper with the smart contract’s behavior once it’s deployed. They can’t force it to behave in a way it wasn’t designed (however, they might be able to exploit an unknown vulnerability.)

    But they aren’t without their drawbacks, including…

    • Accessibility and cost: Implementing smart contracts is challenging. They can be expensive to implement and test costs are very high, especially Ethereum smart contracts.
    • Security: Ethereum-based smart contracts might be flexible, but greater power and flexibility brings greater risk.
    • Limited data access: Smart contracts are isolated from the outside world; they only have access to data that’s on their particular blockchain, unless they use what are known as oracles—a data feed providing external information. That data needs to be validated and reliable to be useful.
    • Their strengths are their weaknesses: The same things making smart contracts powerful, like immutability and transparency, can also be their shortcomings. Immutability is positive for preventing tampering, but if a smart contract is deployed with a bug, immutability makes updating the smart contract more difficult. Transparency is helpful for building trust, but if a bad agent finds an exploit in the smart contract code, they could take advantage of it before you notice the issue.
    • Legality: Smart contracts aren’t inherently legally binding; they’re just computer code. Some people want them to be legally binding, while others argue this shouldn’t ever happen.


  • So, what about legality?

    There are a few barriers preventing smart contracts from being legally enforceable:

    1. Regulatory acceptance: Regulatory authorities like governments need to officially recognize distributed ledgers, like ones used to track property deeds and titles. Until then, these blockchains will only be unofficial digital duplicates of public government records.
    2. Tokenizing real-world objects: If you’re selling a car or a house, that car or house needs to have a unique entry on the blockchain, like a fingerprint. Otherwise, someone could duplicate that house or car and resell the copy. The same goes for any other kind of “smart property”: any physical or digital object that can’t be duplicated must have a unique digital blockchain representation.
    3. Managing ambiguity: Smart contracts lack the nuances of natural language contracts. IF-THIS-THEN-THAT code can’t easily handle the edge cases and ambiguities of human-readable contracts. Plus, not all real-world information can be properly digitized for smart contracts to understand.
    4. Various other legal technicalities: In his article, Should Smart Contracts Be Legally Enforceable? Berkeley law student Andrew Glidden raises other issues, including who do you sue if something goes wrong with the smart contract? What if the contract follows its programming, but something still goes wrong and someone loses money? These are just some of the legal questions that need answering

    Despite these limitations, some people are still trying to make smart contracts legally enforceable. Common Accord is taking paper-based legal documents, contracts, and permits and “codifying” them—turning paper documents and processes into automated code wherever possible.

    The tough lessons along the way

    Smart contracts can range from simplistic (transferring money), to more involved (renting an apartment), to highly complex (a fully autonomous organization.) And the more complex, the more opportunity for issues. It hasn’t been all easy going.

    The aforementioned DAO (Decentralized Autonomous Organization) is one early cautionary tale. Just a few months after its multibillion dollar May 2016 crowdfunding campaign, a hacker found an exploit in its DAO code. Without ever “breaking” the smart contract rules, they siphoned off 3.6 million ETH (USD $70 million.)

    As Samuel Falkon explains, “the attacker was able to ‘ask’ the smart contract (DAO) to give the Ether back multiple times before the smart contract could update its balance.” The DAO code behaved as designed, but it was designed with an exploitable flaw. Because of this, a bad agent was able to steal millions of dollars.

    The DAO demonstrates how a complex smart contract can go wrong, but even simple smart contracts can have issues. Parity learned this the hard way last year. In July 2017, they released a bugfix for their popular corporate multisignature Ethereum wallet. Unfortunately, their fix introduced a new bug. Because of this, a user named “Devops199” was able to take ownership of the entire multisignature wallet library.

    When Devops199 killed this smart contract, hundreds of wallets became useless. Over $150 million USD was permanently locked away. As Motherboard puts it, “It seems like Devops199 was jiggling door handles and when one door opened, they tried to close it and the whole house exploded.” Smart contract development is complex; even when the scenarios seem simple, bugs can have costly consequences.


  • Developing and building smart contracts

    There are plenty of reasons to consider a smart contract, but it’s a road that should be chosen carefully and deliberately. Here are some key steps, questions and resources to consider.

    First: consider your scenario

    Gartner recommends that anyone considering implementing a smart contract for their business ask the following five questions:

    • Can you accomplish the same thing with a traditional, legally-binding contract? If so, consider the traditional route instead.
    • Is anyone already using this smart contract in production? If not, being the first person implementing this smart contract might be too risky.
    • If you’re hiring a vendor to create the smart contract, will they indemnify your organization if there’s a problem with the smart contract? If not, your organization will take all the risk for unintended behavior caused by the smart contract.
    • What safeguards are in place to ensure the code is secure? And what proof is there that the smart contract has been thoroughly tested?
    • Are there escape lanes/get-out/cessation clauses in the smart contract? If so, who can invoke them? These can increase security vulnerabilities, so there needs to be thorough testing and a good reason for them to be there in the first place.

    In short, implementing a smart contract simply for the sake of it isn’t a good idea, unless it’s for educational purposes. There should be well-defined, concrete reasons for using smart contracts. And if you do choose to use them, the code has to be intensively tested.

    Second: select your platform

    There are now dozens of potential smart contract platforms. However, only a few are well-established enough to warrant use as a primary development platform.

    Bitcoin

    Use it for: Simple, transactional smart contracts.

    Every Bitcoin transaction is actually a simple smart contract: any time Bitcoins are send, funds only transfer on one condition: that a valid cryptographic signature is provided.

    Programmers would like to support other, more complex smart contracts. However, Bitcoin script intentionally limits the kinds of smart contracts that can be created. As Alyssa Hertig writes for Coindesk, “Bitcoin’s scripting language previously supported more complex types of smart contracts […] however, the digital currency’s still-pseudonymous creator Satoshi Nakamoto had to rip many of them out back in 2010 when he or she realized that there were bugs that malicious actors could use to clog the network with spam.”

    Some developers view this is a plus because it limits the possible attack vectors on Bitcoin smart contracts. They view Bitcoin smart contracts as a very secure platform due to their simplicity. However, others view it as a downside because it’s so limited.

    Who’s using Bitcoin for smart contracts? Particl, Black Halo, Omni and Counterparty.

    Keep an eye out for: Improvements like Ivy (Beta), MAST and RSK (Rootstock). All claim to improve Bitcoin smart contract robustness.

     

    Ethereum

    Use it for: Robust smart contracts going beyond transactions (with a side of caution.)

    Vitalik Buterin designed Ethereum with smart contracts in mind. It’s like a distributed computer that runs decentralized applications. Computing power is paid for in Ether. Ethereum’s primary programming language, Solidity, has the necessary functionality (Turing-completeness) to implement any program.

    But with great power comes great responsibility: Ethereum smart contracts require significantly more testing. There are currently no development best practices or standardized auditing procedures, which has led to catastrophes like the DAO and Parity wallet hack. In February 2018, Motherboard reported that millions of dollars in Ethereum are at risk due to 3,000 vulnerabilities across 34,200 smart contracts.

    Who’s using Ethereum for smart contracts? Easily thousands of developers. State of the DApps maintains a curated list of 1300+ Ethereum-based decentralized apps and counting. Every decentralized app has a corresponding smart contract; this is what allows it to interact with the underlying Ethereum blockchain.

     

    Hyperledger Fabric

    Use it for: Enterprise smart contracts on a permissioned blockchain.

    Hyperledger Fabric is an enterprise blockchain platform created in collaboration between the Linux Foundation and IBM. It’s a popular choice for financial institutions and tech companies who want private, permissioned blockchains (meaning, for example, that instead of absolute transparency into all blockchain transactions, you can grant selective permissions so that only some people can see some transactions.) It uses Golang (Chaincode) and Javascript, and it’s much more efficient than both Ethereum and Bitcoin since it doesn’t rely on mining. In fact, it executes 3500 transactions per second.

    Who’s using Hyperledger Fabric for smart contracts? IBM and Oracle are both using Hyperledger Fabric as service platforms.

  • Top smart contract alternatives to Bitcoin and Ethereum

    There are dozens of smart contract-capable blockchains and still more in development. However, most are far too new and experimental for your next business product. Here are a few that we think are worth experimenting with, perhaps as you’re learning smart contract programming:


    Third: design your contract

    As soon as a smart contract is deployed to production (often called the mainnet), substantial amounts of real money (cryptocurrency) can be put at risk. If you’re using a public blockchain, anyone can see the smart contract’s vulnerabilities. This is why following testing guidelines and best practices is key.

    Blockchain technology company ConsenSys has an Ethereum smart contract best practices guide whose key takeaways include:

    • Prepare for failure by having a way to pause contracts if something has gone off the rails, limit the amount of money that’s at risk and have an upgrade path for bugfixes.
    • Rollout carefully with extensive testing. Developer Michal Zalecki additionally recommends having an automated test suite with as close to 100% test coverage as possible, testing on a local testnet, testing on a public testnet (with bug bounties to encourage finding bugs) and deploying on a mainnet with a limited beta so any bugs have limited impact and risk.
    • Keep it simple with code that favors readability over performance. Modularize code and don’t be afraid to use pre-written tools and code. Don’t reinvent the wheel.
    • Stay up to date on known attacks. ConsenSys maintains regularly updated lists of Ethereum attack vectors here and here.


    What we learned from dLotto

    DLotto was our first adventure in developing an Ethereum smart contract. It’s a basic lottery and the logic was built around the rules of entry and timing. The project was filled with unique insights and learnings, including: so it was hard to choose our three top takeaways:

    • Blockchain is different. Development on a blockchain is fundamentally different than traditional software development. You can’t release and re-release. You rely on a huge external system to provide functionality. It really requires shifting to a different way of thinking.
    • Everything is a transaction. Everything is a transaction. This impacts both how state is managed and how information is retrieved for display.
    • User experiences are challenging. It’s challenging to create great user experiences because of the complexity for regular users to interact with smart contracts and have great user experiences. We’re extensively thinking about blockchain UX/UI this a lot and will are going to have a follow-up piece about this exact topic!

    Fourth: Learn smart contract development

    While we won’t get into the nitty-gritty of teaching smart contract development here, there are plenty of excellent quick-start guides to get you up and running with your first basic smart contract in no time:

    • Hyperledger Fabric blockchain guides: If enterprise blockchain development is what interests you, IBM has an entire series of guides on the subject, including:

     

    The future of smart contracts

    Although smart contracts come with security caveats and considerations, don’t let that deter you from learning the basics or thinking about how you might someday incorporate them into your business. Smart contracts have attracted significant attention across industries and professions, from real estate brokers and politicians to lawyers and doctors.

    In the next 5-10 years, we’re certain to see major changes as this code replaces various inefficient processes. And, as this happens, we can anticipate other major shifts in the smart contract and blockchain space, including:

    • Lawyers will begin specializing in smart contracts. Far from replacing lawyers, smart contracts and lawyers will form a symbiotic relationship. Just as high tech saw a rise in IT law, blockchain will see lawyers specializing in the nuances of smart contract legality. When legal issues inevitably arise, lawyers specializing in blockchain and smart contract law will be the first ones on the scene. Services like Contract Vault will also provide turnkey solutions pairing smart contracts with legal services.
    • Anyone will be able to make smart contracts. Smart contract-builder tools like Etherparty, EtherScripter and Confideal mean no coding skills will be necessary for basic smart contracts, just as many people use Squarespace and Wix for out-of-box websites today. Development agencies will still be needed for complex, enterprise solutions.
    • (Some) smart contracts will be legally binding. Platforms like Agrello have already created legally-binding smart contracts by generating a natural language legal contract accompanying their programmatic smart contract. In the future, a natural language step may be unnecessary; some code-based smart contracts may simply be legally binding.
    • Autonomous auditing for better security. Ethereum and other blockchains already have some auditing tools like Quantstamp (auto-auditing for Ethereum smart contracts), OpenZeppelin (reusable, secure smart contracts) and Solidified (community-based smart contract reviews with bug bounties.) In the future, even better tools and solutions will be available, ideally at the blockchain level.

    Smart contracts may not yet be ready for broad adoption, but, someday soon, many of our digital interactions and transactions will be governed by them, whether we know it or not. Buying a house, renting a car, paying a freelancer and even placing a vote may soon be brokered by blockchain-based smart contract code that promises to execute its end of the deal and immutably write records to a distributed blockchain network.

    In fact, by 2022, Gartner estimates that “defined [narrow] impact smart contracts will be in use by more than 25% of global organizations.” Our future may even be filled with fully autonomous, software-based and self-governing organizations and governments. If that sounds like science fiction, think again—in many ways, we’re already halfway there.

     


0 Comments

Cancel