SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

開発者のためのブロックチェーン活用ガイド

ブロックチェーンを採用する前に考慮すべきポイント~NFTを例にしたブロックチェーンのサービス構成

開発者のためのブロックチェーン活用ガイド 第5回

  • このエントリーをはてなブックマークに追加

 本連載は、ブロックチェーンにこれから取り組まれる方や、ブロックチェーンに詳しい仲間を増やしたいが説明に苦慮されている方などを想定し、ブロックチェーンを使いこなすための勘所を紹介します。連載の第5回は、ブロックチェーンの代替の選択肢と、NFTを例にブロックチェーンのサービス構成について解説します。

  • このエントリーをはてなブックマークに追加

ブロックチェーンの4つの特徴と代替の選択肢

 連載第2回で解説した通り、ブロックチェーンはP2Pネットワークで接続された多数のコンピューター(ノード)の集まりで構成される分散型のシステムです。また、ノード間で合意形成(コンセンサス)を取りながら動作するため、従来のクライアント・サーバーのような中央集権型システムと比べると、ブロックチェーンはシステム構成が複雑で、動作も非効率だと言えます。それでもなおブロックチェーンを検討する理由は、非中央集権、データの共有、ゼロダウンタイム、耐改ざん性というブロックチェーンの4つの特徴(表1)がシステムにとってすべて重要で、現在の選択肢としてはブロックチェーンが最良だから、といった流れであれば無理がないと思います。4つの特徴のすべてが重要でないなら、あえて非効率なシステムであるブロックチェーンを採用する必要はないかもしれません。

表1 ブロックチェーンの特徴(連載第2回の表の再掲)
特徴 期待される内容
非中央集権 システムの制御を司る権限を、特定のノードに集中させず、権限分散させることができます。
データの共有 ブロックチェーンネットワークの参加ノードは信頼できる同一のデータを保持します。
ゼロダウンタイム ノード障害が発生しても代替ノードがある限りシステムは機能し続けます。
耐改ざん性 データが変更、改ざんされていたり、内容が不正だったりすることをノードが検証できます。

 例えば、4つの特徴のうち非中央集権を重視せず、対改ざん性を持つデータベースが欲しいだけなら、ブロックチェーンと機能的に類似の代替プロダクトが採用できます。候補として、AmazonのQLDBやOracleのBlockchain Tableが考えられます。これらのプロダクトは中央集権型のシステムなので、分散型システムのブロックチェーンと比較して、システム構成がシンプルになったりコストや性能などの点が優れていたりといった点で、総合的に見てよい選択肢となるかもしれません。

ブロックチェーンのサービス構成例

 ここまで本連載では、ブロックチェーンの特徴やスマートコントラクトの動作、ノードの役割などを説明してきました。まとめとして、ブロックチェーンを用いて展開される実際のサービスのイメージをNFTの世界を例に解説します。ブロックチェーンを用いたサービスの世界は、スマートコントラクトに加えて複数の要素の組み合わせで実現されます(図1)。スマートコントラクトはマイクロサービスのような自律した要素で(連載第2回参照)、非中央集権的なブロックチェーンネットワークに参加しているメンバーであれば基本的に誰でも直接アクセスすることが可能です。このような点で、各要素間の関係は階層構造というよりは、自律的な要素が相互に関わりあうネットワーク構造と考えられます。

図1 NFTのサービス構成イメージ
図1 NFTのサービス構成イメージ

 スマートコントラクトの位置付けは、従来のシステムで言うバックエンドのサーバーサイドロジックです。技術的な制約により、スマートコントラクトには不得意なことがいくつかあります。例えば、ブロックチェーンの外側の世界(オフチェーン)の情報に直接アクセスできないこと(連載第4回で解説したオラクルを参照)に加え、サイズの大きなデータを保存できないこと、UI/UXの機能を持てないことなどがあります。理由として、スマートコントラクトの処理はブロックチェーンのデータ共有やコンセンサスアルゴリズムによるブロック作成の仕組みと関連があるため、データが大きすぎてしまうと共有が大変なうえにブロック作成で処理しきれない可能性があるからです。また、スマートコントラクトの処理はブロック作成を待たなければ進まず、UIイベントへの応答に求められるような即時処理向きでないからです。

 スマートコントラクトでないその他の要素は、スマートコントラクトの不得意な点を補完するフロントエンドの位置付けです。サービスとしては、フロントエンド要素とバックエンド要素のスマートコントラクトがセットです。このようなセットのアプリケーションのことをDapp(Decentralized application=非中央集権型アプリケーション)と呼びますが、以降で見ていく通り、実際にはフロントエンド側要素は中央集権型システムの場合があります。その場合、非中央集権と中央集権のハイブリッド構成となりますが、ひとつの非中央集権型バックエンド要素を多数のフロントエンド要素で共有することができ、それにより非中央集権の特徴をある程度持つことから、Dappの仲間と考えてよいでしょう。

 それでは、以降にてNFTのサービスを構成する各要素を見ていきます。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
NFTの基本サービス要素

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
開発者のためのブロックチェーン活用ガイド連載記事一覧

もっと読む

この記事の著者

木下 学(NTTデータ先端技術株式会社)(キノシタ マナブ)

 ソフトウェアソリューション事業本部 デジタルソリューション事業部 データエンジニアリング担当 2014年入社。2017年からブロックチェーンを担当。 現在、NTTデータグループにおける全世界横断のブロックチェーンチームの一員として、ブロックチェーンを用いたシステム開発や技術検証を中心に、教育プログ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/16321 2022/08/18 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング