對話時間:8 月 4 日 11:00
對話嘉賓:
顧榮輝,CertiK 聯合創始人,哥倫比亞大學計算機科學系助理教授
Rudy Lu,InfPool 無限礦池合夥人,BTCU 高校區塊鏈技術社區創始人

CertiK 顧榮輝:PoS 機制更高效與輕量級,但需要持續完善安全性


重要觀點:

  1. 公鏈的安全性是相比智能合約安全更重要的問題,它是區塊鏈可信賴生態的基石
  2. PoW 的資源消耗過大,效率不夠高,也不適用於新的公鏈。新的公鏈很容易被黑客利用在網絡規模未成之前進行 51% 攻擊
  3. PoS 機制可以理解爲“一定量的幣一票”,相比於 PoW 更加高效,更輕量級,更適用於新興公鏈和對性能有較高需求的合約 /DApp。但 PoS 機制實現起來複雜度更大,依賴的工具鏈更長,在安全性上需要做出更長足的努力

以下爲對話原文整理:

Rudy:Hello,各位聽衆中午好,歡迎來到 ”PoS 百家談“ 的第 2 期。PoS 百家談是由全球超級節點服務商 InfStones 主辦的系列訪談活動,邀請大咖一期一會,暢聊 PoS。我是本期的主持者,InfPool 無限礦池合夥人 Rudy Lu。本期我們榮幸邀請到的嘉賓是 CertiK 聯合創始人顧榮輝教授!

顧榮輝教授畢業於清華大學,於 2016 年在耶魯大學獲得計算機科學博士學位,並在耶魯大學獲傑出論文獎並獲 ACM 學位論文獎提名。現今是哥倫比亞大學計算機科學系助理教授。顧教授是操作系統、軟件安全以及形式化驗證方面的專家,是 CertiKOS——世界上第一個被完全證明的併發操作系統內核的主要設計者和開發者。

我和顧教授還是清華校友哈哈,師兄好~

顧榮輝:師弟好。

Rudy:CertiK 專注於用形式化驗證科技爲智能合約和區塊鏈應用及協議提供代碼安全解決方案,已與 Binance、Kucoin、OKEx 和 Huobi 等世界頂級數字資產交易所,以及 NEO、ICON、Terra 和 QuarkChain 等公鏈建立戰略合作伙伴關係,據稱已經保護了超過 45 億美元的資產免受損失。

顧榮輝:現在已經保護超過 62 億美金的數字資產了。

Rudy:哈哈哈,數據增長太迅猛了。

CertiK 基金會近期宣佈建立公鏈 CertiK Chain,目標構建一個更值得信賴的區塊鏈生態系統 (a more trustworthy blockchain ecosystem for all),CertiK Chain 怎樣結合自身項目的安全技術優勢,又爲何選擇 DPoS 作爲共識機制呢?這都將在今天和顧教授的訪談中找到答案。

問題一:關於 Certik

