什么是zk-SNARK和zk-STARK
匿名性一直被視為加密貨幣社區(qū)的非常有價(jià)值的特征之一。它是可替代性的前身,該特性對(duì)于廣泛使用的貨幣形式來說也是必要的。同樣,大多數(shù)加密資產(chǎn)持有者不希望他們的資產(chǎn)和交易記錄被完全公開。在所有在為區(qū)塊鏈提供隱私性的各種加密技術(shù)中,zk-SNARK和zk-STARK是兩個(gè)值得注意的例子。
zk-SNARK代表了簡(jiǎn)潔化的非交互式零知識(shí)證明,而zk-STARK代表了簡(jiǎn)潔化的全透明零知識(shí)證明。 Zk-SNARK已經(jīng)在基于區(qū)塊鏈的支付系統(tǒng)上如Zcash,JP Morgan Chase項(xiàng)目中使用,并作為一種客戶端到服務(wù)器的安全驗(yàn)證方式。但是,雖然zk-SNARKs已經(jīng)很成熟并被很廣泛的使用,但zk-STARK現(xiàn)在也被吹捧為該協(xié)議的新版本和改進(jìn)版本,旨在解決zk-SNARKs先前的許多缺點(diǎn)。
阿里巴巴的洞穴寓言
1990年,密碼學(xué)家Jean-Jacques Quisquater(以及其他合作者)聯(lián)合發(fā)表了一篇題為“如何向孩子解釋零知識(shí)證明協(xié)議”的論文。本文介紹了零知識(shí)證明的概念,其中包含阿里巴巴洞穴的寓言。自創(chuàng)建以來,這個(gè)寓言已經(jīng)被多次改編,我們現(xiàn)在有多種版本。但所表達(dá)的內(nèi)容基本上一致的。
讓我們想象有一個(gè)環(huán)形洞穴,它有一個(gè)入口和一個(gè)將兩條路分開的魔法門。為了打開魔法門,人們需要低聲說出正確的秘密。因此,考慮到Alice(黃色)想要向Bob(藍(lán)色)證明她知道密碼是什么,但同時(shí)也要對(duì)密碼保密。為此,Bob同意在外面等待,同時(shí)Alice進(jìn)入洞穴并從兩條路徑中選擇一條走到盡頭。在該案例中,她決定通過路徑1。
過了一會(huì)兒,鮑勃走到入口處,喊出他希望愛麗絲從哪一邊出現(xiàn)(在該案例中應(yīng)該是路徑2)。
如果Alice確實(shí)知道這個(gè)密碼,她將可以正確地按照Bob所要求的路徑中走出來。
這個(gè)過程可以重復(fù)多次,以確認(rèn)Alice不是通過運(yùn)氣才選擇正確的路徑。
阿里巴巴的洞穴寓言說明了零知識(shí)證明的概念,它是zk-SNARK和zk-STARK協(xié)議的一部分。 零知識(shí)證明可用于證明擁有某些知識(shí)并且不會(huì)泄露任何有關(guān)它的信息。
zk-SNARKs
Zcash是zk-SNARKs的首個(gè)廣泛應(yīng)用。雖然像Monero這樣的隱私項(xiàng)目也采用了環(huán)形簽名和其他技術(shù),通過這些技術(shù)也可有效地創(chuàng)建了一個(gè)煙幕彈保護(hù)發(fā)送者 ,而zk-SNARKs也從根本上改變了數(shù)據(jù)的共享方式。 Zcash的隱私源于這樣一個(gè)事實(shí),即網(wǎng)絡(luò)中的交易可以被加密,但仍然可以通過使用零知識(shí)證明來驗(yàn)證有效性。因此,那些執(zhí)行共識(shí)規(guī)則的人不需要知道每個(gè)交易的所有數(shù)據(jù)。值得一提的是,Zcash中的隱私功能默認(rèn)情況下是處于不活動(dòng)狀態(tài),是可選的,取決于手動(dòng)設(shè)置。
零知識(shí)證明允許一個(gè)人向另一個(gè)人證明其所陳述的是真實(shí)的,且不會(huì)泄露超出陳述有效性的任何信息。有關(guān)各方通常被稱為證明者和驗(yàn)證者,他們所持有的秘密被稱為證據(jù)。這些功能的主要目的是讓雙方之間盡可能少的進(jìn)行數(shù)據(jù)交換。換句話說,人們可以使用零知識(shí)證明來證明他們是知曉某些知識(shí)但不會(huì)泄露有關(guān)知識(shí)本身的任何信息。
在SNARK首字母縮略詞中,首字母“succinct”意味著這些該證明較簡(jiǎn)單,可以快速驗(yàn)證。 “非交互式”意味著證明者和驗(yàn)證者之間幾乎沒有交互。較早版本的零知識(shí)證明協(xié)議通常要求證明者和驗(yàn)證者進(jìn)行通信,因此被認(rèn)為是“交互式”零知識(shí)證明。但在“非交互式”結(jié)構(gòu)中,證明者和驗(yàn)證者只需交換相關(guān)證明。
目前,zk-SNARK證明依賴于證明者和驗(yàn)證者之間的初始化可信設(shè)置,這意味著需要一組公共參數(shù)來構(gòu)建零知識(shí)證明,從而構(gòu)建私有交易。這些參數(shù)幾乎就像游戲規(guī)則,它們通過編程寫到協(xié)議中,并且是證明交易有效的必要因素之一。然而,這會(huì)產(chǎn)生潛在的集中化問題,因?yàn)閰?shù)通常由非常小的群體制定。
雖然最初的公共設(shè)置是如今zk-SNARK實(shí)施的基礎(chǔ),但研究人員正在努力尋找其他替代方案,以減少交互流程中所需的信任。初始設(shè)置階段對(duì)于防止偽造支出非常重要,因?yàn)槿绻橙擞袡?quán)訪問生成參數(shù)的隨機(jī)性,他們就可能會(huì)創(chuàng)建對(duì)驗(yàn)證者有效的假證明。在Zcash中,初始設(shè)置階段稱為參數(shù)生成過程。
我們?cè)賮碚勏率鬃帜缚s略詞的“ARguments”。 zk-SNARK被認(rèn)為是可合理計(jì)算的,這意味著偽造的證明者成功欺騙系統(tǒng)的可能性非常小。此屬性稱為健壯性,假設(shè)證明者具有有限的計(jì)算能力。從理論上講,具有足夠計(jì)算能力的證明者可以創(chuàng)建偽造證明,這也是量子計(jì)算機(jī)被許多人視為可能對(duì)zk-SNARK和區(qū)塊鏈系統(tǒng)產(chǎn)生威脅的原因之一。
最后一個(gè)首字母是“Knowledge”,這意味著證明者無法在沒有實(shí)際知識(shí)(或證人)支持其陳述的情況下構(gòu)建證據(jù)。
零知識(shí)證明可以快速驗(yàn)證,通常比標(biāo)準(zhǔn)比特幣交易占用的數(shù)據(jù)少得多。這為zk-SNARK技術(shù)開辟了一條新道路,使其可用作匿名性和可擴(kuò)展性解決方案。
zk-STARKs
zk-STARKs是作為zk-SNARK協(xié)議的替代版本而創(chuàng)建的,被認(rèn)為是該技術(shù)的更快和更便捷的實(shí)現(xiàn)方式。但更重要的是,zk-STARK不需要進(jìn)行初始化可信設(shè)置(因此,字母“T”代表了透明性)。
從技術(shù)上講,Zk-STARKs不需要初始化可信設(shè)置,因?yàn)樗鼈円蕾囉谕ㄟ^哈希函數(shù)碰撞進(jìn)行更精簡(jiǎn)的對(duì)稱加密方式。這種方式還消除了zk-SNARK的數(shù)論假設(shè),這些假設(shè)在計(jì)算上成本很高,并且理論上容易受到量子計(jì)算機(jī)的攻擊。
Zk-STARK能夠提供更便捷和更快速實(shí)現(xiàn)的主要原因之一是因?yàn)樽C明者和驗(yàn)證者之間的通信量相對(duì)于計(jì)算的任何增量是保持不變的。相反,在zk-SNARK中,所需的計(jì)算越多,各方須來回發(fā)送消息的次數(shù)就越多。因此,zk-SNARK的整體數(shù)據(jù)量大小遠(yuǎn)大于zk-STARK證明中的數(shù)據(jù)量。
很明顯,zk-SNARKS和zk-STARK都吸引了越來越多的關(guān)于匿名性的問題。在加密貨幣領(lǐng)域,這些協(xié)議具有巨大的潛力,可能成為一種被廣泛使用的開創(chuàng)性途徑。