零知識證明和科學理論

  舊作如何定量地證僞圖靈測試?中提及的證明方(Prover)想要防止向驗證方(Verifier)泄密時,可以採用零知識證明這種特殊的證明方式保證驗證方只知其然而不知所以然。例如,驗證方詢問G,H兩個圖是否不同構的問題時,傳統證明方式是證明方直接給驗證方完整的解答,但這會讓驗證方知道他用的特殊算法,從而暴露了比原答案更多的內容。零知識證明則是驗證方反覆向證明方發送G.H之一的隨機重排並詢問它來自兩圖中的哪一個,當G,H同構時這種重排會同時同構於G和H,所以證明方總是有1/2概率答錯。驗證方通過證明方始終作答無誤這點來推斷出兩圖不同構。此過程中證明方回答的都是驗證方自己本就知道的信息,因爲驗證方發的圖是自己選的。並且,這個證明是可靠的,因爲證明方就算想欺騙驗證方兩圖不同構,G,H同構時他也不可能知道驗證方選的是什麼。

  所以,零知識證明的可貴之處就在於其保持(高概率意義上的)可靠的同時儘可能地保密了證明方的知識,從而具備相當的商用前景,但看起來卻和提倡知識共享的基礎科學理論毫不相關,除了形似數學中只證明對象存在而給不出對象的描述的“非構造性證明”以外。奧祕在於零知識證明的具體實現上。

  怎麼保證驗證方不能從與證明方的互動中推斷出更多的內容?那當然要從哪些知識可以被看做驗證方“已有”的下手。計算機科學一般將時間不超過問題長度的某個多項式作爲“計算可行”的標準,所以驗證方能夠用多項式時間算出的內容都可以看做“已知”。因此,零知識證明的實現是:

  在目標命題爲真的條件下,驗證方和證明方交流內容所服從的概率分佈,與某個仿真程序用多項式時間生成結果的概率分佈不可區分。

  如果將“不可區分”加強爲要求“嚴格相等”,就稱爲完備零知識證明。前述的例子就是完備零知識證明,驗證方自己完全清楚發送的圖是由G還是H變來的,所以他當然也可以自己仿真出證明方的回答。

  科學理論成功的標誌,莫過於根據該理論計算仿真出的觀測結果,和實驗觀測的真實結果相一致。然而一致的標準是什麼呢?在自然界存在隨機性時逐點相等是奢望,應該是概率分佈不可區分。這正是零知識證明的要求。

  將自然界看做是證明方,而科學研究者看做是驗證方,他們的交流互動看做是實驗觀測,那麼成功的理論驗證就可看做零知識證明,雖然可能不是完備的,自然產生的概率分佈未必總能被準確仿真。這裏我們對自然界的性質並沒做什麼具體的假定,因爲零知識證明本來就只對驗證方做了算力限制,證明方的算力是不限的,他未必要是某個理智的人或精密的機器。事實上,交互證明的一個常用比喻就是驗證方是耐心有限的亞瑟王,而證明方是法力無邊的魔法師梅林,任何可解問題都能用魔法正確作答。NP複雜類的量子版本:量子梅林-亞瑟類(QMA)就是這麼來的(中文本地化大約可以叫孔明-翼德類?)。

 於是我們得到了一個十分有趣的科學哲學斷言:凡是沒有對應零知識證明存在的,都不是科學理論。例如,PSPACE(多項式空間)以外的難題就不存在多項式時間內可行的零知識證明,不論證明方怎麼樣。

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