公式Twitterあるよ♪フォローしてね!

スマートコントラクトって何?いまいち分からないから詳しい人に聞いてみた。

スマートコントラクトって何?

この記事は、佐藤(低カロリー)さんから寄稿頂きました。

「スマートコントラクト」って、よく聞く言葉だし、なんとなくの意味は理解しているつもりだけど、イマイチ良くわからない感ある…。
そんな訳で、システム関係に詳しい「佐藤(低カロリー)さん」に、色々教えてもらいましたので、その内容を下記にまとめたいと思います。

スマートコントラクトってなんなのか聞いてみた!

スマートコントラクトって、ざっくり言うとなんですか?

スマートコントラクトを一言で説明するならば 契約の自動化 です。
「スマート」には、「賢い」「利口な」といった意味から転じて「先端技術」「情報化された」などの意味があり、「コントラクト」にはは「契約」という意味があります!

つまり、スマートコントラクトは、従来型の契約(コントラクト)を、スマート(先端技術で情報化された)にしようという試みなわけです。

これにより、従来型の書面で行っていた契約ごとを効率化すると共に、プログラムを用いた自動化によるコスト削減や、改ざんが困難な記録として残す事もできたり色々な良いことがあるわけなのです。

ここまでで、私の理解度は1%程度
(飲み会の話題にできる時間に換算すると「約5秒」。質問は全てスルーするレベルだ…)

じんぺい

スマートコントラクトが従来型の契約と違ってスマートなのは分かったけど何が違うのですか??

先程は、「契約の自動化」と表現しましたが、 契約をまとめてプログラムしている といった方が分かりやすいかもしれません。
従来は、何か高額な買い物(車とか家とか)をする時、契約内容の確認などやりとりを数回繰り返し、複数の契約書に目を通して署名をするという流れだったと思います。

しかし、スマートコントラクトでは、複数の契約書をまとめてプログラミングしてあるので、いちいち販売側の確認フェーズが必要ない分、従来のやり方よりスムーズに進めることができます。

ここまでで、私の理解度は2%程度
(飲み会の話題にできる時間に換算すると「約10秒」。契約をまとめちゃうんだよ!と知ったかぶりするが、その後の質問には無口になるしかないレベルだ…)

じんぺい

なんか、スマートコントラクトの具体例ってありませんか??

スマートコントラクトを最初に考えた方は、自動販売機もスマートコントラクトの一つだと言っています。
指定された金額を入れてボタンを押すという条件が満たされた場合に、対応した商品が出てくるという契約がプログラムされているからです。
つまりは、特定のアクションがトリガーとなり契約成立するというのがスマートコントラクトなのです。

ここまでで、私の理解度は5%程度
(飲み会の話題にできる時間に換算すると「約20秒」。ちょっと分かってきた気がするけど、多分、気のせいなんだろうなってレベルだ…)

じんぺい

スマートコントラクトで契約内容を定義する方法ってどうやってやるの?

ここで、従来型の主な契約締結までの流れを例に挙げて説明いたしましょう。
まずは、下記をご覧ください。

従来型の契約の流れ 一例

  1. 契約書の作成(Wordファイルで作成)
  2. 編集ができないようPDFに変換
  3. 契約相手にメールで契約書を送付(内容に双方合意)
  4. 契約書を印刷し書き留め等で郵送する。
  5. 双方が記名捺印を行う
  6. 一通ずつをそれぞれで保管。

上記のような契約の流れをスマートコントラクトで行う場合、下記のようになります。

スマートコントラクトによる契約の流れ 一例

  1. 契約内容をプログラミング(契約をスマートコントラクト化)
  2. 相手方が、ウェブサイト等を通じて「契約」するアクション。
  3. 契約が成立!!

スマートコントラクトによる契約の発行は、プログラムが動作する環境であればどこでも可能です。
発行した契約は、誰でもアクセスできるWebサイトや、管理者によって許可されたものだけが閲覧可能なWebサイト等、もしくは、自動販売機やATMなど、その目的に合わせて開発された機械などに実装され、ユーザーが特定のアクションを行なった事をトリガーにして契約を成立させるという仕組みになっています。
つまり、「契約内容」と、「契約する為のトリガー」をセットにして定義するのがスマートコントラクトの仕組みです。

ここまでで、私の理解度は10%程度
(飲み会の話題にできる時間に換算すると「約1分」。これで、注文したエイヒレの炙り焼きが届くまでは時間が稼げそうだ…)

じんぺい

スマートコントラクトで契約を発行するにはどうすればいいの?僕にもできる?

残念ながら、今は、それなりに知識がある人がプログラミングしないとダメです…。
だけど、今後は、スマートコントラクトを用いた契約書を誰でも作成できるツールなんかも出てくるかもしれませんね!

ちなみに、スマートコントラクト自体は自販機の例のように、ブロックチェーン上でなくても実装可能です。

