2017.02.27

ブロックチェーンでスマート宅配ボックスを実現して気づいたこと


1. 初めに

次世代システム研究室のT.Mです。

昨年末の2016年12月になりますが、次世代システム研究室の開発主導の下、Z.com CloudConoHa の環境下でブロックチェーンのサービスを出させていただきました。

開発したサービスはこちらです。
このブロックチェーンプラットフォームの開発に際して、その上で動作するサンプルアプリケーションとして「スマート宅配ボックス」も開発しました。
ブロックチェーンを利用したスマート宅配ボックスについては、いくつかのメディアでも掲載していただくなど、ある程度大きな反応を頂きました。

今回は、次世代システム研究室でのブロックチェーン研究の始まりからスマート宅配ボックス開発に至るまでの経緯と、その中での得た自分なりの気付きを紹介させていただきます。

2. ブロックチェーン研究の始まり

次世代システム研究室でのブロックチェーン研究の始まりは、2015年の10月頃になります。

当初は数値の移動のみを取り扱うブロックチェーン実装を扱っていて、秒間トランザクション数をいかに多くするかなどを中心に考えていました。
その過程で『有限数の仮想通貨を発行し、それを存在証明+所有権として扱うことで、デジタルの世界(主にゲームなど)に適用できないか』なども検証しています。

本来コピー可能なデジタルコンテンツに、唯一性を持たせることもできるのではないかとチャレンジしましたが、次の理由により難しいという結論になりました。
  • 結局実際のデジタルコンテンツ自体はコピー可能。
  • 一企業に閉じたゲームコンテンツは所有権なども含めてDB管理した方がコストも安く、ブロックチェーンで管理するメリットがない。
    (複数ゲーム共通カードなどのブロックチェーンソリューションなどもありますが普及が見込めませんでした…)
こういった検証を進めていたのが2016年2月頃です。

3. Ethereumの採用

この頃にGMOインターネットが運用しているクラウドサービス上でブロックチェーンサービスを立ち上げるという話が出てきて、本格的にサービス化に向けた動きが始まります。

それまで数値の移動を扱うブロックチェーン実装の検証を行っていましたが、IoT等の適用分野を考えた際に要件を満たせないと判断しました。
スマートコントラクトが利用可能なブロックチェーン実装への切り替えを決断したのもこのタイミングになります。

基盤となるブロックチェーン実装の選定では、最もスマートコントラクトの実装と普及が進んでいたEthereumを基盤として採用することにしました。

4. サンプルアプリケーションの構築

スマートコントラクトでのサービス内容を検討するにあたって、そもそも何ができるのか自分たちの理解も曖昧な部分があったため、まずアプリケーションを構築してみて問題点を検証するアプローチをとりました。
そこで元々所有権の管理を中心に考えていたこともあり、最初にデジタルコンテンツを管理するアプリケーションを作成してみることにしました。

イメージとしては次のようなものです。
share

『ユーザが保有するデジタルコンテンツに関して、「誰にアクセス権限があるのか」をブロックチェーン上で管理し、権限がある人に共有する。』というものです。Evernote のサービスがイメージに近いと思います。
もちろん仮想通貨が使える利点もあるので、『仮想通貨を用いてデジタルデータの販売を行って購入者にファイルを共有する。』などの機能も組み込んでいます。

当時、このアプリケーションの構築に影響を受けたサービスは『UJO music』というサービスです。

これらの内容については、2016年5月頃までに一通り作り上げました。

ここまで色々検証した上での開発チームの正直な感想ですが、あらゆる処理(共有・販売などの手続き)が本人の署名のもとに行われるという違いはあるものの、まだまだDBで出来ることと大差ないという感想でした。

5. アプリケーション構築時に感じた課題

このアプリケーションを作る過程で、スマートコントラクトでアプリケーションを構築する上でのいくつかの課題が浮き彫りになってきました。
  • データの記録にはエンドユーザが仮想通貨(Ether)を保有しなければならない。
  • 普通に利用する場合はエンドユーザ端末がEthereumノードになる必要がある。
  • バグがあった場合のソースの修正ができない。
これらの課題を踏まえて、これらの課題を解決してサービス提供しやすくするスマートコントラクトプラットフォームを提供することにしました。

実際にサービスに組み込んだ課題の解決方法については、こちら に記載してありますので、興味がありましたらぜひご参照ください。

6. IoTパートナーコミュニティの参画

2016年6月、uhuru社主催のIoTパートナーコミュニティが開催されました。
http://iot.uhuru.co.jp/partner/

