NEO學院 | 如何拆除區塊鏈世界的“圍牆花園”?

買賣虛擬貨幣
“圍牆花園”並不是一個區塊鏈的專屬概念。Facebook、Twitter、微信、支付寶、甚至蘋果的iOS,當今幾乎每一個網際網路科技巨頭都在建立自己的圍牆花園。透過外部分享限制、生態搜尋限制與小程式限制,大量使用者被繫結在某一個生態裡。AppStore內的開發者被蘋果強迫抽成、百度裡無法搜到微信10w+文章、在微信裡分享一個淘寶連結也要使用非主流語言寫成的“淘口令”。除了為自己生態鎖住流量、保證使用者資訊的安全與內容的質量,這些花園的建立也讓目前的網際網路環境高度中心化。

而在以去中心化為己任的區塊鏈世界,“圍牆花園”問題也是所有基於智慧合約的區塊鏈都持續面臨的一個難題。簡單而言,由於智慧合約的作用範圍僅限於所在的區塊鏈,這使得智慧合約無法與區塊鏈之外的其他實體進行互動。

雖然這一問題在NEO3中可以透過引入執行在共識節點上的Oracle預言機得到緩解,這允許NEO區塊鏈獲取外部資料,但要想完全實現與外部資料互動仍然是不可能的。事實證明智慧合約無法操作任何私有資訊、儲存私鑰或主動觸發鏈外的操作。

由於智慧合約的執行會受到這些嚴重的限制,那麼需要這些功能的區塊鏈解決方案又該如何避開這個問題呢?

一種解決方案是使用預言機,這是一種可信的伺服器,可儲存私有資料、金鑰或憑據,並監聽來自智慧合約的事件,在觸發這些事件時執行相應的操作,從而可承擔智慧合約的部分功能。當然,這個解決方案需要信任這樣的伺服器,這會失去在公鏈上構建專案所具備的去信任的屬性。

康奈爾大學的研究所創新性地提出了一個更好的解決方案,即在可信執行環境(TEEs)中執行預言機,TEEs是嵌入到CPU中的硬體系統,在其中執行的程式是完全相互隔離的,使得其他部分的CPU或計算機不可能改變其狀態或篡改內部執行的程式碼,因為一切都受到硬體級別的隔離保護。

然而,對於預言機而言,TEEs最重要的特性是,在TEE中建立程式碼例項時,可以建立一個證明:用TEE的私鑰簽名的TEE狀態的雜湊(包括TEE中的所有記憶體和程式碼)。然後,可以使用此證明向其他節點證明伺服器正在執行特定的程式碼並處於特定的狀態,因此它將始終遵循該程式碼(如果您提供了一個密碼,並且程式碼中沒有任何傳送該密碼的指令,則可以確保密碼不會被洩露)。

此外,由於所有與Intel SGX相容的CPUs(實現了TEE)都有一個來自Intel的唯一私鑰,因此可以使用該私鑰來對所建立的證明進行簽名,以便向任意實體證明程式碼實際上是在TEE內執行的,確保伺服器處於已知的狀態並且不會被篡改,從而可以隨時瞭解伺服器的執行過程。

此外,如果不能直接信任Intel的私鑰(Intel可能被駭客攻擊),可以不考慮這個假設,我們仍可以發現自己的系統比標準伺服器需要更少的信任,因為一旦一個程式開始在TEE中執行,它就不能被篡改,因此我們只需要信任在建立預言機時執行著預言機的實體,而不必持續信任它。有人也許會說,這不能完全消除對Intel的信任,因為當我們假設Intel沒有在這些系統中留有任何硬體後門時,就是一種隱式的對Intel的信任,但這種信任可以透過使用多個TEE提供商(如AM)來消除, 例如AMD,ARM…

最後,需要注意的是,這些系統都不能完全和絕對地消除對運作伺服器的人員或組織的信任,因為這些實體仍然可以關閉TEE,或者,如果有足夠的資源的話,發起一次TEMPES攻擊*來洩露私有資料。透過在由不同實體託管的一組伺服器之間進行責任分配並使用閾值加密演算法來保證密碼也同樣被分發,某種程度上可以減輕,但不能完全消除這些風險。

* TEMPES攻擊:
https://en.wikipedia.org/wiki/Tempest_(codename)

如果想要更深入地研究在預言機中使用TEEs的技術細節,可以進一步檢視學術論文《Town Crier:智慧合約的認證資料來源》。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;