Smart Contract History and Related Resources

I was writing this basic introduction, Smart Contracts: Use cases, and DApps

Smart contracts are self-executing code that defines and executes an agreement between multiple parties. That code contains simple “if/when…then…” statements executed within a distributed network that achieves consensus on transactions made within it.

When I came across:

  • lambda-the-ultimate.org/node/5003#comment-94645
    • A Next Generation Smart Contract and Decentralized Application Platform (Vitaliks ANN post on lambda-the-ultimate)

      Smart contracts and related languages have a long discussion history on LtU

Which took me down the rabbithole and led to the creation of this resource.

Smart Contract History


VatA (the donor) deposits a reference to gift at nonce in VatC’s (the host’s) from-VatA-for-VatB table, and returns a Vine for the gift-entry.

Contents

Object Capabilities (ObCap)

The object-capability model was first proposed by Jack Dennis and Earl C. Van Horn in the 1966 paper.

  • Programming Semantics for Multiprogrammed Computations

    The semantics are defined for a number of meta-instructions which perform operations essential to the writing of programs in multiprogrammed computer systems. These meta-instructions relate to parallel processing, protection of separate computations, program debugging, and the sharing among users of memory segments and other computing objects, the names of which are hierarchically structured. The language sophistication contemplated is midway between an assembly language and an advanced algebraic language.

  • What Are Capabilities?

    The capability paradigm is about access control. When a system, such as an OS or a website, is presented with a request for a service it provides, it needs to decide if it should actually do what the requestor is asking for. The way it decides is what we’re talking about when we talk about access control. If you’re like most people, the first thing you’re likely to think of is to ask the requestor “who are you?” The fundamental insight of the capabilities paradigm is to recognize that this question is the first step on the road to perdition. That’s highly counterintuitive to most people, hence the related controversy.

  • wikipedia- Object-capability model
  • Awesome Object Capabilities and Capability-based Security
  • Linked Data Capabilities
    • Object Capabilities for Linked Data v0.3
  • Cosmos Object-Capability Model
  • Agoric
    • Object Capabilities with Kate Sills (podcast)
  • Ethereum Object Capabilities
  • Security in Scala: Using Object Capabilities
    • A Guide To Capabilities
  • DIDAuth + Obj. Cap.
  • History of Object Capabilities

Object Capabilities are new to me, and I’m just placing any related information here for now until I make them a page of their own.

Basically this research starting in the 60’s, with much work throughout the 80’s (that is not well dowcumented online), culminating with Nick Szabo’s work, and E Language. Object Capabilities are central to the original line of work the term “Smart Contracts” was used in reference to, which was somewhat misappropriated by Vitalik.

Nick Szabo

  • Nick Szabo - Distributed Wikipedia Powered by IPFS
  • Nick Szabo’s Essays, Papers, and Concise Tutorials - Nick Szabo’s Home Page
  • Smart Contracts Glossary ‘95
  • Smart Contracts: Building Blocks for Digital Markets - Nick Szabo 1996
  • Formalizing and Securing Relationships on Public Networks- Nick Szabo
  • Let’s Talk Bitcoin! #246 Smart Contracts with Nick Szabo

    Adam, Stephanie and Andreas spend an hour with crypto-scholar of note Nick Szabo in a wide ranging discussion covering Smart Contracts, Bitcoin and Blockchains.

  • A Technology, Legal & Regulatory Introduction — Foreword by Nick Szabo
    • Prepared by: Smart Contracts Alliance — In collaboration with Deloitte

      “the most secure environments for smart contracts are the most mature public blockchains, which are designed for trust minimization instead of trusting the often private and insecure system found resident with a central party” @NickSzabo4

  • A Formal Language for Analyzing Contracts ‘02
  • Wet Code and Dry ‘06

Elang and other Early Work

  • erights.org
  • wiki.c3.com - E Language An ObjectCapabilityLanguage
  • Mailing list ARChives— e-lang The E capability-secure scripting language

Ethereum

DAO

  • What’s in a Name? — The Disambiguation of Smart Contracts

    2014 and Gavin Wood takes the stage at the auditorium in Barclays Whitechapel Accelerator space to describe a brave new world of…

  • They Might be Smart, but these contracts need to be more Secure ‘16
  • Scanning Live Ethereum Contracts for Bugs - ‘16

    In this post, we examine just how prevalent the recently discovered “unchecked-send” bug is in real, live, deployed Ethereum contracts, with the aid of an automated analysis

After DAO

  • The Future of the Blockchain: my DevCon IV talk. – Mattereum - Humanizing the Internet

    This year October 31 at the DevCon IV I gave the first talk on the Smart Property Register  —  the Mattereum innovation, which I think is…

  • Researchers: Roughly 60% of Ethereum smart contracts have never been interated with

    A group of researchers from the Northeastern University and the University of Maryland published a paper detailing their analysis of Ethereum’s contract topology. The researchers modify Ethereum’s geth client to log how users and contracts interact with one another. The r…

  • Ethereum in BigQuery: a Public Dataset for smart contract analytics

    Ethereum transactions, like some other cryptocurrencies, are stored in a public ledger. Learn how to analyze that ledger in BigQuery to better understand transaction and even contracts history.

