スマートコントラクトとは何か? Smart Contractの定義

  • 29
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

「スマートコントラクト」という言葉の意味や使われ方が、非常に混乱しているいので、まとめてみました。

概要: スマートコントラクトの定義の合意

  • 現在、専門家の間で一致する定義が存在しないと言われている

    • 専門家が議論しても、スマートコントラクトの意味は合意に至らない
  • 日本語で調べると、スマートコントラクトが契約であるということを前提とした説明や、それを前提で話をする方も多いですが、スマートコントラクト関連の専門家の間では合意も取れていない、ということを前提に話をしないといけないかと思います。

よく使われる「スマートコントラクト」の意味

みんなが合意する「スマートコントラクト」の定義がないとはいえ、何かしらの説明がないと意味はわからないでしょう。
色々な使い方をする人がいるので、それぞれの「スマートコントラクト」という言葉の使い方を一言で要約してみました。

  1. デジタルの形の約束事 (概念提唱者のNick Szaboの定義)
  2. 賢い契約 (直訳して、言葉をそのままに解釈)
  3. プログラム化された契約
  4. 自力執行権のある契約 (self-enforcing contract by Nicolas Dorier)
  5. スマートコントラクト・プラットフォーム上で動くプログラムのこと
    • 狭義でEthereum上で動くプログラム、コントラクトのこと

大まかに上記なような意味で使われることが多いです。

ブロックチェーンの観点からのスマートコントラクト

ブロックチェーンの視点で言うと、大雑把に以下の2つ使われ方をします。

  1. ブロックチェーンが全く関係ない意味で使われる場合
  2. ブロックチェーン上で実行されるプログラムの観点からの意味で使われる場合

Ethereumにおけるスマートコントラクト

Ethereumは、当初Ethereumをスマートコントラクトと分散型アプリケーション(DApp)プラットフォームと言っていました。(現在ではワールドコンピュータと表現)。

つまり、Ethereumは以下の2つの視点から見ることができます。

  1. スマートコントラクトを実行するためのプラットフォーム
  2. 分散型アプリケーションを実行するためのプラットフォーム

Ethereum上で「Hello World」という文字列を返すだけのプログラムは、スマートコントラクトと言えるのか? という論点は持っておいた方がいいかと思います。

スマートコントラクトの例としての自動販売機

  • Nick Szaboの定義によると、自動販売機もスマートコントラクトになります。
  • 自分が、スマートコントラクトの講義を複数回行ったところでアンケートをとったところ、自動販売機をスマートコントラクトと認識している人は、ほぼいませんでした。

日本語記事によるスマートコントラクトの意味・定義

海外の方の説明記事の日本語化

これは結構オススメです。

Ripple Wiki(日本語訳)での定義

スマート・コントラクトはある条件と成果を暗号化したプログラムです。コードは事前に契約当事者により合意され、公平で中立なシステムにより誠実に実行されなければなりません。

Smart Contract Japanでの説明

スマートコントラクトの定義は、2015年現在未だ曖昧ですが、
基本的には「オンライン上の効率的な合意システム」として、
様々なプラットフォーム上で実装が試行され始めています。
文字を分解すると、スマートとは、効率的であるという意味、
そして、コントラクトとは、法的な「契約」という意味ではなく、「合意」という意味です。
つまりスマートコントラクトとは、効率的な合意システムです。

Nicolas Dorier氏の説明 (Coinportalの記事)

スマートコントラクトとは、コントラクト(契約)をスマートに行えるコンピュータープロトコルのこと。契約の条件確認や履行までを自動的に強制させられる。ニコラ氏は「スマートコントラクトと呼ぶよりセルフエンフォーシング・コントラクト(self-enforcing contract)、つまり『自力執行権のある契約』という表現の方がその性質をよく表しています」と話す。

スマートコントラクトの定義 by 斉藤賢爾さん

狭義

デジタルに表現される資産を予め定められたルールに従って自動的に移転させる仕組み

広義

  • 契約を機械で実装する仕組み
  • また、そのようにして実装された契約

原初的には自動販売機などもスマートコントラクトに当たる

斉藤さんのブロックチェーンハブでの講義のPDF
Dropbox - BcH-smart-contract20160408a.pdf

海外著名人によるスマートコントラクトの意味・定義

Nick Szabo

  • 短く言うと「デジタルの形での約束事」という定義

A smart contract is a set of promises, specified in digital form, including protocols within which the parties perform on these promises.

Vitalik Buterin

A smart contract is the simplest form of decentralized automation, and is most easily and accurately defined as follows: a smart contract is a mechanism involving digital assets and two or more parties, where some or all of the parties put assets in and assets are automatically redistributed among those parties according to a formula based on certain data that is not known at the time the contract is initiated.

Rechard G Brownの定義

A smart-contract is an event-driven program, with state, which runs on a replicated, shared ledger and which can take custody over assets on that ledger.

BBVA Research

