隱私與機密交易

全同態加密

全同態加密(FHE)讓你能在資料維持加密的狀態下對它運算,產生一個加密結果,最終解密時會等於你對明文運算所得的答案。想像把一個上鎖、裝著食材的手套箱交給廚師,他能煮出一整桌菜而從不打開箱子,再把一道密封的料理交還給你,只有你的金鑰能打開。對區塊鏈而言,這是機密運算的聖杯:智能合約能在私密輸入與私密狀態上運行,驗證者正確執行邏輯,卻從不看見它們所運算的資料。

突破來自 Craig Gentry 於 2009 年的構造,這是第一個支援對密文無限次數做加法與乘法的方案。難處在於每次同態運算都會在密文中注入一點雜訊,運算夠多次後雜訊便淹沒訊息;Gentry 的關鍵構想「自舉」(bootstrapping)以同態方式重新加密密文,刷新並降低其雜訊,使無限運算成為可能。現代方案——用於精確整數算術的 BGV 與 BFV、用於近似實數算術的 CKKS,以及具廉價自舉、做快速布林運算的 TFHE——使 FHE 比原版實用許多,但仍然昂貴。

在鏈上,FHE 支撐起一類新興的機密智能合約平台。Zama 的 fhEVM 把以 TFHE 為基礎的加密型別帶進 EVM,使合約狀態與輸入能維持密文,Fhenix 與 Inco 等專案則建構類似的機密執行層。因為不該由任何單一方持有解密金鑰(那會是隱私與信任的單點故障),這些系統把 FHE 與門檻式或多方解密配對,使解密某結果須由達到法定人數的驗證者協作,且只在合約邏輯授權時進行。

必須誠實面對技術現況:FHE 威力強大但緩慢,其負擔往往是明文運算的數千到數百萬倍,且密文很大。它與零知識證明互補而非取代——ZK 證明關於你所持有資料的命題,而 FHE 對無人能見的資料運算,兩者正日益結合(可驗證 FHE),使一個加密運算也附帶「它被正確執行」的證明。鏈上 FHE 是真實的、已以早期形式上線,但目前它適合特定的機密運算,而非運行整個高吞吐量的應用。

Dec( Enc(a) ⊕ Enc(b) ) = a + b Dec( Enc(a) ⊗ Enc(b) ) = a * b

對密文的同態運算,解密後與對明文運算得到相同結果。

FHE 與 ZK 常被混淆。ZK 證明你正確地知道或算出了某物而不揭露它;FHE 讓別人對你的秘密運算卻不得知它。ZK 隱藏證明者的見證;FHE 隱藏運算者的輸入。

又稱
FHE全同態加密