はじめに
こんにちは、クラウドセントリックのSaitoです。
皆さん、ブロックチェーン使っていますか?
「ブロックチェーン」という名前は聞いたことある方が多いと思いますが、意外と知らないブロックチェーンについて紹介します!
またAWSのブロックチェーンサービスである「Amazon Managed Blockchain」を使って、ノードを構築しイーサリアムを送金してみました。
イーサリアムについては、後述いたします。
ブロックチェーンとは
まずブロックチェーンとは何のか、一言で表すと「分散型のデジタル台帳」と言われています。
台帳とは
取引を記録した帳簿、あるいは基礎的な事実を記録するためのデータベース
上記の説明だと、データベースのようなイメージを持ちますが、ブロックチェーンを語る上で肝になるのが、名前の通り「ブロック」と「チェーン」です。
ブロックは取引のデータを記録し、チェーンはブロック同士を繋ぐ役割をします。
つまりネットワークの側面も持ち合わせます。
またブロックチェーンには従来のデータベースやネットワークとは違い、下記のような特徴があります。
・分散性
中央管理者や単一の管理機関が存在せず、複数のノード(コンピューター)に分散してデータが保存・管理されています。
・不変性
一度記録されたデータは原則として変更・削除できません。過去の記録を改ざんするには膨大な計算資源が必要になります。
・透明性
すべての取引記録が公開されており、誰でもそれらのデータにアクセス可能です。
・可用性
単一障害点がないため、一部のノード(コンピューター)が停止してもシステム全体は動作し続けます。
Amazon Managed Blockchain
Amazon Managed Blockchain(以下AMB)とは、AWSが提供するフルマネージド型のブロックチェーンサービスです。
コンソール右下の「AMB Accessを起動」から始めます。
2025/08時点では、3つのブロックチェーンインフラストラクチャサービスが提供されています。
・専用パブリックネットワーク
イーサリアムのメインネットを使用可能。ノードを作成し、イーサリアムチェーンへ参加できます。
・サーバーレスパブリックネットワーク
サーバーレスアーキテクチャを使用するマルチテナントサービス。ビットコインのメインネットとテストネットを使用可能。
・プライベートネットワーク
Hyperledger Fabric on Amazon Managed Blockchain を使用して、プライベートブロックチェーンを作成可能。
今回はAMBの専用パブリックネットワークから、イーサリアムメインネットを使用します。
実際の検証の前にイーサリアムとは何なのか、軽く触れたいと思います。
イーサリアムとは
イーサリアムは仮想通貨(日本では暗号資産と呼ばれている)の1つです。
2015年に公開されたチェーンで、仮想通貨内では2番目の時価総額となっています(本記事執筆時の2025/08時点)。
仮想通貨は基本的にブロックチェーン上で動作しています。
ブロックチェーンを使用することにより、「取引履歴の記録と改ざん防止」「中央管理者なしでの運営」「ユーザー間での直接取引」などを実現しています。
イーサリアムノードの作成
AMBを使用し、イーサリアムノードを作成していきます。
右下のノードの作成を押します。
ノードを作成するにあたり、インスタンスタイプやAZを選択できます。今回はデフォルトのままノードを作成します。
ノードの作成にはしばらく時間がかかります。チェーンの混雑状況によっては、半日ほどかかることもあります。
作成が終わると各エンドポイントなどが表示されます。
構成図
今回行う検証の構成図です。
今回の検証では、サードパーティーのウォレットアプリであるメタマスクから、AMBで構築したノードを経由して、EC2上のウォレットへイーサリアムを送金する検証を行いました。
ウォレットはEC2のNitro Enclave内に作成しました。Nitro Enclaveについても少し触れておきたいと思います。
Nitro Enclave
Nitro Enclaveは、EC2インスタンス内に隔離された実行環境を作成することができます。
下記のような特徴があり、Nitro Enclaveにウォレットを作成することでセキュリティ向上が見込めます。
・親インスタンスとはCPU、メモリを共有しない
・ネットワーク接続は制限され、インターネットアクセス不可
・ローカルストレージ、永続ストレージ、Amazon EBSボリュームにはアクセス不可
・専用のvsockチャネルを通じて親インスタンスと通信
実際に送金してみる
ウォレット作成の詳細は割愛いたしますが、UIについてはAmazon Q developerを使い簡単なCLIクライアントを作成しました。
ウォレットのアドレス、残高が確認できます。
次にメタマスクからEC2のウォレットへ送金を行います。今回はスマホアプリ版のメタマスクを使用します。
ネットワークからイーサリアムメインネットを選択します。
送金する数量を指定します。今回は0.0001ETHを指定します。
送金には銀行の送金のような手数料がかかります。その手数料をガス代と表現します。
送金アドレス、送金額、ガス代を確認します。
送金後、トランザクションの確認を行います。
送金の状態、ブロック番号や送受信者、送金額などを確認できます。
ウォレットを再度確認し、残高が0.0001ETHになっていることが確認できます。
無事イーサリアムをEC2ウォレットへ送金することができました。
さいごに
今回はAMBを利用してイーサリアムの送金を行ってみました。
ノードの管理などはAWS側の責任範囲なので、その辺りを意識することなく、簡単にイーサリアムチェーンを使用することができました。
ブロックチェーンは学べば学ぶほど、奥が深い技術だと改めて感じました。
セキュリティ向上のため今後、ゼロ知識証明やブラインド署名などを学ぼうと思っています。
近いうちにブロックチェーンで、何か実用的なサービスを作りたいなとも思っていたり…
それでは、また!