應用密碼學

可驗證隨機函數

可驗證隨機函數(VRF)是一個帶金鑰的函數,會產生看起來完全隨機的輸出,並附上一份證明,表示該輸出是由給定輸入正確計算而來。任何持有你公鑰的人都能檢查這份證明,但唯有持有私鑰的你,才能產生那個確切的輸出。

形式上,以私鑰 sk:(output, proof) = VRF(sk, input);而 Verify(pk, input, output, proof) 只接受那個唯一正確的輸出。三項性質很重要:偽隨機性(對沒有 sk 的人而言,輸出與隨機難以區分)、唯一性(每個輸入恰好對應一個可證明的輸出,持有者無法「磨」出對自己有利的結果),以及可驗證性(證明能說服所有人)。常見的建構是 ECVRF,一種橢圓曲線 VRF,被 Algorand 與 Chainlink VRF 採用。

它的殺手級應用是私密、不可操弄的領導者選舉。在 Algorand 以及 Cardano 的 Ouroboros Praos 中,每位驗證者私下對該時隙的種子隨機性求 VRF;若輸出落在與其權益成比例的門檻之下,他就是領導者,並揭示證明。沒有人能事先預測誰會被選中(挫敗針對性攻擊),事後卻人人都能驗證贏家沒有作弊。Chainlink VRF 則為鏈上遊戲與 NFT 鑄造提供同樣具防竄改特性的隨機性。

VRF 的唯一性正是阻止「磨值」的關鍵。不像承諾揭露方案中參與方可以扣住不利的揭露,VRF 的輸出是被強制決定的——持有者無法藉嘗試多把金鑰或多個輸入來把結果偏向對自己有利。

又稱
VRF