# Zeroknowledge podcast Dan Boneh interview ###### tags: `notes` `zeroknowledge_podcast` 連結 https://www.zeroknowledge.fm/100 [TOC] ## Dan Boneh 背景介紹 - 25 年密碼學經驗 - 高中就有興趣 - 史丹佛教授 - 過去 5 年做區塊鏈 ## 在區塊鏈以前,密碼學的世界是怎樣 - 建立安全的系統 - Ad hoc 實驗 - 理論工作:就算是對稱式加密,在 2000 年才有正確的方式定義 4:08 (may be eprint.iacr.org/2001/045) - Excitement: 東西被破了 ,Boring: 東西破不了 - TLS 1.3 ## 開始做區塊鏈的契機 6:17 - 跨領域 - 2015 開始教區塊鏈,每年教 - 最難教的課。因為每年材料都會變 - 大概都會有 100 個學生選課,但人數隨比特幣幣價變化 - 線上課 - 10 idea of cryptography https://crypto.stanford.edu/~dabo/courses/cs55N_fall14/ - 區塊鏈課教起來很好玩的原因 - 密碼學加分散式系統的組合 - 4 層 - 共識層(把交易照順序排序,讓系統取得共識) - layer 1.5 計算層 (喜歡 blockchain computer 這個詞)bitcoin script, evm - layer 2 應用層 stablecoin defi - layer 3 user facing application wallet custody service - 鼓勵跨領域開課:法律人才、心理系人才 ## 有些學生工程強有些理論強 20:30 - 證明很重要,要學 - crypto system 課程,要會證明又要會寫程式 - 對主題感到興奮比較重要 - RSA 簽章,有個檢查忘記寫,攻擊者就可以偽造簽章。一般人不容易感受到這樣的細節。 23:17 ## 一般學生對密碼學感到畏懼 Don't Roll your own crypto 24:00 - 本意是不要實作自己的密碼學函式庫,應用標準函式庫 - 宣揚不要自己實作,又怎麼讓大家對密碼學感興趣? - 要知道標準函式庫的用法和為何這樣用 - iOS 13 ,開發者去 SO 找錯誤的 sample code 用 - 應該要 keep API Boring ## ZK Crypto 26:00 - 新的區塊鏈課程花三週講 snark (數週後上線) - Business 因為隱私因素,需要使用 snark - Conflict: Transparency (Public verifiability) & Privacy - zksnark: - 兼顧 Public verifiability & Privacy - Scalability: - Rollup: optimistic rollup, snark rollup. - 學生在做:Improve proof generation time - 外包交易狀態轉移的驗證給 Rollup server ,server 向區塊鏈證明狀態轉移正確 ## Snark 專案迅速竄出,怎麼保證這些新的密碼學工具能夠用在重要的系統上? 36:40 - 5~6 個方式 - MPC - GKR - GGPR:最短的證明 需要 trusted setup - STARKs - Bulletproof:最短的證明,不需要 trusted setup - 每種有獨自厲害的地方 - 不同 Proof verify 時間 - 最終狀態想要有統一的 snark - super sonic 本週新論文 - groth16 函式庫 bellman 專案 寫 R1CS code - groth16 有實戰經驗的專案 - snark 出現已久,區塊鏈是 snark perfect application ## 很多團隊不知道怎麼著手 snark ,他們應該等 snark 成熟再用嗎? - 不不不,不要因為等 best snark 而卡住進度 - 建議: - 來找 Dan - 雇用專家 - 黑箱使用者,可以直接使用現有的實作 Bellman ## Peer review for snark - snark 是複雜的系統,設計專案時要預期會有 bug - soundness bug 比較危險:會導致錢失去或憑空產生出來 - ZK bug 會影響隱私 - 共識也是複雜系統,共識壞掉也會導致錢失去。複雜系統本來必須要面對這些問題 - Peer review - 傳統資安領域有公司做 Review ,區塊鏈界找得到 Review Solidity 的人 - snark 因為需要太專業的人,很難找到人 - 2 種 audit - 論文發布時有 peer review of paper - 實作時要 Review code - 但這很難,因為 PhD 不能發 Paper 沒意願幫 Review (publish or perish) 47:59 - 需要有專業審計團隊去做 ## 喜歡的區塊鏈專案? 48:59 - Dan 喜歡區塊鏈專案有有趣的研究問題 - Prio Privately collecting Telemetry https://blog.mozilla.org/security/2019/06/06/next-steps-in-privacy-preserving-telemetry-with-prio/ - Telemetry: 以前生產的產品,生產者不會再聽到自己產出的產品。但現今需要收產品產生的資料(Telemetry data)。 - 協助廠商找到問題,但有隱私問題 - Fedric: 也是做區塊鏈客戶端的困境,想知道客戶端的使用者到底哪裡出了問題、用了什麼參數,可是又不能對客戶端收資料。 - 廠商 care 整合起來的資料,不在意個別的資料 - Utility & privacy 的取捨。Crypto 是一種解決方案,也有其他解決方案像 Differential privacy - Prio: 是 Protocol 不是公司,已有實作。 - 要跑兩個(或以上) server ,每個瀏覽器使用者送加密訊息給 server ,server 整合資料(並非同態加密,因為同態加密無法 scale 百萬等級使用者),用訊息論的方式。 - 如果沒有看到個別使用者的訊息,怎麼知道有人一直送垃圾資料,毀掉整合資料呢? - 例如要送使用者是否車子有扁掉輪胎的數目,可能大多數是 0 與 1,但有人偏偏送了 100 萬 - 使用零知識證明證明送來的資料都在區間之內 - Linear PCP 57:12 - 重要概念 - 我可以送一個 Proof string of numbers,Verifier 送 query vector: vector of same length proof, Prover 送proof vector 與 query vector 的內積。 - Proof 可以很小 - 相對概念是 point PCP ,例如: Verifier 要求 Prover 證明第 34 個點的值是什麼 - STARK 基於 point PCP - point PCP 算是 Linear PCP 的特例 - 多項式的例子 1:00:00 - soundness 機率與 size of fields 的抵換 - Randomness 1:01:30 - Fiat–Shamir heuristic : 利用雜湊函式的隨機性,讓交互式的協定變成非交互式的 ## 其他喜歡的 zk 專案 1:02:20 - True2F - Supply chain attacks - universal second-factor U2F - Yubiko - U2F 硬體有漏洞 Laptop 擋,Laptop 硬體有漏洞 U2F 擋。兩個都有漏洞 ... GG - ECDSA 有個 randomness ,惡意硬體可以在隨機數做手腳,在簽章中洩漏私鑰的資訊。Laptop 會給 randomness 給 U2F,U2F 產生零知識證據證明簽章有使用該隨機數。 - Supply chain attacks 越來越嚴重,ZK 工具可以用來讓硬體證明確實有正確執行運算,減緩這個問題。 ## 未來未解決的問題 1:08:21 - multilinear maps - bilinear maps - cryptographic multilinear maps - 應用一:non-interactive group key exchange - 1m users post public key on a forum, 1000 users 想要一個 group key - 這組人必須每個人下載其他 999 users 的公鑰,並和自己的私鑰產生群組的共同密鑰。 - 兩方(Diffie-Hellman)、三方的密鑰交換有 - 有理論解法,沒實務解法 - 有人在做標準化,但是基於兩方的交換去做 - multilinear 可以做到 n 方漂亮解法 - 應用二: code obfuscation - multilinear maps imply code obfuscation - Short post-quantum signatures 01:12:15 - pre-quantum schnor bls short sig - pubkey 32 bytes - sig 48~64 bytes - NIST submission 上面的簽章都很長 - isogeny based crypto system - 要講到天黑才講得完 ... ## Post quantum 1:14:40 - 為什麼人們要蓋量子電腦 - 很多人們覺得因為可以破 RSA 破 DH - 但其實現在有許多後量演算法 Lattice based crypto, isogeny based crypto ,NIST 都標準化了 - 等到量子電腦出來時,人們可以搬向新標準 - 人們蓋量子電腦是有商業需求 - 模擬物理 - 因為要做計算化學 - 藥學設計 - 肥料設計 - 設計有某種性質的分子,要問這個分子的基態是什麼,現今人們需要實際把這個分子建立出來,然後做晶體學分析。有量子電腦就可以直接用模擬的。 - Noisy Intermediate-Scale Quantum (NISQ) - killer-app: 計算化學 - 需要 100~1k qbits - IBM Google - decoherence time 時間短,只能做較淺的運算 - 要破密碼學 - 要 10~1m qbits - decoherence time 要幾小時 - 摩爾定律的估計: 30 年才能達到 ## 預言 1:20:00 - Crypto 很少有無聊的時刻,每年一直有新問題被解決,新領域被發明 - ZK 前進實務界 - 理論概念 Obfuscation: - 可以在程式碼藏密鑰的密碼學機制 - 給你跑程式,卻無法取得密鑰 - 區塊鏈應用 - DApp 可以在特定條件下簽章 - 現今人們部署 DApp 時,上鏈的程式碼如果有密鑰,路人可以把密鑰拿出來亂簽東西。 - 如果有混淆機制,DApp可以在特定條件情況,才簽東西 - 今天要做到這件事情必須要用 secure hardware like SGX, hardware enclave - 如果實務上意義的混淆被做出來了,基本上可以解決所有密碼學的問題。 everything you want can be done - 現況 - 有理論機制 - 多項式時間,但是是很糟的多項式時間 - 無法拿來建立有實務意義的解決方案 - 如果有混淆機制 - 現在倚賴 hardware enclave 的東西都可以用軟體 crypto 去做 - remove single point of trust - 後量 - 短簽章 - 更好的 snark - post-post quantum 1:24:25 - 設定:不只壞人有量子電腦,末端使用者也有量子電腦 - 也許孫子的孫子的世界 ... - 會有更多新的攻擊空間 ## Wrapup 看到 BLS 簽章被採用的想法 1:26:00 - Proof of stake 系統中,一個聚合簽章可以說服區塊鏈所有的訊息都被正確簽署 - 雷1: Rouge key attack - 聚合簽章很容易,但不要在家做,請遵守標準去做 - 雷2: Map the message to the curve - Wahby 的標準制定 - 2001 發明的