TMT观察网_独特视角观察TMT行业

新型零知識證明,背后的“隱身”大法是什么?區(qū)塊鏈

段章 2018-08-03 09:46
分享到:
導(dǎo)讀

驗(yàn)證者需要檢查更多的指數(shù)來彌補(bǔ)錯誤占據(jù)的有限空間。其次,如果我們正在打造邊界檢測,那么我們需要將接近性證明擴(kuò)大到不止是證明大多數(shù)點(diǎn)是在同個多項(xiàng)式,而且證明這兩個特別的點(diǎn)是在那個多項(xiàng)式上。

很希望現(xiàn)在很多人都聽說過ZK-SNARKs協(xié)議,這是零知識證明技術(shù)的通用性說法,使用它的案例從可驗(yàn)證的計算到私人保護(hù)的數(shù)字貨幣。也許你不知道,ZK-SNARKs協(xié)議有更新的版本,ZK-STARKs。其中改變的字母T代表的是“透明”,ZK-STARKs解決ZK-SNARKs的其中一個弱勢,它依賴于一種“可信任的配置”。而且ZK-STARKs也有更加簡單的加密假設(shè),從而避免橢圓曲線,配對以及指數(shù)假設(shè)的知識,而是僅僅依賴于哈希和信息的理論;這也就意味著他們對于量子計算機(jī)的攻擊來說,是安全的。

但是,這也會有代價:證明的存儲大小也從288字節(jié)增加到幾百千兆字節(jié)。有時候這個代價并不值得,但是有時候,特別是在討論公鏈應(yīng)用的時候,需要的最小信任非常高,事情就很可能這樣。并且如果橢圓曲線打破或者量子計算機(jī)真地出現(xiàn),這事情就肯定會發(fā)生。

所以這種零知識證明是如何工作呢?首先,讓我們來看看通用的ZKP協(xié)議是做什么的。假設(shè)你現(xiàn)在有一個公開函數(shù)f,一個私密的輸入x以及一個公開的輸出y。你想要證明你知道一個x,從而得到f(x) = y,而不用泄露x是什么。并且,為了保證這個協(xié)議足夠簡單,你想要它的驗(yàn)證比計算f本身還要快。

starks_pic1

讓我們來舉個例子:

f 是一個需要在普通計算機(jī)上運(yùn)行2周的計算,但是在數(shù)據(jù)中心只需要2小時。你給數(shù)據(jù)中心發(fā)送了這個計算(也就是說,運(yùn)行f的代碼),然后數(shù)據(jù)中心就會運(yùn)行,并且通過證明反饋了答案y。你在幾毫秒之內(nèi),就驗(yàn)證了這個證明,并且相信y其實(shí)就是答案。

你有一個加密的交易,表格中的X1是我之前的余額。X2是你之前的余額。X3是我新的余額。X4是你新的余額。你想要創(chuàng)建一個證明,其中這個交易是有效的(特別指出,之前和現(xiàn)在的余額都是正的,而且我余額的減少抵消了你余額的增加)。x可以是秘鑰對,并且f可以是一個函數(shù),其中包含了內(nèi)置公開輸入的交易,而且作為輸入秘鑰,解密了交易,完成了檢驗(yàn),如果通過就返回1,如果失敗就返回0。y 當(dāng)然會是1。

你有個類似以太坊的區(qū)塊鏈,而且你下載了最近的區(qū)塊。你想要一個證明,表示這個區(qū)塊是有效的,而且這個區(qū)塊是在鏈的頂端,其中鏈上任何區(qū)塊都是有效的。你想讓一個現(xiàn)存的全節(jié)點(diǎn)來提供這樣的驗(yàn)證。x是整個區(qū)塊鏈,f是區(qū)塊處理的函數(shù),驗(yàn)證有效性并且輸出最后區(qū)塊的哈希,而且y就是你之前下載區(qū)塊的哈希。

所以這些問題的困難點(diǎn)在哪呢?就像它表現(xiàn)出來的,需要很容易為零知識證明(也就是,隱私性)提出保證;現(xiàn)在有很多種方法來將任何計算轉(zhuǎn)換為例如三色圖表問題的情況,其中圖表的三種顏色都對應(yīng)原始問題的解決方案,然后使用傳統(tǒng)的零知識證明協(xié)議來證明,你即使不揭露它的信息,也可以獲得有效的圖表顏色。

