Chain Finalization
Chain Finalizationは、ブロックチェーンが停止・移行した後も記録を検証できる可能性を残すために、終了時点の履歴、状態、検証手順を保全する設計上の考え方です。
これは、現行のBEYONDがチェーンを物理的に停止させたり、将来のブロック生成を不可能にしたりする機能の名称ではありません。チェーンの合意方式、運用主体、アーカイブ手順に応じて、別途設計と実施が必要です。
なぜ終了設計が必要か
終了設計は、記録を扱う期間があらかじめ決まっている運用にも役立ちます。データの取得・提供期間、事業年度、プロジェクトの実施期間、法令で定められた保管期間などに合わせて、新たな書き込みを終える時点と、記録済みデータを保持・取得・検証できる状態で残す期間を計画できます。
例えば、事業年度ごとに記録を区切る運用では、年度末の対象ブロックと履歴を保全し、次年度の記録先へ移行する構成を検討できます。前年度のチェーンへの新規書き込みを終えた後も、必要な期間はアーカイブから照会や再検証ができるようにします。チェーンを分けるかどうかは、業務上の区切りと運用負担を踏まえて判断します。
ブロックチェーンは、ノード運用者の減少、クライアント実装の保守終了、経済的な事情、別ネットワークへの移行、暗号方式の変化などにより、永続的に稼働するとは限りません。
停止時に履歴や検証条件が失われると、チェーンへ記録した事実があっても、後からデータ実体を取得・復元できない場合があります。終了設計では、停止前に何を保全し、誰がどの手順で再検証できるようにするかを決めます。
参加者がノード運用と履歴の保持を引き継ぐ継続設計については、DAOの運用 を参照してください。DAOによる継続運用と、期間を定めた運用や停止・移行に備える終了設計は併せて検討できます。
稼働期間と保管期間を分けて設計する
次の期間は、それぞれ目的が異なります。
| 期間 | 決めること |
|---|---|
| 記録・書き込み期間 | どの業務や年度の記録を対象とし、いつ新規書き込みを終えるか |
| データの取得・提供期間 | 誰が、どの取得経路から、いつまでデータを利用できるようにするか |
| 保管期間 | データ実体と検証根拠を、どの保存先で、いつまで保持するか |
チェーンの稼働終了や通常の取得サービスの終了と、記録の保管終了は同じではありません。保管中に照会や監査への対応が必要なら、アーカイブの保持に加え、取得・復元・検証を行う手段と担当者を定めます。暗号化した記録では、必要な期間にわたって復号鍵を利用できる管理も必要です。
法令上の保管要件を扱う場合は、対象記録に適用される期間、その起算点、保存方法、参照可能性などの要件を別途確認し、運用設計へ反映します。Chain Finalizationを実施したことだけで、これらの要件を満たしたと判断するものではありません。
期間満了時の保管延長、移管、取得サービスの終了なども事前に決めておきます。期間が満了しても、チェーン上の記録や第三者が保持する複製が自動的に消えるわけではありません。消去が必要な情報は、記録前に保存方式と公開範囲を検討します。
保全する情報
対象チェーンの仕様に応じて、少なくとも次を検討します。
- 終了または移行の基準としたブロック高・ブロックハッシュ
- 対象業務・事業年度、各期間の起算点と終了条件、保管方針
- アーカイブの管理主体、取得・提供経路、照会と復元の手順
- その時点までのブロック履歴と必要な状態データ
- ネットワークを識別するgenerationHashなどの設定
- データ形式、暗号方式、復元・検証手順
- 使用したクライアントやBEYONDのバージョン
- アーカイブのハッシュや署名
- 独立した媒体や別チェーンに残したBeacon/Anchorなどの外部根拠
これらは一つの値だけで代替できません。たとえば、アーカイブのハッシュが残っていてもアーカイブ本体がなければ内容を検証できず、アーカイブだけがあっても比較する外部根拠がなければ終了時点のものか判断しにくくなります。
停止後の検証
停止後の検証では、保存された履歴またはアーカイブから対象データとトランザクションを取得し、保全したネットワーク情報、ブロック識別情報、外部根拠と照合します。
検証可能性は、アーカイブが利用できること、形式を読めるソフトウェアや仕様が残っていること、暗号方式が評価可能であることなどに依存します。終了設計を行っても、将来の取得や検証成功を永久に保証するものではありません。
現行BEYONDで利用できる外部根拠の一つは BeaconとAnchor です。BeaconとAnchorも、アーカイブ本体や検証手順の代わりになるものではありません。