不少朋友看到Nillion融資$25M的消息,都會好奇WTF什麼是「盲計算」? MPC、ZKP、FHE、TEE這些生僻概念剛好有一些了解,一個嶄新的概念又冒出來了。那麼,盲運算的工作流程大致如何? Nillion提供的盲運算解決方案究竟怎樣?接下來,談談我的理解:
1)什麼是Blind Compute(盲計算)?簡單而言,盲計算是一種讓服務端(節點)對某個加密狀態的資料片段執行計算任務,最終達到保護隱私的安全計算方法。
和ZKP、TEE、MPC、FHE等增強加密演算法目標都一致,差異在於:ZKP零知識證明產生證明需要龐大的開銷,適合鏈下儲存+計算,鏈上只驗證的場景,例如:Rollup Layer2;TEE可信任執行環境是一種依賴硬體廠商在隔離環境下進行計算的方法;FHE全同態加密雖然可以直接在加密資料上執行計算,但當下方只支援特定運算;
「盲計算」是一種更General的計算框架,因為ZKP、TEE、FHE等加密技術都可能被當作其技術框架的一部分。
眾所周知,ZKP、TEE、FHE等目前都在和Crypto接軌技術落地應用探索和優化階段。而盲計算則有可能把這些加密核心技術都聚合應用起來,從而為隱私保護探索出一體化的工程實踐方案。
2)盲運算的核心邏輯是做分散式節點增強,讓單一節點同時具備分段儲存+運算的能力,再加上一個可驗證的開放治理網絡,進而達成節點不知道「完整」資料前提下有效工作的結果。如何理解呢?
常態下保護資料隱私狀態需要在A節點儲存數據,然後加密後交由B節點計算,再解密後經由C節點驗證最終完成資料的儲存+計算工作。這個過程中資料傳輸存在極大的成本損耗,且多次重複Encrypt->Decrypt的過程資料存在暴露的情況,節點之間的互信成本也高,很難保證隱私不洩漏。
Nillion所建構的業務邏輯恰好彌補了這個缺陷,其大致工作流程為(僅供理解):
Nillion建構了一個分散式節點網絡,每個節點都具備儲存+運算的增強能力,Nillion網路在收到資料傳輸處理需求時,先經由Nada特定語言執行編譯預處理,讓原始資料被拆分成很多片段,且都處於加密狀態。
再經過AIVM虛擬機來調度和分配,其分散式節點會隨機儲存並計算這些資料片段,最終完成聚合和統一驗證。整個過程,單一節點並無法知道全部的資料內容,拼湊到一起卻能完成整體資料的加密傳輸與運算。
為啥說盲計算可以聚合應用ZKP、TEE、FHE這些技術,邏輯也很簡單,在資料預處理也就是給資料加密階段完全可以應用FHE同態加密技術,而節點儲存計算資料則可以在TEE可信執行環境下進行,在聚合驗證節點工作成果的時候則可以用ZKP提升驗證聚合效率。
3)在我看來,ZKP、TEE、FHE、MPC等技術都或多或少存在一些工程化落地缺陷,目前Crypto領域幾乎各個賽道都擠滿了項目,但大差不差都在做成本和效率優化的工作,且都聚焦在Crypto特定應用場景。
Nillion所提出的盲計算框架,雖然也未實現大規模應用,但其一體化的加密解決方案,很可能在AI可驗證計算、機器學習等更廣泛的資料保護領域得以通用化採納。