PDF注意

Smart contracts: the ultimate automation of trust?
https://www.bbvaresearch.com/wp-content/uploads/2015/10/Digital_Economy_Outlook_Oct15_Cap1.pdf

SlideShare: Defining Smart Contracts

Defining Smart Contracts

Eris: DEFINITIONS: WHAT IS A SMART CONTRACT?

p.28-32

COIN CENTER

ConsenSys Blog

Unpacking the term ‘Smart Contract’ — Medium

What are Smart Contracts?
Smart Contracts are essentially contractual clauses that execute and enforce themselves through use of code (programming code not legal code).

Digital Asset Holdings のブログ記事

ブロックチェーンに限って表現

Introducing the Digital Asset Modeling Language - Digital Asset

WHAT IS A SMART CONTRACT?

Smart Contracts are software applications that are shared and run on all nodes across a blockchain network. The primary goal of blockchains with inbuilt Smart Contracts was to create self-enforcing agreements that independently control and automate the exchange of value according to predetermined rules based on predefined inputs. As with Bitcoin, Smart Contract platforms like Ethereum were designed to minimize the role of trust and enable actors that did not know each other to enter into software-enforced contractual agreements that are censorship resistant, meaning neither party, nor even governments can tamper with or prevent their execution.

Wikipediaでの説明

Smart contract - Wikipedia, the free encyclopedia

Smart contracts are computer protocols that facilitate, verify, or enforce the negotiation or performance of a contract, or that make a contractual clause unnecessary.

スマートコントラクトとは何か?の説明記事

スマートコントラクトの定義、意味を細かく分解して説明

In the context of blockchains and cryptocurrencies, smart contracts are:
– pre-written logic (computer code),
– stored and replicated on a distributed storage platform (eg a blockchain),
– executed/run by a network of computers (usually the same ones running the blockchain),
– and can result in ledger updates (cryptocurrency payments, etc).

… In other words, they are little programs that execute “if this happens then do that”, run and verified by many computers to ensure trustworthiness.

ビットコインは、スマートコントラクトのプラットフォームという意見

Bitcoin as a Smart Contract Platform | Richard Gendal Brown

[番外編] スマートコントラクトという言葉が好きでない人の話し

Jacob Farber, general counsel for R3

スマートコントラクトは、すごく嫌いな名前で、なぜなら契約でもなければ、スマートでもないから。

R3 Reveals 8 Areas of Focus for Blockchain Bank Trials - CoinDesk

"People call it smart contracts. It’s a name I hate, because they’re not really contracts [and] they’re not really smart."

個人的に聞いた話し

  • Nicolas Dorier氏, Edmund Edgar氏は、スマートコントラクトという言葉が好きでないという話しをしていたのを直で聞いた記憶があります。
  • 個人的にも、「スマートコントラクト」と誰かが言った場合にどういう意味で言っているのかを推測しなくてはいけないので、あまりよくない言葉かと思います。

[番外編] スマートコントラクトの定義が専門家で一致しなかった話

TrustatomのYuriiが、日本に来た時のミートアップで、スマートコントラクトの定義が一致しなかったという話をお伺いしました。(英語)

Meet Yurii Rashkovskii | 日本デジタルマネー協会 / ビットコイン / Bitcoin

以下が業界の人が、Smart Contractsに話しているYouTube動画です。

Let's Talk Smart Contracts - YouTube

Yuriiは、また同じような会を開くと言っていましたが、まだ開催されていない?

チェーンコード(chaincode)


HyperledgerプロジェクトとかOpen Blockchainが、chaincodeと呼び始めたので、ご紹介。

単語の意味は以下に書きました。

Chaincode is a decentralized transactional program, running on the validating nodes, and uses Docker to host the chaincode without relying on any particular virtual machine or computer language.

Blockchain logic, often referred to as “smart contracts,” are self-executing agreements between parties that have all relevant covenants spelled out in code, are settled automatically, and can be dependent upon future signatures or trigger events. In the Hyperledger project, we call this “chaincode” to help establish clarity between blockchain logic and the human-written contracts

Hyperledger’s Evolving Blockchain Fabric, Merging Blockstream, DAH, IBM Code | Chain-Finance.com

法的観点・契約から見たスマートコントラクト

Upacking the term ‘Smart Contract’ — Medium

  • 以下イベントで、実際の様々な実証実験、開発現場での知見と、弁護士の芝さんと共に法律の観点からみたスマートコントラクトのセッションも急遽行いました。現状では、Ethereum上で契約として扱えるコントラクトを書くのは、非常に厳しいかなと考えております。

関連用語

  • スマートコントラクト: スマート契約
  • Smart Contract
  • chaincode: チェーンコード、チェインコード
  • Bitcoin: ビットコイン
  • Ethereum: イーサリアム、イサリアム、エセリウム
  • Codius: コーディアス
  • Ripple: リップル
  • Oracle: オラクル, reality keys, oraclize