Rudy:我在谷歌搜索 CertiK 會發現官網是這麼介紹的:排名第一的區塊鏈與智能合約審計(#1 in Blockchain and Smart Contract Auditing),但國內的朋友可能還對 CertiK 不太瞭解,先請顧教授介紹一下 CertiK 吧~

顧榮輝:好的,CertiK 源自實驗室的科研項目,當時我和耶魯的邵中教授想從語言和系統層面解決軟件系統的安全問題,構建 “沒有漏洞、無法攻破”的可驗證系統。2015 年我們提出了“深度規範 DeepSpec”的概念,並用這套技術做了 CertiKOS。CertiKOS 是第一個被完全驗證的併發式操作系統內核,最後被部署到了未來機器人 Landshark 上,由谷歌工程師組成的白帽團隊在評測報告中稱其是“無懈可擊的”。

之後區塊鏈世界安全事故頻發,我們意識到區塊鏈這項革命性的技術對安全領域提出了新的挑戰,於是創建了 CertiK,旨在應用“深度規範”技術來保護區塊鏈世界。

我們的安全驗證服務從 2018 年五月上線以來,已經和 Binance,Huobi,OKEx,Gate.io 等多家交易所達成了安全戰略合作, 服務範圍包括傳統的滲透測試,智能合約驗證,節點安全,和定製化公鏈安全解決方案。已經合作了衆多知名項目,比如 Ethereum, NEO, TUSD, PAX,IoTeX, Crypto.COM, Terra 等。完畢。

上面的回答比較官方一點,我爭取以比較簡單易懂的方式回答下面的問題。

Rudy:「無懈可擊的」就非常易懂。

顧榮輝:原詞是「unbreakable」。

Rudy:您剛剛提到區塊鏈世界安全事故頻發,可以給我們舉舉例子嗎,CertiK 所從事的安全驗證服務對於區塊鏈世界有多重要呢?

顧榮輝:像我之前所說,區塊鏈技術與安全領域提出了很多新的 挑戰。比如很多公鏈 / 合約代碼都是開源的,並且一旦形成共識則很難更改,即使發現代碼有漏洞。

比如最知名的 TheDAO attack,最後是通過 hard fork 來解決的,對社區也造成很大的傷害。

Rudy:是的,那次硬分叉令人印象深刻

顧榮輝:在這種挑戰下,可以理解爲,如果代碼有漏洞,那麼最終一定會被黑客發現並利用。

很多人信仰區塊鏈技術,將大量資產放在區塊鏈世界,並高喊着“code is law”,我相信沒有人想看到黑客可以利用漏洞,操作代碼,繼而控制這些去中心化資產。

CertiK 軍事級的安全保護對區塊鏈世界是迫在眉睫的。如果說普通的代碼的安全係數是 80% 話,傳統的安全技術可以達到 90%,那麼 CertiK 的深度規範可以將安全係數提高到 95% 甚至更高。

CertiK 顧榮輝:PoS 機制更高效與輕量級,但需要持續完善安全性

這是一個用 CertiK 的驗證服務預防 TheDAO attack 的演示圖。我們可以通過數學的方法證明代碼的安全性,或者找到可能的安全漏洞,這項技術是目前安全保障最高的技術。

Rudy:剛剛的回答非常 impressive,讓大家見識到了 CertiK 的實力。

CertiK 團隊除了顧教授是哥倫比亞大學的助理教授,另一位聯合創始人邵中教授是耶魯大學教授,還有的媒體上更是稱他爲“華人最牛程序員”。您的團隊包括您在內有多位國際名校教授坐鎮,您覺得 CertiK 在哪些領域擁有行業頂尖的技術優勢呢?

CertiK 顧榮輝:PoS 機制更高效與輕量級,但需要持續完善安全性

顧榮輝:首先在軟件系統驗證領域,我們 2016 年發表的 CertiKOS 在 2019 年的今天,依然是這個領域最先進的成果。我們可以提供軍事級的安全服務,包括基於 CertiKOS 的節點安全方案。

同時,我們的聯合創始人邵中教授也是程序語言設計領域的專家,SML/NJ 就是他在普林斯頓時期與貝爾實驗室聯合開發的。這是我剛纔在 SML/NJ 的網站上找到的,應該是拍攝於 1994 年。

CertiK 顧榮輝:PoS 機制更高效與輕量級,但需要持續完善安全性

中間就是年輕的邵中教授,照片上還有多位大神,大家有興趣可以認認看。

Rudy:珍貴的資料。

顧榮輝:爲了從語言層面解決智能合約的安全問題,在邵中教授的帶領下, CertiK 團隊與耶魯大學和哥倫比亞大學的科研團隊共同開發了 DeepSEA 語言,目前已經獲得了 IBM 區塊鏈、以太坊基金會、量子鏈基金會的科研資金支持。

Rudy:可否請顧教授介紹一下 CertiK 安全驗證在市場上的一些實際應用案例,CertiK 爲他們發現了什麼問題,避免了多大的損失?

顧榮輝:CertiK 已經爲超過 200 多位客戶提供了安全服務,包括智能合約項目,公鏈,穩定幣和交易所等。目前爲止,CertiK 的深度規範技術已經保護了近 62 億美金的去中心化資產,比如 BNB,TUSD, PAX 等,未出現一次安全事故。

因爲沒有發生過安全事故,所以我不清楚具體避免的損失。這裏我舉一個發幣合約的例子吧。

在鑄幣時,合約會檢查已有的幣總量加上新鑄幣的總量,少於一個規定的值,看上去很常規, 當時這份合約也通過了某服務商的人工審計。

但是我們的驗證工具發現,如果傳入的新鑄幣的數量(一個參數)非常大,幣總量加上新鑄幣的總量可能會發生溢出,使得結果小於規定的值,進而導致可以無限增發。

這個漏洞,人工很難發現,但是卻無法逃過驗證工具的審查。如果我們沒發現這個漏洞,那麼對於項目方可能是毀滅性的打擊,也會造成投資人的鉅額損失。

問題二:公鏈的潛在安全問題

Rudy:我注意到您之前曾在一次問答中提到,區塊鏈技術面臨的潛在安全危險在“公鏈的安全”上。當時那次沒有深聊,咱們不妨接着聊一下,您覺得公鏈可能有哪些潛在的安全性問題呢?

CertiK 顧榮輝:PoS 機制更高效與輕量級,但需要持續完善安全性

顧榮輝:

我認爲公鏈的安全性問題主要分爲以下幾點:

1) 密碼學算法安全:包括了簽名、驗證簽名、hash 等,以及代碼迭代時的漏洞排查等等;

