本連載では、「Ethereum」を使った契約の条件確認や履行などを自動で行う「スマートコントラクト」の開発方法を紹介していきます。第1回目は、スマートコントラクトとは、どのような仕組みで、どのような場面で使えるのかを紹介します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
「スマートコントラクト」は、ブロックチェーン技術を活用したアプリケーションプラットフォームの中で、契約の条件確認や履行などを自動で行うことから、研究開発が進み、注目されている技術です。
本連載では、スマートコントラクトの概念や仕組みを整理しつつ、DApps(Decentralized Applications:分散ノード上で実行されるアプリケーション)のスマートコントラクトのコーディング方法、企業向けアプリケーション開発の実践方法について解説していきます。
スマートコントラクトを、これまでにも見聞きしたことがある人は少なくないでしょう。しかしスマートコントラクトをご自身の言葉で説明するとしたら、人によって内容に違いが出てくるのではないかと思います。本連載では、スマートコントラクトを、次のように定義します。
スマートコントラクトの概念はブロックチェーンよりも古く、米国のコンピュータサイエンス/暗号技術の研究者である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の機能を拡張、発展させてあらゆる取引に対応することを目指しているのが、今日研究が進んでいるスマートコントラクトシステムです。
スマートコントラクトは、「Ethereum」や「Hyperledger Fabric」などの「ブロックチェーン技術」を活用したアプリケーションプラットフォームの中で実行されるプログラムやアプリケーションを指す言葉として知られています。
スマートコントラクトの重要な要素であるブロックチェーンは、個々の取引のセキュリティを高める「暗号化」というトランザクション特性や、分散ノード間のデータの整合性を保つ「合意アルゴリズム」という分散処理特性などの特性を持つ技術です。ブロックチェーンは、これらの特性により、堅牢なミドルウェアとして存在することができ、スマートコントラクトの自動実行機能を活用するシステム基盤として整ってきました。
自動実行を実現するシステム基盤は、人のメンテナンスを必要としない堅牢な基盤であることが望ましいと考えられますが、それをブロックチェーンが支えているというわけです。
Copyright © ITmedia, Inc. All Rights Reserved.