Try   HackMD

Zeroknowledge podcast Dan Boneh interview

tags: notes zeroknowledge_podcast

連結 https://www.zeroknowledge.fm/100

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 個學生選課,但人數隨比特幣幣價變化
  • 線上課
  • 區塊鏈課教起來很好玩的原因
    • 密碼學加分散式系統的組合
    • 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 發明的