網上有乙個被很多人引用的例子,即「阿里巴巴的零知識證明」,可以幫助我們理解「零知識證明」的原理。
一天,阿里巴巴被強盜抓住了,強盜向阿里巴巴拷問進入山洞的咒語。面對強盜,阿里巴巴是這麼想的:如果我把咒語告訴了他們,他們就會認為我沒有價值了,就會殺了我省糧食;但如果我死活不說,他們也會認為我沒有價值而殺了我。怎樣才能做到既讓他們確信我知道咒語,但又一丁點咒語內容也不洩露給他們呢?
這的確是乙個令人糾結的問題,但阿里巴巴想了乙個好辦法,當強盜向他拷問開啟山洞石門的咒語時,他對強盜說:「你們在離開我一箭遠的地方,用弓箭指著我,當你們舉起右手我就念咒語開啟石門,舉起左手我就念咒語關上石門,如果我做不到或逃跑,你們就用弓箭射死我。」
強盜們當然會同意,因為這個方案不僅對他們沒有任何損失,而且還能幫助他們搞清楚阿里巴巴到底是不是真的知道咒語這個問題。阿里巴巴也沒有損失,因為處於一箭之地的強盜們聽不到他念的咒語,不必擔心洩露了秘密,同時他又確信自己的咒語有效,也不會發生被射死的杯具。
強盜舉起了右手,只見阿里巴巴的嘴動了幾下,石門果真開啟了,強盜舉起了左手,阿里巴巴的嘴動了幾下後石門又關上了。強盜還是有點不信,說不准這是巧合呢,他們不斷地換著節奏舉右手舉左手,石門跟著他們的節奏開開關關,最後強盜們想,如果還認為這只是巧合,自己未免是個傻瓜,那還是相信了阿里巴巴吧。
這樣,阿里巴巴既沒有告訴強盜進入山洞石門的咒語,同時又向強盜們證明了,他是知識這個咒語的。
這就是零知識證明的乙個重要例項[1]。
那麼,利用了區塊鏈技術的zcash,就是利用「零知識證明」實現的匿名性。
參考:[1]
區塊鏈解讀 零知識證明
解讀區塊鏈,零知識證明 zero knowledge proof 前段時間聽到有朋友談到,區塊鏈發展技術中的零知識證明,這幾天翻閱了下資料看了下這一塊內容,看完之後深深覺得自己數學知識和數學理解能力的不足,大概寫下零知識證明的理論,也不深究,其實具體很多東西也沒看懂,就當是乙個知識名詞的解釋。零知識...
區塊鏈解讀 零知識證明
前段時間聽到有朋友談到,區塊鏈發展技術中的零知識證明,這幾天翻閱了下資料看了下這一塊內容,看完之後深深覺得自己數學知識和數學理解能力的不足,大概寫下零知識證明的理論,也不深究,其實具體很多東西也沒看懂,就當是乙個知識名詞的解釋。零知識證明 zero knowledge proof,是由s.goldw...
區塊鏈與零知識證明
零知識證明 zero knowledge proof 是這樣的乙個過程,證明者在不向驗證者提供任何額外資訊的前提下,使驗證者相信某個論斷 statement 是正確的。證明過程包括互動式 interactive 和 非互動式 non interactive 兩種。零知識證明 零知識,即在證明的過程中...