日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

零知识证明在区块链中的应用

發布時間:2024/1/8 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 零知识证明在区块链中的应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

零知識證明在區塊鏈中的應用

    • 一、引言
    • 二、相關理論
      • 1. 區塊鏈
      • 2、零知識證明
    • 三、區塊鏈中零知識證明的應用
      • 1、zk-SNARK
      • 2、ZeroCash
    • 四、總結
    • 參考文獻

一、引言

在國家重視和政策扶持下,區塊鏈技術的迅猛發展,區塊鏈作為一個共享數據庫,存儲于其中的數據或信息擁有“不可篡改”“全程留痕”“可追溯”“公開透明”“去中心化”等特征。基于這些特征,區塊鏈技術奠定了堅實的“信任”基礎,創造了可靠的“合作”機制,擁有廣闊的運用前景。零知識證明由于能在區塊鏈應用中增強隱私性和安全性的潛力,也得到了廣泛關注。

本文首先簡要地介紹了區塊鏈以及零知識證明的相關理論知識,接著對于當前區塊鏈中零知識證明的應用進行闡述,包括zk-SNARK算法和ZeroCash區塊鏈實現。最后,對于零知識證明在區塊鏈中的應用進行總結和未來展望。

二、相關理論

1. 區塊鏈

從本質上講,區塊鏈(Blockchain)是一種按時間順序將數據塊連接起來的數據結構,并以密碼學的方式保證其不可篡改。在數據方面看來,區塊鏈是一種近乎不可被篡改的分布式數據,而且這里的分布式特點不僅僅體現在數據的分布式存儲,而且表現為數據的分布式記錄。在技術方面看來,區塊鏈技術是多種技術共同整合的結果,并不是一種新型的單一技術。這些技術通過一種新的形式結構整合在一起,構成了一種新的數據結構用于數據的記錄和存儲。
區塊鏈具有以下特性:

  • 去中心化 區塊鏈能夠實現完全去中心化,不需要存在中心節點,采用分布式的數據存儲結構,且所有的節點均保存著相同的區塊信息。
  • 不可篡改性 每個區塊的塊頭部分均存儲著Merkle樹根節點的Hash值,其Merkle樹的葉子節點則由每一條存儲在區塊鏈中的交易信息的相應Hash值構成,這樣便可以通過驗證Merkle樹根節點的Hash值確保交易數據的準確性,實現不可篡改。
  • 不可偽造性 在區塊鏈不僅存儲著交易數據的Hash值,而且其中包含交易雙方的簽名。而對于每一個使用者而言簽名都是獨立且唯一的,具有不可偽造性。
  • 可驗證性 區塊鏈的可驗證性一方面是指數據來源的可驗證,可以驗證電子貨幣在每一筆交易中的輸入和輸出。例如,在比特幣中所有交易的輸出均會作為下一筆交易的輸入,而交易的輸入均是前一筆交易的輸出,即交易的可追溯性。除了保障數據來源的可驗證外,還有確保交易金額的可驗證,保障每一筆交易時的輸入資金都是真實可靠的。
  • 匿名性 區塊鏈中的匿名性主要采用一種偽匿名的方式。區塊鏈利用假名技術來將賬號和真實身份的關系切斷。例如,區塊鏈中用戶賬號便是通過對用戶公鑰進行Hash運算得到的固定長度的Hash值。
  • 2、零知識證明

    零知識證明(Zero-Knowledge Proof)是由S.Goldwasser、S.Micali以及C.Rackoff在20世紀80年代初首次提出的。它指的是證明者能夠在不向驗證者提供任何有用的信息的情況下,使驗證者相信某個論斷是正確的。證明者向驗證者證明并使其相信自己知道或擁有某一消息,但證明過程不能向驗證者泄漏任何關于被證明消息的信息。最終,他們能夠證明通過證明者到核實者之間的一些交互,他們可以從根本上減少兩者之間需要傳遞的知識數量。他們主要關注的是信息泄漏,也就是驗證者在驗證一個聲明是否有效的過程中會了解到多少信息。

    例如對于現在登錄網站而言,在Web服務器上存儲了客戶的密碼的哈希值,為了驗證客戶實際上知道密碼,目前大部分網站采用的方式是服務器對客戶輸入的密碼進行哈希計算,并與已存結果對比,但是這種方式的弊病在于服務器在計算時就可以知道客戶的原始密碼,一旦服務器被攻擊,用戶的密碼也就泄露了。如果能夠實現零知識證明,那么就可以在不知道客戶密碼的前提下,進行客戶登錄的驗證,即使服務器被攻擊,由于并未存儲客戶明文密碼,用戶的賬戶還是安全的。

    零知識證明可以分為 交互式非交互式 兩種。對于交互式而言,零知識證明協議的基礎是交互式的。它要求驗證者不斷對證明者所擁有的“知識”進行一系列提問。證明者通過回答一系列問題,讓驗證者相信證明者的確知道這些“知識”。然而,這種簡單的方法并不能使人相信證明者和驗證者都是真實的,兩者可以提前串通,以便證明者可以在不知道答案的情況下依然通過驗證。

    三、區塊鏈中零知識證明的應用

    1、zk-SNARK

    zk-SNARK 是“zero knowledge Succinct Non-interactive Argument of Knowledge”的縮寫,是 非交互式零知識證明 中的一種,一個將實際的零知識證明類問題轉為計算機程序問題的理論。作為目前密碼學及其應用領域中最令人激動的成果之一,它使得人們可以對形如“給定一個公開的謂詞和一個公開輸入,我知道某個秘密輸入,使得為真”的語句進行證明和驗證。其實現過程大致可以分為以下幾步:

  • 將要驗證的程序拆解成一個個邏輯上的驗證步驟,將這些邏輯上的步驟拆解成由加減乘除構成的算數電路。
  • 通過一系列的變換將需要驗證的程序轉換成驗證多項式乘積是相等的,如證明t(x)h(x)= w(x)v(x)。
  • 為了使得證明更加簡潔,驗證者預先 隨機選擇幾個檢查點s ,檢查在這幾個點上的等式是否成立。
  • 通過 同態編碼/加密 的方式使得驗證者在計算等式時不知道實際的輸入數值,但是仍能進行驗證。
  • 在等式左右兩邊可以同時乘上一個不為0的保密的數值k,那么在驗證(t(s)h(s)k)=(w(s)v(s)k)時,就無法知道具體的t(s)、h(s)、w(s)、v(s),因此可以使得信息得到保護。
  • zk-SNARKs協議由三個算法組成:Setup、Prover、Verify 。zk-SNARKs的典型流程如圖所示。

    2、ZeroCash

    目前區塊鏈中一些著名公鏈,例如BTC和ETH的交易,在交易成功后,我們去區塊鏈瀏覽器或調用對應的RPC接口查看對應的交易記錄,可以獲得交易發送者地址、接收者地址和交易金額等數據。這些地址僅僅只是一串字母和數字,從而起到一定的匿名效果,但是這僅僅只是一種偽匿名,通過一系列的相關交易和對應的顯示社會關系還是可能會暴露用戶的身份,從而ZeroCash區塊鏈便應運而生了。

    ZeroCash是基于零知識證明來進行隱私保護的區塊鏈,采用了zk-SNARKs的非交互式的零知識證明來證明某些特定的資產歸自己所有,目的是 徹底解決交易被追蹤從而暴露用戶隱私 的問題。ZCash擁有一個匿名交易系統,它支持多種交易類型,其中一種就是能夠 隱藏交易雙方地址和交易數值的交易 。這是完全的隱藏,而不是說數據還存放在ZCash的節點數據庫中,而不向外顯示出的隱藏。而是連節點都不知道交易的內容。Zcash的強大隱私保證源于Zcash中的屏蔽事務可以在區塊鏈上完全加密,但仍然可以通過使用zk-SNARK證明在網絡共識規則下驗證為有效。

    在ZCASH中,摒棄了之前的UTXO方式,而是使用了一種基于UTXO,被稱為NOTE(支票)的新方式代替。NOTE代表了當前賬戶對資產的支配權,與UTXO不同,賬戶余額的存儲方式不再是“未消費的交易輸出”,而是“未被作廢的支票(NOTE)”;一個NOTE是由所有者公鑰PK、所擁有金額V、和唯一區分支票的序列號r組成,表示為 NOTE=(PK ,v ,r)

    ZCash交易分為兩類:透明地址交易和隱藏地址交易。兩個透明地址之間的交易則與比特幣交易沒有區別,透明地址交易的輸入、輸出直接是公開可見的NOTE信息;對于隱藏地址交易,隱蔽地址之間的交易也會出現在公有區塊鏈上,所以大家都知道有一筆隱蔽交易發生了,手續費也會支付給礦工,但交易的地址、資金的數額以及備注字段都被加密過,是不可見的。

    四、總結

    在數字經濟全球化背景下,區塊鏈的出現首次從技術上解決了基于信任的中心化模型帶來的安全問題,并使得通過互聯網進行價值轉移成為可能,然而區塊鏈的公開透明特性也給人們的隱私保護帶來了巨大的挑戰,因此如何實現隱私保護成為了阻礙區塊鏈進一步發展的難題。將零知識證明應用于區塊鏈已然為解決隱私安全問題做出了重大貢獻。本文重點圍繞零知識證明和區塊鏈技術展開,闡述了零知識證明與區塊鏈的相關理論知識,并且對零知識證明在區塊鏈中的應用做了說明。未來區塊鏈的隱私保護仍然任重而道遠,如何實現快速高效、可信的零知識證明算法以及如何實現能夠抵抗量子計算的零知識證明算法,都是需要進一步解決的問題。而且區塊鏈+零知識證明的組合讓用戶重新掌握他們的個人數據成為了可能,可以在無需透露個人信息的情況下達成金融協議、創建在線賬戶或驗證身份等。

    參考文獻

    [1] Sasson E B , Chiesa A , Garman C , et al. Zerocash: Decentralized Anonymous Payments from Bitcoin[C]// 2014 IEEE Symposium on Security and Privacy (SP). IEEE, 2014.
    [2] Bensasson E , Chiesa A , Tromer E , et al. Succinct Non-Interactive Zero Knowledge for a von Neumann Architecture[J]. Sasson, 2014.
    [3] 李康, 孫毅, 張珺,等. 零知識證明應用到區塊鏈中的技術挑戰[J]. 大數據, 2018, 004(001): P.57-65.
    [4] Alshaikhli I F T , Makarin R H , Mohd Bakri S K , et al. Zero-knowledge-proof[J]. Cryptography Past Present & Future, 2011.
    [5] Satoshi Nakamoto. Bitcoin: A peer-to-peer electronic cash system. Consulted, 1:2012, 2008.

    總結

    以上是生活随笔為你收集整理的零知识证明在区块链中的应用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。