owned this note changed 5 years ago
Linked with GitHub

應用零知識證明 - 梁智程

tags: COSCUP2020 中階 TR413-1

歡迎來到 https://hackmd.io/@coscup/2020 共筆

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

點擊本頁上方的 開始用 Markdown 一起寫筆記!
手機版請點選上方 按鈕展開議程列表。

請從這裡開始

零知識證明的應用:

隱私

  • 運算(只要看輸出就知道結果)
    • 現在是同步都算一次
    • 零知識證明,只要其他人跑簡短的證明,就可以過關

輕量級的範例:

  • 匿名投票
    • 證明你已經滿足投票資格,但不洩漏身份訊息
  • Covid-19 test
    • 證明陰性,不洩漏你在哪檢驗的
  • 混幣器
    • 證明存過一些幣到合約,但不告訴你是哪些

ZK SNARK
訊息大小較短
不需要多次溝通
證明者無法欺騙驗證者(只要資源有限)

架構與做法不斷在被提出來

如何挑選與設計?
一定要有的:

  • soundness
    • 證明者無法用錯誤的陳述說服驗證者
  • Completeness
    • 對於所有正確的陳述,證明者都有辦法可以說服驗證者

效能指標:

  • Proof Size
  • Proving time
  • Verifing Time

需要簡報,沒看完 XD

產出資料時,會有 Toxic Waste
可以透過它產出假證明

解法:多方運算,讓取得 Toxic Waste 的成本超高

寫零知識證明:

circom 這個程式語言

應用:匿名登入

只知道是已註冊者之一,但不知道是誰

應用:匿名打賞

連是誰給的都不知道
放在智能合約裡,文章作者產出對應的 hash 取走

MACI 抗共謀投票

並不是匿名投票
是投票者可以在投票後再取消投票,並且投另一個對象
(透過更換 公私鑰對)

這樣可以騙過買票者。導致買票被騙光
(但還是有反制方法)

Select a repo