国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

零知識(shí)證明講解

W_BinaryTree / 3613人閱讀

摘要:零知識(shí)證明系統(tǒng)包括兩部分宣稱某一命題為真的示證者和確認(rèn)該命題確實(shí)為真的驗(yàn)證者。零知識(shí)證明系統(tǒng)也叫做最小泄露證明系統(tǒng)。基于此衍生了集中知名的隱私幣,其中零知識(shí)證明起到了非常大的作用。下面我們來介紹幾種采用了零知識(shí)證明的區(qū)塊鏈系統(tǒng)。

微信:wuqiong_blockchain      

本文發(fā)表在BFTF,請?zhí)D(zhuǎn)鏈接: 一文讀懂區(qū)塊鏈中的零知識(shí)證明

本文被選為星球日報(bào)頭條,請?zhí)D(zhuǎn)鏈接: 一文讀懂區(qū)塊鏈中的零知識(shí)證明

零知識(shí)證明是一種基于概率的驗(yàn)證方式,驗(yàn)證的內(nèi)容包括“事實(shí)類陳述”和“關(guān)于個(gè)人知識(shí)的陳述”。驗(yàn)證者基于一定的隨機(jī)性向證明者提出問題,如果都能給出正確回答,則說明證明者大概率擁有他所聲稱的“知識(shí)”。零知識(shí)證明系統(tǒng)包括兩部分:宣稱某一命題為真的示證者(prover)和確認(rèn)該命題確實(shí)為真的驗(yàn)證者(verifier)。證明是通過這兩部分之間的交互來執(zhí)行的。在零知識(shí)協(xié)議的結(jié)尾,驗(yàn)證者只有當(dāng)命題為真時(shí)才會(huì)確認(rèn)。但是,如果示證者宣稱一個(gè)錯(cuò)誤的命題,那么驗(yàn)證者完全可能發(fā)現(xiàn)這個(gè)錯(cuò)誤。

這里我們給出一個(gè)有關(guān)零知識(shí)證明的非常經(jīng)典的例子,來幫助大家理解:

阿里巴巴被強(qiáng)盜抓住,為了保命,他需要向強(qiáng)盜證明自己擁有打開石門的口令,
同時(shí)又不能把密碼告訴強(qiáng)盜。他想出一個(gè)解決辦法,先讓強(qiáng)盜離開自己一箭之地,
距離足夠遠(yuǎn)讓強(qiáng)盜無法聽到口令,足夠近讓阿里巴巴無法在強(qiáng)盜的弓箭下逃生。
如果強(qiáng)盜舉起左手,阿里巴巴就使用口令將石門打開,如果舉起右手,就將石門關(guān)閉。
阿里巴巴就在這個(gè)距離下向強(qiáng)盜展示了石門的打開和關(guān)閉。如果每次都能正
確打開和關(guān)閉大門,則證實(shí)阿里巴巴確實(shí)知道石門的密碼。

這個(gè)整個(gè)過程就是零知識(shí)證明,即證明者能夠在不向驗(yàn)證者提供任何有用信息(石門的口令)的情況下,使驗(yàn)證者相信某個(gè)論斷(阿里巴巴知道打開石門的方法)是正確的。

由此我們可以總結(jié)出零知識(shí)證明的三個(gè)屬性:

1、如果語句為真,誠實(shí)的驗(yàn)證者(即:正確遵循協(xié)議的驗(yàn)證者)將由誠實(shí)的證明者確信這一事實(shí)。

2、如果語句為假,不排除有概率欺騙者可以說服誠實(shí)的驗(yàn)證者它是真的。

3、如果語句為真,證明者的目的就是向驗(yàn)證者證明并使驗(yàn)證者相信自己知道或擁有某一消息,而在證明過程中不可向驗(yàn)證者泄漏任何有關(guān)被證明消息的內(nèi)容。

零知識(shí)證明系統(tǒng)也叫做最小泄露證明系統(tǒng)。

