連載
» 2017年09月12日 05時00分 公開

Ethereumではじめる“スマートコントラクト開発”(1):スマートコントラクトって何? 「競合との協業」という新たなビジネスの地平を開ける仕組みである理由とは (1/2)

本連載では、「Ethereum」を使った契約の条件確認や履行などを自動で行う「スマートコントラクト」の開発方法を紹介していきます。第1回目は、スマートコントラクトとは、どのような仕組みで、どのような場面で使えるのかを紹介します。

[町浩二,トライデントアーツ]

超入門スマートコントラクト

 「スマートコントラクト」は、ブロックチェーン技術を活用したアプリケーションプラットフォームの中で、契約の条件確認や履行などを自動で行うことから、研究開発が進み、注目されている技術です。

 本連載では、スマートコントラクトの概念や仕組みを整理しつつ、DApps(Decentralized Applications:分散ノード上で実行されるアプリケーション)のスマートコントラクトのコーディング方法、企業向けアプリケーション開発の実践方法について解説していきます。

スマートコントラクトの概念を理解しよう

スマートコントラクトとは?

 スマートコントラクトを、これまでにも見聞きしたことがある人は少なくないでしょう。しかしスマートコントラクトをご自身の言葉で説明するとしたら、人によって内容に違いが出てくるのではないかと思います。本連載では、スマートコントラクトを、次のように定義します。

  1. インターネット上の電子商取引である
  2. 契約を締結し、契約締結と同時にサービスを自動的に実行する機能を有する
  3. このシステムに使用される資金やコンテンツを保護するセキュリティ機構を有する
図1 スマートコントラクトを使うことで、セキュリティの保たれた分散基盤上で取引ができる

 スマートコントラクトの概念はブロックチェーンよりも古く、米国のコンピュータサイエンス/暗号技術の研究者であるNick Szaboによって考案されたといわれています。ウィキペディアにある「Nick Szabo」氏のページでは、スマートコントラクトを次のように説明しています。

The phrase and concept of "smart contracts" was developed by Szabo with the goal of bringing what he calls the "highly evolved" practices of contract law and practice to the design of electronic commerce protocols between strangers on the Internet.

「スマートコントラクト」という呼称と概念はSzabo氏によって開発されました。この概念は、インターネット上における他人との電子商取引プロトコルの設計に、「高度に進化した」契約と実行の商習慣をもたらすことを目的としています。

 上記を簡単な表現に言い換えると、次のように言うことができます。

スマートコントラクトとは、インターネット上の電子商取引において、契約の締結とサービスの実行を自動的に行えるように高度に進化したシステムのこと。


 この表現は抽象的で捉えどころがないかもしません。Szabo氏が2004年に米国で開催したIEEEのワークショップで発言した下記の説明が、スマートコントラクトをより具体的にイメージしやすいかもしれません。

A canonical real-life example, which we might consider to be the primitive ancestor of smart contracts, is the humble vending machine.

スマートコントラクトの初期の原型であると一般的に考えられる実例は、一般的な自動販売機です。

The machine takes in coins, and via a simple mechanism, dispense change and product according to the displayed price.

自動販売機は、硬貨が入ると表示された価格に従って商品を提供します。

The vending machine is a contract with bearer: anybody with coins can participate in an exchange with the vendor.

自動販売機は商品運搬者が用意した契約です。硬貨を持っている人は誰でも業者との取引に参加できます。

 さらに、Szabo氏は次のような説明もしています。

The lockbox and other security mechanisms protect the stored coins and contents from attackers, sufficiently to allow profitable deployment of vending machines in a wide variety of areas.

自動販売機のロックボックス(金庫)およびセキュリティ機構は、さまざまな場所に自動販売機の設置を可能にするために、投入された硬貨および販売商品を攻撃者から保護しています。

 以上の説明を整理すると、前述のスマートコントラクトの定義になります。

 定義した内容を仮想通貨「Bitcoin」に照らし合わせると、Bitcoinは「通貨を送金、保管することに特化したスマートコントラクト」ということになります。そのBitcoinの機能を拡張、発展させてあらゆる取引に対応することを目指しているのが、今日研究が進んでいるスマートコントラクトシステムです。

図2 スマートコントラクトシステム

スマートコントラクトの重要な要素である「ブロックチェーン」とは?

 スマートコントラクトは、「Ethereum」や「Hyperledger Fabric」などの「ブロックチェーン技術」を活用したアプリケーションプラットフォームの中で実行されるプログラムやアプリケーションを指す言葉として知られています。

 スマートコントラクトの重要な要素であるブロックチェーンは、個々の取引のセキュリティを高める「暗号化」というトランザクション特性や、分散ノード間のデータの整合性を保つ「合意アルゴリズム」という分散処理特性などの特性を持つ技術です。ブロックチェーンは、これらの特性により、堅牢なミドルウェアとして存在することができ、スマートコントラクトの自動実行機能を活用するシステム基盤として整ってきました。

 自動実行を実現するシステム基盤は、人のメンテナンスを必要としない堅牢な基盤であることが望ましいと考えられますが、それをブロックチェーンが支えているというわけです。

図3 ブロックチェーンの主な技術要素
       1|2 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。