前述のスマートコントラクトプラットフォームを開発しながらでしたが、実際にサービスを開発される方にとって利用イメージが湧かないプラットフォームを提供しても利用されないと考えていた私たちは、このコミュニティでIoTとブロックチェーンを組み合わせたIoT関連サービスの開発を試みました。
それが今回の「スマート宅配ボックス」になります。

7. スマート宅配ボックスの開発

ワーキンググループ発足当初、何をテーマにするか議論しました。
ブロックチェーンを利用することは前提としてあったものの、技術主導でサービスを作ると大抵の場合役に立たないものになる多いため、まずは世の中で問題となっている事象の中からブロックチェーンの特性を活かすことで課題解消できそうなものを探しました。

当時、インターネット上でECでの配送量が急増しているということが話題となっており、何かしらの解決策が必要だという内容が多く記事になっていました。
ブロックチェーンには『ただそこに情報が記録されている』だけで、「いつ」「誰が」「何を」記録したのかが証明される特性があり、それが受け渡しの事実証明となり得るのではないかと考え、スマート宅配ボックスを開発することとしました。

その後もちろん紆余曲折ありましたが、半年間の開発を経て、実機での検証の成功までこぎ着けました。

smart-box-image

そのとき出させていただいたプレスリリースはこちらです。


8. 気付き

いくつかのアプリケーションを構築して気づいたことがあります。
それはもっとも根本的なところですが、ブロックチェーンはDBと何が違うのかということです。

スマートコントラクトでも通常のDBと同様にデータが記録できます。
ただそこには決定的な違いがあります。

そこに記録されたデータは、
  • 『いつ』遅くともブロックに入った時刻には
  • 『誰が』KeyPairの所有者が
  • 『何を』その内容を
記録したことが、ただブロックチェーン上に記録されているだけで保障されているという点です。
つまり『事実』(いつ・誰が・何を)を、『証明機関なしに』記録できるということです。

このことは、当初私たちもそれほど大きなこととは考えていませんでした。

ただ現在では、この『証明機関なしに』という点は当初想像していたよりもずっと大きな意味があるのではないかと考えています。

お金を例に取ると、
「いかに信頼の厚い企業が『私たちが数字の移動を確実に管理します。』といっても、それは前払式決済手段での電子マネーを作るのが限度だと思いますが、『証明機関なしに数字の移動が確実に管理できます。』となると仮想通貨が出来上がってしまう。」
という次元の違いになります。

9. 応用事例(案)

世の中では事実の証明には、証明機関などに多くのお金を支払っています。
今回関係する配送業でも、本人限定郵便や内容証明郵便には多くの費用が必要ですし、少し趣向を変えると金融機関の本人確認(確かに本人が申し込みを行ったことの確認)などでは数千円の費用がかかっているといわれます。

これらの業務が全て置き換われば、それは大きなインパクトがあると考えています。

それこそマイナンバーカードなどとアドレスが関連付けられれば、今まで本人を認証するために必要だった「新規登録」や「ログイン」という概念を全て破壊する可能性もあります。
『住民票の取り寄せがワンクリックで完了』なども夢ではないのではないでしょうか。

10. プライベートでもパブリックでも

もうひとつ重要な点は、この事実の証明能力がプライベートでもパブリックでも、この基本が崩れないことです。
プライベート環境といっても、エンドユーザが保有する鍵なしにはその人に成りすましてデータを書き込むことができません。

今回提供させていただいたブロックチェーンサービスで、リクエストを弊社サーバが中継することになりますが、それでもエンドユーザに成りすまして内容を記述することは不可能です。
記録されたデータは、プライベートであれパブリックであれ、「いつ」「誰が」「何を」記録したかの3つの要素を満たしたデータであることが同様に保障されます。

11. まとめ

私たち開発チームでは、プラットフォームの開発と、その上に載るいくつかのアプリケーション構築を通じて、ようやくスマートコントラクトが何なのか少しずつ理解できてきたと感じています。

今回様々な取組みを通じて得られたスマートコントラクトの『事実の保障』という特性も、スマートコントラクトの特性の一部だと考えています。
今後思いもしないような業界や領域にも面白い効果がでることを期待しながら、引き続きプラットフォームの開発を続けていこうと思います。

次世代システム研究室では、アプリケーション開発や設計を行うアーキテクトを募集しています。アプリケーション開発者の方、次世代システム研究室にご興味を持って頂ける方がいらっしゃいましたら、ぜひ 募集職種一覧 からご応募をお願いします。