更困難的地方在于提供簡潔性。直觀地來說,證明關(guān)于計算簡潔性是困難的,因?yàn)橛嬎闶请y以置信地脆弱。如果你有個很長很復(fù)雜的計算,那么你需要有能力在計算過程中的任何地方,從0跳到1,然后再很多情況下,甚至很小的失誤都會導(dǎo)致計算結(jié)果完全不同。因此,很難知道你如何才能做出例如對計算過程地隨機(jī)取樣,才能保證正確性。因?yàn)椋苋菀拙蜁e過“很小部分的計算”。但是,通過一些厲害的數(shù)學(xué)方法,你就可以做到。

整體的感覺是,和這些聯(lián)合在一起的協(xié)議,都在使用糾偏編碼的數(shù)學(xué)方式,這種方式通常用來讓數(shù)據(jù)可以容錯。如果你有項(xiàng)目數(shù)據(jù),那么你可以將這些數(shù)據(jù)作為行代碼,然后你可以在這行中選出四個點(diǎn)。其中任何兩個點(diǎn)都足夠來重新構(gòu)造這條線,因此也給你另外兩個點(diǎn)。并且,如果你甚至對數(shù)據(jù)進(jìn)行了很小的改變,那么它至少保證了你四個點(diǎn)中的三個。你也可以將數(shù)據(jù)編碼成1,000,000維度的多項(xiàng)式,并且從中選出2,000,000個點(diǎn);這些點(diǎn)中的任意1,000,001個都會獲得初始數(shù)據(jù),因此其他點(diǎn),以及數(shù)據(jù)的任何偏離都會至少改變1,000,000個點(diǎn)。這里的算法將會這樣利用多項(xiàng)式,從而使得誤差放大。

starks_pic_2p5

原始數(shù)據(jù)更改1個點(diǎn),對于多項(xiàng)式都會有很大的改變

簡單舉例

假設(shè)你想要證明,你有個多項(xiàng)目P,從而對于x從1到100萬,P(x)是0 <= P(x) <= 9之間的整數(shù)。這就是“范圍檢查”的簡單舉例;也許你會假設(shè)這類檢查可以用來進(jìn)行驗(yàn)證,例如在進(jìn)行轉(zhuǎn)賬后,賬戶余額仍然是正數(shù)。如果1 <= P(x) <= 9成立,那么這可能是檢查這些值形成正確的數(shù)獨(dú)解決方案的一部分。

“傳統(tǒng)”的方式是證明這會顯示所有1,000,000個點(diǎn),并且通過檢查這些數(shù)值來驗(yàn)證。但是,我們想要看到是否我們能夠做出證據(jù),可以在少于1,000,000個步驟的時候就被驗(yàn)證。簡單隨機(jī)檢查P的估值不會這樣做;總會有欺詐者出現(xiàn),來證明P是滿足999,999個位置,但是不能滿足最后一個,而且隨機(jī)取樣就幾個數(shù)字,通常總是會錯過那個。那么我們可以怎么做呢?

starks_pic3

讓我們從數(shù)學(xué)方式來轉(zhuǎn)化這個問題。假設(shè)C(x)是多項(xiàng)式檢驗(yàn);如果0 <= x <= 9,那么C(x) = 0,否則,C(x)就是非零數(shù)字。有一種很簡單的方法,就可以構(gòu)建C(x):x * (x-1) * (x-2) * … * (x-9)(我們會假設(shè),所有我們的多項(xiàng)式和其他數(shù)字都會使用常數(shù),所有我們不需要擔(dān)心之間的數(shù)字)。

starks_pic4

現(xiàn)在,問題變成了:證明你知道P,然后對于所有的x從1到1,000,000,C(P(x)) = 0。讓Z(x) = (x-1) * (x-2) * … (x-1000000)。很基本的數(shù)學(xué)事實(shí)是,對于x從1到1,000,000,任何等于零的多項(xiàng)式都是Z(x)的乘積。因此,問題再次轉(zhuǎn)變成了:證明你知道P和D,然后對于所有的x,C(P(x)) = Z(x) * D(x)(需要注意到,如果你知道一個合適的C(P(x)),那么用Z(x)除以計算D(x)不是太困難;你可以使用長多項(xiàng)式除法或者基于FFT算法來進(jìn)行更快地運(yùn)算)。現(xiàn)在,我們將最初的問題轉(zhuǎn)換成了數(shù)學(xué)問題,并且看起來可以順利解決。

