上級者用語を調べる
秘匿トランザクションとは
- 執筆
- CRYPTO PORT 編集部
- 公開日
- 更新日
- 読了目安
- 5 分
結論
秘匿トランザクションは、送金額を暗号文のまま台帳に記録し、それでも「入力と出力の合計が一致している」ことを検証できるようにする仕組みです。金額を隠すと不正な増発が可能になってしまうため、範囲証明という別の証明を必ず組み合わせます。金額の秘匿と検証可能性を両立させるための基礎技術です。
要点
- 金額を暗号文のまま記録し、合計の一致だけ検証する
- 加法準同型のコミットメントで差し引きが計算できる
- 範囲証明がないと負の金額で不正な増発ができる
- 宛先やアドレスの関係までは隠さない
定義
取引金額をコミットメントとして暗号化したまま台帳に記録しつつ、入力合計と出力合計が等しいことを第三者が検証できるようにする方式。金額の範囲が正当であることを示す証明を伴う。
鍵になるのは、加法準同型という性質を持つコミットメントです。金額を直接書く代わりに、金額と目隠し用の乱数から計算した値を記録します。この値は足し引きができるよう作られているため、検証者は中身を知らないまま「入力の合計から出力の合計を引くとゼロになる」ことだけを確かめられます。
ここで抜け穴になるのが負の金額です。中身が見えない以上、出力の一方をマイナスにすれば、合計は合っているのに通貨が増えてしまいます。これを塞ぐのが範囲証明で、各出力が0以上かつ上限未満であることをゼロ知識で示します。証明のサイズが大きくなりがちで、手数料や容量の負担として現れます。
注意したいのは、これが隠すのは金額だけだという点です。どの出力がどの取引で使われたかという関係は台帳に残るため、金額の秘匿だけでは取引の流れをたどられます。実際の設計では、ステルスアドレスやリング署名、ゼロ知識証明と組み合わせて使われるのが普通です。
注意点
- · 金額を隠しても、取引の接続関係やタイミングは残る
- · 証明のデータ量が大きく、手数料や同期時間の負担になりやすい
- · 会計や税務では金額の記録が必要になるため、閲覧手段の確保が前提になる