これまでの説明は、主にパブリック型DAppsのスマートコントラクトでした。これは、さまざまな場所で、誰でも利用することができるものです。一方、企業におけるスマートコントラクトは、少し違います。パブリック型DAppsのスマートコントラクトを例えるなら公道に面して設置される自動販売機で、誰でも利用できるもの。対して企業のスマートコントラクトは、企業がビルの中に設置する自動販売機のようなものです。
ビルの中の自動販売機を利用する顧客は、主にビルの所有会社やテナント企業の社員です。このような自動販売機は、利益を得るためではなく、社員の福利厚生や満足度向上を目的として設置し、商品価格を市場価格よりも割り引きしていることが少なくありません。この場合、部外者が頻繁にこの自動販売機の商品を購入するようになっては困ります。
企業のスマートコントラクトは、アクセスコントロールを細かく設定し、特定の人にしか使えないようにすることが重要です。これが企業内のスマートコントラクトに求められる重要な要素で、一般に公開されるパブリック型DAppsのスマートコントラクトとの違いです。
では「さまざまな場所で、誰でも利用することができる」ことを良しとしない企業のシステムが、スマートコントラクトを活用する目的とは何でしょうか。
企業がスマートコントラクトを活用する最大の目的として考えられるのは、従前通りでは協力することができない自社以外のプレイヤー、いわば“競合”と協力し、新たなサービスの提供を実現するためです。もしくは自社以外のプレイヤーと協力することでサービスレベルを飛躍的に向上させるためです。
例えば次のようなケースが挙げられます。
システム会社は、慢性的なIT技術者不足により、クライアントの案件依頼に応えきれない状況が長らく続いているところも少なくありません。また多重下請け構造やオフショア化の進展などにより、技術者の役割の細分化が進み、人員の育成や人数の増強が難しくなっているという課題があります。
一方のユーザー企業は、社内SE(システムエンジニア)の主な役割がシステム会社の管理になったことで、社内のIT技術者の育成やシステム開発の内製化が困難になっているという課題を抱えています。
これらの課題は、産業構造に起因する問題なので、短期で解決することは難しいでしょう。IT技術者の不足によってユーザー企業の案件に応えきれないシステム業界の現状を改善するために、複数のシステム会社で協力して共同事業体(コンソーシアム)を形成。ユーザー企業の案件情報をコンソーシアムで共有し、あふれる需要に応えやすくすることが、有効な手だての1つになるかもしれません。この案件共有システムに、ブロックチェーンとスマートコントラクトを生かせられる可能性があります。
システム会社は、自社がユーザー企業の案件に応えきれない場合は、案件共有システムに案件の情報を登録し、他のシステム会社に案件を紹介。紹介した企業は、紹介先の企業から紹介手数料を受け取ります。この紹介手数料の受け渡しに関するロジックを、スマートコントラクトで実装することで、紹介手数料に関するやりとりを自動化できます。紹介を受ける企業は、技術力があれど営業に回る余裕がない企業などが想定されます。これらの両企業はWin-Winな関係にあるといえます。
一方で、ユーザー企業は、案件共有システムがあることで、1社に案件を依頼すれば、多くのシステム会社から自動的に引き受け先を探すことができるようになり、効率的に受注先を探せます。
このように、従来の枠組みを超えた形でブロックチェーンやスマートコントラクトが活用されるといいのではないかと考えています。
2017年の執筆段階において、スマートコントラクトのコードを書くことができる主要なプラットフォームは3つあります。
どのプラットフォームも日進月歩の開発途上であり、決定的な優劣はつけにくい状況です。そのため「何から学ぶか」という選択で悩む人も多いでしょう。ブロックチェーンの本質的な構成要素は、どのプラットフォームにも共通するため、自分の環境でよく耳にするプラットフォームを選択するのを勧めます。本連載では、スマートコントラクトの開発が容易なEthereumを題材に扱っていきます。
特徴 | フレームワークにとらわれることなくあらゆるロジックを記述することができ、自由度が高い |
---|---|
開発言語 | Solidity(独自言語) |
開発推進者 | Ethereum Fundation |
チュートリアル | https://solidity.readthedocs.io/en/develop/index.html |
特徴 | 一般的な開発言語を採用し、SQLに似たフレームワークでデータの読み書きをするなど、既存のシステム開発技術との親和性が高い |
---|---|
開発言語 | Java、Go |
開発推進者 | Linux Fundation |
チュートリアル | http://hyperledger-fabric.readthedocs.io/en/latest/index.html |
特徴 | 金融当局によるモニタリング機能など、金融機関が共通で使用する機能をプラットフォームが標準装備 |
---|---|
開発言語 | Java |
開発推進者 | R3 Consortium |
チュートリアル | https://docs.corda.net/index.html |
第1回ではスマートコントラクトとは何なのか、どういう使い方が考えられるのか紹介してきました。次回は、Ethereumをベースに、スマートコントラクトコードの書き方や一般公開の方法を紹介します
Copyright © ITmedia, Inc. All Rights Reserved.