那么如何證明這個問題呢?我們可以假設(shè),證明過程是證明者和驗(yàn)證者之間的三步溝通:證明者發(fā)出了一些信息,然后驗(yàn)證者發(fā)出一些需求,之后證明者發(fā)出更多的信息。首先,證明者承認(rèn)(也就是說,創(chuàng)建一個Merkle樹,并且給驗(yàn)證者發(fā)去根哈希)對于1到10億之間x的所有P(x) 和 D(x)的估值。這就包含了0 <= P(x) <= 9之間的100萬個點(diǎn),以及剩下的9.99億個點(diǎn)。

starks_pic5

假設(shè)驗(yàn)證者已經(jīng)知道Z(x)在這些點(diǎn)的估值;那么Z(x)就像一個“公共的驗(yàn)證秘鑰”,從而每個人都必須提前知道(沒有地方存儲Z(x)的客戶端,可以簡單地將它存儲在Z(x)的Merkle樹根部,而且需要證明者也為每個Z(x)的數(shù)值提供驗(yàn)證者需要的分支;或者,有些數(shù)字字段,對于x和Z(x)都很容易計算)。在獲得這個認(rèn)可(也就是說,Merkle樹的根部),驗(yàn)證者然后會在1和10億之間選擇隨機(jī)的16x數(shù)值,而且讓證明者來提供P(x)和D(x)的Merkle樹分支。證明者提供了這些數(shù)值,而且驗(yàn)證者會檢查(i)這些分支和之前提供的Merkle樹根部符合(ii)C(P(x))其實(shí)等于Z(x) * D(x)。

starks_pic6

我們知道這個證明有很好的完整性,如果你其實(shí)知道一個合適的P(x),那么你可以計算D(x)并且構(gòu)建正確的證明,來通過16個檢查點(diǎn)。但是穩(wěn)定性又如何呢?也就是說,如果欺詐的證明者提供了個錯誤的P(x),他們被抓的最小可能性是多少?我們可以進(jìn)行如下分析。因?yàn)镃(P(x))是由1,000,000維度多項(xiàng)式組成的10維度多項(xiàng)式。整體來說,我們知道這兩個不同的多項(xiàng)式最多在N個點(diǎn)符合;因此,10,000,000維度的多項(xiàng)式和任何等于Z(x) * D(x)的多項(xiàng)式都不會相等。對于x來說,至少在990,000,000個點(diǎn)都不會同意。因此,對于不好的P(x),在一輪被抓住的概率已經(jīng)是99%;通過16輪檢查,被抓住的概率是1 – 10-32 ,也就是說,這個機(jī)制不可能存在欺詐。

那么,我們剛剛做了什么?我們使用多項(xiàng)式來推動任何不良解決方案的錯誤,以至于對于初始問題的任何錯誤解決方案,都需要100萬個檢查才能發(fā)現(xiàn),最終導(dǎo)致驗(yàn)證協(xié)議的解決方案,可以99%的概率發(fā)現(xiàn)錯誤。

我們可以將這三步的機(jī)制轉(zhuǎn)換成一個非交互式的證明,這可以通過單個的證明者來廣播,然后被任何人使用菲亞特-夏米爾啟發(fā)式算法來進(jìn)行驗(yàn)證,證明者首先構(gòu)建P(x) 和 D(x)數(shù)值的Merkle樹,然后計算樹的根哈希。這個根部本身被用于作為熵的來源,用來決定證明者需要提高這個樹的哪些分支。證明者然后就會廣播Merkle樹的根部,分支還有證明。計算全部會在提供方完成;從數(shù)據(jù)計算Merkle樹根部的過程,然后是使用這些來選擇經(jīng)過審計的分支,有消息地完成了交互性驗(yàn)證者的需求。

欺詐者在不需要有效的P(x)前提下,唯一能做的事情,就是嘗試進(jìn)行有效驗(yàn)證,直到最終他們特別幸運(yùn),選擇到了正確的Merkle樹分支,但是概率只有1 – 10-32 (也就是說,至少有1 – 10-32 的概率,虛假的證明不會通過檢查),欺詐者需要花費(fèi)幾十億年,才能得到可以通過的證明。

starks_pic7

前景展望

為了說明這項(xiàng)技術(shù)的能力,我們來做些看起來不是很重要的事情:證明你知道第100萬個斐波納契數(shù)。為了完成這個,我們會證明你對多項(xiàng)式有了解,P(x)代表第x個斐波納契數(shù)。多項(xiàng)式檢驗(yàn)就會從3個維度進(jìn)行:C(x1, x2, x3) = x3-x2-x1(需要注意,如果對所有x來說,C(P(x), P(x 1), P(x 2)) = 0,那么P(x)久代表斐波納契數(shù))。