中本聰創(chuàng)造性的提出了比特幣并且構(gòu)建了一個(gè)去中心化的交易平臺(tái),從而去除了長久以來對(duì)第三方交易平臺(tái)的信任依賴,但是與此同時(shí),比特幣又需要將所有的交易廣播到網(wǎng)絡(luò)上并通過所有節(jié)點(diǎn)達(dá)成共識(shí)來保證整個(gè)系統(tǒng)的安全性,也就是說所有的人都可以看到網(wǎng)絡(luò)上所有的交易,而原始的比特幣協(xié)議又并沒有對(duì)交易發(fā)送者和接收者的地址作任何處理,這就導(dǎo)致某些細(xì)心的攻擊者通過分析一個(gè)地址的交易特征并結(jié)合一些實(shí)際信息,就有可能分析出地址與實(shí)際人的對(duì)應(yīng)關(guān)系,從而給使用者的隱私帶來極大的隱患。基于此衍生了集中知名的隱私幣,其中零知識(shí)證明起到了非常大的作用。

下面我們來介紹幾種采用了零知識(shí)證明的區(qū)塊鏈系統(tǒng)。

ZCash

ZCash作為匿名加密貨幣項(xiàng)目,一開始只是作為比特幣的加密匿名層存在,后來因?yàn)槠鋬?yōu)秀的隱私性成為獨(dú)立的加密貨幣。與比特幣一樣,ZCash的總量也是2100萬,不同的是它可以實(shí)現(xiàn)真正意義上的匿名——各位甚至都不用知道對(duì)方有多少錢就能完成交易。

為什么ZCash如何實(shí)現(xiàn)真正的匿名和保護(hù)隱私?

利用了zk-SNARK技術(shù),也即零知識(shí)證明的技術(shù):即使貨幣的來源與流向信息完全保密,零知識(shí)證明技術(shù)仍然可以驗(yàn)證花錢的用戶確實(shí)擁有貨幣。

公共區(qū)塊鏈:ZCash使用公共區(qū)塊鏈用于交易的展示,但是它會(huì)自動(dòng)屏蔽掉交易的金額,貨幣的持有者可以通過查看密鑰來觀察相關(guān)聯(lián)的信息。

在使用ZCash數(shù)字貨幣進(jìn)行交易時(shí),它會(huì)自動(dòng)加密交易的原數(shù)據(jù);同時(shí)交易個(gè)體并不需要ZCash節(jié)點(diǎn)來保存數(shù)據(jù),只需要zk-SNARK來證明其“消費(fèi)能力”。這主要體現(xiàn)在交易過程中的兩點(diǎn),一可以讓別人在不知道具體交易內(nèi)容的情況下驗(yàn)證交易(或者是智能合約函數(shù)調(diào)用)的有效性,二交易的詳情也可以在公共區(qū)塊鏈上消除掉。

這樣交易雙方似乎從來沒出現(xiàn),而實(shí)際交易已經(jīng)完成了。作為吃瓜群眾只知道有交易發(fā)生了,但也無法對(duì)貨幣流向進(jìn)行跟蹤。這樣便實(shí)現(xiàn)了真正的“匿名交易”。

zk-SNARK中的技術(shù)實(shí)現(xiàn)

同態(tài)隱藏

同態(tài)隱藏可以一定程度上實(shí)現(xiàn)零知識(shí)證明。

舉例:

A擁有x和y兩個(gè)秘密的數(shù)字,需要向B證明這兩個(gè)數(shù)字的和是7,只需要執(zhí)行下面三個(gè)步驟:

1.A計(jì)算f(x),f(y),并發(fā)送給B
2.因?yàn)楹瘮?shù)f(x)滿足加法同態(tài),B可以通過f(x),f(y)計(jì)算f(x+y)
3.B獨(dú)立計(jì)算f(7),并驗(yàn)證f(x+y)=f(7)

多項(xiàng)式盲驗(yàn)證

