區塊鏈 深入淺出零知識證明

2021-09-19 22:51:15 字數 2430 閱讀 9686

一、什麼是零知識證明?

零知識證明(zero—knowledge proof)並不是乙個全新概念,也不是伴隨著區塊鏈的流行而誕生的新技術。零知識證明在我們以往的日常生活中隨處可見,我舉乙個最簡單的例子,張三在逛商場的時候把錢包弄丟了,李四撿到了錢包,交給了商場的管理處值班員王五,王五通過商場廣播尋找失主前來認領。丟失錢包的張三聽到廣播後來到管理處認領錢包,那麼問題來了,王五怎麼確認失主就是張三呢?或者張三怎麼向王五證明這個錢包就一定是自己的呢?

為了確保萬無一失,王**能向任何人洩露有關錢包的任何資訊,通常,我們運用零知識證明就可以完美解決確認失主身份的問題。

第一:王**能讓張三看到錢包,更不能讓他看到錢包裡有什麼東西;

第二:張三必須提供準確無誤的資訊,證明錢包就是自己的;

於是,王五問了張三幾個問題——

1、錢包的顏色、大小、品牌分別是什麼?

2、錢包裡有什麼東西?比如多少錢?什麼證件?證件資訊是什麼?

如果張三全部答對了,則確認張三就是失主。這種資訊驗證的手段其實就是零知識證明。

二、零知識證明的價值

在區塊鏈中使用零知識證明有什麼好處?或者說零知識證明可以帶來什麼價值呢?

我們再來看乙個例子。

假設a要向b證明a有開啟一扇門的密碼(假設是密碼鎖),a在證明的過程中為了保證密碼不被別人竊取,要求b不能在場圍觀自己輸入密碼並開啟門,那麼最後b如何確認a真的有開啟這扇門的密碼呢?通過零知識證明,可以有很多不同的解決方案,比如,a在b在不場的情況下(絕對安全的環境下),輸入門鎖密碼、找開房門、拿出房間裡的一樣東西(前提是這樣東西是b認同是鎖在房間內的)、鎖上房門、用這樣東西來給b證明自己用密碼開啟過房門。

通過這個例子很容易就得出乙個結論——零知識證明是一種更加安全的資訊驗證或者身份驗證機制。安全性和私隱性就是零知識證明的價值所在。

三、零知識證明的三個基本特性

1、完備性。如果證明方和驗證方都是誠實的,並遵循證明過程的每一步,進行正確的計算,那麼這個證明一定是成功的,驗證方一定能夠接受證明方。

2、合理性。沒有人能夠假冒證明方,使這個證明成功。

3、零知識性。證明過程執行完之後,驗證方只獲得了「證明方擁有這個知識」這條資訊,而沒有獲得關於這個知識本身的任何一點資訊。

四、零知識證明的典範zcash

zcash是乙個數字貨幣,交易過程完全匿名是zcash最大的亮點,這一亮點使得zcash自提出以來便備受關注,zcash能夠完全匿名化實現交易過程正是得益於使用了零知識證明這一「神秘」**。

那麼zcash是如何利用零知識證明的呢?

先看一下沒有採用零知識證明的普通的交易是如何進行的,假設a有3個btc,要給b轉賬1個btc,那麼在賬本上就會記錄著:a轉出了兩筆btc,一筆為1btc,轉給了b;另一筆為2btc,轉給了自己。這樣每一筆交易,由誰發起,是誰接收都一目了然,在一些特定的場景之下,交易者雙方並不希望把自己的交易資訊公布於眾,顯然這種交易方式是不滿足這些特定需求的。

那麼利用了「零知識證明」的zcash是怎麼做到的所謂匿名呢?

zcash的代幣為zec。同樣假設a有3個zec,要給b轉賬1個zec。

首先,a會將自己的1個zec分成若干份隨機投入一系列的「混合容器」中,指定接收方b的位址,同時混入的時候還有其他交易方輸出的若干份zec。這些zec又被混合容器隨機拆分,再從這些被拆分生成的所有的zec中取出合計為1zec的若干份,轉移到b的位址中,同時在傳送的時間上也可以設定一定的延遲。

其中的「混合容器」,就是一條「公有鏈」。經過這條公有鏈一系列的「混幣」過程,就使得包括交易位址和具體金額在內的交易資訊變得無從考證了。

當然,雖然zcash以其匿名性使其市場熱度一度很高,但其仍面臨諸多障礙與「原罪」。

首先,要實現匿名性,其所需要的證明資訊所花費的計算資源就非常多,帶來了大量的資源浪費,也導致了其可擴充套件性面臨巨大挑戰。

另外,匿名性會帶來大量的額外監管問題,一旦有不法份子利用其使用者黃、賭、毒等違法領域,將會給追蹤與監管帶來非常大的挑戰,造成一系列社會問題。

五、總結

在2023年12月3日舉辦的亞太以太坊技術交流會上,以太坊創始人v神發表了主題為「以太坊區塊鏈中的隱私保護」的演講,在演講中,v神為在場聽眾介紹了四種適用於以太坊區塊鏈的兼顧私隱性和安全性的解決方案——通道(channels)、混合器(mixers)、環簽名(ring signature)及零知識證明(zero knowledge proofs)。

其中,他特別提到,零知識證明是「最為強大」的解決方案,儘管技術實現難度最高,但在保護在以太坊網路的私隱性和安全性上,其效果最佳。

v神還認為,零知識證明能夠被應用於以太坊區塊鏈上幾乎所有的場景。他透露,在以太坊未來的公升級優化中,以太坊零知識證明的生成證明效率將得到大幅改善,削減到七秒。

零知識證明雖然面臨著諸多的障礙和「原罪」,但仍舊無法遮擋其價值所帶來的光芒,至少零知識證明給交易安全帶來了一種可靠的選擇,值得學習和關注。

深入淺出責任鏈模式

一 引言初看責任鏈模式,心裡不禁想起了乙個以前聽過的相聲 看牙。說的是乙個病人看牙的時候,醫生不小心把拔下的乙個牙掉進了病人嗓子裡。病人因此樓上樓下的跑了好多科室,最後無果而終。責任鏈模式就是這種 推卸 責任的模式,你的問題在我這裡能解決我就解決,不行就把你推給另乙個物件。至於到底誰解決了這個問題了...

區塊鏈解讀 零知識證明

解讀區塊鏈,零知識證明 zero knowledge proof 前段時間聽到有朋友談到,區塊鏈發展技術中的零知識證明,這幾天翻閱了下資料看了下這一塊內容,看完之後深深覺得自己數學知識和數學理解能力的不足,大概寫下零知識證明的理論,也不深究,其實具體很多東西也沒看懂,就當是乙個知識名詞的解釋。零知識...

區塊鏈解讀 零知識證明

前段時間聽到有朋友談到,區塊鏈發展技術中的零知識證明,這幾天翻閱了下資料看了下這一塊內容,看完之後深深覺得自己數學知識和數學理解能力的不足,大概寫下零知識證明的理論,也不深究,其實具體很多東西也沒看懂,就當是乙個知識名詞的解釋。零知識證明 zero knowledge proof,是由s.goldw...