今話題のブロックチェーンを AWS で実現する仕組みをグラレコで解説
Author : 安田 茂樹
本連載では、様々な AWS サービスをグラフィックレコーディングで紹介する awsgeek.com を、日本語に翻訳し、図の解説をしていきます。第 1 回目は「Amazon Managed Blockchain」を使ったブロックチェーンの仕組みについてご紹介します。
※ awsgeek.com は Amazon Web Services, Inc. プリンシパル・テクニカル・エバンジェリスト、ジェリー・ハーグローブが運営しているサイトです。
今話題のブロックチェーン。
興味はあるけどなんだか難しそう…と敬遠していませんか?
AWS では、「Amazon Managed Blockchain」という、フルマネージド型サービスを提供しています。フルマネージド型サービスとは、基本的なインフラ部分は AWS が設定・管理するサービスのことです。そのため利用者側での機器の購入やインフラの準備は不要。たった数クリックで小規模〜大規模なブロックチェーンを構築できるため、ブロックチェーンを始めるハードルが低くなっています。
では、ブロックチェーンがどのように成り立つのか、図とともに見ていきましょう。
そもそもブロックチェーンとは何 ?
ブロックチェーンは「分散型台帳技術」と呼ばれ、ネットワークに参加している全てのメンバーが過去の全てのトランザクション (取引) 記録の同一のコピー (台帳と呼びます) を保持する技術のことです。そのため、参加メンバーのうち何人かの台帳が壊れたとしても、他のメンバーが全く同じ台帳のコピーを持っているため、過去の記録が消えることがなく、継続して取引が行えます。
「耐障害性が高い」、「改ざんが困難」という特徴があるため、今後の企業間・個人間の取引技術として注目されています。
また、ブロックチェーンには大きく分けて 3 つの種類があります。
- パブリックチェーン : 誰でも参加できるオープンなブロックチェーン。管理者が存在せず、世界中の不特定多数がお互いに承認し合うブロックチェーンの仕組みです。Bitcoin や Ethereum をはじめとするブロックチェーンはパブリックチェーンの仕組みを採用しています。
- プライベートチェーン : 許可されたユーザーのみが参加できる閉じられたブロックチェーン。単一の企業または組織内で運営されます。管理者が存在します。
- コンソーシアムチェーン : 許可されたユーザーのみが参加できる閉じられたブロックチェーン。 複数の企業または組織にまたがって運営されます。複数の管理者が存在します。
AWS が提供しているブロックチェーンのサービス
AWS のフルマネージド型サービス「Amazon Managed Blockchain」を使うと、AWS アカウントをお持ちの複数の企業間または個人間で、オープンソースソフトウェアの「Hyperledger Fabric」を使った「コンソーシアムチェーン」が構築できます (2020 年 1 月現在)。
Hyperledger Fabric には「チャネル」と呼ばれる 1 つのネットワークを分割して、データの共有範囲を設定できる仕組みがあるため、全メンバーに取引情報を見られる心配が無く、取引ごとに必要なメンバー間だけで情報を共有できます。企業間・個人間のプライベートな取引に適しています。
ブロックチェーンの構成要素
一般的に、ブロックチェーンは以下の 3 つの構成要素から成り立っています。
- スマートコントラクト
- 合意形成の仕組み
- 台帳
それぞれの構成要素について見ていきましょう。
「スマートコントラクト」とは
スマートコントラクトとは、トランザクション (取引) 内容および履行条件を事前にプログラム言語でコードに記載しておき、履行条件が満たされた際に自動的にトランザクションが実行される仕組みの事です。
例:自動販売機で、利用者が 100 円入れたら (履行条件)、ジュースを出す (トランザクションの実行)。
なお、Hyperledger Fabric ではスマートコントラクトの事を「チェーンコード」と呼びます 。
「合意形成の仕組み」とは
ブロックチェーンでは、事前に決められた合意アルゴリズムに基づき合意形成されます。
この図では、メンバーの 3 分の 2 以上が承認し、かつ全員が正しい台帳を保持している場合に合意が成立するアルゴリズムの例を示しています。
「台帳」とは
各トランザクションの記録 (ブロック) がチェーンでつながった集合体を「台帳」と呼びます。ブロックチェーン内の全メンバーが同一の台帳 (過去の全トランザクション履歴) を保持しています。(図の 1)
一方、現時点の価値情報 (預金残高など) は、ステート DB と呼ばれるデータベースに保持されています。(図の 2)
それでは具体的に Hyperledger Fabric を使ったトランザクションの流れを見ていきましょう。
トランザクションには 3 つのコンポーネントが関わっています。
- トランザクションのプロポーザル (取引の提案) を送信する Amazon EC2 クライアント
- プロポーザルを検証・承認する複数の Peer ノード
- トランザクションの順序付け (Ordering) をし、ブロックチェーンネットワーク内の Peer ノードに送信する Ordering サービス
上の図の 1〜6 までのトランザクションの流れは次のようになります。
- 送信側の EC2 クライアントは、トランザクションのプロポーザルを Peer ノードに対し送信します。
- Peer ノードはチェーンコードでトランザクションのシミュレーションを行います。
- Peer ノードは署名つきの YES または NO の応答を行います。これをエンドースメントと呼びます。
- EC2 クライアントはエンドースメントを含むトランザクションを Ordering サービスに転送します。
- Ordering サービスは EC2 クライアントからエンドースメントを含むトランザクションを受け取った後、順序づけ (Ordering) を行い、ブロックを作成します。その後、全ての Peer ノードに作成したブロックを送付し、検証させます。
- 全ての Peer ノードは、ブロックを受け取った後検証し、ブロックをそれぞれのチェーンに追加 (コミット) します。
以上の流れでトランザクションが完了します。
では、Hyperledger Fabric のネットワーク構成はどのようになっているのでしょうか。
各メンバーは、それぞれの Amazon VPC (Virtual Private Cloud )から AWS PrivateLink 経由で各々にプロビジョニングされた Hyperledger Fabric リソースに接続します。
この図ではメンバー C のみが接続していますが、実際はメンバー A と B も同様にそれぞれの Amazon VPC から AWS PrivateLink 経由で各々のリソースに接続しています。また、各メンバーは、それぞれ 1 つの認証局および 1 つ以上の Peer ノードを保持しています。
最後に、全体の図を見てみましょう。
「Amazon Managed Blockchain」を使ったブロックチェーンの仕組みがなんとなく見えてきましたでしょうか ?
難しそうなイメージのあるブロックチェーンですが、AWS アカウントをお持ちのメンバー間でのトランザクションであれば、「Amazon Managed Blockchain」を使って容易に行うことができます。
ブロックチェーンを学んでみたい方は、この機会にぜひお試しください。
AWS Managed Blockchain の詳細はこちら »
チュートリアルや料金、よくある質問などについてはこちらをご覧ください。(※一部英語)
AWS グラレコ解説のその他の記事はこちら
- 選択
- 今話題のブロックチェーンをAWSで実現する仕組みをグラレコで解説 »
- サーバーレスって何が便利なの ? AWS でサーバーレスを構築するためのサービスをグラレコで解説 »
- 機械学習のワークフローってどうなっているの ? AWS の機械学習サービスをグラレコで解説 »
- 外部から AWS のバックエンドサービス利用を実現する仕組みをグラレコで解説 »
- AWS でデプロイの自動化を実現するベストプラクティスをグラレコで解説 »
- コンテナを使ってモノリスを分割する方法をグラレコで解説 »
- クラウドへ移行する理由とそのステップをグラレコで解説 »
- Windows ワークロードをクラウドへ移行するためのベストプラクティスをグラレコで解説 »
- サーバーレスのイベントバスって何 ? Amazon EventBridge をグラレコで解説 »
- サーバーレスで SaaS を構築する方法をグラレコで解説 »
- 「あなたへのおすすめ」はどう生成するの ? Amazon Personalize で簡単に実現する方法をグラレコで解説 »
- クラウド設計・運用のベストプラクティス集「AWS Well-Architectedフレームワーク」をグラレコで解説 »
- 特定の顧客セグメントにメッセージ送信。「Amazon Pinpoint」の仕組みをグラレコで解説 »
- アプリにユーザー認証機能を簡単に追加できる「Amazon Cognito」をグラレコで解説 »
- わずか数分で WordPress サイトを構築できる「Amazon Lightsail」をグラレコで解説 »
- 異なるアプリケーション同士の疎結合を実現。「Amazon SQS」をグラレコで解説 »
- Web アプリを高速に開発できる「AWS Amplify」をグラレコで解説 »
- 機械学習の知識ゼロでもテキストデータを分析。Amazon Comprehend をグラレコで解説 »
- ビジネスデータをまとめて可視化 & 分析。Amazon QuickSight をグラレコで解説
- 人工衛星の地上局を 1 分単位で利用。AWS Ground Station をグラレコで解説
- カオスエンジニアリングで本当にカオスにならないための進め方をグラレコで解説
- GraphQL API を簡単に作成 & 運用。AWS AppSync をグラレコで解説
- IoT 環境を必要な機能を選択するだけで構築。AWS IoT をグラレコで解説
- 高い可用性と耐久性のオブジェクトストレージ。Amazon S3 をグラレコで解説
- サーバーレスでイベント駆動型アプリケーションを実現。AWS Lambda をグラレコで解説
- データサイエンス教育の強い味方。Amazon SageMaker Studio Lab をグラレコで解説
- 高速で柔軟な NoSQL データベースサービス。Amazon DynamoDB をグラレコで解説
- リレーショナルデータベースを簡単・迅速に実現。Amazon RDS をグラレコで解説
- アプリのワークフローを視覚的に構成。 AWS Step Functions をグラレコで解説
- データ保護に使う暗号化キーを一元管理。AWS KMS をグラレコで解説
- アプリケーションへのトラフィックを効率的に負荷分散。Application Load Balancer をグラレコで解説
- AWS で簡単にコンテナアプリケーションを構築 ! Amazon ECS をグラレコで解説
- 大規模データセットも簡単クエリ! Amazon Athena をグラレコで解説
- キャッシュ機能でアプリの高速化を実現 ! Amazon ElastiCache をグラレコで解説
- 使い慣れたプログラミング言語でクラウド環境を構築 ! AWS CDK をグラレコで解説
- ストリーミングデータを簡単にキャプチャ、処理、保存 ! Amazon Kinesis Data Streams をグラレコで解説
- AWS で始める機械学習はじめの一歩 ! AWS の主要な AI/ML サービスをグラレコで解説
- リレーショナルデータベースをサーバーレス化 ! Amazon Aurora Serverless をグラレコで解説
- ML 駆動の検索エンジンで企業の情報管理を革新! Amazon Kendra をグラレコで解説
- オンプレミス、エッジ、どこでも楽々コンテナ管理 ! Amazon EKS Anywhere をグラレコで解説
- 生成 AI アプリケーション開発をもっと身近に、簡単に ! Amazon Bedrock をグラレコで解説
- わずか数クリックで多様な脅威を監視しクラウドを保護 ! 脅威検出サービス Amazon GuardDuty をグラレコで解説
- データの改ざん耐性と変更履歴の検証可能性を実現 ! 台帳データベース Amazon QLDB をグラレコで解説
- 生成 AI x クラウドがもたらす次世代のイノベーション ! AWS Summit Japan Day 1 基調講演をグラレコで解説
- ビジネス向け生成 AI アシスタント Amazon Q Business をグラレコで解説
- 生成 AI コーディングアシスタント Amazon Q Developer をグラレコで解説
- フロントエンドとバックエンドを統合開発 ! フルスタック TypeScript 開発環境 AWS Amplify Gen 2 をグラレコで解説
筆者プロフィール
安田 茂樹
アマゾン ウェブ サービス ジャパン合同会社
テクニカルコンテンツマネージャー。
2014 年にアマゾンジャパン合同会社に入社後、デバイス試験部門にて発売前の数多くの Amazon デバイスの試験に携わる。2019 年より現職。
趣味は新しいガジェットを試すこと、旅行、食べ歩き。
AWS を無料でお試しいただけます