多項(xiàng)式盲驗(yàn)證,即將加法同態(tài)的特性利用到多項(xiàng)式中。(此處數(shù)學(xué)概念比較強(qiáng),可以只做淺顯了解)

假定A知道一個(gè)最高d次的多項(xiàng)式P,而B想要知道對(duì)應(yīng)某個(gè)s的E(P(s)):

我們希望在驗(yàn)證的過程中,A只知道P,不知道s,B只知道s,不知道P,可以通過下面方式實(shí)現(xiàn):

1.對(duì)s的每個(gè)指數(shù),B計(jì)算E(1),E(s),...,E(sd),并發(fā)送給A
2.A知道多項(xiàng)式的所有系數(shù),可以利用同態(tài)特性計(jì)算P(s),并回送給B

KCA(Knowledge of Coefficient Test and Assumption)以及完整的多項(xiàng)式盲驗(yàn)證

上面提供的多項(xiàng)式盲驗(yàn)證方式有一個(gè)致命的問題,就是B根本沒法驗(yàn)證A是真正利用多項(xiàng)式P(s)去計(jì)算結(jié)果,也就是說無法證明A真正知道這個(gè)多項(xiàng)式P(X)。KCA繼續(xù)完善了上面的驗(yàn)證。

。。。。。此處省略三千字?jǐn)?shù)學(xué)算法講解。。。。。。。

總之:

通過加法同態(tài),我們可以實(shí)現(xiàn)加法隱藏,讓B在不知道x和y的情況下,
校驗(yàn)x+y的值。進(jìn)一步,通過多項(xiàng)式盲驗(yàn)證,我們可以在不暴露多項(xiàng)
式P(X)的情況下,讓B校驗(yàn)任意給定s對(duì)應(yīng)的P(s)。

任意計(jì)算轉(zhuǎn)換到多項(xiàng)式證明

從多項(xiàng)式推廣到任意計(jì)算的盲驗(yàn)證。最終我們把原算式的證明轉(zhuǎn)化成為多項(xiàng)式的證明,只要證明多項(xiàng)式,即可驗(yàn)證原算式。

匹諾曹協(xié)議

最后一步的驗(yàn)證流程。

門羅幣

門羅幣(Monero)作為目前加密數(shù)字貨幣中代表性的一種,在保證交易的隱私性方面應(yīng)用著極其巧妙的密碼學(xué)技術(shù)。

門羅幣的兩個(gè)屬性

不可鏈接性(Unlinkability):無法證明兩個(gè)交易是發(fā)送給同一個(gè)人的,也就是無法知道交易的接收者是誰。

不可追蹤性(Untraceability):無法知道交易的發(fā)送者是誰。

門羅幣的技術(shù)實(shí)現(xiàn)

Stealth Addresses (隱蔽地址)

在門羅幣中,每次發(fā)送者要發(fā)起一筆交易時(shí),先利用接收者的公鑰信息計(jì)算出一個(gè)一次性臨時(shí)中間地址,然后將金額發(fā)送到這個(gè)中間地址,接收者再利用自己的公私鑰信息找到那筆交易,從而進(jìn)行花費(fèi),這樣網(wǎng)絡(luò)上其他的用戶包括礦工等就無法確定中間地址到底屬于誰的,但依然可以驗(yàn)證交易的有效性,而由于這個(gè)地址又是一次性的,每次都重新隨機(jī)產(chǎn)生的,攻擊者也就無法對(duì)真實(shí)的發(fā)送者接收者作任何關(guān)聯(lián)。

假設(shè)Alice想給Bob轉(zhuǎn)一筆賬,對(duì)于Bob來說壓力是非常大的,因?yàn)樗枰獟呙鑵^(qū)塊鏈上的所有的交易,然后計(jì)算相應(yīng)的信息進(jìn)行對(duì)比才能找到發(fā)給自己的交易。門羅幣為此提出了一個(gè)改進(jìn)的方案,就是Bob可以將他私鑰的一半(a,B)交給一個(gè)第三方,從而授權(quán)第三方來幫忙檢查區(qū)塊鏈上所有屬于Bob的交易,也就減輕了Bob的壓力,但最終還是只有Bob能花費(fèi)。

