從誕生至今,形式化驗證方法一直與“小眾、冷門”等字眼掛鉤。有人說形式化驗證方法是一種“軍用級別”的防黑客手段,更是為這項技術增添了一絲神秘感。
究竟什么是形式化驗證方法?
維基百科對形式化驗證的解釋是這樣的:
在計算機硬件和軟件系統的設計過程中,形式化驗證的含義是根據某個或某些形式化規范或屬性,使用數學的方法證明其正確性或非正確性。神秘感大抵來源于定義中的兩個嚴謹而且抽象的關鍵詞——“形式化規范”和“數學方法證明”。事實上,揭開這層神秘的面紗,你會發現形式化驗證的許多有趣之處。
下面這篇文章想要討論的問題是:在現階段,以下哪個故事能夠真正滿足你對形式化驗證的想象?形式化驗證真的可以作為一種技術在區塊鏈領域流行起來嗎?如果可以,怎樣才能做到?
要回答上面這些問題,我們可以先思考另一個更簡單的問題:現階段,人們使用形式化方法來做什么?這個問題的答案無非有兩種:1、規避錯誤2、對抗攻擊
|規避錯誤
規避錯誤其實就是避免損失。
我們首先來探討一下,哪些領域對程序錯誤是零容忍的?在哪些領域,程序錯誤帶來的損失難以估量?
實際上,形式化方法是從硬件設計開始普及的。一個著名的例子是:當年Intel的PentiumCPU浮點運算單元出錯(FDIVBug),數以萬計的CPU不得不回收和替換,給Intel造成了巨大損失(475M$)。
從那之后,Intel開始在其芯片設計中廣泛采用形式化方法。
計算機硬件巨頭如IBM,AMD,NVIDIA和CADENCE等等也都是形式化方法的使用者…
要說起吃一塹才能長一智,其實各行各業都有試錯者,在工業界也是如此。舉個例子:1996年,歐洲航天局首次發射的阿麗亞娜5型火箭,由于慣性導航系統發送的錯誤指令,導致火箭在發射僅僅37秒后便偏離了預定軌道,最終墜毀。歐洲航天局的巨額研發經費付之一炬。
IOST鏈上DeFi項目Donnie.Finance上線Dex:據官方消息,IOST鏈上DeFi項目Donnie Finance上線Dex功能,支持交易基于IOST、以太坊、BSC鏈的代幣,用戶能夠通過Bridge功能來跨鏈BSC和以太坊。為了支持Donnie.finance的第一批參與者,Donnie正在提高對流動性提供者的獎勵,目前再度添加DON — HUSD、IOST —DON、IOST — HUSD、BNB — HUSD四大LP池。
Donnie Finance是韓國技術團隊Donnie在IOST鏈上開發的DeFi項目,除支持現有的DeFi存貸款業務外,還提供去中心化交易平臺、資產管理、支付和信用分析等多種服務。此前DonnieFinance已向IOST用戶空投DON總供應量的5%,幫助于IOST用戶初步了解Donnie Finance。 DON目前已登陸MXC、BigOne、Coinone, Bitkub、IOSTDEX、xigua、waxgourd等交易平臺。[2021/5/6 21:30:36]
在那之后不久,EADS公司開發阿麗亞娜火箭的任務調度模型就開始使用形式化方法。
美國國家宇航局NASA和英國國防部在90年代相繼發布設計標準,形式化方法的使用位列其中。我國的玉兔號月球車控制系統和我國第一個自主研發的空間飛行器嵌入式實時操作系統SpaceOS,也都是通過形式化方法驗證其正確性。
歷史的發展告訴我們,金錢才是推動社會發展的第一動力!程序錯誤帶來的巨額損失,任誰也只能嘆一聲傷不起。
如果說上面兩個故事聽起來都過分沉重了,我們不妨看一下下面這張圖:
上圖顯示了全球范圍內用形式化方法開發的地鐵項目分布情況。
可以看出,由巴黎地鐵信號系統開始,在北美、歐洲、亞洲的主要國家,以及南美洲的部分國家的地鐵系統開發中,形式化方法已經被廣泛使用了。這或許是我們幾乎從未聽過由于地鐵系統故障而造成重大損失和災難的原因。
韓國知名DeFi項目Donnie Finance將向IOST社區用戶空投DON:據IOST官方消息,Donnie Finance團隊決定將DON(Donnie Finance通證)總供應量的10%空投給IOST持有者,并將通過幾次活動發放。活動細則將于近期公布。
截止目前,Donnie Finance已推出7款產品,DON也已上線韓國頭部交易平臺CoinOne,2月Donnie Finance即將推出流動性挖礦。
Donnie Finance的母公司是韓國知名初創區塊鏈企業,年收入超過1000萬美元。
此前IOST與Donnie Finance達成深度合作,IOST在社區增長、產品開發、技術支持以及國際市場營銷等方面積極扶持Donnie Finance。[2021/2/5 18:59:29]
還是那句話,金錢是第一生產力。
既然形式化方法在保障日常出行方面做出的貢獻已經得到廣泛的認可,那么,在依托區塊鏈技術而發展起來的數字資產領域,通過形式化驗證技術來保障智能合約安全性、進而保障財產安全性的理念就顯得合理甚至緊迫了。
具體需要怎么做?這里簡單介紹一下。
首先需要引入一個“形式化規范”的概念了。
形式化規范(formalspecification)是指通過數學語言對系統的預期行為(例如將數量S的token從賬戶A轉移到賬戶B)和性質(例如轉賬不會造成賬戶B額度的溢出)進行嚴格和全面的定義。形式化規范往往定義了系統的正確性和安全性給定一個系統的形式化規范,我們即可以從規范出發開始迭代設計和實現出這個系統。在迭代的每一步中,我們可以通過精化(refinement)、集成(synthesis)、形式化證明在內的一系列方法在數學上嚴格的保證迭代產生的系統和迭代前的規范或者系統保持一致。除了從形式化規范出發設計和實現一個系統,我們也可以使用包括符號執行(symbolicexecution)、模型檢測(modelcheck)和形式化證明(formalproving)在內的一系列方法驗證已有的設計和實現與該規范保持一致。
掌柜調查署 | Bondly CEO Brandon:我們的產品能讓用戶只需不到五分鐘就把任何一種數字產品代幣化:在今日舉行的《掌柜調查署 | Bondly重新定義“價值”與“交易”》直播中,針對“傳統托管市場存在哪些問題?Bondly如何改變市場現狀?”的問題,Bondly CEO Brandon表示,通過我個人經驗以及多年體驗線上商品和服務交易的經驗,我注意到傳統托管服務成本高昂且效率低下。當賣方與買方就價格達成協議之后,中間商會收取10%的高額費用,而且賣方優勢可能需要等待10多天才能收到貨款。我們想讓每一個用戶都能使用Bondly的產品進入自己的數字貨幣交易市場,
銷售數字商品和服務的市場潛在價值高達4萬億美元,涉及社交媒體帳戶、網站域名,數字業務等。理論上來說,買賣雙方應該自己掌握交易權力。所以我問自己,為什么現在買賣雙方的交易能力會受到限制?如果交易不是由用戶執行的,那么一定是交易過程存在問題。就在上個月,一個中國抖音賬戶以超過100萬美元的價格售出。去年11月,一個Instagram賬戶以超過8400萬美元的價格售出。這個市場只是剛剛開始增長,但是目前還沒有解決方案來處理這些資產的支付和轉移。我們的產品能讓用戶只需不到五分鐘就把任何一種數字產品代幣化,市場數據庫就能對他們的產品進行估值,并上架需要銷售的產品。賣方可以直接從銷售中獲得收益,無需向傳統托管服務提供商支付各種費用,也避免了其他各種麻煩。[2021/1/5 16:30:20]
聽起來很高大上,對不對?
舉個例子來說,對于一段智能合約程序,我們可以從它所有可能的輸入(例如函數參數的組合)和初始狀態(例如狀態變量初始值的組合)出發,根據每條語句的語義,逐句推導出程序的所有可能的結束狀態(例如合約執行結束后的狀態變量的值和產生的eventlog),并檢查合約的所有輸入、初始狀態、結束狀態的組合是否都和形式化規范保持一致。這有點類似于柯南破案那樣,一步步地推演。只不過,這里所有的定義都是通過嚴格的數學語言描述,推導和檢查也是嚴格的數學推導和證明。根據待驗證的系統及其形式化規范的復雜程度,推導和證明即可以手工構造,也可能可以由機器自動產生。
音樂傳奇人物Dre London將擔任社交金融平臺Fyooz顧問:音樂傳奇人物Dre London將進入加密貨幣領域,擔任社交金融平臺Fyooz的顧問。London表示,“按照我的愿景,我希望打造一個新的接入資產類別,能夠徹底改變整個娛樂行業。盡管新冠病大流行已經很可怕了,但我們必須找到新的創新方式來再次吸引我們的粉絲。”
據悉,London是格萊美提名說唱歌手Post Malone和說唱歌手Tyga的經紀人。Fyooz是以加入該平臺的音樂家、運動員或有影響力的人的名義鑄造加密貨幣的平臺。(Decrypt)[2020/11/28 22:25:10]
在實踐中,推導和證明無法進行下去往往意味著設計和實現中存在不符合規范的bug。通過分析推導和證明卡殼的位置和原因,可以定位出bug在設計和實現中的具體位置和成因。這樣的方法,讓數字資產領域中中嚴格意義上的規避錯誤、避免損失成為可能。
|對抗攻擊
對抗攻擊其實是另一種意義上的避免損失。
故事從美國軍方的一次電子攻擊說起。2015年夏天,一起黑客奉命對美國軍方LittleBird無人直升機發動電子攻擊,并掌握無人機控制權的事件中,黑客最初的攻擊十分順利,如入無人之境。然而,當美國國防部重新開發了該無人機的核心控制程序后,黑客們使用了當今世界上所有的攻擊手段,都未能攻破新部署的系統。
到底是什么技術給予了LittleBird超強的防御能力,從而使它阻擋了所有的攻擊?答案就是:形式化驗證方法。
形式化驗證方法通過嚴格的數學證明保證程序行為與預期一致,但形式化驗證程序的正確性非常消耗人力,所以,與程序測試等通用技術不同的是,形式化驗證方法常常只被應用于安全攸關領域,如無人機、航天器、操作系統等的程序正確性驗證。
這里不得不提的是2016年發現的一個非常嚴重的linux操作系統內核漏洞DirtyCow(CVE-2016-5195),攻擊者可以通過這個漏洞獲得系統最高權限,從而使系統全部處于可被利用的狀態之下。
Mike McDonald:既然Peter Schiff押注黃金而不是比特幣,他不必擔心加州稅收法案:日前美國加利福尼亞州立法者提出了一項法案,這一解決方案是為了疫情導致該州實行封鎖后解決預算赤字問題而提出的。該法案建議每年抽取該州的富有居民(個人凈資產超過3000萬美元,單獨納稅的已婚夫婦凈資產為1500萬美元)凈資產的4%。黃金支持者、比特幣反對人士Peter Schiff在推特表示,這項稅收法案如果通過,甚至會迫使在過去十年里離開加州的前加州居民繳納稅款。他最后說,任何想要搬到加州的有錢人都是瘋了。國際撲克巨星Mike McDonald在Peter Schiff的帖子上評論諷刺稱,既然Peter Schiff決定押注黃金而不是比特幣,他沒什么可擔心的。(u.today)[2020/8/15]
在操作系統領域,一些人身先士卒,嘗試用形式化方法避免安全攸關領域中的系統漏洞和黑客攻擊。耶魯大學邵中老師團隊通過模塊分層驗證法(modularlayeredverificationmethods)成功研發了安全性和可靠性極高的計算機操作系統CertiKOS;中科大軟件安全實驗室馮新宇老師團隊也提出了一個針對搶占式多任務操作系統內核的形式化驗證框架,并成功的應用在對嵌入式操作系統uC/OS-II的驗證中。
|安全攸關的區塊鏈領域
區塊鏈領域亦然,一方面,小錯誤也會導致大損失;另一方面,巨大的經濟利益也會吸引大量的攻擊者。
以太坊黑客攻擊第一大案TheDAO中,攻擊者竊取了當時價值5500萬美元的以太幣,并且導致了以太坊的硬分叉;這之后,與以太坊智能合約相關的攻擊一直在繼續——比如,2017年11月,以太坊Parity錢包由于被黑客攻擊,導致用戶損失了價值約為1.5億美元的數字資產。
據安比實驗室統計,僅2018年上半年,就已經有大約11億美元的數字資產被盜,與區塊鏈系統相關的漏洞以及圍繞數字資產的生態系統安全問題更是層出不窮。
目前區塊鏈系統中的相關漏洞,以及數字資產生態系統的安全問題,歸根結底是相關程序設計與實現的問題。在形式化方法以前,這類問題多是通過程序測試來發現的。
形式化驗證進入區塊鏈領域的初期,以太坊社區的YoichiHirai對以太坊的智能合約虛擬機EVM做了完整的形式化建模。此外,來自UIUC大學的團隊也對EVM進行了形式化的建模和驗證。EVM是以太坊智能合約的底層核心,關系到以太坊安全,涉及到數字資產保護等重大議題,引起了社區的廣泛關注。
此外,MakerDAO項目方發布了第一個經過形式化驗證的去中心化應用程序。MakerDAO是一個基于以太坊的智能合約平臺,該平臺提供了穩定幣,抵押貸款,以及去中心化社區治理功能。為了保證所部署的智能合約的安全性,MakerDAO團隊對抵押貸款核心引擎合約代碼通過K-Framewok進行了驗證,因此而表明其智能合約程序能夠完全抵抗黑客攻擊。
安比實驗室也在以太坊智能合約形式化驗證方面做了大量的工作,提出了一個智能合約形式化驗證框架,并在該框架內證明了一些常見的Token合約,比如ERC20,ERC721等。這些被數學證明過的智能合約可以直接使用,不再需要擔心安全問題。這些合約源代碼和證明過程已經以開源的方式貢獻給社區。
Github社區地址:
https://github.com/sec-bit/tokenlibs-with-proofs
|結論
大多數人認為形式化驗證方法高深莫測,究其原因,形式化驗證方法不是一種通用技術,而是需要和領域結合來發揮價值的一種特定技術。在區塊鏈領域,形式化方法究竟是一種nicetohave還是一種musthave,也是與項目特點密不可分的。
隨著區塊鏈技術與項目應用的探索不斷深入,項目方對于規避錯誤、對抗黑客攻擊和避免財產損失的需求已經越來越強。
當互聯網世界中的絕大部分活動都完成上鏈,當社會中的絕大部分群體都需要區塊鏈的絕對安全來保護自己的財產安全的時候,形式化驗證方法作為區塊鏈技術的musthave才會迎來大爆發。
寫在最后|關于Verification與Testing的糾葛,你了解多少?
最后來談一下形式化驗證與程序測試之間的關系。
“程序測試能證明錯誤的存在,但不能證明錯誤不存在”。EdsgerDijkstra如此評述。
在實踐中,尤其是在代碼足夠復雜的場景中,形式化驗證與程序測試方法的驗證效果有如云泥之別。
舉個例子來說:2009年,澳大利亞的科學家使用形式化方法對工業級操作系統seL4微內核進行了完整功能性驗證,驗證方式同時以形式化驗證和程序測試兩種方式分別展開,驗證的結果是:形式化方法共發現460多個Bug,而程序測試只發現了16個Bug。
更有趣的是,在以高驗證成本著稱的形式化驗證領域,完全驗證seL4微內核只需要600萬美元的驗證成本,而以測試的方式通過CCEAL6級認證的成本竟高達8700萬美元。
由此可見,通過形式化驗證可以更經濟的為seL4微內核提供更強的安全性保證。
當然,有人說,程序測試是在“真實”環境里進行的,形式化驗證只是數學層面,在“真實”環境中的測試是形式化驗證無法取代的。從這個角度來說,形式化驗證與程序測試如何做到共生互補?讓這項技術在區塊鏈領域真正流行起來,可能就是鏈圈同仁們接下來要共同探索的方向了。
參考文獻
HistoryofFormalVerificationatIntel
https://dac.com/blog/post/history-formal-verification-intel
王健:說說形式化驗證吧
http://chainb.com/?P=Cont&id=1957
ModelingandValidationofaSoftwareArchitecturefortheAriane-5Launcher
https://link.springer.com/chapter/10.1007/11768869_6
TenthNASAFormalMethodsSymposiumhttps://shemesh.larc.nasa.gov/NFM2018/
玉兔使用的國產SpaceOS操作系統未來有望衍生出民用版本
http://blog.sina.com.cn/s/blog_ae55841d0101hemg.html
Cimatti,A.,Corvino,R.,Lazzaro,A.,Narasamdya,I.,Rizzo,T.,Roveri,M.,Sanseviero,A.andTchaltsev,A.,2012,July.FormalverificationandvalidationofERTMSindustrialrailwaytrainspacingsystem.InInternationalConferenceonComputerAidedVerification(pp.378-393).Springer,Berlin,Heidelberg.
COMPUTERSCIENTISTSCLOSEINONPERFECT,HACK-PROOFCODEhttps://www.wired.com/2016/09/computer-scientists-close-perfect-hack-proof-code/
利用DirtyCow實現docker逃逸
https://www.anquanke.com/post/id/84866
CertiKOS:Yaledevelopsworld'sfirsthacker-resistantoperatingsystem
https://www.ibtimes.co.uk/certikos-yale-develops-worlds-first-hacker-resistant-operating-system-1591712
FengweiXu,MingFu,XinyuFeng,XiaoranZhang,HuiZhangandZhaohuiLi.APracticalVerificationFrameworkforPreemptiveOSKernels.Proc.28thInternationalConferenceonComputerAidedVerification(CAV'16)
從技術角度剖析針對THEDAO的攻擊手法
https://www.8btc.com/article/93713
kframework/evm-semantics
https://github.com/kframework/evm-semantics
風投巨頭A16Z投資穩定幣項目MakerDAO
https://www.jinse.com/bitcoin/246582.html
構造形式化證明,解決智能合約安全問題——你的合約亟待證明
https://mp.weixin.qq.com/s/xUNKT8v9ikEYFnuMWzvXdg
GerwinKlein,KevinElphinstone,GernotHeiser,JuneAndronick,DavidCock,PhilipDerrin,DhammikaElkaduwe,KaiEngelhardt,RafalKolanski,MichaelNorrish,ThomasSewell,HarveyTuch,andSimonWinwood.2009.seL4:formalverificationofanOSkernel.InProceedingsoftheACMSIGOPS22ndsymposiumonOperatingsystemsprinciples(SOSP'09).
Tags:區塊鏈以太坊數字資產區塊鏈工程專業學什么區塊鏈存證怎么弄區塊鏈技術發展現狀和趨勢以太坊幣是什么幣數字資產和數字貨幣的區別數字資產是未來最大的資產數字資產類應用案例包括
大談“無幣區塊鏈”的人,至少對區塊鏈精神是無知的。區塊鏈技術,最簡單的理解就是分布式賬本記賬。一大群互不相識的人,每人手上都有一個電子賬本,發生任何一筆有效交易時,都會記錄在自己的賬本中.
1900/1/1 0:00:00來源:騰訊深網,作者:張帆,編輯:范曉東。虎嗅網獲授權轉載。一周前,漩渦中央的FCOIN創始人張健發文回應質疑,力挺自己一手打造的FCOIN模式,聲稱該項目將來會回歸社區,并且更加透明;8月6日.
1900/1/1 0:00:00電影《西虹市首富》自上映以來票房持續走高,票房破20億,而同日上映的《狄仁杰之四大天王》目前還不到6億。二者的市場表現或許正是應了那句話,特效片不如“特笑”片.
1900/1/1 0:00:00貨幣來源于信仰,數字貨幣的去信任,去的是對各國央行的信任。中本聰的出發點,是避開各央行亂發貨幣的沖動,避免自己的勞動價值被洗劫。2100萬的限制,使比特幣天生具有緊縮貨幣的性質.
1900/1/1 0:00:008月28日,華住集團旗下連鎖酒店用戶信息被曝疑似泄露,賣家在“暗網”打包售賣5億條住客數據。公開資料顯示,以經濟型酒店漢庭起家的華住酒店集團如今已是全球規模排名第9位的酒店集團,目前在中國超過3.
1900/1/1 0:00:00來源:零壹財經 美國時間5月30日,“互聯網女皇”瑪麗-米克爾發布《2018年的互聯網趨勢報告》。除手機、電商等領域外,互聯網獨角獸、移動支付等內容也頗受關注.
1900/1/1 0:00:00