starks_pic8

所以問題就變成了:證明你知道有個P和D,然后C(P(x), P(x 1), P(x 2)) = Z(x) * D(x)。對于其中的16個因子,證明者需要為P(x), P(x 1), P(x 2) and D(x)提供Merkle樹的分支。證明者而且還需要保證所提供的Merkle樹的分支可以保證,P(0) = P(1) = 1。否則,整個流程就是一樣的。

現(xiàn)在,為了完成這個,還需要解決2個問題。第一個是,如果我們嘗試進(jìn)行列舉數(shù)字的方法來解決這個問題,效率就會很低,因?yàn)檫@些數(shù)字通常都會很大。例如,第100萬個斐波納契數(shù)有208988個數(shù)字。如果我們其實(shí)想要獲得簡單性,與其使用常規(guī)數(shù)字進(jìn)行列舉,我們需要使用有限的數(shù)字系統(tǒng),始終符合我們了解的規(guī)則,例如a * (b c) = (a*b) (a*c) and (a^2 – b^2) = (a-b) * (a b),但是每個數(shù)字都會占據(jù)一定空間的數(shù)據(jù)。證明關(guān)于斐波納契數(shù)數(shù)字的問題,需要更加復(fù)雜的設(shè)計。最簡單的模式,就是將每個a b用a b的N進(jìn)制數(shù)來代替,對減法和乘法也是同樣地方法,對于除法,使用模塊逆轉(zhuǎn)(例如,如果N=7,那么3 4 = 0, 2 6 = 1, 3 * 4 = 5, 4 / 2 = 2而且5 / 2 = 6)。

其次,你也許注意到了,在上面的證明中,我忽略了一種攻擊:如果攻擊者不是通過看似真實(shí)的P(x),而是使用了并不在這些多項(xiàng)式的數(shù)據(jù)?那么,無效的C(P(x))必須要和有效的C(P(x))在至少9.9億個點(diǎn)上相同,就不會應(yīng)用了,而且會非常不同,而且更有效的攻擊是有可能發(fā)生的。例如 ,一個攻擊者會保證任何x都有一個隨機(jī)數(shù)p,那么計算d = C(p) / Z(x),并且將這些數(shù)字都放入P(x)和D(x)。這些數(shù)字不會在任何低維度的多項(xiàng)式,但是它們會通過檢測。

這就證明了這種可能性會很有效地抵抗攻擊,雖然做這些的工具相對復(fù)雜,而且你可以說它們組成了STARKs協(xié)議中的數(shù)學(xué)創(chuàng)新。同時,這個解決方案有個限制:你可以清除這些數(shù)據(jù),但是你不能清除和你的多項(xiàng)式存在一個或兩個變量差別的多項(xiàng)式。因此,這些工具會提供接近性證明,證明大多數(shù)在P和D的點(diǎn)上,都會代表正確的多項(xiàng)式。

所以最終證明,這已經(jīng)足夠來打造證明,盡管會有兩個小問題。首先,驗(yàn)證者需要檢查更多的指數(shù)來彌補(bǔ)錯誤占據(jù)的有限空間。其次,如果我們正在打造邊界檢測,那么我們需要將接近性證明擴(kuò)大到不止是證明大多數(shù)點(diǎn)是在同個多項(xiàng)式,而且證明這兩個特別的點(diǎn)是在那個多項(xiàng)式上。

證明 需要 驗(yàn)證 計算 多項(xiàng)式
分享到:

1.TMT觀察網(wǎng)遵循行業(yè)規(guī)范,任何轉(zhuǎn)載的稿件都會明確標(biāo)注作者和來源;
2.TMT觀察網(wǎng)的原創(chuàng)文章,請轉(zhuǎn)載時務(wù)必注明文章作者和"來源:TMT觀察網(wǎng)",不尊重原創(chuàng)的行為TMT觀察網(wǎng)或?qū)⒆肪控?zé)任;
3.作者投稿可能會經(jīng)TMT觀察網(wǎng)編輯修改或補(bǔ)充。


專題報道

