零知識證明(zero-knowledge proofs)

這世界變得比我們想的還快,最近學到一項技術叫「零知識證明」,簡單的說,就是你向我陳述一件事情,雖然我聽不懂你在說什麼,但我可以判斷這事情的真假!

舉個例子,假設A是色盲,A想知道B是不是色盲,但問題是A本身都分不清紅綠,如何判斷B能否分清呢?方法可以是這樣:A一手拿紅球、一手拿綠球,秀給B看並請他指出那顆是紅球,然後A把兩手放到背後交換(或不交換),再拿給B看也請他再指出那顆是紅球,這樣的過程重覆100次,如果B每次都能指出同一顆球(只有A知道有沒有在背後作兩顆球的交換),就可以大概率判定B不是色盲,而即便到最後,A還是無法判斷紅綠(零知識),有趣吧!

MIT最近的一項-zkledger-就在作這方面的研究,如何讓人們的交易可以在不知道彼此是誰的狀況下,但又可以信賴對方是有交易可信度的人,以防止詐騙和篡改問題。

零知識證明(Zero-Knowledge Proof, ZKP)是由S. Goldwasser、S. Micali及C. Rackoff在1980年代提出的,起源於最小泄露證明:

  1. 完整性:如果陳述為真,那誠實的驗證者Verifier將由一個誠實的證明者Prover來確信這一事實。
  2. 健全性:如果陳述為假,那說謊的Prover不能說服誠實的Verifier(但有很小的機率會騙得過)
  3. 零知識性:Verifier無法取得任何額外的知識。

換句話說,零知識證明是概率「證明」,而不是確定性證明,因存在小概率的健全性誤差。(例如Prover就是故意不想證明自己的能力)

最早使用此技術在區塊鏈的是Zcash

Zcash is a privacy-protecting, digital currency built on strong science. Shielded Zcash transactions are completely private. Like Bitcoin, Zcash transaction data is posted to a public blockchain; but unlike Bitcoin, Zcash ensures your personal and transaction data remain completely confidential. Zero-knowledge proofs allow transactions to be verified without revealing the sender, receiver or transaction amount. Selective disclosure features within Zcash allow a user to share some transaction details, for purposes of compliance or audit.

他們使用了zk-SNARK(Zero-Knowledge Succinct Non-Interactive Argument of Knowledge)來證明滿足有效的交易條件,且不用洩露發送者、接收者、交易金額等資訊。以太坊(Ethereum)上的智慧合約目前也已經可以運用 zk-SNARKs(算法),其可使礦工們不用重新計算交易,只要對方提得出證明。但目前遇到的瓶頸在於運算時間太長、運算量太大。

據悉,荷蘭ING推出了其改良版:零知識範圍證明 (Zero-Knowledge Range Proof, ZKRP),它允許證明方在不需驗證方實際了解確切內容,驗證方就能證明證明方的訊息是在某個一定範圍為內,例如:是否已達特定年齡、有一定金額的資產,而ZKRP號稱比ZKP的效率快上10倍,這讓隱密交易的時間成本大大降低,又符合實際需求。ING更提出了「零知識集合隸屬」(zero-knowledge set membership) 證明,能將讓零知識證明不僅應用在數字上,更能包含其他類型的數據,這將為企業隱私增添更多應用範圍,例如可判斷一個用戶是居住在歐盟的某個國家,而不用他提供確切的地址。

另外,安永會計師事務所也推出了「安永營運鏈 — 公鏈版(EY Ops Chain Public Edition)」,新聞稿宣稱這是「世界第一個可以在以太坊(公鏈)網路上運行的『零知識證明(zero-knowledge proof,ZKP)』應用」。

這類的技術推陳出新,使得未來的包括IoT、消費、金融、保險、貸款、交易等,都不需要提交所有資料,也能證明自己符合某種消費或交易資格,進而保有個人隱私,又能最大化運用範籌。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s