Resources

  • On the intersection of Ricardian and Smart Contracts
  • Smart Contracts, Dumb Signatures: Why Blockchain-based signatures

    This is not legal advice, please seek professional guidance from an attorney.

  • Defining smart contracts – Craig Wright – Medium

    When contrasting contractual principles, it is clear that where a contract is not required to be in writing (Columbia Law Review, Apr…

  • The application, scope and limits of Letters of Indemnity in Bitco…

    The Bill of Lading is a document unique document as its negotiability fulfils several purposes. These documents have led to a…

  • coala.global
    • Coalition of Automated Legal Applications

Smart Signatures

  • WebOfTrustInfo/rwot2-id2020 - Smarter Signatures
  • Smart Signatures—Experiments in Authentication -Christopher Allen -SlideShare

*Transcript

  • WebOfTrustInfo/rwot5-boston -Smarm: Requirements for a smart-signatures Scheme

  • Simplicity Itself for Blockchains
    • https://blockstream.com/simplicity.pdf
  • Near Future of Programming Languages
  • Stephen Diehl (@smdiehl) ‘17

Bitcoin

  • Yes, Bitcoin Can Do Smart Contracts and Particl Demonstrates How The Bitcoin blockchain is not known for its ability to enable smart contracts. In fact, most developers creating smart contracts use a different blockchain, like Ethereum. But the truth is that the Bitcoin protocol can be used to create smart contracts. Particl.io, the blockc…
  • Scriptless Scripts: How Bitcoin Can Support Smart Contracts Bitcoin’s capacity is limited. Meanwhile, smart contracts can be resource intensive. So even though Bitcoin has always supported basic smart contract functionality, the two have never been a natural match.But a recent topic of research spearheaded by Blockstream mathematici…
  • http://www.rootstock.io/

    RSK, bitcoin´s smart contract platform.

Languages - Platforms

  • Overtorment/awesome-smart-contracts

    List of awesome platforms for smart contracts. Contribute to Overtorment/awesome-smart-contracts development by creating an account on GitHub.

  • Comparison of Smart Contract Platforms – Hacker Noon

    Ivy-lang, Plutus, Solidity, Scrypto, Michelson, Hoon, Rust, …

  • Meet ‘Spedn’ — A Smart Contract Programming Language for Bitcoin Cash
    • On Wednesday, a developer called Tendo Pein announced the launch of a new smart contract programming language for the Bitcoin Cash network. Pein said “Spedn,” a BCH-based language, is designed for explicitness and safety while having a syntax similar to the C programming …
  • Cardano Introduces Smart Contracts For Financial Transactions

    Marlowe, a new smart contract language for Cardano aimed primarily at financial contracts on the blockchain was revealed some days ago. The language has been developed by researchers from IOHK, a company that are the main developers and maintainers of the blockchain Cardano.

Learn-BUIDL

This page isn’t really about learning how to do smart contracts, but more about the history and different aspects of smart contracts. However, I have these links, and I’ll throw them here until I make a page devoted to learning how-to.

  • Learn Solidity — The Ethereum smart contract programming language

    In the course of time that I am involved in Ethereum development, I have noticed that not much information exists yet to learn Solidity…

  • https://solidity.readthedocs.io/
  • NEO Smart Contract development

    My first Smart Contract on NEO blockchain in C#: Open Visual Studio 2017. In Team explorer click on Clone and insert the neo-compiler link: https://github.

  • Blockchain Unleashed: IBM Blockchain Blog

    Whether you’re new to smart contracts on blockchain, or you’re looking for an in-depth explanation, this guide is a great place to start.


  • Building a non-fungible token sales smart contract -Selling non-fungible tokens and the ERC721 standard

  • Philip Daian | Smart Contract Security - Incentives Beyond the Launch

    To mitigate security issues that were quickly evident in the deployment of smart contracts, developers have tried a wide variety of security techniques. Standard when deploying new contracts is…

  • Preparing for a Smart Contract Code Audit – ConsenSys Media

    If you are planning to launch a project on the Ethereum blockchain, you probably know the importance of a third-party code audit. An…

  • Solidified - Audit Platform for Smart Contracts

    A platform for crowd-sourced review of smart contracts, where any developer can bring their contract for review with a large network of verified blockchain experts.

ETC

  • The Truth about Smart Contracts – Jimmy Song – Medium

    Much like the words “blockchain”, “AI” and “cloud”, “smart contract” is one of those phrases that get a lot of hype.

  • Smart contracts: Turing completeness & reality – Hacker Noon

    The meltdown of “The DAO” and, more recently DDOS attacks on Ethereum have spurred a debate on the wisdom of “Turing completeness” in…

  • Bribery-Resistant Voting Schemes for Smart Contracts

    This is joint work/post with Ian Miers, Oded Naor, and Ari Juels. Recently, a number of proposals and applications have evolved on Ethereum that require voting; from contracts that use voting-based DAOs for governance or other administrative tasks, to boardroom-like votes to…

  • Why Many Smart Contract Use Cases Are Simply Impossible

    Coin Sciences CEO Gideon Greenspan attacks common misconceptions that he argues are contributing to outlandish expectations for smart contracts.

  • Deloitte Insights - Upgrading blockchains

    Paper contracts can take weeks to travel around the globe, while digital documents are uncomfortably easy to forge. Is there a way to automate transactions to make them smoother, more efficient, and more secure for all parties? Leaders are looking at blockchain and smart cont…

Literature

  • They Might Be Smart, But These Contracts Need to Be More Secure

    A certification process can provide participants in smart contracts with greater assurances they won’t lose their money (see: the DAO). But in distributed systems, the true test of security comes when software is released into the wild.

  • Most Cited Smart Contracts Publications

Resources

  • https://en.bitcoinwiki.org/wiki/Smart_contract

    Smart contract (also self-executing contract, blockchain contract, or digital contract) is an electronic algorithm intended for the automation of the contract execution process in the blockchain. The general idea of smart contracts is to exclude divergences in the treatment …

  • OpenLaw — A free legal repository

    We are home to a passionate group of people, technologists, and dreamers committed to rebuilding the legal industry.

  • Investopedia — Smart Contracts

    Smart contracts are self-executing contracts with the terms of the contract between buyer and seller directly written into lines of code.