スマートコントラクトはIoTの領域でも活用が期待されています。
カーシェアリングを例にとってみます。
カーシェアリングでは、利用者は車を利用するたびに利用時間に応じた金額を支払う必要があります。
スマートコントラクトを使うと、そのコントラクトに送金することで車が送金状況を確認してドアを自動で開けるようなことが可能になります。
実装
IoTで利用するスイッチを制御するコントラクトを実装します。
[ソースコード]
1 | pragma solidity ^0.4.11; |
このコンストラクトの仕様は次の通りです。
- サービスオーナーがコンストラクタでIoTスイッチを登録します。
- IoTスイッチの利用者はpayToSwitch関数でetherを支払います。
1etherを支払うと5分間使用できるIoTスイッチを想定しています。 - IoTスイッチは利用終了時刻になるとupdateStatus関数でstatusを更新してサービスを利用できなくします。
- サービスオーナーはwithdrawFunds関数をコールし、支払われたetherを引き出すことができます。
次回から、このスマートコントラクトの動作を確認していきます。