2.One-time Ring Signature (一次性環(huán)簽名)

簡而言之,環(huán)簽名要做的就是將簽名者的公鑰和另外一個(gè)公鑰集合(但不知道私鑰)進(jìn)行混合,然后再對(duì)消息進(jìn)行簽名,這樣對(duì)于簽名驗(yàn)證者(任何人都可以驗(yàn)證)來說,無法區(qū)分混合后集合中哪一個(gè)公鑰對(duì)應(yīng)的是真正的簽名者。

下面主要介紹一下門羅幣中采用的環(huán)簽名技術(shù)的整個(gè)流程:

第一步,密鑰生成(GEN)
簽名者首先隨機(jī)選擇一個(gè)私鑰x,然后計(jì)算對(duì)應(yīng)的公鑰。同時(shí)還計(jì)算另外一個(gè)公鑰。這個(gè)公鑰I稱之為“密鑰鏡像”(key image),對(duì)于每一個(gè)簽名來說這個(gè)密鑰鏡像是唯一的,所以后面也被用來判斷簽名是否之前出現(xiàn)過。

第二步,簽名(SIG)
首先簽名者隨機(jī)選擇一個(gè)包含n個(gè)元素的公鑰集合,然后和自己的公鑰進(jìn)行混合產(chǎn)生混合后的集合S,假設(shè)混合后簽名者的公鑰在S中的下標(biāo)為s,那么他的公鑰就是Ps。然后簽名者再從[1,l-1]中隨機(jī)選擇{qi, i = 0,...,n}和{wi, i=0,...,n,i!=s},然后再計(jì)算一個(gè)非交互式的挑戰(zhàn)(non-interactive challenge)。
這里非交互式是相對(duì)與交互式零知識(shí)證明中的挑戰(zhàn)而言的,在交互式中這個(gè)挑戰(zhàn)是驗(yàn)證者隨機(jī)選取的一個(gè)值,而因?yàn)樵趨^(qū)塊鏈中交易雙方只能通過區(qū)塊鏈來進(jìn)行傳遞信息,而不能直接進(jìn)行交互,所以這里選擇非交互式零知識(shí)證明。而需要這個(gè)挑戰(zhàn)的原因是避免證明者偽造證據(jù)來欺騙驗(yàn)證者的情況出現(xiàn)。

第三部,簽名驗(yàn)證(VER)
驗(yàn)證者要驗(yàn)證簽名的有效性,首先計(jì)算然后驗(yàn)證。如果等式成立,然后運(yùn)行LNK來驗(yàn)證簽名是否使用過;如果等式不成立,說明簽名是非法的。

第四步,重復(fù)校驗(yàn)(LNK)
這要求系統(tǒng)必須維護(hù)一個(gè)包含所有簽名的鏡像的集合,然后對(duì)于每一個(gè)新的簽名,通過判斷它的鏡像是否在集合中,來判斷該簽名是否之前出現(xiàn)過。注意在這一步之前,先要通過上一步的簽名驗(yàn)證過程。


門羅幣通過隱蔽地址來保證不可鏈接性,通過環(huán)簽名來保證不可追蹤性,從而給用戶的交易信息提供了很好的隱私性。但同時(shí)我們也可以發(fā)現(xiàn),在隱蔽地址時(shí)獲取incoming transaction方面給用戶帶來很大的壓力,而且公私鑰的長度也變?yōu)榱嗽瓉淼膬杀叮h(huán)簽名時(shí)對(duì)于混淆公鑰的選擇要保證一定的隨機(jī)性,簽名的產(chǎn)生和驗(yàn)證過程復(fù)雜度都明顯增加了,這些都是需要改進(jìn)的地方。