2) 共識機制安全性,比如 51% 攻擊等;

3)功能安全性,比如 TheDAO attack;

4)工具鏈安全性,比如編譯器或者執行環境的漏洞;

CertiK 的技術主要針對 2,3,4,我們並未涉及 1 的領域。像我之前所說,智能合約的安全問題較爲簡單,門檻也較低。2,3,4 就非常困難了,比如 CertiKOS 其實是 2016 年的成果,到今天也是獨一份,可見技術的難度。

我這裏在多加兩句關於功能安全性的問題。功能性安全指的是代碼的實現滿足開發者的意圖,簡單的排查一些安全隱患是不能解決這個問題的。首先需要準確表述開發者的意圖,這裏就需要我們的“深度規範”的概念了,我就不展開說了。

Rudy:CertiK 的形式化驗證工具不僅在智能合約上,在公鏈的代碼上也可以得到很好的使用嗎?

顧榮輝:是的,CertiK 已經與多條公鏈開展了安全合作,包括 Binance Chain, Waltonchain 等

Rudy:現在 CertiK 也建立了自己的公鏈 CertiK Chain,目標構建一個更可信賴的區塊鏈生態系統,請問 CertiK Chain 在安全性上有哪些特殊的設計呢?

顧榮輝:

首先 CeriK Chain 是“端到端”安全的:

1) DeepSEA 在語言層面減少合約漏洞的發生概率並可接入形式化驗證服務;

2) DeepSEA compiler 是被驗證過的,保證編譯過程沒有引入 bug;

3) CertiK VM 爲編譯後的 bytecode 提供安全的執行環境;

4) CertiKOS 爲節點提供安全保障。

Rudy: 從語言,到編譯器,到執行環境,到節點運行。

顧榮輝:總結的很到位。

其次,CertiK Chain 不僅僅是一條安全的公鏈,他還可以作爲整個區塊鏈世界的安全基石。其他公鏈都可以依賴 CertiK Chain 和 CertiK 的服務提高安全性,對安全需求較高的合約 /DApp (比如去中心化交易所)可以通過跨鏈技術在 CertiK Chain 上執行,防止受到可疑合約的干擾或攻擊等。

Rudy:明白,跨鏈到 CertiK 運行安全要求高的 DApp,跨鏈會使得 CertiK Chain 有極強的擴展性。

問題三:PoS 機制優勢、問題及解決辦法

Rudy:我注意到您剛纔總結公鏈的安全性問題,第 2 點是共識機制安全性。咱們的訪談系列名叫「PoS 百家談」,您覺得 PoS 機制的優勢在哪裏?現在是否還存在安全性問題?是否可以找到辦法解決問題?

顧榮輝:PoW 的資源消耗過大,效率不夠高,也不適用於新的公鏈。新的公鏈很容易被黑客利用在網絡規模未成之前進行 51% 攻擊。

PoS 機制可以很好的解決上述問題,但也有不足之處,比如無利害關係問題,這個問題可以讓惡意礦工有機可趁,引起硬分叉,需要用不同的協議進行約束和規範,比如以太坊使用了 Casper。

PoS 相比 PoW,實現更爲複雜,在功能安全性和工具鏈安全性上有更多隱患。目前最好的解決辦法,還是使用 CertiK 的安全服務吧。

Rudy:

是的,還有現在比較流行的 Slush 機制解決無利害問題,不過確實 PoS 更加複雜,可能也是它不太消耗資源的代價吧。

顧榮輝:世界上沒有免費的午餐。

Rudy:近期 CertiK Chain 的測試網已上線,InfStones 也是測試網首批驗證人(節點)之一。我們發現 CertiK Chain 採用了 DPoS 共識機制,請問 CertiK Chain 在做共識機制的選擇時出於什麼考慮在 PoS 與 DPoS 中選擇了後者呢?

顧榮輝:不同於 PoS,DPoS 的 token 持有者並不投票驗證區塊,而是投票去選舉代表,由代表來驗證區塊。

