CertiK首席科學家Vilhelm Sjöberg:建立值得完全信賴的智能合約和區塊鏈生態系統| POD大會
2018-09-11 05:12
本文约2526字,阅读全文需要约10分钟
對於復雜的系統,利用深度規範技術來實現安全認證。

區塊鏈這三個字近年經歷了幾番跌宕,從前沿的技術概念、風口上的熱詞,到被過度消費的符號。很多人相信,區塊鍊是解決許多行業痛點的工具,有潛力成為下一個世代“超級商業載體”誕生的催化劑。

然而,傳說中的史詩級變革還未來臨,它就已被置於聚光燈之下。有心者從中漁利,趨利者盲目買單。而過早陷入輿論漩渦,對成長期的技術是傷害,也是試煉。

今天的實際情況是,落地應用寥寥無幾,技術和產業連接尚有距離,投機者的噪音蓋過了真正關注技術與行業的“中堅聲音”。 Odaily聯合頂級新商業媒體36Kr、頂尖技術領袖和學界菁英,共同探討如何擁抱監管,推動行業去粗取精,將流量與話語權交給認真做事的人,用實力讓區塊鏈落地。

二級標題

二級標題

以下為CertiK 首席科學家Vilhelm Sjöberg 的演講實錄:

大家好,我是CertiK 的首席科學家,在區塊鏈方面做了很多研究工作。區塊鏈它是一個數據庫,在技術層面、信任方面,都有很多重要的研究課題。程序在執行方面很容易出現錯誤,為什麼在執行方面一直出錯呢?如何讓程序的信賴度更高呢?當然,並不是說人們在編程方面做得不好,而是因為智能合約是區塊鏈中非常特殊、重要的一部分。在區塊鏈上,智能合約一旦部署就不可更新,如果部署的智能合約本身存在漏洞,那麼黑客久可能會發現並利用這個漏洞,來竊取資產。這些問題,都是我們需要規避的。

為了確保程序的安全,有的會由人工來進行審核,但是時間成本比較高,可能還會造成其它的一些問題。當然,還可通過自動測試來進行審核,但是它也不能幫你找到所有的問題。所以對於區塊鏈來說,這些解決方案仍然不夠好。

CertiK 是用數學方法來證明程序,即通過形式化驗證的方式來為智能合約和區塊鏈應用提供安全服務。我們的並發式操作系統內核CertiKOS,是可被完全形式化證明的,其背後的關鍵技術是“深度規範”。

對於復雜的系統,CertiK 利用深度規範技術來實現安全認證。我們會把複雜系統進行分層,會了解到每個抽象層寫得是什麼,做的是什麼,執行的操作是什麼,這樣來證明它是否滿足了我們正確的規範。如果你寫了一些抽象層,我們可以把它整合在一起,進行驗證。抽象層之間能夠互相聯繫起來,這樣的證明能夠被整合起來。這就是我們所做的主要工作:通過分層、整合,實現完備的分佈式智能合約驗證。

我們的操作程序CertiKOS 的內核被分為了若干層,並且可以驗證一個大而復雜的程序,因為我們每一次去處理一個複雜的功能。


這張圖片,是我們將操作系統CertiKOS,部署在了Landshark 機器之上。

我們與學界當中很多專家也進行了合作,他們幫我們開發這樣一個項目。 2015 年,顧榮輝教授和邵中教授提出了“深度規範”概念並且進行了驗證。 2016 年的時候,我們已經向企業銷售這種立即可用的產品和服務了。 2017 年我們又拓展了CertiK,來驗證智能合約。所以我們也可以開展一些關於學術方面的研究,可以開展形式化驗證,來用於區塊鏈。

接下來我詳細介紹一下我們進行的一個持續研究的項目——DeepSEA,是一個用於驗證智能合約的編程語言。

在此之前先講一下形式化驗證是什麼,幫助大家進行了解。形式化驗證包含了很多用於驗證的不同的技術,它包括淺層次的驗證和深層次的驗證。

淺層次的驗證,是一些比較普通的驗證,比如非常常見的智能合約的整數溢出問題。對於比較淺層次的驗證,我們設計了第一代高性能智能合約自動檢測引擎CertiK AutoScanEngine(CASE),它可以幫你自動掃描智能合約並定位出漏洞。通過將合約細化成不同模塊,完成分佈式驗證。使用者可以通過上傳合約到我們的驗證引擎,看一看在調用某一個方法的時候,哪一個是正確的,或者出現錯誤的時候,怎麼進行處理。整個過程實現了最大化機器驗證,對人力的依賴非常少。

其次我要講一下深層次的驗證。比如需要我們去驗證的任一價值的屬性,我們要想一想如何對它進行證明。有一些本地的屬性,它可能應用於某一種架構,或者應用於某一種方法。但是深入的驗證,它可以是應用於所有的智能合約的整個生態系統。正如我們的白皮書中所描述,我們能夠將不同的鏈整合起來、結合起來,包括一些支付系統、鏈上、鏈下等等,旨在為整個區塊鏈生態系統提供安全保障。

有時候我們不只是完全依賴於機器,也要依賴於一些人工幹預,比如對於復雜系統,需要由人工來書寫規範。在CertiK,可以把每一個系統分為不同層。所以這樣的項目,能夠幫助我們創作出一個深層驗證和規範的系統。為此,我們開發了自己專門使用的語言DeepSEA。如果只是想寫一個合約的話,可以用個性化的語言來寫。但是對於某一些高信任性的合約來說,我們可能對於其他方面不是有那麼高的信任度。我們當然可以用EVM 的語言來寫,但它並不是非常具有信任度的代碼。所以我們推出了CertiK 的語言DeepSEA,它一開始被開發出來用來寫CertiK,現在它也能夠跟以太坊的合約進行映射。除了能夠生成規範,還可以使用我們經過驗證的編譯器。

在區塊鏈上有一個合約,來確保我們所做的一切事情都是正確的。所以我覺得這也非常好的證明了我們在深層次進行驗證的一些程序。如果我們很深入,有一些步驟是我們需要去做的,從而幫助我們去驗證我們的合約是處在一個正確的良好狀態的。所以我們可以把這樣的理念寫下來,最終的時候通過這樣一系列的步驟,能夠去確保合約的正確性。

我們還有其他項目,大家也可以在網上看到。有一些是跟支付相關的項目,是我們能夠去進行擴展的。還有一些是跟智能合約、編譯器、EVM模型相關的項目。在列出來的下面這些方面,我們會給大家提供幫助。如果有興趣,可以作為合作夥伴加入我們,和我們保持聯繫。非常感謝大家!


作者文库