目次
はじめに
どうもどうも。IT業界にまだ小指の第一関節ぐらいまでしか突っ込めてない男、超川です。
今回、アドカレに参加させていただけるということで、「せっかくなら身近ではないサービスについて紹介してみよう!」と思い、今回ブログを書きました。
そんなこんなで今回はAmazon Managed Blockchainについてです!!!
自分自身もまだまだ知識と経験が浅いので、同じような方々にも伝わるようにかみ砕いてお話していけたらと思います!
そもそもブロックチェーンってなんなんだい?
私自身もブロックチェーンについてまったく詳しくない!!
まずはブロックチェーンについての簡単なお勉強からスタートです。
ブロックチェーンとは、一言でいうと、
「改ざんが困難な中央機関を必要としない分散型のデータ管理システム」です。
元々は、仮想通貨(暗号通貨)の1つであるビットコインを実現するために開発された分散型台帳技術。
過去の取引の一覧をブロックとして、チェーンのようにつなげ、従来の中央集権型のデータベースとは大きく異なるデータの保存・管理方法が採用されています。
ブロックチェーンには以下の4つの特徴があります。
①信頼性とセキュリティが高い
ブロックチェーンはP2P(ピアツーピア)と呼ばれるサーバを介さずに利用者同士で直接データのやり取りを行う通信方式を採用しており、特定の管理者や管理が存在せず、全ての利用者が平等にデータを管理、確認することが可能となっています。
ブロックチェーンはデータが鎖状に連なったものですが、各ブロックには「ハッシュ値」という文字列が使用されており、過去のデータを改ざんした場合は「ハッシュ値」が変わってしまうため
全体の利用者によって検出され、発覚する仕組みになっています。
また、全ての取引データは複数のノードに分散して記録されており、ネットワーク全体の合意がない限り変更ができない「コンセンサス・アルゴリズム」と呼ばれる仕組みを採用している。
②低コスト
ユーザ同士が直接取引するため、特定の期間(第三者)を介する必要がなく、
本来かかる仲介手数料などがかかりません。
③システムの安定性
ブロックチェーンでは、P2Pネットワークで繋がったコンピュータ一台一台にシステムが分散されているため、一部のコンピュータがダウンしても正常に稼働しているノードだけで取引が進むため、システム全体は動き続ける性質を持ちます。
全ての参加者が自律して取引履歴をコピーし続けているため、自律分散システムとも呼ばれています。
④効率化
取引における契約を自動で行う仕組みであるスマートコントラクトは、
所定の条件が満たされたときに自動的に実行されます。
スマートコントラクトによって手続きが簡素化されることで、取引が効率化されます。
ブロックチェーンのタイプ
ブロックチェーンを構成するネットワークには大きく分けて3つのタイプが存在します。
・パブリックチェーン
ビットコインをはじめとした仮想通貨等の、ネットワークに誰でも自由に参加できるオープンな
ブロックチェーン。完全に分散化されており、全ての取引は透明で、誰でも取引履歴を確認可能です。
・プライベートチェーン(許可型ブロックチェーン)
主に特定の組織や企業が管理するクローズドなブロックチェーン
ネットワークへの参加者や取引の承認者が制限されており、金融機関や企業の内部取引などの
機密性が求められる場面での利用が一般的です。
・コンソーシアムチェーン(許可型ブロックチェーン)
複数の組織が共同で運営するブロックチェーン
プライベートチェーンとパブリックチェーンの中間に位置し、複数の企業や団体がネットワークの維持と運営を分担。サプライチェーン管理や銀行間取引など、業界全体で協力が必要な場合に適しています。
【本題】Amazon Managed Blockchain
いよいよ本題のAmazon Managed Blockchain(AMB)について
こちらも一言でまとめると
「Amazon Managed Blockchainは、 Hyperledger Fabric や Ethereum を使用して、
スケーラブルなブロックチェーンネットワークを簡単に作成、および管理できるフルマネージドサービス」(BlackBelt の資料一部抜粋)
以下のような特徴があります。
①フルマネージド型
・数回のクリックでネットワークを設定可能
数分でブロックチェーンネットワークを起動することができます。
AWS マネジメントコンソールを使用して、ネットワークメンバーシップを設定し、ブロックチェーンピアノードを起動。他のAWSアカウントをブロックチェーンネットワークへに招待することができます。
・投票で新しいメンバーを追加する
ブロックチェーンネットワーク内のメンバーが新しいメンバーを追加、または削除するための提案にすばやく投票できるようにする投票 API を提供
・数分でパブリックネットワークに参加可能
②フレームワークの選択
Amazon Managed Blockchain では、Hyperledger Fabric と Ethereum の 2 つの一般的なブロックチェーンフレームワークが用意されているため、ニーズに最適なフレームワークを選択することができます。
・Hyperledger Fabric
Linux Foundation によるオープンソースのブロックチェーンフレームワーク。
Hyperledger Fabric を使用してブロックチェーンアプリケーションを作成し、ブロックチェーン上のデータに対するアクセス制御とアクセス許可を提供。
簡単にプライベートブロックチェーンネットワークを作成して、当事者がそれぞれ閲覧できるトランザクションを制限することができます。
厳格なプライバシーおよび権限管理が必要なアプリケーションの場合に最適です。
・Ethereum
スマートコントラクトと呼ばれるアプリケーションコードを安全に実行および検証するピアツーピアのネットワークを確立する分散型ブロックチェーンフレームワーク
マートコントラクトにより、参加者は信頼できる中央機関がなくても検証済みのトランザクションを実行でき、トランザクションは、ユーザーが作成した Ethereum アカウントによって送受信されます。
全てのメンバーのデータの透過性が重要なアプリケーションの場合に最適です。
③スケーラブルかつセキュア
・スケールも簡単
Amazon Managed Blockchain ネットワークを作成した後、簡単にネットワークに招待することができます。
Managed Blockchain には、アプリケーションのニーズの変化に合わせて新しいノードをすばやく作成するための API が用意されています。
また、Managed Blockchain では、さまざまな CPU とメモリの組み合わせで構成される bc.t3、bc.m5
および bc.c5 のインスタンスファミリーを選択でき、ワークロードをサポートするために適切なリソースの組み合わせを選択できます。
・VPC エンドポイントによるセキュアなインタラクション
Amazon VPCエンドポイントを通じて、Amazon Managed Blockchain によって管理されている Hyperledger Fabric コンポーネントと安全にやり取りすることができます。
・AWS KMSをサポート
AWS KMSを使用してユーザーアイデンティティを管理することで、ブロックチェーンネットワーク内でセキュアに通信するための登録証明書を発行するコンポーネントである、Hyperledger Fabric 認証機関の基準を保証します。
④信頼性
Amazon Managed Blockchain の注文サービスは、 Amazon QLDB テクノロジーを使用して構築されており、ブロックチェーンネットワーク内のすべてのコミットされていないトランザクションに対する完全な履歴を管理するイミュータブルな変更ログを保持するため、注文サービスの耐久性を高めます。
⑤料金
・前払いなしの従量課金制
・秒単位の請求
・各メンバーは、自分のリソースと書き込まれたデータ料金、データ転送量を支払う
実際にAmazon Managed Blockchain(AMB)のコンパネを見てみよう
AMBのサービスを開くとこんな感じ↓
・専用パブリックネットワーク
Ethereumを使用するならこれ
デフォルトで存在するネットワーク「Ethereum Mainnet」を使用し、ノードは自分で作成・管理
・サーバレスパブリックネットワーク
AWSがノードの管理やスケーリングを行うため、簡単かつ迅速にパブリックブロックチェーン
(例: BitcoinやEthereum)にアクセスできます。
管理が不要で使うだけ
・プライベートネットワーク
Hyperledger Fabricを使用するならこれ
1 人以上のメンバーで構成されるプライベートブロックチェーンネットワークを1から作成。
プライベートネットワークを構築してみよう
試しにHyperledger Fabricを使用してで簡単なブロックチェーンネットワークを構築してみます。
※今回はあくまでAMBに触れるのが目的なので、ネットワークの構築、ノードの作成のみです。
①プライベートネットワークを作成
フレームワーク :Hyperledger Fabric
フレームワークバージョン:2.2
ネットワークエディション:スターター
ネットワーク名 :test(適当)
投票ポリシー :Greater than 50% 24時間
「次へ」をクリック(今回は全部デフォルトです)
②メンバーを作成
メンバー名 :WhiteGoreinu(適当)
管理者ユーザー名 :root
管理者パスワード :‥‥‥‥
「次へ」をクリック
確認画面で確認し、「ネットワークとメンバーを作成」をクリックして作成!
なんとネットワーク自体はこれで作成完了。
③ノードを作成
先ほど作成したネットワークから作成したメンバーを選択し、「ピアノードを作成」からノードを作成
「ピアノードログを有効にする」と「チェーンコード」を有効にするをチェック)
それ以外はデフォルトでそのまま「作成」をクリックして作成。
これで構築は完了!あとはネットワークにつなげるだけ!!
④構築したプライベートネットワークを見てみよう。
・メンバー
自分が構築したプライベートネットワークに参加しているメンバーが確認出来る。
(メンバーはAWSアカウント単位)
→ネットワークは分散されており、最初の作者がいなくなってもアクティブのまま
・提案
メンバーに対してメンバーを削除するか、他のAWSアカウントを招待して参加させるか
などの提案を作成する
→メンバーはその提案に対して投票を行う
・詳細
ネットワークIDや投票ポリシー、エンドポイントなどの情報を見ることができる
今回は行いませんが、実際に使用する際はこの詳細にあるエンドポイントを利用して、CLIやSDKでネットワークに接続します。
④作成したノードを見てみよう
↓画面上部では、ノードIDやエンドポイントなどの詳細を見ることができます↓
↓画面下部では、ピアノードログやチェーンコードログなどのログや使用率メトリクスを確認できます↓
↑これはピアノードログ
↑これが使用率メトリクス
今回はネットワークにつなげ、実際に動かしてはいないのでチェーンログはありません。
さいごに
とまあ今回はこんな感じではないでしょうか....
「ブロックチェーンは奥が深すぎてムズカシスギル」というのが正直な感想です。
もっともっと学ぶべきことがたくさんあると痛感するばかりです。
最後まで見ていただいた方大好きです。
引き続き、DENET ADVENT CALENDAR 2024をお楽しみください!! それでは~
半年前までCtrl+Cもわからなかった男