VRF(Verifiable Random Function)について
VRFとは検証可能な疑似乱数関数(ハッシュ関数)のこと。
疑似乱数関数
ブロックチェーンなどの分散ネットワークで乱数を生成したいとき、これではどのような乱数が出てくるか予想ができてしまう。この問題を解決するのがVRFである。
VRFの定義
VRFには秘密鍵
秘密鍵
VRFによる乱数生成
VRFを使うと次のように乱数を生成することができる。
いま、ここに
ポイントは、秘密鍵が分からないとVRFの出力を予測することができないということである。そのため、N人のうち1人でも正直な参加者がいれば、攻撃者は正直な参加者の出力を予測することができず、最終的な乱数も予測することができない。またVRFの証明を検証することで、攻撃者が出力値をすり替えた場合に検出できるようになる。
VRFの構成
VRFの構成には様々な方法があるが、ここでは下記の記事の方法を取り上げる。
公開鍵
VRF
prove
proofは
verifiy
を検証する。
proverが正直なら
と、
が成り立つことに注意