前言:本文來源于Binance Academy,由頭等倉(cāng)進(jìn)行翻譯,文中對(duì)zk-SNARKs和zk-STARKs進(jìn)行了分類和介紹。
隱私一直被視為加密貨幣社區(qū)中一個(gè)具有價(jià)值的特征。它是可替代性的前身,也是廣泛使用的貨幣形式所必需的。同樣,大多數(shù)加密資產(chǎn)持有者不希望他們的資產(chǎn)和交易歷史被完全公開。在旨在為區(qū)塊鏈提供隱私的各種加密技術(shù)中,zk-SNARK證明和zk-STARK證明就是兩個(gè)不錯(cuò)的例子。
Zk-SNARK代表零知識(shí)、簡(jiǎn)潔、非交互式的知識(shí)證明,zk-STARK則代表零知識(shí)、簡(jiǎn)潔、透明的知識(shí)證明。Zk-SNARK證明已經(jīng)在Zcash和摩根大通(JP Morgan Chase)的區(qū)塊鏈支付系統(tǒng)上使用,它是一種能夠使客戶端安全驗(yàn)證到服務(wù)器的方式。但是,盡管zk-SNARK在完善和采用方面取得了重大進(jìn)展,zk-STARK卻因填補(bǔ)了zk-SNARK證明的許多缺陷而被認(rèn)為是協(xié)議的最新改進(jìn)版本。
《阿里巴巴洞穴》寓言
1990年,密碼學(xué)家Jean-Jacques Quisquater(以及其他合著者)發(fā)表了一篇題為“如何向孩子解釋零知識(shí)證明”的論文。這篇論文通過一個(gè)阿里巴巴洞穴的寓言,介紹了零知識(shí)的概念。自從這個(gè)寓言誕生以來,就已經(jīng)被多次改編,因此現(xiàn)在有很多不同版本。然而,表達(dá)的信息本質(zhì)上是相同的。
讓我們想象有一個(gè)環(huán)形洞穴,它有一個(gè)入口,以及一道將洞穴分為兩條路徑的魔法之門。要想通過魔法之門,你需要向它低聲說出正確的暗語(yǔ)。因此,假設(shè)Alice(黃色)想要向Bob(藍(lán)色)證明她知道暗語(yǔ)是什么——但仍然對(duì)Bob保密。為了做到保密,Bob等在洞穴外,而Alice進(jìn)入洞穴,一直走到其中一條路的盡頭。如下圖所示,Alice決定走路徑1。
過了一會(huì)兒,Bob走到洞穴口,告訴里頭的Alice從哪條路出現(xiàn)。(在圖中為路徑2)
如果Alice確實(shí)知道暗語(yǔ),她就會(huì)從Bob要求的路徑2走出來。
此過程可以多重復(fù)幾次,確認(rèn)Alice并不是靠運(yùn)氣選擇正確的路徑。
《阿里巴巴洞穴》的這則寓言說明了零知識(shí)證明的概念,它是zk-SNARK和zk-STARK協(xié)議的一部分。ZK證明可用于證明其擁有某些知識(shí),而不泄露任何有關(guān)它的信息。
zk-SNARKs
Zcash是zk-SNARKs的第一個(gè)廣泛應(yīng)用。雖然像Monero這樣的其他隱私項(xiàng)目采用環(huán)狀簽名和其他技術(shù),有效地為發(fā)送人創(chuàng)建一個(gè)匿名保護(hù)屏障。Zk-SNARKs則是從根本上改變了數(shù)據(jù)的共享方式。Zcash的隱私性在于網(wǎng)絡(luò)中的交易可以加密,但也可以通過使用零知識(shí)證明來驗(yàn)證其有效性。因此,那些執(zhí)行共識(shí)規(guī)則的人不需要知道每個(gè)交易的所有數(shù)據(jù)。值得一提的是,Zcash中的隱私功能默認(rèn)情況下不處于使用狀態(tài),功能是可選的,可手動(dòng)設(shè)置。
零知識(shí)證明允許一個(gè)人向另一個(gè)人證明某個(gè)陳述是真實(shí)的,而不會(huì)泄露超出此陳述的任何有效信息。雙方通常被稱為證明者和驗(yàn)證者,他們持有的秘密陳述稱為證據(jù)。這些零知識(shí)證明的主要目的是盡可能少地揭示雙方之間的數(shù)據(jù)。換句話說,人們可以使用零知識(shí)證明來證明他們具有某些知識(shí)而不會(huì)泄露任何關(guān)于知識(shí)本身的信息。
在首字母縮略詞SNARK中,“S(succinct)”表示證據(jù)信息較短,方便驗(yàn)證?!癗(Non-interactive)”表示證明者和驗(yàn)證者之間幾乎沒有交互。舊版本的零知識(shí)協(xié)議通常需要證明者和驗(yàn)證者來回通信,因此被認(rèn)為是“交互式”的zk證明。但在“非交互式”結(jié)構(gòu)中,證明者和驗(yàn)證者只需要交換一個(gè)證明。
目前,zk-SNARK證明依賴于證明者和驗(yàn)證者之間的初始可信設(shè)置,這意味著構(gòu)建零知識(shí)證明和私人交易都需要一組公共參數(shù)。這些參數(shù)幾乎就像游戲規(guī)則,它們被編碼到協(xié)議中,并且是證明交易有效的必要因素之一。然而,這就會(huì)導(dǎo)致中心化,因?yàn)閰?shù)通常是由非常小的群體設(shè)置的。
雖然初始的可信設(shè)置是如今zk-SNARK實(shí)現(xiàn)的基礎(chǔ),但研究人員正在努力尋找其他替代方案,以減少流程中所需的信任數(shù)量。初始設(shè)置階段對(duì)于防偽造支出非常重要,因?yàn)槿绻橙擞袡?quán)訪問參數(shù)生成的隨機(jī)性,他們可能會(huì)偽造對(duì)驗(yàn)證者有效的假證明。在Zcash中,初始設(shè)置階段被稱為參數(shù)生成儀式。
現(xiàn)在來說首字母縮略詞中的“AR(ARguments)”部分。zk-SNARK在計(jì)算上是可靠的,這意味著不誠(chéng)實(shí)的證明者成功欺騙系統(tǒng)的幾率非常低。此屬性稱為穩(wěn)健性,并假設(shè)證明者的計(jì)算能力有限。從理論上講,具有足夠計(jì)算能力的證明者可以偽造證明,這也是量子計(jì)算機(jī)被許多人視為是對(duì)zk-SNARK和區(qū)塊鏈系統(tǒng)的威脅的原因之一。
縮寫的最后一部分是“K(of Knowledge)”,意思是如果沒有知識(shí)(或證據(jù))來支持其陳述,證明者就無(wú)法偽造證明。
零知識(shí)證明可以快速驗(yàn)證,并且通常比標(biāo)準(zhǔn)比特幣交易占用的數(shù)據(jù)要少得多。這為zk-SNARK技術(shù)的隱私性和可擴(kuò)展性解決方案的使用開辟了一條道路。
zk-STARKs
zk-STARK是作為zk-SNARK證明的替代版本而創(chuàng)建的,它被認(rèn)為是一種更快、成本更低的技術(shù)實(shí)現(xiàn)。但更重要的是,zk-STARK不需要初始可信設(shè)置(因此,字母“T”代表的是透明化)。
從技術(shù)上講,zk-STARK不需要初始可信設(shè)置,因?yàn)橥ㄟ^抗碰撞哈希函數(shù),它們依賴于更簡(jiǎn)潔的加密技術(shù)。這種方法還排除了zk-SNARK的數(shù)論假設(shè),這些假設(shè)在計(jì)算上很昂貴,并且理論上容易受到量子計(jì)算機(jī)的攻擊。
zk-STARK提供成本更低、更快實(shí)現(xiàn)的主要原因之一是,其計(jì)算量增加,證明者和驗(yàn)證者之間的通信量保持不變。相比之下,在zk-SNARK中,所需的計(jì)算量越多,雙方來回發(fā)送消息的次數(shù)就越多。因此,zk-SNARK的整體數(shù)據(jù)量要遠(yuǎn)遠(yuǎn)大于zk-STARK證明中的數(shù)據(jù)量。
很明顯,zk-SNARKS和zk-STARK都使人們?nèi)找骊P(guān)注起隱私問題。在加密貨幣領(lǐng)域中,這些協(xié)議具有巨大的潛力,并且可能成為主流采用的突破性途徑。
(作者:頭等倉(cāng),內(nèi)容來自鏈得得內(nèi)容開放平臺(tái)“得得號(hào)”;本文僅代表作者觀點(diǎn),不代表鏈得得官方立場(chǎng))