去年12月,門羅團(tuán)隊(duì)宣布在協(xié)議中整合Bulletproofs機(jī)制。門羅團(tuán)隊(duì)表示,部署這項(xiàng)技術(shù)能夠減少80%的交易容量,后續(xù)還將降低80%的交易費(fèi)用,整體上能夠提供“更大的存儲(chǔ)空間、更合理的驗(yàn)證時(shí)間以及更低的費(fèi)用”。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/24290.html

相關(guān)文章

  • 詳細(xì)講解知識(shí)證明 之 ZCash 完整的匿名交易流程

    摘要:存儲(chǔ)所有經(jīng)過不可逆函數(shù)后生成的值列表存儲(chǔ)的是已經(jīng)被消費(fèi)的中的隨機(jī)數(shù)生成的值。為和分別生成隨機(jī)數(shù)和將的公鑰設(shè)置到里面去,代表收款人是。至此,的匿名交易流程形成了閉環(huán)。在這里應(yīng)用到了零知識(shí)證明,它的代碼是根據(jù)理論完成的,同時(shí)也參考了。 作者:林冠宏 / 指尖下的幽靈 掘金:juejin.im/user/587f0d… 博客:www.cnblogs.com/linguanh/ GitH...

    niceforbear 評(píng)論0 收藏0
  • 用Python從開始創(chuàng)建區(qū)塊鏈

    摘要:設(shè)變量,求的值用實(shí)現(xiàn)如下未知結(jié)果是因?yàn)樵诒忍貛胖校褂梅Q為的工作量證明算法,它和上面的問題很類似。礦工們?yōu)榱藸帄Z創(chuàng)建區(qū)塊的權(quán)利而爭相計(jì)算結(jié)果。通常,計(jì)算難度與目標(biāo)字符串需要滿足的特定字符的數(shù)量成正比,礦工算出結(jié)果后,會(huì)獲得比特幣獎(jiǎng)勵(lì)。 本文主要內(nèi)容翻譯自Learn Blockchains by Building One ?本文原始鏈接,轉(zhuǎn)載請注明出處。 作者認(rèn)為最快的學(xué)習(xí)區(qū)塊鏈的方式是...

    Anleb 評(píng)論0 收藏0
  • 用Python從開始創(chuàng)建區(qū)塊鏈

    摘要:設(shè)變量,求的值用實(shí)現(xiàn)如下未知結(jié)果是因?yàn)樵诒忍貛胖校褂梅Q為的工作量證明算法,它和上面的問題很類似。礦工們?yōu)榱藸帄Z創(chuàng)建區(qū)塊的權(quán)利而爭相計(jì)算結(jié)果。通常,計(jì)算難度與目標(biāo)字符串需要滿足的特定字符的數(shù)量成正比,礦工算出結(jié)果后,會(huì)獲得比特幣獎(jiǎng)勵(lì)。 本文主要內(nèi)容翻譯自Learn Blockchains by Building One ?本文原始鏈接,轉(zhuǎn)載請注明出處。 作者認(rèn)為最快的學(xué)習(xí)區(qū)塊鏈的方式是...

    鄒立鵬 評(píng)論0 收藏0
  • 區(qū)塊鏈學(xué)習(xí)之密碼學(xué)安全技術(shù)(五)

    摘要:非對(duì)稱加密算法的安全性往往需要基于數(shù)學(xué)問題來保障,目前主要有基于大數(shù)質(zhì)因子分解離散對(duì)數(shù)橢圓曲線等經(jīng)典數(shù)學(xué)難題進(jìn)行保護(hù)。消息認(rèn)證碼基于對(duì)稱加密,可以用于對(duì)消息完整性進(jìn)行保護(hù)。 Hash 算法與數(shù)字摘要 Hash (哈希或散列)算法它能將任意長度的二進(jìn)制明文串映射為較短的(通常是固定長度的)二進(jìn)制串(Hash值),并且不同的明文很難映射為相同的Hash值。 Hash 定義 Hash (哈希...

    aboutU 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

W_BinaryTree

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<