VRF(可驗證隨機函數)快速理解

理解VRF之前,需要先理解帶祕鑰的哈希函數,和傳統的哈希函數不同,帶祕鑰的哈希函數在計算HASH數值的時候引入了一個不公開的祕鑰,這樣爲從明文到HASH數值計算之間添加了一定的難度,這個難度就是由祕鑰引入的。我們簡單的定義一個帶祕鑰的HASH函數爲如下的形式:

hash_value=HASH(pri_key, message)

那麼當我們擁有了計算出來的hash_value和數據message,我們需要知道pri_key纔可以驗證hash_value是否由message通過HASH函數生成。一般我們知道祕鑰pri_key對於我們信息安全的重要性。因此現在引出來如下的問題:

  • 對外只暴露pri_key對應的pub_key
  • 在不暴露pri_key的情況下,驗證hash_value和message之間是匹配的

爲了實現上面的目的,於是就有了可驗證隨機函數VRF,現在我們一步一步看其實如何工作的:

step 1 : 生成一對公私鑰,分別爲pri_key和pub_key
step 2 :計算hash_value=VRF_HASH(pri_key, message)
step 3 :計算proof_value=VRF_PROOF(pri_key, message)
step 4 : 現在將hash_value和proof_value提供給驗證者
step 5 : 驗證者拿到hash_value和proof_value計算hash_value=VRF_P2H(proof_value)
step 6 : 如果step5成功,則驗證者計算VRF_VERIFY(pub_key, message, proof)
step 7 : 如果step6返回true則表示驗證通過,否則驗證失敗

梳理一下我們可以這樣理解,首先驗證proof是否是由message生成的,然後驗證proof是否可以就散出hash_value,這樣我們就可以推理出hash_value是否由message生成,並且能找到過程中proof是否出現問題。過程中三個關鍵函數

  • VRF_HASH
  • VRF_PROOF
  • VRF_VERIFY

就會我們事先VRF的關鍵

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章