零和知識證明和區塊鏈的關系
㈠ 什麼是零知識證明
零知識證明,指的是證明者能夠在不向驗證者提供任何有用的信息的情況下,使驗證者相信某個論斷是正確的
從本質上講,零知識證明是一種協議。所謂協議(Protocol),就是兩個或兩個以上的參與者為完成某項特定的任務而採取的一系列步驟,包括以下三個特徵:
1. 協議自始至終是有序的過程,每一步驟必須依次執行,在前一步驟沒有執行完之前,後面的步驟不可能執行。
2. 協議至少需要兩個參與者,一個人可以通過執行一系列的步驟來完成某項任務,但它不構成協議。
3. 通過執行協議必須能夠完成某項任務。
基於數學的推理雖然非常復雜,但思路卻很簡單一些方案。
所謂零知識證明,指的是示證者在證明自己身份時不泄露任何信息,驗證者得不到示證者的任何私有信息,但又能有效證明對方身份的一種方法。看起來有點別扭,給出幾個個例子:(摘自網路)
1)A要向B證明自己擁有某個房間的鑰匙,假設該房間只能用鑰匙打開鎖,而其他任何方法都打不開。這時有2個方法:
(一)A把鑰匙出示給B,B用這把鑰匙打開該房間的鎖,從而證明A擁有該房間的正確的鑰匙。
(二)B確定該房間內有某一物體,A用自己擁有的鑰匙打開該房間的門,然後把物體拿出來出示給B,從而證明自己確實擁有該房間的鑰匙
後面這個方法屬於零知識證明。好處在於在整個證明的過程中,B始終不能看到鑰匙的樣子,從而避免了鑰匙的泄露。
2)A擁有B的公鑰,A沒有見過B,而B見過A的照片,偶然一天2人見面了,B認出了A,但A不能確定面前的人是否是B,這時B要向A證明自己是B,也有2個方法。
(一)B把自己的私鑰給A,A用這個私鑰對某個數據加密,然後用B的公鑰解密,如果正確,則證明對方確實是B。
(二)A給出一個隨機值,B用自己的私鑰對其加密,然後把加密後的數據交給A,A用B的公鑰解密,如果能夠得到原來的隨機值,則證明對方是B。
後面的方法屬於零知識證明。
3)有一個缺口環形的長廊,出口和入口距離非常近(在目距之內),但走廊中間某處有一道只能用鑰匙打開的門,A要向B證明自己擁有該門的鑰匙。採用零知識證明,則B看著A從入口進入走廊,然後又從出口走出走廊,這時B沒有得到任何關於這個鑰匙的信息,但是完全可以證明A擁有鑰匙。
==========================================================
我的理解,零知識證明就是一種認證協議,A向B證明自己擁有「某種東西」(例如身份),而不會給B有使用自己特性的機會,也就是不能讓B擁有向別人證明他是A的能力,現實生活中,比如,身份證,你可以出示身份證給他人證明自己,但你不用把你的身份證給他,否則他就可以冒充你,這就是零知識證明協議。
零知識證明協議通常由三個協議步驟組成:
目擊者:證明者選擇了一個隨機數字,發給驗證者一個這一秘密數字的知識。這個數字與一系列的問題相關,而證明者能夠回答這些問題。
挑戰:驗證者在這些問題集中隨機選擇一個問題發給證明者
回復:證明者利用他的秘密數字解決了這個問題,並發給驗證者
還是身份證的例子:
A:我是A,並告訴B我有身份證
B:身份證給我看一下?
A:出示身份證。
--------------------
零知識性證明應該是證明A到底泄露了多少信息給B,例如,我的身份證例子必須是在B無法復制偽造身份證的前提下,否則,我們還是泄露了信息給B,建立的曲線模型應該就是考慮了這些。
我再舉個認證的的例子(甲校驗乙):
方式一:
甲產生一個隨機消息發給乙,乙用其私鑰加密後發給甲,甲用乙的公鑰解密並驗證消息
這里就有一個問題,乙有時候並不知道他加密的是什麼消息,甲可以拿著乙加密後的消息冒充乙,或者解密(雖然很難)。這種驗證的零知識性就不好。
改進一下:在甲確定乙的公鑰的前提下,乙自己找一個無關緊要的消息,發送兩個消息給甲,一個消息首先使用了消息摘要,然後用私鑰加密,另一個是沒有加密的消息,這樣甲仍然可以驗證乙,但零知識性就很好了。
---------------------
==============================
網上有很多關於零知識證明的有趣的故事。
㈡ 區塊鏈中的零知識證明是什麼
如何不給你看我媽但是仍然證明我媽是我媽?
零知識證明是指證明者能夠在不向驗證者提供信息本身內容的情況下,使驗證者相信某個論斷是真實可信的一種技術。目前匿名性非常突出的數字資產ZCash的匿名交易就是依靠「零知識證明」實現的。
舉個例子,A要向B證明自己擁有某個房間的鑰匙,假設該房間只能用鑰匙打開鎖,而其他任何方法都打不開。這時候,A可以選擇把鑰匙交給B,B用這把鑰匙打開該房間的鎖,從而證明A擁有該房間的正確的鑰匙。
或者A自己用鑰匙打開房間,從房間里拿出來一個物體出示給B,B知道這個物體確實只有房間里有。方法二的原理就是零知識證明。
零知識證明可以在不泄漏信息本身內容的情況下,證明我知道這個秘,可以有效解決許多驗證問題。
㈢ 區塊鏈和互聯網的區別有哪些
區塊鏈本質上是一個去中心化的賬本系統,具備去中心化、開放性、信息不可篡改、可編程等特點,可作為價值互聯網的底層存儲與傳輸協議。區塊鏈有望帶領我們從個人信任、制度信任進入到機器信任的時代,共識機制是區域鏈建設的核心。數字貨幣只是開始,區塊鏈可以改變更多,可以重塑世界的信任體系,解決過去很多信任成本太高的問題。
區塊鏈與互聯網做類比,他們有一點核心區別:區塊鏈和互聯網的底層協議和上層應用的價值完全顛倒。主要源於區塊鏈的兩個核心特性:
第一個特性,是零知識證明造成了數據所屬權的改變。也就是說,區塊鏈上用戶的個人數據屬於用戶,無需提供給應用方、並存儲到中央伺服器上。那麼互聯網應用層的服務,例如BAT,市值背後的核心支撐「數據」,在區塊鏈領域便喪失了原來的價值。
另外一個特性,是代幣(token)所帶來的經濟激勵模型,為底層協議賦予了極高的價值。互聯網時代沒人為http協議付費,沒有人為收發Email付費,也沒有人為Google的搜索服務付費。
㈣ 什麼是零知識證明有什麼用
在沒有足夠(甚至是根本沒有)依據的情況下,猜出一個事件(密碼反譯)的計算方法,雖然是沒有任何依據的猜,但是這個猜出的計演算法方被證明是正確的,這就是零知識證明。
在Goldwasser等人提出的零知識證明中,證明者和驗證者之間必須進行交互,這樣的零知識證明被稱為「交互零知識證明」。80年代末,Blum等人進一步提出了「非交互零知識證明」的概念,用一個短隨機串代替交互過程並實現了零知識證明。非交互零知識證明的一個重要應用場合是需要執行大量密碼協議的大型網路。
在零知識證明中,一個人(或器件)可以在不泄漏任何秘密的情況下,證明他知道這個秘密..如果能夠將零知識證明用於驗證,將可以有效解決許多問題..
證明材料
附相關零知識證明材料:
零知識證明不是證明在條款的數學感覺因為有一個固定的可能性 p 在任一零知識證明Peggy 能提供對挑戰的正確反應即使她不知道鑰匙。但是如果測試被重覆 n 計時欺詐被減少Peggy 的可能性 p n , 和由增加測試勝者的數字可能使Peggy 的可能性降低欺詐到一個任意水平。
例子戰略
Peggy 的公開密鑰是一張大圖表, 我們將稱 G。Peggy 被組建的 G 某時從前, 和廣泛然後出版它。由於她特別地製造了它為目的, Peggy 知道一個漢密爾頓的周期。Peggy 將對勝者證明她的身份, 她知道一個漢密爾頓的周期在 G。即使 G 是公開信息, 沒人能做到, 因為沒人知道G 的一個漢密爾頓周期 , 並且發現漢密爾頓的周期在圖表是一個困難的問題(參見NP 完整性) 。
但是, Peggy 不能簡單地告訴勝者漢密爾頓的周期,因為這樣勝者(或偷聽者)就可以裝作是Peggy 。Peggy 不能在任何周期顯露任何信息, 因為偷聽者也許能在幾個不同場合收集信息並整合,使偷聽者有足夠的信息能扮演Peggy 。
要證明她的身份, Peggy 和勝者扮演以下比賽的幾個圓:
Peggy 標記G 端點 以隨機號。邊緣可能然後代表作為一對這些數字。她列出G 邊緣 , 和編成密碼各個邊緣以一個另外密鑰。她然後寄發被編成密碼的邊緣到勝者。
勝者翻轉硬幣。
* 如果硬幣過來頭, Peggy 向隨機號投降密鑰和測繪從端點。勝者解碼邊緣和然後核實, 被編成密碼的邊緣被派在步驟1 實際上做 graph.g 和沒有某一其它圖表。
* 如果硬幣過來尾巴, Peggy 投降密鑰只為實際上形成漢密爾頓的周期的邊緣。勝者解碼這些邊緣和核實, 他們的確形成正確長度的周期。
冒名頂替者(' Pamela ') 能設法扮演Peggy, 和有成功地唬弄勝者的50% 機會在任何尤其圓。有二個可能的扮演戰略。Pamela 能派Peggy 的graph.g 的編成密碼 。在這種情況下, 她逃脫偵查如果勝者投擲頭; 她顯露編成密碼, 並且勝者核實圖表的確是 G。但如果勝者投擲尾巴, Pamela 被捉住。她被要求顯露的一套的鑰匙組成一個漢密爾頓的周期G 邊緣, 並且她無法做那, 因為她不認識一。
Pamela 能跟隨的另一戰略是准備某一其它圖表她 知道一個漢密爾頓的周期的H編成密碼。她在這種情況下是安全的如果勝者投擲尾巴; 她顯露周期, 並且, 因為勝者從未看邊緣的剩餘, 他從未獲悉圖表是 H 和不是 G。但如果勝者投擲頭, Pamela 被要求顯露整個圖表, 並且勝者看見這不是 G。
由扮演這場游戲二十回合, 勝者能使由Pamela 被唬弄的可能性降低到一僅僅為1/2。由扮演更多圓, 勝者能減少可能性就渴望。
信息由Peggy 顯露提供勝者任何信息在所有不G 的漢密爾頓的周期 。看這, 注意勝者能製造比賽的抄本沒有談話與Peggy 根本。他能選擇序列頭和尾巴, 和然後准備假定回復從Peggy, 沒有曾經知道漢密爾頓的周期, 由從事適當的冒名頂替者戰略在每個圓。抄本, 和它不遏制, 有線索關於Peggy 的身份合法的信息。Peggy 證明她的身份不是因為她能基於正確的答復, 但因為她能基於正確的答復沒有知道將是什麼問題。
所謂零知識證明,指的是示證者在證明自己身份時不泄露任何信息,驗證者得不到示證者的任何私有信息,但又能有效證明對方身份的一種方法。看起來有點別扭,我給2個例子,也許好明白一些。
零知識證明的幾個例子[原創]
證明舉例
1)A要向B證明自己擁有某個房間的鑰匙,假設該房間只能用鑰匙打開鎖,而其他任何方法都打不開。這時有2個方法:
①A把鑰匙出示給B,B用這把鑰匙打開該房間的鎖,從而證明A擁有該房間的正確的鑰匙。
②B確定該房間內有某一物體,A用自己擁有的鑰匙打開該房間的門,然後把物體拿出來出示給B,從而證明自己確實擁有該房間的鑰匙。
後面的②方法屬於零知識證明。好處在於在整個證明的過程中,B始終不能看到鑰匙的樣子,從而避免了鑰匙的泄露。
2)A擁有B的公鑰,A沒有見過B,而B見過A的照片,偶然一天2人見面了,B認出了A,但A不能確定面前的人是否是B,這時B要向A證明自己是B,也有2個方法。
①B把自己的私鑰給A,A用這個私鑰對某個數據加密,然後用B的公鑰解密,如果正確,則證明對方確實是B。
②A給出一個隨機值,B用自己的私鑰對其加密,然後把加密後的數據交給A,A用B的公鑰解密,如果能夠得到原來的隨機值,則證明對方是B。
後面的方法屬於零知識證明。
3)有一個缺口環形的長廊 ,出口和入口距離非常近(在目距之內),但走廊中間某處有一道只能用鑰匙打開的門,A要向B證明自己擁有該門的鑰匙。採用零知識證明,則B看著A從入口進入走廊,然後又從出口走出走廊,這時B沒有得到任何關於這個鑰匙的信息,但是完全可以證明A擁有鑰匙。
㈤ 剛剛了解,誰能告訴我區塊鏈是什麼通俗解釋一下區塊鏈技術的方法
大家共同記賬的方式,也被稱為「分布式」或「去中心化」,因為人人都記賬,且賬本的准確性由程式演算法決定,而非某個權威機構。
這就是區塊鏈,核心講完了,區塊鏈就這么簡單,一個共同記賬的賬本
區塊鏈技術六大核心演算法:
區塊鏈核心演算法一:拜占庭協定
拜占庭的故事大概是這么說的:拜占庭帝國擁有巨大的財富,周圍10個鄰邦垂誕已久,但拜占庭高牆聳立,固若金湯,沒有一個單獨的鄰邦能夠成功入侵。任何單個鄰邦入侵的都會失敗,同時也有可能自身被其他9個鄰邦入侵。拜占庭帝國防禦能力如此之強,至少要有十個鄰邦中的一半以上同時進攻,才有可能攻破。然而,如果其中的一個或者幾個鄰邦本身答應好一起進攻,但實際過程出現背叛,那麼入侵者可能都會被殲滅。於是每一方都小心行事,不敢輕易相信鄰國。這就是拜占庭將軍問題。
區塊鏈核心演算法二:非對稱加密技術
在上述拜占庭協定中,如果10個將軍中的幾個同時發起消息,勢必會造成系統的混亂,造成各說各的攻擊時間方案,行動難以一致。誰都可以發起進攻的信息,但由誰來發出呢?其實這只要加入一個成本就可以了,即:一段時間內只有一個節點可以傳播信息。當某個節點發出統一進攻的消息後,各個節點收到發起者的消息必須簽名蓋章,確認各自的身份。
區塊鏈核心演算法三:容錯問題
我們假設在此網路中,消息可能會丟失、損壞、延遲、重復發送,並且接受的順序與發送的順序不一致。此外,節點的行為可以是任意的:可以隨時加入、退出網路,可以丟棄消息、偽造消息、停止工作等,還可能發生各種人為或非人為的故障。我們的演算法對由共識節點組成的共識系統,提供的容錯能力,這種容錯能力同時包含安全性和可用性,並適用於任何網路環境。
區塊鏈核心演算法四:Paxos 演算法(一致性演算法)
Paxos演算法解決的問題是一個分布式系統如何就某個值(決議)達成一致。一個典型的場景是,在一個分布式資料庫系統中,如果各節點的初始狀態一致,每個節點都執行相同的操作序列,那麼他們最後能得到一個一致的狀態。為保證每個節點執行相同的命令序列,需要在每一條指令上執行一個「一致性演算法」以保證每個節點看到的指令一致。一個通用的一致性演算法可以應用在許多場景中,是分布式計算中的重要問題。 節點通信存在兩種模型:共享內存和消息傳遞。Paxos演算法就是一種基於消息傳遞模型的一致性演算法。
區塊鏈核心演算法五:共識機制
區塊鏈共識演算法主要是工作量證明和權益證明。拿比特幣來說,其實從技術角度來看可以把PoW看成重復使用的Hashcash,生成工作量證明在概率上來說是一個隨機的過程。開采新的機密貨幣,生成區塊時,必須得到所有參與者的同意,那礦工必須得到區塊中所有數據的PoW工作證明。與此同時礦工還要時時觀察調整這項工作的難度,因為對網路要求是平均每10分鍾生成一個區塊。
區塊鏈核心演算法六:分布式存儲是一種數據存儲技術,通過網路使用每台機器上的磁碟空間,並將這些分散的存儲資源構成一個虛擬的存儲設備,數據分散的存儲在網路中的各個角落。所以,分布式存儲技術並不是每台電腦都存放完整的數據,而是把數據切割後存放在不同的電腦里。就像存放100個雞蛋,不是放在同一個籃子里,而是分開放在不同的地方,加起來的總和是100個。想了解更多可以多利用網路搜索,網路搜索結果-小知識
㈥ 如何理解區塊鏈與區塊鏈技術
區塊鏈技術用數學方法實現分布式記賬,並解決信任問題,從而完成了去中心化,將在通信、金融、物聯網、政府管理等眾多領域帶來深遠的影響。
區塊鏈(Blockchain)是指通過去中心化和去信任的方式集體維護一個可靠資料庫的技術方案,是一種全民參與記賬的技術方式。而此前的記賬方式都是中心化的,需要中心化的中介,無論這個中介是傳統的政府、金融機構、公證機構還是新興的電商平台、網路支付平台。
經濟學假設中,信息是充分的。實際上,正是因為信息不充分,才存在非常龐大的中介機構。而中介機構的存在,增加了交易成本,提高了交易門檻。區塊鏈技術本質上來說是一個大規模協作工具,它首次使用純技術方式讓直接的價值轉移成為可能,並延續了互聯網去中心化和去中介化的趨勢。去中介的區塊鏈技術將極大地顛覆信息中介行業。
區塊鏈技術是構建比特幣數據結構與交易信息加密傳輸的基礎技術,該技術實現了比特幣的發行與交易。區塊鏈技術的核心是所有當前參與的節點共同維護交易及資料庫,使交易基於密碼學原理而不基於信任,使得任何達成一致的雙方,能夠直接進行支付交易,不需第三方的參與。
從技術上來講,區塊是一種記錄交易的數據結構,反映了一筆交易的資金流向。系統中已經達成交易的區塊連接在一起形成了一條主鏈,所有參與計算的節點都記錄了主鏈或主鏈的一部分。
一個區塊包含以下三部分:交易信息、前一個區塊形成的哈希散列和隨機數。交易信息是區塊所承載的任務數據,具體包括交易雙方的私鑰、交易的數量、電子貨幣的數字簽名等;前一個區塊形成的哈希散列用來將區塊連接起來,實現過往交易的順序排列;隨機數是交易達成的核心,所有節點競爭計算隨機數的答案,最快得到答案的節點生成一個新的區塊,並廣播到所有節點進行更新,如此完成一筆交易。
㈦ 零知識證明是什麼
在沒有足夠(甚至是根本沒有)依據的情況下,猜出一個事件(密碼反譯)的計算方法,雖然是沒有任何依據的猜,但是這個猜出的計演算法方被證明是正確的,這就是零知識證明。
在Goldwasser等人提出的零知識證明中,證明者和驗證者之間必須進行交互,這樣的零知識證明被稱為「交互零知識證明」。80年代末,Blum等人進一步提出了「非交互零知識證明」的概念,用一個短隨機串代替交互過程並實現了零知識證明。非交互零知識證明的一個重要應用場合是需要執行大量密碼協議的大型網路。
在零知識證明中,一個人(或器件)可以在不泄漏任何秘密的情況下,證明他知道這個秘密..如果能夠將零知識證明用於驗證,將可以有效解決許多問題..
證明材料
附相關零知識證明材料:
零知識證明不是證明在條款的數學感覺因為有一個固定的可能性 p 在任一零知識證明Peggy 能提供對挑戰的正確反應即使她不知道鑰匙。但是如果測試被重覆 n 計時欺詐被減少Peggy 的可能性 p n , 和由增加測試勝者的數字可能使Peggy 的可能性降低欺詐到一個任意水平。
零知識證明是指證明者能夠在不向驗證者提供信息本身內容的情況下,使驗證者相信某個論斷是真實可信的一種技術。目前匿名性非常突出的數字資產ZCash的匿名交易就是依靠「零知識證明」實現的。
舉個例子,A要向B證明自己擁有某個房間的鑰匙,假設該房間只能用鑰匙打開鎖,而其他任何方法都打不開。這時候,A可以選擇把鑰匙交給B,B用這把鑰匙打開該房間的鎖,從而證明A擁有該房間的正確的鑰匙。
或者A自己用鑰匙打開房間,從房間里拿出來一個物體出示給B,B知道這個物體確實只有房間里有。方法二的原理就是零知識證明。
零知識證明可以在不泄漏信息本身內容的情況下,證明我知道這個秘,可以有效解決許多驗證問題。
㈧ 什麼是零知識證明
密碼學中講的zero-knowledge proof,在不讓對方獲知任何資訊的情況下證明一件事,實例是身份辨別。或是用演化計算(Evolutionary Computation)產生判斷下棋殘局的程式,演化計算的」產物」,通常是人類無法讀懂的程式(演演算法),若我們能經由實驗和機率分析得知這個程式以極低的機率(可能比隕石擊中你家還低)完全答對殘局的結果,那我們確實可以相信這個程式有能力判斷殘局,就可以在無法理解卻信任的情況下使用它。 據個人理解、通俗點說(個人說法): 在沒有足夠(甚至是根本沒有)依據的情況下,猜出一個事件(密碼反譯)的計算方法,雖然是沒有任何依據的猜,但是這個猜出的計演算法方被證明是正確的,這就是零知識證明。