主持人:王航,《金色深核》欄目策劃人
嘉賓:
林煌,Suterusu CTO
謝翔,PlatON 算法科學家
尹航,Phala Network CTO
Q1:首先我們先做兩個假設,假設1假設我們要解決多公司之間數據需要保密且共同使用的問題,三個技術路線如何去做?假設2如果我們需要讓搜狗輸入法不獲取任何用戶隱私,且能實現和現在同樣的功能,如何去做?去年Maskbook火了一下,各位如何看待這種“輕模式”的隱私應用?
隱私保護有很多種技術,每一種都有它適用的範圍。所以我想首先提出一個簡易的框架,對具體的問題做一個分類。
第一種最簡單的情況,參與合作的人互相可以分享數據,不希望被他人看到,也不需要向他人展示任何信息,這種情況下其實只要用普通加密就可以了。
第二種情況,參與合作的人互相可以分享數據,他們不希望他人看到他們之間分享的數據,但希望展示數據的一些特征。這種情況零知識證明可以解決問題。
舉個例子,Zcash轉賬的時候,收發人之間是知道轉賬金額的,但他們不希望別人知道這個金額。于此同時,爲了確保交易是合法的,還需要向網絡證明這筆錢的確是存在,沒花過。
第三種情況更複雜,參與的人之間不願意分享數據,更不願意他人看到數據,但希望展示數據的一些特征。這種情況描述的就是經典的安全多方計算問題了,TEE和MPC可以解決這類問題。
實際上很多場景都符合這種情況。舉個例子,幾家互聯網廣告公司,各自擁有一些用戶行爲數據。他們如果把數據整合起來,廣告准確度會大幅提高,但這些業務數據非常敏感,不可能互相分享。這個時候就需要一種技術,“參與的人之間不願意分享數據”,但又希望可以使用多方的數據進行計算。總結一下:
成員可以共享數據、不需要對外公開信息時,普通加密即可。成員間可以共享數據、需要公開數據特征時,可以采用零知識證明。成員間不能共享數據、需要公開數據特征時,可以采用TEE、MPC。
回到主持人的問題上來。第一個問題,多公司之間的數據聯合使用,就考慮公司之間是否願意共享數據,如果願意,零知識證明是可選方案,否則就需要TEE或MPC。
第二個問題,如何實現一個搜狗輸入法且保護隱私。輸入法的體驗提升來自于兩種數據:大量新鮮的語料、用戶的私人習慣。
在這個場景下,用戶與用戶間、用戶與搜狗間互相不願意共享數據,且希望利用各方的數據改善算法模型。所以這是一個安全多方計算的問題,可以采用TEE和MPC解決
然而這個問題有趣的一點在于,其實對于保密性稍作讓步,就可以巧妙的采用更低成本的方式解決。
算法模型是訓練而來的,但更新模型的過程不一定需要原始數據。換句話說,我們把用戶數據做一系列的變換,讓他不再包含隱私數據,但又可以更新模型,這其實是有可能的。這種算法就叫聯邦學習,是針對深度學習的隱私保護方案。在這種算法下,模型與更新數據可以完全公開。其中更新數據的變換步驟,可以采用數學方法或TEE、MPC。
再說回來輕模式。“輕模式”很好啊,用最直接的方法,解決最迫切的問題,才能抓住用戶。我認爲漸進式的發展是一個普遍規律,不僅是隱私保護,整個互聯網行業都是如此。
區塊鏈從業者一定要認清現實,現在我們還處于區塊鏈、Web3.0的早期,甚至門都沒入,習慣了Web2.0體驗的用戶不可能一夜之間遷移到Web3.0。
隱私保護也是一樣,我們有了最先進的技術,但爲了發揮出技術的威力,還是要回到産品作爲切入點。Maskbook就是一個不錯的切入點,從用戶一端,引導Web2.0用戶融入Web3.0生態。我個人認爲,從公司一端也可以入手,逐漸打開隱私保護的市場。等到用戶普遍上車了,更重、更徹底的方案就可以開始大展身手了。
Q2: 對于加密貨幣來說,兩個重要的過程是交易隱私和密碼管理,三位嘉賓的項目怎樣實現這兩個過程的?三位如何理解“DID在隱私應用的重要性”?
零知識證明的主打功能就是隱私交易,而Phala Network則融合TEE與區塊鏈的優勢,實現了能夠數據保密的通用智能合約,破除智能合約一切數據必須公開的限制。
具體來講,TEE是CPU內保密合約的執行單元,保密合約運行在 CPU 內的特殊黑箱——安全區(Enclave),合約的執行與操作系統甚至外部硬件完全隔離,保證數據對外不可見,因此交易隱私得以保證。
密鑰的管理也是一個很有趣的問題,密鑰就等同于區塊鏈上一切資産的所有權,因此目前的區塊鏈上,密鑰必須由用戶妥善保管,否則就可能丟失資産。智能合約可以用于靈活設定權限,但由于公開的特性,並不能替用戶保管密鑰。
但有了保密智能合約就不一樣了,用戶完全可以把密鑰保存在合約中,利用合約靈活的驗證用戶身份後再釋放密鑰,而不必擔心密鑰丟失。
可以在合約中管理密鑰的另一個好處就是,跨鏈資産管理會變得非常簡單,例如,我可以在合約中保存比特幣私鑰,允許以合約的身份收發比特幣,另辟蹊徑實現比特幣的跨鏈智能合約。
我們最早推出的基于Phala的一個應用叫做pLIBRA,就是利用TEE保管密鑰,實現Libra的跨鏈。
再說回DID。DID和隱私保護是不可拆分的。DID就是鏈上的身份證,我相信不會有人願意把自己的身份證公開給全世界看。因此,只要使用身份信息的地方,就一定需要隱私保護。
隱私保護技術可以是多樣的,例如零知識證明可以用來創建臨時身份,而在Phala,我們即將上線的項目Web3 Analytics,則會利用TEE在各個DID關聯的數據上進行聯合分析,得出有價值的分析結果。
DID做到比較好的程度就是半去中心化,利用中心化機構解決鏈上鏈下的身份的關聯,但又可以利用隱私保護技術,實現匿名的臨時身份功能。
Q3:TEE應用的背景條件有一些“困境”,除英特爾外其他廠商不夠標准化,英特爾雖然有tee標准,但標准不明確,移動端的硬件也存在尴尬現狀,尤其是手機廠商的TEE不能通用,移動端沒有可用開放的設備,這樣的現狀給行業內的創業者留了機會和挑戰?
首先普及一個背景知識:TEE是2010年 Global Platform 頒布的一整套TEE系統體系標准標准,並不是由英特爾一家制定的。王航分享了我們之前寫過一篇TEE的起源故事,感興趣朋友可以看下。
許多商業或者開源産品一般都會參考這套TEE規範,並按照其定義的各種功能接口進行規範實現。其中大概定義的TEE標准特征是:
-
軟硬件協同的安全機制:隔離是其本質屬性,隔離可以是通過軟件,也可以是硬件實現,更多的軟件、硬件、IP、總線一體的安全機制
-
算力共享:能使用CPU的同等算力、硬件資源
-
開放性:有對應的REE側,才有TEE的必要性,只有在開放性中才需要可信執行環境的保護
除了英特爾的SGX,還有AMD的SEV與ARM的TrustZone等方案,只不過因爲英特爾做的平台既開放、又成熟,因此我們會選擇英特爾硬件作爲第一批TEE。
爲了避免礦工(甚至是英特爾)作惡,區塊鏈網絡的特性就體現出來了:需要網絡來驗證CPU交付的計算結果是可信的,Phala Network做了一個事情,就是在簽名上做了抽象層,不完全依賴英特爾告訴我這個簽名是可信的。
程序結果是否是可信的,英特爾有一套遠程認證協議,我們只是兼容了這套協議,假設英特爾作惡、或硬件有漏洞,再或者有更多成熟的TEE協議出來(比如在GPU做機器學習的TEE),Phala網絡都可以兼容的很好。
可以想像一下,如果我們可以在區塊鏈上構造一個聯盟,爲各種不同的廠商提供TEE的認證基礎設施,就可以進一步降低對廠商的信任依賴,這也是區塊鏈對TEE的一個互補吧!
Q4: GPU如果可以做TEE,會如何?當算力越高,如何面對TEE中心化的問題?
先說結論,TEE算力越高對Phala越有利,而不會引發中心化的問題,這是TEE-區塊鏈混合架構的一種特點。背後的原因是Phala和當今區塊鏈原理上的根本差別。
比特幣和以太坊用區塊鏈來解決雙花問題,付出的代價就是需要在每個節點上運行昂貴的共識算法,達到所有節點狀態一致的效果,從而實現了“去信任化”。
而和這些鏈不同的是,Phala的去信任化通過可信硬件保證,讓硬件充當一個不可作惡的第三方,不僅可以實現去信任化,更實現了數據的保密。因此從技術上講,Phala的節點本質是“非拜占庭的”,無需通過昂貴的共識算法就可以保證合約的安全執行。
由于Phala礦工是非拜占庭的,就得到了一些非常實用的特性。
第一是合約級的並行,因爲非拜占庭,我們不用通過每個節點共識一次實現去信任化,因此每一個合約只需要運行在最少一個礦工上,每個礦工僅負責運行自己的合約,不同的合約在全網並行執行。因而網絡的計算性能隨著礦工的增加線性增長,可以實現極高的性能。
簡單地講就是,礦工越多,吞吐量越大。
第二個是天生支持跨鏈,Phala的合約是並行執行的,因此我們利用區塊鏈與TEE互補,設計了一套合約之間的互操作協議,而這個互操作協議兼容Polkadot的XCMP,因此跨鏈調用與合約調用一樣簡單。
相信高性能和互操作是未來隱私保護技術大規模應用的基礎。
【奇襲提問】林煌:Phala的方案對TEE和區塊鏈隱私分別有什麽補充?Phala與著名項目Oasis Labs的區別是?Phala的最大特性可組合性是如何實現的?
顯然區塊鏈缺少的隱私能力,在TEE上可以輕易實現。但TEE如果沒有區塊鏈的幫助,很難解決一些固有的缺陷。
剛才提到,Phala的去信任化是通過可信硬件保證的,然而單獨的硬件解決不了兩個問題:可用性和狀態一致性。單獨的硬件,拔電源就不能提供服務了,惡意的服務商可以隨時終止服務,這就是不滿足可用性。第二,多個可信計算節點常常有交互的需求,然而並行計算的基礎告訴我們,代碼執行的先後順序不明往往會導致Race Condition,在加密貨幣上即爲雙花,這就不滿足狀態一致性。
因此,Phala最終采用了TEE-區塊鏈混合架構。我們把狀態數據加密存儲在鏈上,任何人無需許可就可以下載,利用共識算法,每個節點都能得到一致的狀態。
最典型的TEE-區塊鏈混合架構就是Oasis Labs的Ekiden。但在我們早期調研時發現Ekiden缺少可組合性的基礎——互操作。
可組合性在實際的區塊鏈應用必不可少,是實現規模化網絡效應的基礎。
舉個實際的例子感受一下,在以太坊排名前 10 的合約中 80% 都用到了合約間的組合與交互。同樣地,Phala 上的數據交易協議也需要與鏈上應用和服務,包括去中心化存儲、DeFi等基礎設施相互組合。
爲了實現可組合性,Phala Network 引入了獨特的分層與事件溯源機制,簡單而言,Phala把合約的讀寫兩類操作分離,寫操作在鏈上排序,從而杜絕了Race Condition,同時實現了TEE間的共享安全性。允許合約之間、甚至是與外部區塊鏈之間得以互操作。
所以我們認爲TEE和區塊鏈的互補必不可少,而Phala也是通過對這個架構的改進,實現了Oasis Labs缺少的可組合性。
Q5: 現在對計算開銷和存儲開銷大多都是預設,如果利用鏈來實現應用,三個項目都區域基礎技術,那怎樣判斷需要一條什麽樣的區塊鏈,輸出能力、算力多少可行?幾位嘉賓認爲是保護區塊鏈鏈上的隱私更重要,還是保護鏈下的隱私更重要?
我認爲大規模應用下,大量的數據是不能直接上鏈的,因爲目前的區塊鏈並不適合處理大量的數據是一個共識。所以在Phala所有的合約計算都在鏈下執行。之前提到,Phala的節點是非拜占庭的,和區塊鏈網絡相比,Phala的網絡更接近于節點之間可互相信任的傳統分布式系統。
這樣帶來的一個好處就是,傳統分布式系統中常用的大規模處理方式在Phala中可以照搬,大家熟悉的Mapreduce、Spark、甚至分布式數據庫,理論上都可以在Phala上實現。
分布式計算依賴一個重要的能力,就是橫向擴容,俗稱堆機器,大多數區塊鏈下每一個機器都進行同樣的計算,無法實現橫向擴容。Phala則不一樣,每個節點各自計算,互相平行。因此對于我們來說,算力越大,可以承載的應用規模就越大,這是滿足大規模應用的計算需求的唯一方法。
至于鏈上和鏈下的隱私保護,我認爲重要性是一樣的。目前鏈上的隱私相對成熟一些,只不過目前全世界的數據,可以說接近100%都在鏈下,所以很明顯,這是一個潛力巨大的市場,不會有人放棄。
Q6: 三位嘉賓的項目都使用了零知識證明,除此之外三個技術的相互組合性如何?可以促成什麽方案,各位可以暢想一下?
三位嘉賓的項目都使用了零知識證明,除此之外三個技術的相互組合性如何?可以促成什麽方案,各位可以暢想一下?
密碼學技術的代價是高昂的計算成本。例如剛才謝翔博士提到過,MPC可以支持兩三方的機器學習模型訓練。而對于某些更通用的計算問題,計算成本可能是原生的百萬倍(詳見Ekiden論文)。
這也是爲什麽我們與OasisLabs都不約而同的采用了TEE的主要原因。
TEE可以實現通用多方計算的能力,而且成本很低,大概成本只是原生的1.5-2倍。因此在不追求絕對的理論完備性的情況下,不失爲密碼學方案的一個補充。可以承載99%我們日常生活中的實際應用。
舉個實際的例子。我們目前的一個方向是隱私數據的收集與管理,其中身份與密鑰保密通過ZPK與MPC實現。而我們面向的普通的Web與移動應用,每天可以産生以TB計的海量數據,如此大規模的數據,MPC的成本是不太現實的。因此TEE在我們的系統中承載了99%的功能,是最適合落地、最高效的方案。而MPC與ZKP也是系統中的重要部分,不可或缺。
結語 by 王航
關于隱私,關于區塊鏈應用,我們現在處于一個全力趟路的階段,很多解決方案和設計,都需要逐一實現,但在區塊鏈産業內的創業者們還是要做好持久戰的准備,現在區塊鏈的應用並不是業內競爭,與之相比的是整個互聯網的應用。各位“技術戰士”合力、加油。