- スマートコントラクトはトランザクション発生の条件が記述されたプログラムコード
- 条件が満たされると支払いが自動実行される
- 人を介さず支払いが行われるため人件費の削減ができる
「イーサリアムのスマートコントラクトについて知りたい!」そう思われていませんか。本記事ではイーサリアムのスマートコントラクトについて、機能やメリット・デメリット、抱えている問題をまとめました。本記事を読むことで、イーサリアムのスマートコントラクトの概要がわかります。
イーサリアム (Ethereum/ETH) とは
分散型プラットフォーム
イーサリアムは厳密にいうと、暗号資産 (仮想通貨) ではありません。イーサリアムはアプリケーションの開発や公開ができる、分散型プラットフォームの名称です。
まず「分散型」の意味を説明します。イーサリアムブロックチェーンは世界中のコンピューターに「分散して」保管されています。よってひとつの企業や政府などに支配されることがなく、ブロックチェーンを保管している個々人が力をもちます。これが「分散型」です。
「プラットフォーム」とはイーサリアムブロクチェーン上でアプリケーションが動作するということです。アプリケーションの「土台」や「基盤」になるという意味です。このイーサリアムブロックチェーン上で流通する通貨がether (イーサ) 。etherはアプリケーションを開発したり動作させたりするときに必要となります。
暗号資産(仮想通貨)の課題に取り組む
イーサリアムは複雑な動作を行うアプリケーションを組み込めることが特徴です。イーサリアムが開発される以前のブロックチェーンには、かんたんなアプリケーションしか組むことができませんでした。
開発者のヴィタリック・ブテリン氏が世界中のビットコインプロジェクトを見て回ったとき、「複雑なアプリケーションを作成したい」という開発者たちのニーズに気づき、分散型プラットフォームのアイディアを思いついたとのこと。
またイーサリアムは将来、コンセンサスアルゴリズムをPoS (プルーフ・オブ・ステーク) へ移行します。PoSはPoW (プルーフ・オブ・ワーク) の消費電力が増大する問題を解決するもの。イーサリアムは多くの暗号資産 (仮想通貨) が抱える問題に取り組んでいます。
発行の上限と半減期がない
イーサリアムがビットコインと大きく異なる点が、発行枚数の上限がないことです。発行枚数の上限がないためイーサリアムは毎年約10%ずつ増えています。「供給 (市場への流通数) よりも需要が多いことにより資産の価値が上昇する」という説がありますが、イーサリアムは明らかに供給が多く、希少性はありません。
またマイニング報酬が半分になる「半減期」も設けられていません。「半減期」がないため、マイニング報酬は基本的に一定額のままです。これはマイナーがマイニングを続けるインセンティブとなるでしょう。
考案者はヴィタリック・ブテリン氏
イーサリアムを考案したのは当時19歳だったヴィタリック・ブテリン氏です。17歳のころにビットコインに出会い、その後大学を中退して世界中のビットコインプロジェクトを見て回る旅に出たとのこと。
この旅の中でイーサリアムのアイディアを思いついたとしています。ブテリン氏は2018年に米経済誌フォーブスの「30アンダー30」に選ばれるなどしており、暗号資産業界では超有名人です。
ICOに使用できる
2017年に人気だったICOにおいて、イーサリアムブロックチェーンは多くのプロジェクトに使われました。人手を介することなくICOを行うには、自動実行できるプログラムが必要です。イーサリアムブロックチェーンは複雑なプログラムを実装できるため、ICOに利用されました。
またイーサリアムはイーサリアムブロックチェーン上に新しいトークンを作成する機能があります。そしてトークンを作成する際、ERC20という規格を選択できます。この規格を選択することでERC20トークンに対応したウォレットで送受金が可能になり、トークンの取り扱いが容易になります。
ウォレットを発行する企業がいちいち個別にプログラムを追加・修正する手間がないため、ICOを通じてERC20規格のトークンが多数流通しました。
ICOは投資家から暗号資産 (仮想通貨) を収集し、作成されたトークンを配布するというもの。
イーサリアム (Ethereum/ETH) のスマートコントラクトとは
自動的に契約を実行できる
スマートコントラクトとはトランザクションが発生する条件を定義した、ブロックチェーン上のプログラムコードの一部分を指します。トランザクションが発生する条件が満たされると、プログラムに定義されたタスクが実行されます。
よりかんたんにいうと、「支払いが行われる条件を事前に定義し、その条件が満たされると自動的に支払いまで完了できるしくみ」です。スマートコントラクトにより、匿名同士の取引においても第三者をはさむことなく確実に実行できるようになります。
自動販売機に例えると理解しやすい
スマートコントラクトはよく自動販売機に例えられます。自動販売機にはあらかじめ「商品を渡すときの条件」が定義されています。たとえば「130円以上のお金が挿入されたら」などです。この点はスマートコントラクトも同様です。
また自動販売機は「コインを挿入したら商品が自動で出てきます」が、スマートコントラクトにおいても「あらかじめ定義された条件を満たすと商品 (トークン) が送付される」という点では共通しています。
そして自動販売機から商品を購入するとき、身分証明は必要ありません。スマートコントラクトは「名前も知らぬ人同士の取引」で使われますが、この点でも自動販売機と同じであるといえるでしょう。
スマートコントラクトのしくみ
スマートコントラクトは、次のステップで実行されます。
- 1.開発者がトークンを受け渡す条件を定義する
- 2.定義した条件が満たされる
- 3.スマートコントラクトが自動実行される
スマートコントラクトはプログラムコードなので、最も重要といえるのは「1.開発者がトークンを受け渡す条件を定義する」です。ただし開発者は1からプログラムを書く必要はありません。スマートコントラクトライブラリを利用することで、コードの作成時間を節約できるでしょう。
たとえばERC-20トークンを発行するスマートコントラクトを作成するとき、スマートコントラクトライブラリにあるERC-20トークン発行用のコードを使うことができます。
スマートコントラクトを記述するときの主なプログラミング言語はSolidityとVyper。2020年10月に新たに「Fe (フィー) 」というプログラミング言語が追加されました。これらの言語はPythonやJavaScriptの知識があれば、ある程度理解できるとされています。
イーサリアム (Ethereum/ETH) のスマートコントラクトのメリット
取引手数料を削減できる
スマートコントラクトは人件費の削減に寄与します。自動販売機が売り子を必要としないように、スマートコントラクトがあれば仲介を担う人は不要になります。プログラムで定義できる定型の業務であれば、スマートコントラクトが仲介人の代わりとなるでしょう。
実際、保険金の支払い業務においてスマートコントラクトが利用されています。保険会社のポリシーにそって保険金の請求をチェックし、支払額を決定するプロセスがありますが、それをスマートコントラクトで実行しています。スマートコントラクトの導入は人件費の削減だけでなくエラーの削減や処理時間の短縮効果も見込めるでしょう。
契約に関する不正を減らせる
スマートコントラクトは売買における不正を減らす効果があります。なぜならスマートコントラクトはイーサリアムブロックチェーン上に刻まれるからです。
ブロックチェーン上に契約の取り決め事項と取引した内容が刻まれるため、だれもがいつでもインターネット上で見ることができます。よって透明性のある取引が実現できるでしょう。まただれかが不正に修正したり改ざんしたりすることはできませんので、売買において不正することは不可能だといえます。
契約相手を信頼する必要がない
スマートコントラクトはすべて自動的に決済されるので、契約相手を信頼する必要がありません。インターネット上の見知らぬ人物と直接取引するときを思い浮かべてみてください。もしお金を先に払えば、持ち逃げされる可能性が思い浮かぶと思います。また商品が送られてこないかもしれません。
ですがスマートコントラクトではお金が支払いわれると、プログラムにより自動的に商品 (トークン) が支払いわれます。よって相手が知らない人物であったとしても不正されることはありません。
イーサリアム (Ethereum/ETH) のスマートコントラクトのデメリット
プログラミング言語への変換をする必要がある
人手を介して行っていた定型業務をスマートコントラクトに移行するとき、業務のルールをコードに変換する手間がかかります。開発者に依頼するときは業務のルールをいちいち言葉に書き出していかなければなりません。よって定義の内容を決めるまでに多大な時間がかかる可能性があります。
あらゆる状況を想定してプログラムしないといけない
トランザクションを発生させるときのトリガー条件は、あらゆる状況を想定したものである必要があります。よって細かく条件を洗い出す必要があるでしょう。たとえば自動販売機では、条件とその条件下のアクションは、次のようになります。
- お金が130円以上挿入される→ボタンのランプを点灯させる
- 挿入されたお金が130円未満→30秒待つ
- 30秒待ってもお金が挿入されない→返金する
上記のように、”正しい行動”を取引相手がとらなかったときの状況を想定する必要があります。
プログラミング設定でのバグ
せっかくスマートコントラクトを作成しても、その記述にミスがある可能性があります。もしスマートコントラクトにバグがあれば売買がうまくいかなかったり、バグを突いて不正に通貨を取得しようとする人も現れたりするかもしれません。
実際イーサリアムはスマートコントラクトのバグを突かれて、60億円相当のイーサリアムを盗まれたことがあります。
契約内容の変更が難しい
スマートコントラクトは一度実行されると元に戻せません。たとえばイーサリアムを送付してERC-20トークンを替わりにもらったとき、「このERC20トークンを返すからイーサリアムを返金してほしい」といったことは不可能です。よって何かトラブルがあった際に、柔軟に対応することが難しくなります。
仲介業の人たちが職を失う
スマートコントラクトは一部の人たちの仕事を奪う可能性があります。たとえば保険金請求のチェックや保険金額の換算業務に携わる人たちです。ただこれは人件費を節約できるというスマートコントラクトのメリットの裏返しです。
新たなスマートコントラクト開発言語を導入するイーサリアム (Ethereum/ETH)
2020年10月14日、イーサリアムのスマートコントラクトを記述するときのプログラミング言語に、新たな言語形式が採用されることがわかりました。新しいプログラミング言語は「Fe (フィー) 」という名称です。スマートコントラクト記述言語のひとつとして使われてきたVyperをリニューアルしたものです。
VyperはもともとPythonの構文が多く用いられていますが、Feも同様とのこと。よってPythonに馴染みのある開発者であれば、利用するハードルは低いとしています。またFeは「より正確にガス代を見積もる」などのVyperの最終目標を引き継いでいます。
イーサリアム (Ethereum/ETH) のスマートコントラクトが抱えている問題
法律
スマートコントラクトは現代の法律で解釈しきれない範囲が多く、トラブルがあったときには問題となる可能性があります。一般的な商取引の場合、トラブルがあれば弁護士などの法律家が間に入り和解を目指します。ですがスマートコントラクトは法律的な解釈が不明なため、解決に至らないことも考えられるでしょう。
契約のキャンセル
自動販売機でジュースを買ってしまったあとではキャンセルが効かないのと同様に、スマートコントラクトがいったん発動されるとキャンセルすることはできません。ジュースのような単価の安いものであればトラブルになりにくいでしょうが、高額の取引の場合は問題になることがあります。
仲介人を必要としないというメリットの裏にはシステムに柔軟性がないというデメリットが隠れています。
プライベート管理
スマートコントラクトはイーサリアムブロックチェーンに記録されるため、インターネットを通じてだれもが見れる状態にあります。取引内容に透明性があるのはメリットですが、秘匿したい取引内容の場合でも公開されてしまいます。よって秘匿したい取引には使えないでしょう。
スマートコントラクトを実行可能なイーサリアム (Ethereum/ETH) に関するQ&A
スマートコントラクトを実行可能な仮想通貨はイーサリアムだけなの?
スマートコントラクトが実装されている暗号資産 (仮想通貨) はイーサリアムだけではありません。はじめてブロックチェーンにスマートコントラクト機能を実装したのはイーサリアムですが、イーサリアムが開発されてからさまざまな通貨にスマートコントラクトが実装されています。スマートコントラクトが実装されている通貨は、次の4つがあります。
- ネオ
- イオス
- リスク
- クアンタム
スマートコントラクトは本当に安全なの?
基本的には安全なスマートコントラクトですが、過去に一度大きな事件がありました。それは2016年にイーサリアムクラシックとの分裂を招いた「The DAO事件」です。
「The DAO」という団体がイーサリアム上でトークンを発行し、運営資金を集めました。ですがそのときに記述されたスマートコントラクトにバグがあり、ハッカーが不正にイーサリアムを取得しました。当時のレートになおすと、被害金額は約60億円にもなりました。
イーサリアムはブロックチェーンを新たに複製し、犯行の記録をないものとしました。犯行の記録は「イーサリアム・クラシック」のブロックチェーンに残っています。
スマートコントラクトを実行可能なイーサリアム (Ethereum/ETH) に関するまとめ
契約を自動実行できるスマートコントラクトは取引内容に透明性をもたせ、見知らぬ人同士の取引においても仲介人が不要になるなどのメリットがあります。一方で法律的な定義や、秘匿したい取引には使えないなどの問題を抱えていることがわかりました。
スマートコントラクトに将来性を感じた方はぜひイーサリアムの取引を通じてスマートコントラクトへ投資してみてはいかがでしょうか。