【レポート】AWS で NFT の開発を始めるための3つのポイント(AWS-28) #AWSSummit

2022.05.26

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

いわさです。

AWS Summit Onlineで行われた、「AWS で NFT の開発を始めるための3つのポイント(AWS-28)」セッションのレポートです。

この記事では、要点・見どころ・ポイントについてまとめてみました。

セッション概要

概要

本セッションでは、AWS 上で NFT の開発を初めておこなう方向けに、開発の始め方や、開発中に気をつけるべきポイントについて解説します。皆様からよくいただくご要望をもとに、AWS で活用できるサービスやソリューションをご紹介します。

スピーカー

  • AWS 技術統括本部 ソリューションアーキテクト 石尾 千晶 氏
  • AWS 技術統括本部 ブロックチェーン プロトタイプ エンジニア 深津 颯騎 氏

セッションレベル

  • Level 200: 初級者向け

レポート

セッションアジェンダ

  • NFTの基礎
  • NFT(ブロックチェーン)の開発時に考慮すべき3つのポイント
  • AWSを活用してこれらのポイントを考慮する方法

ソフトウェア開発者やNFTを使ったシステム開発に興味のある方をターゲットにしたセッションです。
また、このセッションではブロックチェーンの基礎と、NFTのビジネス活用方法などについては触れていません。

NFTの基礎

まずはNFTの基礎について触れています。

  • NFT = Non-Fungible Token (非代替性トークン)
    • デジタルアート、ゲームアイテムの売買などの応用例が出てきている
    • それらの取引で安全性(改ざん・なりすましの防止)が必要
      • 公開鍵暗号などの暗号技術が活用されている
    • NFT自体はトークンの種類のひとつで、ブロックチェーン上に構築される
  • Fungible Token と Non-Fungible Token の比較
    • いずれもブロックチェーン上に取引情報が記録されていくが、トークンの性質が違うので記録される情報が違う
    • Fungible Token
      • 代替できる(同じトークンが存在する)
      • 取引された数量を記録する(ERC20など)
    • Non-Fungible Token
      • 代替できない(同じトークンは存在しない)
      • トークンの識別子・メタデータも台帳に記録する(ERC721, ERC1155など)

NFTを活用したシステム構成を例にいくつかの開発上のポイントが存在することを解説しています。

  • ブロックチェーンだけではシステムは開発できない
    • ブロックチェーンはバックエンドコンポーネントのひとつ
    • まずはシステムブロックチェーンが本当に適しているのか、十分に吟味することが大事
    • その上で適してると判断した場合、特性を理解して利用方法を決める
      • オンチェーンとオフチェーンで適したデータがある
      • ブロックチェーンインフラの実装や運用は大変

NFT(ブロックチェーン)の開発時に考慮すべき3つのポイント

先程の構成例からポイントを掘り下げていきます。

  • どのようにブロックチェーンを実装・運用するか?
    • ネットワーク構築に必要なリソースの購入判断が必要
    • 技術や工数はもちろん、サーバーやストレージの管理や運用の手間もかかる
    • ストレージの拡張性も考える必要がある
  • ブロックチェーンに何のデータを保存する?
    • 何でもブロックチェーンに保存すれば良いわけではない。向き不向きがある。
    • オンチェーンとオフチェーンの特性を理解し、どこに何を保存するかの線引きが必要になる
      • 他者とデータを共有する必要があるか?
      • 耐改ざん性が必要なデータか?
      • オンチェーンでの取り扱いに適した小さなデータか?
  • 秘密鍵の紛失を防ぐには?
    • システムのエンドユーザーひとりひとりが秘密鍵を管理する必要がある。
    • 秘密鍵なので再発行では出来ない。従来のユーザーID・パスワードとは異なる。

AWSを活用してこれらのポイントを考慮する方法

ここまでのポイントに対して、どのようにAWSを活用すれば良いかを紹介しています。

  • どのようにブロックチェーンを実装・運用するか?
    • マネージド・サービスである Amazon Managed Blockchain を活用する
      • ノード管理が不要
      • ストレージの自動拡張
      • P2Pネットワーク管理が不要
      • 複雑なセットアップが不要
  • オンチェーンとオフチェーンの使い分け
    • オフチェーンで何を使うか
      • Amazon S3 で署名付きURLを使う
      • IPFS ※AWSサービスではない
      • データの分析や検索
        • ブロックチェーンでは適していない
        • Amazon Open Search Service
        • Amazon RDS
        • Amazon QuickSight
    • オフチェーン、外部システムとの連携部分をどのように実装するか
      • Amazon ECS
      • AWS Lambda
      • ユースケース
        • ブロックチェーンのデータをDBへも同期
        • NFTの売買結果を経理システムへ外部連携
        • ゲームの進捗に応じてブロックチェーンに記録
  • 秘密鍵の紛失を防ぐには
    • ユーザー側も大事だが、サービス側の秘密鍵もセキュアに運用する必要がある
    • AWS KMS, AWS CloudHSMを利用する
    • 鍵の形式が対象のブロックチェーンに対応しているか注意が必要
      • Ethereumだと、Secp256k1に対応している必要がある。KMSとCloudHSMは対応している。

まとめ

このセッションでは、AWS上でブロックチェーンを用いてNFTの開発を行う場合に考慮すべきことや利用できるAWSサービスが紹介されています。
セッションの最後ではポイントを抑えた全体構成の構成図と、それらが実装されたサンプルコードが提供されていますのでご活用ください。