作者:benlaw.eth
你之前是否閱讀過一些零知識證明的文章,但仍一頭霧水?這些文章可能:
只以故事和童話作例子來論述ZKP,無法深入其本質。
內含大量密碼學術語,數學公式,學術論文等,對初學者而言過于復雜。
本文提供了對ZKP簡明扼要的概述,并從數學、密碼學和編程角度進一步闡述ZKP的核心要素。
向色盲提供顏色證明
如何向色盲患者證明兩個球的顏色確實是不同的?這其實并不復雜:
讓他在手里握住兩個球,背到背后,然后隨機選擇交換或不交換兩個球的位置,再展示給你看,你告訴他這兩個球的位置是否有變化。
在他看來,你可以通過瞎蒙來完成一次證明。不過,如果成千上萬次地重復這個過程:如果你總是能說出正確答案,那么靠純蒙的方式來保持一直正確的概率,是小到可以忽略的。因此可以通過這種方式來向色盲患者證明:兩個球的顏色確實不一樣,并且我們也有感知和區分的能力。
多米鏈將在6月15日正式發布多米錢包和區塊瀏覽器:據官方消息,多米鏈將在6月15日正式發布多米錢包和區塊瀏覽器。多米鏈是區塊鏈行業新秀,正在用獨特的創新架構開發超高速區塊鏈,每秒可以處理10萬次交易。[2023/6/10 21:28:06]
顏色證明
上述證明過程是典型的零知識證明:
驗證者無法在證明過程中獲得任何關于顏色的知識,因為經過驗證過程后他依然沒有區分顏色的能力。
該驗證過程是概率性的而非決定性的。
該過程是交互式的,需要多輪交互。不過,零知識證明中也有許多協議,通過高級技巧將證明過程轉化成了非互動式的。
掌握知識的證明
我們已經分享了一種現實世界中的零知識證明的例子,接下來再來看一下在二進制世界中如何實現零知識證明。
Arthur是Elon的朋友,并且知道對方的手機號。Betty不知道Elon的號碼。如果Arthur想要向Betty證明他知道,但又不想泄露號碼,應該怎么實現呢?
DWF Labs合伙人:在市場動蕩時最好的辦法是盡可能減少許可證和監管義務:金色財經報道,DWF Labs管理合伙人Andrei Grachev在推特上表示,“美國有很多有才華的人和不錯的加密初創公司,但監管機構與他們進行任何互動都是危險的。它將明確導致加密相關公司從美國流出到其他更中立和可預測的司法管轄區。在市場動蕩時最好的辦法是盡可能減少許可證和監管義務,在動蕩時期,每一項額外的義務都可能帶來風險。運營應該是目標受眾可以接受的,這就足夠了。許可證本身并不是價值。[2023/6/9 21:25:34]
知識證明
一種不成熟的方案是,Elon發布自己電話號碼的哈希,Arthur通過一個程序輸入哈希的原像,程序進行運算并檢查結果。這個方法有一些致命的缺陷:
根據哈希,Betty可以通過暴力破解的方式得到原像,能破解出來的概率是不可忽略的,而且得到的結果幾乎是確定性的。
Arthur必須向該程序輸入原像。如果程序在Arthur的電腦上,Betty就會對此有疑問:我怎么知道你有沒有作弊,你的電腦也許會一直聲稱你的證明是對的?
Treasure DAO推出成就勛章系統:5月24日消息,去中心化游戲生態系統Treasure DAO 為其生態 NFT 平臺推出成就勛章系統。用戶可根據在 Treasure 上的行為記錄和購買記錄領取不同級別的靈魂綁定勛章,從而提升用戶的互操作體驗。[2023/5/24 15:23:06]
如果程序在Betty的電腦上運行,Arthur也會擔心,自己輸入的信息會不會被竊取,即使程序肉眼可見的代碼中并沒有竊取信息的命令。
因為無法將程序分開在不同的環境中運行,這個信任問題是難以解決的。
常規的方法在這里碰壁了,是時候讓零知識證明出場了!
基于密碼學的零知識證明的實現方案
在此我會用零知識證明中的SigmaProtocol來解決問題,因為它比較簡單。并且,為了簡潔和易于理解,這里不會使用嚴格的密碼學和數學中的定義、術語及推導過程等。
核心流程
使用零知識證明證明一個人有特定的知識,我們采取如下辦法:
CryptoQuant報告:BTC礦工最新拋售可能會在短期內迫使價格下跌:8月15日消息,一位CryptoQuant分析師在研究報告中表示,BTC礦工最新拋售可能會在短期內迫使價格下跌。數據顯示,在最近的18,000美元和22,000美元盤整階段期間,礦工儲備一直在緩慢增加,然而比特幣價格在過去幾周小幅反彈至25,000美元水平后,礦工卻開始拋售BTC資產,如果這種情況持續,那么這些強制賣家造成的拋售壓力可能會在短期內推低價格。
礦工儲備是衡量當前存儲在所有礦工錢包中比特幣總量的指標,當該指標值上升時,表明礦工正在將BTC存入錢包,該指標值下降則表明礦工正在從其儲備中轉出BTC,這種趨勢可能不利于加密貨幣價值增長。[2022/8/15 12:25:33]
Sigma協議
定義一個P階的有限群及其生成元g。我們可以暫時忽略這些奇怪的名詞具體什么意思。
根據上面的定義,某個擁有知識或能接觸到知識的第三方,將知識通過h=g^w(modP)的方式加密后,將h發布出去。
日本區塊鏈公司Finanche獲7.7億日元投資:8月5日消息,日本區塊鏈眾籌平臺FiNANCiE的運營商Finanche已吸引了7.7億日元的投資(約580萬美元)。由現有股東B Dash Ventures運營的基金領投,MTG Ventures、Headline Asia、Infinity Ventures Crypto (IVC)、黎明資本、Amuse、W Ventures和THE SEED參投。該投資預計將用于Web3x創作者經濟領域。
據悉,在FiNANCiE平臺上,運動隊和創作者可以通過發行和銷售粉絲代幣和NFT來賺取資金。(Coinpost)[2022/8/5 12:04:53]
證明者啟動零知識證明流程。生成一個隨機數r,計算a=g^r,并將a發送給驗證者。
驗證者生成一個隨機數e并發送給證明者。
證明者計算z=r+ew并發送給驗證者。
驗證者檢查g^z==a·h^e(modP)。如果為真,則驗證者確實掌握其聲稱的知識。
好啦,該證明協議到此就結束了!非常簡短,但你仍可能對上面的一些數學運算感到困惑,但這不要緊,我們先有個大概印象再深入理解。
數學原理
這套流程背后的核心數學原理是離散對數難題:當P是一個很大的質數時,對于給定的h,很難找到滿足h=g^w(modP)的w。該原理適用于上面所有類似的式子。
我們來一步一步解析下:
經過加密的知識h=g^w(modP),是難以被暴力破解的。由于求余運算的特點,即使被破解了也不具備單一確定解。這意味著對證明者而言,通過暴力破解來作弊,欺騙驗證者,是不可行的。
然后我們將3,4,5步作為一個整體來看一下他們為什么要交換這些隨機數:
I.證明者并不想暴露其秘密,所以他必須用隨機數包裹一下將其隱藏起來。而驗證者也需要通過添加一些隨機數,讓該知識可被自己驗證的同時防止證明者作弊,而且不會窺探到證明者的秘密。
II.如果驗證者先發送了隨機數e,很明顯,證明者可以通過編造a=g^z·h^-e來在最終檢查中欺騙驗證者,即使沒有知識也可以通過。所以證明者必須先手發送一個承諾(a=g^r),但非r本身,來避免可作弊場景,同時不讓驗證者通過w=(z-r)/e提取到秘密。
III.在收到承諾后,驗證者向證明者發送隨機數e。由于其本身或者其衍生物無法泄露任何一方的信息,這個數不需要加密。之后證明者計算z=r+ew并將z發送給驗證者。驗證者最終通過檢查g^z=g^(r+ew)=g^r·(gw)^e=a·h^e來確定證明者是否掌握知識。
通過這種往返交錯的結構,我們收獲了三個性質:
完備性:當且僅當證明者輸入正確知識,驗證才能通過。
可靠性:當且僅當證明者輸入錯誤知識,驗證才會失敗。
零知識性:驗證者無法在驗證過程中獲取任何知識。
上述三點即零知識證明的核心特性。通過數學和密碼學,我們構建出了一套光怪陸離的證明體系。恭喜你一路走了這么遠,現在應該已經可以說正式邁入了富麗堂皇又奧妙無窮的ZKP圣殿。
Havefun!
進一步了解
模擬器和零知識性
我們現在來考慮一些魔幻場景。如果一個證明者具有預言或篡改驗證者生成的隨機數的超能力,我們稱其為模擬器。
模擬器vs驗證者
設想,模擬器在驗證者的隨機數e生成前就對其進行了篡改,確保其生成后是自己預設的值。根據上面II所說,這種能力使模擬器能編造承諾a來欺騙驗證者。不論模擬器的輸入是什么,驗證者總會得出結論模擬器具有知識,然而實際上他并沒有。
顯然,經過這種思想實驗我們可以得出結論,驗證者無法在該零知識證明協議中獲取任何知識,也即其零知識性是成立的:
零知識性<==?模擬器S,使得S(x)與真實的協議執行不可區分,其中S(x):選擇隨機的z和e,令a=g^z·h^-e,其中(a,e,z)的分布與真實的隨機數環境一致并滿足g^z=a·h^e。
抽取器和可靠性
再來想象一下另一種超能力者——抽取器,具有時光倒流的能力。不過這次是抽取器作為驗證者,面對一個正常的證明者。
當協議結束時,抽取器發起時間倒流,回到協議的起點,并持有上一輪得到的(z,e,a)。現在,協議重新執行一遍。由于證明者沒有超能力無法進行時間旅行只能在固定的時間線上做確定的事,他又生成了一個一模一樣的隨機數r以及承諾a=g^r,而抽取器則可以生成新的隨機數e'給證明者。
證明者vs抽取器
現在,抽取器獲得了:g^z=a·h^e,g^z'=a·h^e=>g^(z-z')=h(e-e')=>加密后的知識h=g^((z-z')/(e-e'))=>知識w=(z-z')/(e-e').
顯然,只要證明者真的掌握了知識,抽取器總是可以將其抽取出來,也即完備性成立:完備性<==?抽取器E,對給定的任何h,在掌握(a,e,z),(a,e',z')且e≠e'的情況下,都能輸出ws.t.(h,w)∈R.
完備性
完備性不需要任何特殊角色來證明,因為:g^z=g^r+ew=g^r·(g^w)^e=a·h^e.
Tags:ARTHURARTHARTHURKing ArthurEarth TokenNextEarthHURRICANE
整理:餅干,鏈捕手 “過去24小時都發生了哪些重要事件”?1、LunaFoundationGuard再購入37,863枚BTC.
1900/1/1 0:00:00整理:澤祎,鏈捕手 在本文中,鏈捕手將對近期頭部加密風投機構押注的早期項目進行介紹,包括基本信息、官網、相關報道等,幫助讀者們進一步了解到未來的潛力項目.
1900/1/1 0:00:00作者:MiX 可組合性≈創新性 Web3.0成就可組合性Web3.0的去中心化協議和和應用,可以互相組合互相操作的特性,就是Web3.0的可組合性.
1900/1/1 0:00:00作者:DeFi之道 以太坊L2擴容項目Scroll近日完成了3000萬美元的A輪融資。一個在此前幾乎默默無聞的項目,突然之間獲得了巨額的投資,投資人不僅僅包括頂尖VC,甚至還有以太坊基金會和以太.
1900/1/1 0:00:00作者:LDCapital隱私性在加密貨幣社區一直被視為非常有價值的特性之一,因為對于大多數加密資產持有者而言,他們不希望自己的資產和交易記錄被完全公開.
1900/1/1 0:00:00撰文:0xLaughing,律動BlockBeats在電影《007:大戰皇家賭場》中,詹姆斯·邦德在沒有任何預約的情況下,僅僅出示了一張黑色的卡,巴哈馬高檔酒店服務生就主動帶他走進了上等套房.
1900/1/1 0:00:00