匿名性一直被視為加密貨幣社群的非常有價值的特徵之一。它是可替代性的前身,該特性對於廣泛使用的貨幣形式也是必要的。同樣,大多數加密資產持有者不希望他們的資產和交易記錄被完全公開。在所有在為區塊鏈提供隱私性的各種加密技術中,zk-SNARK和zk-STARK是兩個值得注意的例子。
zk-SNARK代表了簡潔化的非互動式零知識證明,而zk-STARK代表了簡潔化的全透明零知識證明。 Zk-SNARK已經在基於區塊鏈的支付系統上如Zcash,JP Morgan Chase專案中使用,並作為一種客戶端到伺服器的安全驗證方式。但是,雖然zk-SNARKs已經很成熟並被廣泛的使用,但zk-STARK現在也被吹捧為該協議的新版本和改進版本,旨在解決zk-SNARKs先前的許多缺點。
1990年,密碼學家Jean-Jacques Quisquater(以及其他合作者)共同發表了一篇題為“如何向孩子解釋零知識證明協議”的論文。本文介紹了零知識證明的概念,其中包含阿里巴巴洞穴的寓言。自從創建以來,這個寓言已經被多次改編,我們現在有多種版本。但所表達的內容基本上一致的。
讓我們想像有一個環形洞穴,它有一個入口和一個將兩條路分開的魔法門。為了打開魔法門,人們需要低聲說出正確的秘密。因此,考慮到Alice(黃色)想要向Bob(藍色)證明她知道密碼是什麼,但同時也要對密碼保密。為此,Bob同意在外面等待,同時Alice進入洞穴並從兩條路徑中選擇一條走到盡頭。在該案例中,她決定通過路徑1。
過了一會兒,鮑伯走到入口處,喊出他希望愛麗絲從哪一邊出現(在該案例中應該是路徑2)。
如果Alice確實知道這個密碼,她將可以正確地按照Bob所要求的路徑中走出來。
這個過程可以重複多次,以確認Alice不是透過運氣才選擇正確的路徑。
阿里巴巴的洞穴寓言說明了零知識證明的概念,它是zk-SNARK和zk-STARK協議的一部分。零知識證明可用於證明擁有某些知識並且不會洩露任何有關它的資訊。
Zcash是zk-SNARKs的首個廣泛應用。雖然像Monero這樣的隱私項目也採用了環形簽名和其他技術,透過這些技術也可有效地創建了一個煙幕彈保護發送者 ,而zk-SNARKs也從根本上改變了數據的共享方式。 Zcash的隱私源於這樣一個事實,即網路中的交易可以被加密,但仍然可以透過使用零知識證明來驗證有效性。因此,執行共識規則的人不需要知道每個交易的所有資料。值得一提的是,Zcash中的隱私功能預設是處於不活動狀態,是可選的,取決於手動設定。
零知識證明允許一個人向另一個人證明其所陳述的是真實的,且不會洩露超出陳述有效性的任何資訊。有關各方通常被稱為證明者和驗證者,他們所持有的秘密被稱為證據。這些功能的主要目的是讓雙方盡可能少的進行資料交換。換句話說,人們可以使用零知識證明來證明他們是知曉某些知識但不會洩露任何有關知識本身的資訊。
在SNARK首字母縮寫詞中,首字母“succinct”意味著這些該證明較簡單,可以快速驗證。 “非互動式”意味著證明者和驗證者之間幾乎沒有互動。較早版本的零知識證明協議通常要求證明者和驗證者進行通信,因此被認為是“交互式”零知識證明。但在“非互動式”結構中,證明者和驗證者只需交換相關證明。
目前,zk-SNARK證明依賴證明者和驗證者之間的初始化可信設置,這意味著需要一組公共參數來構建零知識證明,從而構建私有交易。這些參數幾乎就像遊戲規則,它們透過程式寫到協議中,並且是證明交易有效的必要因素之一。然而,這會產生潛在的集中化問題,因為參數通常由非常小的群體制定。
雖然最初的公共設置是如今zk-SNARK實施的基礎,但研究人員正在努力尋找其他替代方案,以減少互動流程中所需的信任。初始設定階段對於防止偽造支出非常重要,因為如果某人有權存取生成參數的隨機性,他們可能會創建對驗證者有效的假證明。在Zcash中,初始設定階段稱為參數產生過程。
我們再來談下首字母縮寫的“ARguments”。 zk-SNARK被認為是可合理計算的,這意味著偽造的證明者成功欺騙系統的可能性非常小。此性質稱為健全性,假設證明者俱有有限的運算能力。從理論上講,具有足夠計算能力的證明者可以創建偽造證明,這也是量子電腦被許多人視為可能對zk-SNARK和區塊鏈系統產生威脅的原因之一。
最後一個首字母是“Knowledge”,這意味著證明者無法在沒有實際知識(或證人)支持其陳述的情況下構建證據。
零知識證明可以快速驗證,通常比標準比特幣交易佔用的資料少很多。這為zk-SNARK技術開闢了一條新道路,使其可用作匿名性和可擴展性解決方案。
zk-STARKs是作為zk- SNARK協定的替代版本而創建的,被認為是該技術的更快和更便捷的實現方式。但更重要的是,zk-STARK不需要進行初始化可信設定(因此,字母“T”代表了透明性)。
從技術上講,Zk-STARKs不需要初始化可信設置,因為它們依賴於通過哈希函數碰撞進行更精簡的對稱加密方式。這種方式也消除了zk-SNARK的數論假設,這些假設在計算上成本很高,並且理論上容易受到量子電腦的攻擊。
Zk-STARK能夠提供更便捷和更快速實現的主要原因之一是因為證明者和驗證者之間的通信量相對於計算的任何增量是保持不變的。相反,在zk-SNARK中,所需的計算越多,各方須來回發送訊息的次數就越多。因此,zk-SNARK的整體資料量大小遠大於zk-STARK證明中的資料量。
很明顯,zk-SNARKS和zk-STARK都吸引了越來越多的關於匿名性的問題。在加密貨幣領域,這些協議具有巨大的潛力,可能成為廣泛使用的開創性途徑。