iT邦幫忙

2024 iThome 鐵人賽

DAY 8
0
Security

零知識證明-走進PLONK世界系列 第 8

[Day8]零知識證明-走進PLONK世界: 為什麼要用非交互的零知識證明

  • 分享至 

  • xImage
  •  

今天會繼續深入講解零知識證明,讓大家可以進一步了解為什麼要用Non-interactive zero-knowledge proof(非交互的零知識證明)。

零知識證明有兩個角色,一個是證明者,一個驗證者。
如果要編寫證明者,有兩點要留意,第一是要產生一個有效的證明,第二是要注意在產生證明時,有沒有暴露了一些不想公開的資訊(例如: 個人地址、收入等)。
如果要編寫驗證者,要關注檢查的證明是不是有效的,能否滿足成為有效證明的條件。
最終是讓證明者可以用最少的資源去證明一件事,驗證者可以用最少的資源去驗證一件事。

當完成一組證明後,就算順利完成編譯,也不算是完全沒有bug的。因為證明的完整性是不能忽視,需要經過多組證明測試,不過惡意的證明者有很多類型,在測試上要應對不同惡意的證明者是存在很大難度,而且難以完全進行所有證明測試。再者計算機技術也在進步,新的技術可能會欺騙到驗證者。所以在設計上,最重要的要考慮到自己寫的驗證如何不被惡意證明者欺騙。

再強調一下零知識證明是需要具有以下三個特性:

  1. 完整性(completeness)
  2. 可靠性(soundness)
  3. 零知識(Zero-knowledge)

在證明者與驗證者之間要有大量交互,在有足夠多的交互下,才可以進一步減低作弊的風險。因為成功交互的數量愈多,就表示愈安全,最理想當然要進行所有交互,但在實際應用上也需要考慮到效率的問題。雖然真的證明能通過驗證,是其中一項條件,但只通過一個證明不代表這就是完整的,因為還有其他證明仍不知道是真還是假的。
如果要是假的證明又能通過驗證,這就雖然通過完整性,但就欠缺可靠性。
如果所有證明都是真的,但沒有為所有證明的測試,這就雖然通過可靠性,但就欠缺完整性。
所以兩者需要同時為真,才可以做到有效的驗證。

相信看到這裡,大家都會留意到以上提到的過程是交互式零知識證明,也留意到進行大量交互就必須要花一定的時間去處理和完成。為了可以進一步提升效率,就可以利用由 Amos Fiat and Adi Shamir 所開發的Fiat-Shamir transformation把交互式零知識證明轉換成非交互式零知識證明。

通過Fiat-Shamir transformation轉換取代了驗證者在交互協議中發出隨機挑戰的動作,讓不可交互的public coin protocol成為可交互的及能被公開驗證。因此驗證者再也不同向證明者發出挑戰,只要負責驗證證明者的證明就可以。證明者就只需要生成一個包含隨機數的證明。

基於非交互式零知識證明,用戶可以直接生成一個證明,然後發送到區塊鏈上進行驗證,從而加快驗證效率。透過Fiat-Shamir transformation,可以實現非交互式零知識證明,令public coin protocol變成非交互式零知識證明。

public coin protocol 可以讓誠實的驗證點發出隨機的coin(可以理解為隨機數)作為訊息,然後由證明者產生一個證明。不過發出隨機的coin的動作不一定由驗證者負責,可以由其他人負責,例如一個隨機數生成機器等。所以可以引入random oracle(例如: cryptographic hash function)來生成隨機數,然後由證明者產生一個證明,再直接發送給驗證者(on-chain)。因此,也減少了雙方的工作量。所以這個轉換可以看到是將部分工作量轉移給證明者去做。

如果我們運用Fiat-Shamir transformation令到交互式證明變成不交互式證明,則可以在很大大減少在完整性和可靠性的相關風險。

參考資料:

  1. Private Coins versus Public Coins in Zero-Knowledge Proof Systems
    https://www.cs.cornell.edu/~rafael/papers/bbZK.pdf
  2. Fiat-Shamir transformation
    https://www.zkdocs.com/docs/zkdocs/protocol-primitives/fiat-shamir/
  3. ZK Fundamentals: The Fiat-Shamir Transform
    https://medium.com/veridise/zk-fundamentals-the-fiat-shamir-transform-bfa69e2fd32e

上一篇
[Day7]零知識證明-走進PLONK世界: PLONK效能
下一篇
[Day9]零知識證明-走進PLONK世界: 算術化1
系列文
零知識證明-走進PLONK世界30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言