iT邦幫忙

2025 iThome 鐵人賽

DAY 19
0

上一次特務 K 與小雨提到了如何有意義的提升點對點網路服務的規模。

其中提到了「零知識證明(Zero Knowledge Proof)」這樣密碼學黑科技

特務 K 認為有必要深入細究。

重算之外的一種驗算

「零知識證明,是一種密碼學的工具,可以讓人們檢驗某段運算的結果」小雨說。

比如說,我告訴你 9314 * 4796 = 44669944 ,你怎麼知道這個乘積有算對?

不借助計算機的情況下,你需要紙筆用直式重新慢慢算出答案來(或心算),然後檢查數字對吧?

又或是你能檢查尾數 4 * 6 = 24 ,然後你發現我告訴你的結果的尾數也是 4 。這讓你可能多了點信心,我的結果是正確的。

「如果有種驗算方法,也能讓你信心爆棚,檢查出我有沒有算對」小雨說「那就是零知識證明想做到的事」

「好,我大概抓到這個技術的意圖,但具體而言怎麼做呢?」特務 K 問。

零知識證明的使用情境有兩個角色,一個是證明方(Prover),另一個是驗證方(Verifier)。

雙方事先會約定好雙方都同意的一個演算法。

證明方會把放到演算法裡的輸入資料、經過演算法計算得到的輸出資料,以及一組稱為「證明」的簡短資料,傳送給驗證方。

驗證方能夠透過證明方給的資訊,就能快速執行驗算。

ZK 有兩種:有 ZK 和沒 ZK

能夠檢驗運算的結果,代表不用檢驗運算的中間步驟。

這種科技於是有兩種主流的用途:

  • 驗算壓縮 應用
  • 隱私 應用

第一種是說,如果驗算比重算快,那代表如果節點的運算能力固定,用驗算的方式能檢驗更多的運算。這樣好像我點對點網路能在一段時間內,處理更多交易了。

第二種是說,如果我能確定驗算的過程,都不會透漏運算中間步驟的數值,那也許我們可以把一些私密資訊藏在驗算步驟中。例如:證明方與驗證方互相約定的演算法為雜湊函式的計算。證明方可以證明他知道某個雜湊值的是從某個秘密值計算出來的。神奇的是,證明方可以說服驗證方:他知道秘密值,但卻又不揭露秘密值的實際數字。

「這種能夠表達自己知道某種秘密,卻又不告訴別人秘密本身是什麼,就是所謂的「零知識(ZK)」性質」小雨說。

零知識性質是隱私應用需要的特性。不幸的是,很多專案名稱雖然帶有 ZK 字樣,但實際上做的是不含零知識性質的驗算壓縮應用,例如: ZK Rollup。


上一篇
提升電腦的服務規模
下一篇
密碼學的樂高玩具
系列文
那個有好多好多節點的電腦調查報告20
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言