因此 DPoS 的礦工是協同工作,而不是相互競爭來生產製造區塊。以部分集權爲代價提高出塊時間,有拓展性強、網絡資源消耗小、共識時間短、吞吐量高等優點。缺點是功能安全性及節點安全的隱患更大,更爲負責。不過這點正是 CertiK 的優勢所在,所以我們選擇了 DPoS。比如節點安全,CertiK Chain 會使用 CertiKOS 作爲節點的運行環境,可以提供一站式的安全保障。我們也希望之後和 InfStones 合作,在更多的節點上部署 CertiKOS。

Rudy:感謝您的補充。InfStones 也是極爲看重節點運行安全的全球節點服務商,希望與 CertiK 的安全技術優勢多合作。

顧榮輝:已經有合作了,期待進一步的合作。

問題四:Staking 與礦機挖礦的異同、作用

Rudy:好的最後一個問題,說起 PoS/DPoS 公鏈就難以不討論 Staking (投票挖礦),這也是最近非常火熱的概念,您如何看待 staking,它與礦機挖礦有哪些異同,會給項目的生態帶來什麼?

顧榮輝:這裏我儘量用最易懂的方式來解釋,可能不是完全準確。

就像中本聰在比特幣白皮書裏所說,去中心化的共識難點在投票權上,理想狀態下是“一人一票”,但網絡上很難定義或驗證“人的身份”,防止僞造。所以 PoW 共識其實可以理解爲是“一 CPU 一票”,這裏通過驗證“CPU”的算力,來驗證“CPU 的身份”,所以礦機和礦場才應運而生。

與通用 CPU 不同,礦機就是專門來投票的 CPU,挖礦的過程就是礦機通過算力證明自己合法投票權的過程。

PoW 問題就是資源的浪費與效率的低下。但是我仍然認爲 PoW 是簡潔和優美的,這些問題是比特幣共識必須的代價,也是值得的代價,畢竟沒有免費的午餐。但是 PoW 並不適合所有的去中心化應用,也並不適於所有的公鏈。

PoS 機制可以理解爲“一定量的幣一票”,相比於 PoW 更加高效,更輕量級,更適用於新興公鏈和對性能有較高需求的合約 /DApp。但像之前所說的,PoS 失去了 PoW 的簡潔與優美,實現起來複雜度更大,依賴的工具鏈更長,安全隱患也更大。這也是我們成立 CertiK 初衷之一。

問題五:DeepSEA 語言與 Move 語言對比評價

Rudy: 有聽衆給我私聊了幾個問題,時間的關係我挑選一個向您提問:CertiK 在語言層面做了創新做出了 DeepSEA 語言,Libra 最近也推出了 Move 語言,請顧教授比較評價一下兩種語言吧。

顧榮輝:這個問題很好,我們曾專門寫了一篇文章來作對比。點擊此處查看文章

我在這裏稍微解釋一下主要的區別:

  1. MOVE 也強調了形式化驗證,和 DeepSEA 都是“驗證友好”的,區別是 DeepSEA 可以對接到我們的深度規範驗證引擎上,很多情況下可以給出自動的證明;

  2. MOVE 的編譯器目前沒有提到任何安全保障,DeepSEA 的編譯器是完全驗證過的,保證不會引入新的漏洞。

大家有時間可以讀一下我們的文章,寫的更加全面。多謝大家的問題,非常感謝 @Rudy@InfPool 的主持與提問,非常開心。

Rudy:好的,之後的整理稿中我們也會加上文章的鏈接~感謝顧教授今日的精彩回答。由於時間的關係,今日的訪談也走到了尾聲。稍微總結一下:

公鏈的安全性是相比智能合約更重要的問題,它是區塊鏈可信賴生態的基石、CertiK 與 CertiK Chain 在安全驗證作出的貢獻,以及與其他公鏈的合作,將會爲區塊鏈生態的價值保駕護航。

PoW 問題是資源的浪費與效率的低下,但是顧教授仍然認爲 PoW 是簡潔和優美的,PoS 更加高效與輕量級,但實現起來複雜度更大,依賴的工具鏈更長,安全隱患也更大。好在如同 CertiK 這樣的團隊以及其他貢獻者們,會在安全性與其他方面繼續爲 PoS 的完善作出努力。

InfStones 很榮幸成爲 CertiK Chain 的首批節點之一,未來也將繼續關注 CertiK 主網動態,等待 CertiK 開放 Staking 之後,InfPool 無限礦池也會第一時間接入,爲大家提供給 CertiK 進行投票挖礦的渠道。

再次謝謝顧榮輝教授 ,感謝您今天能做客 InfPool 無限礦池「PoS 百家談」,祝 CertiK Chain 發展順利!謝謝各位參與 InfPool 無限礦池”PoS 百家談“,這是我們的第 2 期,我們下期再見!

顧榮輝:再次感謝大家!