ただ、ブロックチェーン上に実装することで、契約ごとの問題点である改ざんのリスクが解消できるし、お金のやり取りをする場合は必ず何かしらの契約が発生することもあるので、仮想通貨とスマートコントラクトはとっても相性がいいと思っています。

ここまでで、私の理解度は15%程度
(飲み会の話題にできる時間に換算すると「約2分」。将来的には通販サイトとかの身近な場面でも役立つ技術になりそうだって事が思い描けて来たぞ…)

じんぺい

スマートコントラクトを実装している仮想通貨銘柄って沢山あるけど、それぞれ違いはあるの??

現在、スマートコントラクトが実装されている仮想通貨は、数が多すぎて把握しきれてないですが代表的なものとしては、、、
EtheriumLiskNEONEMなどがあります。

それぞれの銘柄における、スマートコントラクト自体の違いは、下記の3つの指標に違いがあります。

  1. 規模(どれぐらい複雑な契約まで定義できるか)
  2. パフォーマンス(契約発効・処理の速度)
  3. プログラミング言語(イーサリアムは独自言語、Liskは有名なJavaScriptで開発可能など)

ただし、まだまだ実用例は少なく、実測値を測る事が難しい為、本当に優れているのはどれなのかわからない状態です。
また、それぞれの仮想通貨が、そもそも違うターゲット層に向けて開発されている事もあり、比較をすることは、将来的にも難しいかもしれません。

…だから、今はまだ埋もれている草コインが、実は、他のどの仮想通貨よりハイスペックであるという可能性も否定できませんね!

ここまでで、私の理解度は17%程度
(飲み会の話題にできる時間に換算すると「約2分15秒」。スマコンの話題で手詰まりになったら、スマコン対応の銘柄で話を引き延ばそう…)

じんぺい

スマートコントラクトを導入したら「こう変わるよ!」というような事例が知りたいんですが…

例えば、このブログ「 仮想通貨ニュース劇場」のように、複数のライターさんが寄稿するブログを運営する場合なんかに、寄稿してくれたライターさんへ原稿料金を支払う際にもスマートコントラクトが活用できるかもしれません。

例えば、wordpress上で特定のユーザが記事をアップするという条件を満たしたときに、そのユーザに対応したウォレットアドレスにイーサリアムを払い出すという契約を予め定義しておくイメージです。

また、その際、記事の文字数、評価、投稿ユーザのステータスによって、払い出す枚数を変えるとかも可能です。
将来的に、これらがWordPressのプラグイン等で実装できたら面白いでしょうね!!

あと、ウェブサイトに実装するうえで、仮想通貨の種類によって、仕組みが少し異なったりします。
例えば、LISKはJavaScriptによって動かす事ができますので、サーバ負荷が軽減できる可能性もあります。
しかし、コインの払い出しまでをJavaScriptで完結する事はできない為、サーバ障害による影響は出てしまいますが、一部の処理を軽減できるかもしれません。

また、NEMは開発が容易にできるので、敷居が低くどんどんサービスが開発されてますね。
NEMはカタパルト搭載で処理速度上がったり、追加機能とかあるのでメルカリとかの商品売買サイトに、すごく適していると思います。

ここまでで、私の理解度は25%程度
(飲み会の話題にできる時間に換算すると「約5分」。相手が技術者じゃなければなんとかなる…多分。よし!呑む準備は整った。)

じんぺい

誠にありがとうございました!お陰でスマートコントラクトの事が少し理解できました!

スマートコントラクトに関して、理解が深まったようで良かったです。
現在は、スマートコントラクトによる契約の発行や それの運用等ができるのは、一部の技術者に限られてしまいますが、今後、スマートコントラクトの普及と共に拡大していくと思います。

その時には、先程、例に挙げたようなライターさんへの原稿料金支払いもスマートコントラクトで実現できるかも知れませんね!
原稿料金をイーサリアムで頂戴できること、楽しみにしております^^

佐藤(低カロリー)先生ありがとうございました!!
スマートコントラクトの技術的な側面では分からないことがまだまだある印象ですが、どのような場面で実用化できる可能性があるのか、感じ取る事ができました。将来的に、何かのビジネスにスマートコントラクトを導入できないか模索してみたいと思います^^

じんぺい

スマートコントラクト について学んだ事まとめ

備忘録的な感じで、スマートコントラクトについて分かったことをまとめようと思います。

  • スマートコントラクトは、「契約内容」と「契約成立トリガー」をセットにしたもの
  • 自動販売機もスマートコントラクトみたいなもの。
  • スマートコントラクトとブロックチェーンは別の場所で動いてる
  • まだまだ新しい技術だから、一部の技術者さんしか開発、運用ができない。
  • 仮装通貨の種類によって、スマートコントラクトの仕様は若干異なる。
  • XEMが開発しやすくていい感じ…みたい。(次回はここを掘り下げたい。)
  • 意外と、身近な場面でもスマートコントラクトが活用されるかも?