午前I問題
ブロックチェーンにおいて複数のトランザクションの完全性を効率的に検証するために用いられるデータ構造に関する記述として、適切なものはどれか。
ア)マークル木(Merkle Tree)は、各トランザクションを暗号化して1つのファイルにまとめ、全体を1つの秘密鍵で復号することで完全性を検証する構造である。
イ)マークル木は、葉ノードに各トランザクションのハッシュ値を配置し、隣接するノードのハッシュ値同士を連結して再度ハッシュ化する処理を繰り返し、最終的に1つのルートハッシュ(マークルルート)に集約する木構造であり、これによりブロック内の任意のトランザクションが改ざんされるとルートハッシュが変化し検知できる。
ウ)マークル木を利用する目的は、ブロックチェーンの処理速度を向上させることではなく、トランザクションの暗号化強度を高めることである。
エ)マークル木のルートハッシュは、ブロック内の全トランザクションデータを毎回すべて再送信しなければ検証できない。
午前I の解答・解説を見る
正解: イ
解説:
- ア)不正解。マークル木は暗号化による秘匿化の仕組みではなく、ハッシュ関数を用いた完全性検証(改ざん検知)のためのデータ構造である。秘密鍵による復号という概念は登場しない。
- イ)正解。マークル木は各トランザクションのハッシュ値を葉ノードとし、隣接するペアのハッシュ値を連結してハッシュ化する処理を木構造の階層に沿って繰り返し、最終的に単一のマークルルートに集約する。ブロックヘッダにはこのルートハッシュのみが格納され、末端のどのトランザクションが1ビットでも改ざんされても、そのハッシュ値が変わり連鎖的にルートハッシュも変化するため、ブロック全体を保持しなくても改ざんの有無を検証できる。
- ウ)不正解。マークル木の主目的の一つは、軽量な検証(SPV: Simplified Payment Verification等)を可能にし、全トランザクションデータを保持せずとも特定のトランザクションがブロックに含まれることを効率的に証明できるようにする点であり、暗号化強度を高めることが目的ではない。
- エ)不正解。マークル木の利点はまさにその逆で、「マークルパス(証明対象の葉から根までの経路上の兄弟ハッシュ値のみ)」を提示すれば、ブロック内の全トランザクションを送信・保持せずとも特定のトランザクションの包含性を検証できる点にある(対数オーダーの検証コスト)。
午前II問題
ブロックチェーンにおける電子署名の役割に関する記述として、最も適切なものはどれか。
ア)ブロックチェーンにおける電子署名は、トランザクションの内容を秘匿化(暗号化)することを主目的としており、第三者がトランザクションの内容を閲覧できないようにする。
イ)ブロックチェーンのトランザクションは、送信者が自身の秘密鍵でトランザクションデータに対して署名を行い、ネットワーク上の各ノードが送信者の公開鍵で署名を検証することで、送信者本人による正当な操作であることと、トランザクション内容の非改ざん性を確認する。
ウ)ブロックチェーンでは、マイナー(採掘者)がすべてのトランザクションに対して自身の秘密鍵で署名を行うことで、取引の正当性を保証している。
エ)電子署名はブロックチェーンのコンセンサスアルゴリズム(Proof of Work等)そのものを構成する要素であり、署名なしにブロック生成は数学的に不可能である。
午前II の解答・解説を見る
正解: イ
解説:
- ア)不正解。多くのパブリックブロックチェーン(Bitcoin、Ethereum等)ではトランザクション内容自体は暗号化されず公開されている(透明性が特徴)。電子署名の目的は秘匿化ではなく、送信者の認証と非改ざん性・否認防止の担保である。
- イ)正解。ブロックチェーンのトランザクションでは、送信者(アカウントの秘密鍵保有者)がトランザクション内容のハッシュ値等に対して秘密鍵で署名し、これをブロードキャストする。ネットワークの各ノードは送信者の公開鍵(多くの場合アドレスから導出・関連付けられる)を用いて署名を検証し、正当な秘密鍵保有者による操作であること、および署名後にデータが改ざんされていないことを確認する。これによりなりすましや取引内容の改ざんを防止する。
- ウ)不正解。トランザクションに署名するのは各トランザクションの送信者(発行者)本人であり、マイナー(採掘者)ではない。マイナーの役割はトランザクションを検証・ブロックにまとめてコンセンサスアルゴリズムに従いブロックを生成することであり、他者のトランザクションに署名する立場にはない。
- エ)不正解。電子署名はトランザクションの正当性検証のための要素であり、コンセンサスアルゴリズム(PoW: Proof of Work、PoS: Proof of Stake等、ブロック生成者を決定・合意形成する仕組み)そのものを構成する要素ではない。両者は異なるレイヤの技術であり、混同しないよう注意が必要。
午後問題
N社はサプライチェーン管理にブロックチェーン技術の導入を検討しており、以下の要件を整理した。
(要件1)各取引先が発行する出荷証明トランザクションについて、後から「自分は発行していない」と否認されることを防ぎたい。
(要件2)監査人が特定の1件の取引が正しくブロックに記録されていることを検証したいが、ブロック全体(数万件のトランザクション)をダウンロードせずに軽量に検証できるようにしたい。
(要件3)ブロックヘッダに格納されたマークルルートの値そのものは、過去のある時点でハッシュ値が計算されたことを証明する目的にも転用を検討しているが、この点についての技術的な妥当性を確認したい。
設問1
要件1について、ブロックチェーンにおける電子署名がどのように否認防止(Non-repudiation)を実現するかを、公開鍵暗号の仕組みを踏まえて説明せよ。
設問1の解答・解説を見る
正解例: 各取引先は自身のみが保持する秘密鍵を用いて出荷証明トランザクションのハッシュ値に対してデジタル署名を生成する。秘密鍵は当該取引先本人しか保持していないため、生成された署名は本人以外には作成できず、ネットワーク上の各ノードは公開されている取引先の公開鍵を用いて署名を検証することで、当該トランザクションが確かにその秘密鍵保有者によって作成されたことを数学的に証明できる。これにより取引先は後から「発行していない」と主張しても、有効な署名が存在する事実によってその主張が否定され、否認防止が実現される。
解説: 電子署名による否認防止は、公開鍵暗号方式の非対称性(秘密鍵でしか生成できない署名を、対応する公開鍵で誰でも検証できる)を根拠とする。ブロックチェーンでは各アカウントが秘密鍵・公開鍵ペアを持ち、トランザクションへの署名を通じてこの否認防止の性質を分散型ネットワーク上で実現している点が中央集権的なシステムとの違いである。秘密鍵の管理(漏えい防止)が否認防止の前提を支える重要な要素である点にも留意する必要がある。
採点基準(14点):
- 「秘密鍵は本人のみが保持し、その鍵でしか署名を生成できない」(5点)
- 「公開鍵で誰でも検証可能」(3点)
- 「これにより本人以外が作成できない署名の存在が否認を防ぐ」という結論(6点)
設問2
要件2について、マークル木を用いてどのように軽量な検証(特定トランザクションの包含証明)を実現できるか、マークルパスという語句を用いて説明せよ。また、要件3について、マークルルートを「ある時点でのデータの存在証明」に転用することの技術的な妥当性を評価せよ。
設問2の解答・解説を見る
正解例(軽量検証): 監査対象のトランザクションのハッシュ値から、マークル木のルートに至る経路上で必要となる兄弟ノードのハッシュ値の列(マークルパス)のみを取得し、監査人自身が対象トランザクションのハッシュ値とマークルパス上のハッシュ値を順に連結・ハッシュ化していくことで、最終的にブロックヘッダに記録されているマークルルートと一致するかを検証する。この方法ではブロック全体のトランザクションを取得する必要がなく、木の高さに比例した対数オーダーのデータ量・計算量で包含証明ができる。
正解例(存在証明への転用の妥当性): 技術的に妥当性がある。マークルルートはその時点でのブロック内全トランザクションのハッシュ値から一意に計算される値であり、後から任意のトランザクション内容を変更するとルートハッシュが変化してしまう(衝突耐性のあるハッシュ関数を前提とする限り、同一のルートハッシュを持つ異なるデータ集合を作ることは計算上困難)。ブロックチェーン自体がブロック生成時刻の記録やタイムスタンプと結びついている場合、そのブロックのマークルルートは「その時点までに、その内容のデータが存在した」ことを示す証跡として活用でき、実際に既存のタイムスタンプ局のプロトコルやデータ証明サービスに応用されている。ただし、この妥当性はハッシュ関数の衝突耐性が保たれていることが前提であり、危殆化した弱いハッシュ関数を使っている場合はこの性質が崩れる点に注意が必要である。
解説: マークルパスによる検証はSPV(Simplified Payment Verification)等で実際に利用されている軽量検証手法であり、対数オーダーのデータ量で包含証明が可能な点がマークル木の実務上の価値である。また、ハッシュ値の一意性・衝突耐性を根拠にした存在証明(Proof of Existence)への応用は、ブロックチェーンのタイムスタンプ的性質を利用した実例が既に存在する分野であり、SC試験の午後問題でも「ハッシュの性質を応用した別用途への転用の妥当性を評価する」問われ方がされることがある。
採点基準(16点):
- 軽量検証:「マークルパス(経路上の兄弟ハッシュ)のみを用いる」(5点)
- 軽量検証:「対象データとマークルパスからルートハッシュを再計算し一致を確認」(4点)
- 軽量検証:「ブロック全体を取得する必要がなく効率的」への言及(2点)
- 存在証明の妥当性:「衝突耐性のあるハッシュ関数が前提であれば妥当」という条件付きの評価(5点)
重要キーワード
| 用語 | 説明 |
|---|---|
| マークル木(Merkle Tree) | トランザクションのハッシュ値を階層的に集約し、単一のルートハッシュで完全性を検証する木構造 |
| マークルルート | マークル木の最上位に位置する単一のハッシュ値。ブロックヘッダに格納され改ざん検知に用いられる |
| マークルパス | 特定の葉ノード(トランザクション)からルートに至る経路上の兄弟ハッシュ値の列。軽量検証に利用 |
| デジタル署名 | 秘密鍵で生成し公開鍵で検証する署名。ブロックチェーンでは送信者認証・否認防止に用いられる |
| 暗号学的ハッシュ関数 | 一方向性・衝突耐性を持つ関数。マークル木の各ノード計算やブロック連結の基盤となる |
| コンセンサスアルゴリズム | PoW/PoS等、ブロック生成者や取引の正当性について分散ノード間で合意形成する仕組み |
まとめ
- 午前I視点: マークル木は暗号化ではなくハッシュ関数を用いた効率的な完全性検証の構造であり、目的(軽量な改ざん検知)と手段(ハッシュの階層集約)を正確に理解する
- 午前II視点: ブロックチェーンにおける電子署名の役割(送信者認証・非改ざん性・否認防止)と、コンセンサスアルゴリズム(ブロック生成の合意形成)は別レイヤの技術であり混同しないこと
- 午後視点: マークルパスによる軽量検証の仕組みと、ハッシュの衝突耐性を前提にした存在証明への応用可能性を、技術的根拠(衝突耐性)とセットで説明できるようにする