主站蜘蛛池模板: 安驭邦官网-双向万能直角铣头,加工中心侧铣头,角度头[厂家直销] 闸阀_截止阀_止回阀「生产厂家」-上海卡比阀门有限公司 | 荣事达手推洗地机_洗地机厂家_驾驶式扫地机_工业清洁设备 | 依维柯自动挡房车,自行式国产改装房车,小型房车价格,中国十大房车品牌_南京拓锐斯特房车 - 南京拓锐斯特房车 | 兰州牛肉面加盟,兰州牛肉拉面加盟-京穆兰牛肉面 | 好物生环保网、环保论坛 - 环保人的学习交流平台 | 电液推杆生产厂家|电动推杆|液压推杆-扬州唯升机械有限公司 | 无菌水质袋-NASCO食品无菌袋-Whirl-Pak无菌采样袋-深圳市慧普德贸易有限公司 | 七维官网-水性工业漆_轨道交通涂料_钢结构漆 | 不锈钢螺丝 - 六角螺丝厂家 - 不锈钢紧固件 - 万千紧固件--紧固件一站式采购 | 便携式XPDM露点仪-在线式防爆露点仪-增强型烟气分析仪-约克仪器 冰雕-冰雪世界-大型冰雕展制作公司-赛北冰雕官网 | 企业管理培训,企业培训公开课,企业内训课程,企业培训师 - 名课堂企业管理培训网 | 天助网 - 中小企业全网推广平台_生态整合营销知名服务商_天助网采购优选 | 申江储气罐厂家,储气罐批发价格,储气罐规格-上海申江压力容器有限公司(厂) | 阻垢剂-反渗透缓蚀阻垢剂厂家-山东鲁东环保科技有限公司 | 蔬菜清洗机_环速洗菜机_异物去除清洗机_蔬菜清洗机_商用洗菜机 - 环速科技有限公司 | 设计圈 - 让设计更有价值!| 外贮压-柜式-悬挂式-七氟丙烷-灭火器-灭火系统-药剂-价格-厂家-IG541-混合气体-贮压-非贮压-超细干粉-自动-灭火装置-气体灭火设备-探火管灭火厂家-东莞汇建消防科技有限公司 | 板式换网器_柱式换网器_自动换网器-郑州海科熔体泵有限公司 | 二次元影像仪|二次元测量仪|拉力机|全自动影像测量仪厂家_苏州牧象仪器 | 云南外加剂,云南速凝剂,云南外加剂代加工-普洱澜湄新材料科技有限公司 | 大白菜官网,大白菜winpe,大白菜U盘装系统, u盘启动盘制作工具 | MES系统-WMS系统-MES定制开发-制造执行MES解决方案-罗浮云计算 | 帽子厂家_帽子工厂_帽子定做_义乌帽厂_帽厂_制帽厂_帽子厂_浙江高普制帽厂 | 「阿尔法设计官网」工业设计_产品设计_产品外观设计 深圳工业设计公司 | 12cr1mov无缝钢管切割-15crmog无缝钢管切割-40cr无缝钢管切割-42crmo无缝钢管切割-Q345B无缝钢管切割-45#无缝钢管切割 - 聊城宽达钢管有限公司 | 电梯乘运质量测试仪_电梯安全评估测试仪-武汉懿之刻 | 铸铁平台,大理石平台专业生产厂家_河北-北重机械 | 二维运动混料机,加热型混料机,干粉混料机-南京腾阳干燥设备厂 | 托利多电子平台秤-高精度接线盒-托利多高精度电子秤|百科 | 影视模板素材_原创专业影视实拍视频素材-8k像素素材网 | 欧美日韩国产一区二区三区不_久久久久国产精品无码不卡_亚洲欧洲美洲无码精品AV_精品一区美女视频_日韩黄色性爱一级视频_日本五十路人妻斩_国产99视频免费精品是看4_亚洲中文字幕无码一二三四区_国产小萍萍挤奶喷奶水_亚洲另类精品无码在线一区 | 上海办公室设计_办公楼,写字楼装修_办公室装修公司-匠御设计 | 西宁装修_西宁装修公司-西宁业之峰装饰-青海业之峰墅级装饰设计公司【官网】 | 阜阳在线-阜阳综合门户 | 懂研帝_专业SCI论文润色机构_SCI投稿发表服务公司 | 磁力抛光研磨机_超声波清洗机厂家_去毛刺设备-中锐达数控 | 恒温恒湿试验箱_高低温试验箱_恒温恒湿箱-东莞市高天试验设备有限公司 | 定坤静电科技静电消除器厂家-除静电设备 | 垃圾压缩设备_垃圾处理设备_智能移动式垃圾压缩设备--山东明莱环保设备有限公司 | 专业生产动态配料系统_饲料配料系统_化肥配料系统等配料系统-郑州鑫晟重工机械有限公司 | 咖啡加盟-咖啡店加盟-咖啡西餐厅加盟-塞纳左岸咖啡西餐厅官网 |