當前位置:
首頁 > 新聞 > 北京大學陳鍾:區塊鏈安全——數學的尷尬與無奈

北京大學陳鍾:區塊鏈安全——數學的尷尬與無奈

12月17日訊,由數字資產研究院、零壹財經和石榴財經聯合舉辦的2018國際區塊鏈數學科學會議在京舉行。計算機科學家、北京大學信息科學技術學院區塊鏈研究中心陳鍾以「區塊鏈安全——數學的尷尬與無奈」為主題作了報告。

會上,陳鍾發出了「區塊鏈安全嗎」之問。他表示,目前,交易易所被盜排在區塊鏈安全事件之首。「區塊鏈裡面對黑客的攻擊來自方方面面。」陳鍾強調,「數據安全的問題要轉成數據主權的問題來解決。」

以下是演講實錄:

各位嘉賓、各位同仁:大家上午好!非常高興能夠被邀請參加區塊鏈數學科學會議,這可能是我參加有關區塊鏈的會議裡面,討論科學最深入的一個會,所以也學到了很多東西。

我們在北大今年也成立了一個區塊鏈研究中心,現在也在跟本科生圖靈班的同學在上一門區塊鏈的理論與技術這樣的一個課程,現在也在進行中。所以,探討區塊鏈數學問題,其實是一個非常好的主題,我相信可能在中國以外其他的地方,可能還沒有這樣的一個會議,所以非常榮幸。

今天我想從計算機科學的角度來跟大家分享一下區塊鏈安全和數學之間的關係。我們會看到區塊鏈的出現跟計算機科學是非常緊密的,計算機科學首先還是一個構造性的科學,也就是說不光有理論,還要把實際的系統做出來。

所以,我想可能從這三個方面做一個探討,然後最後有一個結論。

背景是說區塊鏈,我還是想簡單地講一下,我們在理解區塊鏈,其實更貼切的是分散式賬本技術,也就是說它是構造一個共享的分散式賬本,是用於在商業網路中(有網的地方)促進交易記錄和資產跟蹤,所以構造了一個塊,包含了交易數據、時間戳和原線塊的哈密的哈希。

下面的這個很重要,挑戰就是一個雙花問題,我們看到中本聰的論文叫《賬本一致性得到了數學證明》。因為那個時候確實還沒運行這個系統,所以這是一個數學的證明,在虛擬數學世界裡認可了這件事是成功的。

當然了現在運作了有十年的時間,我們看到中間這個結論還是正確的。但是也遇到了更多其他的問題,比如說分叉的問題,專門的礦工可能在當時也沒有對現實的情況有一個清醒的認識。

當然今天區塊鏈我們看到了,如果我們把它整體上來看的話,點對點、抗毀壞、防篡改、全透明是通過了分散式賬本來實現的,但是這裡也有它基本的問題。這個問題可能有數學的,也有其他方面的問題。

所以,從根本上講,我贊同這樣的說法,分散式賬本技術在會計學意義上是500年來的一次顛覆性的創新。也就是說在複式賬本的基礎上,把記賬的方式進行了改變。而這個改變的過程中,我們看到了進一步的區塊鏈的發展,就是這個記賬已經不僅僅是交易,可以記規則,而這個規則通過代碼記錄在賬本之上。這樣的話,就給我們所謂的可編程設備帶來一種新的方式。

所以,為什麼分散式賬本技術科技很重要,就是我們所說的價值的交換、可信信息的交換,其實在計算機學者來看是通過這樣的方式來構造、建設。

但是比特幣和區塊鏈的歷史意義是非常大的,我們看到了中本聰沒有說建一個數據中心,造一台新的計算機或者是一個網路,但是比特幣到今天,在整個貨幣和支付、信任、社會組織架構的重構,以及對權力集中化的結構的衝擊,還有讓公眾的意識能夠說我們有權主張管理自己數據的方式這些方面,的確帶來了很多衝擊和顛覆。

所以,我們看到一個網路化技術的演進,這些主機的互聯、信息的互聯、人人的互聯、物物的互聯、價值的互聯,本身在連接的角度,在計算機層面是疊加的。但是我們看到當一個新的信息互聯或者是人人互聯出現的時候,我們的注意點轉移了,我們不再基於機器和機器具體是有什麼樣的標識、IP地址、路由,我們不關心這件事情了。到了價值互聯的時候,我們可能也是關注了這一個點、一個特徵,我們還忽略了有其他的方面。

所以,區塊鏈應用的特色,在這裡就包括了去中心化、分散式抗毀、全網溯源、智能合約、同等激勵,而真正對我們覺得非常有意義的,就是如何用智能合約來編程,把我們很多的規則能夠在現在構建的區塊鏈上編程、執行,使我們整個社會的秩序能夠更加變好、變得很有效率。

所以,區塊鏈技術的發展,從公鏈到私鏈,從僅僅只是支持貨幣,到發明了鏈上的代碼(智能合約),擴展到若干其他的應用場景下,這些應該說我們看到的現實技術是這樣的一個情況。

所以,我們看到從賬本的角度來看,都是開源的項目,所以有公有鏈、聯盟鏈,還有其他有特色的一些項目。

從節點的准入方式,我們看到了公鏈許可鏈的區別,用戶是匿名,要不要驗證,網路要不要管理,受不受限制,共識是在什麼樣的範圍內做的,就是這樣的情況。

當然了在廣普的意義上看,我們看到區塊鏈的問題:共識演算法、數據一致性問題是一個正確性的問題,但是這個正確問題的話,在概率層次上去做相應的定義,因為中間的參與者可能是不一樣的。所以,聯盟鏈和公有鏈的共識演算法也有差距。

這些方面都是數學展示了無限魅力的地方。

從應用的角度來看,我們看有兩大應用現在在展開:

1、在區塊鏈上發行加密數字貨幣,進行價值交換。

2、用區塊鏈技術解決企業信息化的問題,來傳遞信任。

所以,在比特幣、以太坊上面有很好的分布。當然從比特幣來看,所衍生的貨幣的形式做了大量的經濟學金融方面的實驗,我們說它是實驗,並不是說它是真正現實的被認可和解決現實的問題。當然以太坊是介於兩者,EEA也在把以太坊用於解決企業信息化問題開始做相應的工作。

這個是在數字貨幣上,經過比特幣所導出各種各樣的實驗情景,我們看起來知名的有1600多種。

這個是在以太坊出現以後,DAPP的平台所支持的,現在知名的也有接近1600多種的應用。在以太坊上面跑的大概有2.6萬多個智能合約,這些都是看到我們現實世界中的情況。

區塊鏈安全嗎?我們看到現在區塊鏈產業安全分析的報告,其實已經進行了相應的總結。

首先我們看到從2011-2018年,在這個範圍內的區塊鏈因安全事件造成的損失是高達28億美金左右。2017-2018年這一年裡面,大概就有19億美金的損失。

安全可能來自於什麼方面呢?包括了密碼演算法、共識機制、智能合約、代碼漏洞和隱私保護等等,代碼漏洞其實對於區塊鏈還有其他的系統,可能都具有一個共性的問題,如果這個代碼本身編得不好,可能就會存在相應的問題。

在這兒我們以它最具有代表性的智能合約作為一個例子,我們看看後面的情況。這個行業報告裡面,我們看到了它的重大事件出現的情況,還有造成的經濟損失的狀況,2017、2018年呈上升的趨勢。

安全事件的統計在現在,我們可以看到有區塊鏈自身的機制、區塊鏈生態的問題,還有使用者的問題。在這裡我們會看到區塊鏈自身的機制裡面,智能合約是排在第一位的安全問題,而51攻擊大概排在第二位。而在區塊鏈生態裡面,交易所被盜遠遠排在第一,交易所的第一道攻擊變成了第二。所以,你現在要開一個交易所,如果你不買第一道攻擊的服務,基本上你就開不下去,這就是現實的情況。當然在使用者這邊有賬號被盜、錢包被盜這樣的問題出現。這個是遭受攻擊的統計和損失。

我們看看重大安全事件的摘要裡面,從2011年羅列下來的問題,確實有很多,因為時間的關係,我們不能展開講。

所以,我們看到在傳統的安全實踐的角度,對鏈、智能合約、交易所的錢包安全審計都做了大量的工作,但是這些工作基本上是叫做頭疼醫頭、腳疼醫腳的方式,如果美稱叫它工程化,實際上還遠遠不夠,更談不到說上升到數學的角度能不能解決這些問題。所以,攻擊的分析裡面有很多。

我後面想以智能合約為例,來講講安全的問題。展開起來也有很多的問題,包括智能合約的安全漏洞、相應的技術、最佳實踐、驗證等等。

所以,智能合約是什麼?實際上它就是一種鏈上的代碼,建立在指定時間事件的觸發下能夠自動執行。由於這個區塊鏈本身的時間和不可篡改的效應,因此自動化、永久性、實時性、節約成本和準時高效是我們追求的目標。

所以,和傳統的交易相比,傳統合約里有大量的文書,嚴重地依賴第三方執行,還有仲裁和司法。現在我們創造一個完全數字化、自動執行、代碼定義規則的一個場景,這個是非常美妙的一個理想目標。

但是我們看到現在以智能合約為例的話,它基本上是可以看成是一個狀態機複製的模型。我們會看到可編程的這個裡面就是狀態遷移的函數,這個裡面所列的不到20行的程序,基本上是讓我們在一個以太坊的平台上,就可以寫一個我自己可以發幣的類似於比特幣的幣的代碼。所以,可見智能合約要做好是一個非常有效的東西。

但是我們也會注意到,這個程序雖然很短,但是挑戰性極強,一旦上鏈以後,我們以後怎麼改?還能不能改?這些都是問題。所以,以太坊的智能合約的運行環境是一個在分散式的大的環境下去實現的。

這裡面跟它相關的常見的漏洞類型我就不多說了,包括表達的語言和虛擬機,還有區塊鏈本身。所以,這裡我們研究了大量的問題,實際上這些問題都是不可避免的,在我們現實當中把它抓出來的問題。

所以,智能合約的安全技術現在確實還很不夠成熟,很難數學化。所以,我們看到開發者要做代碼自己的審視、測試。我們現在還需要有一些最佳的實踐,說我們以前有過什麼樣的錯誤類型,你看看這裡面有沒有,我們還想把它自動化一點兒,能不能對代碼做一個靜態的分析。還有就是我們能不能建立一個形式化驗證的方式,我們用一個工具去檢查等等。

所以,這裡面走在最前面的這個公司推薦了很多最佳實踐的情況。我們看到一些基於符號執行的漏洞檢測的工具,符號執行的情況,還有基於靜態分析、漏洞檢測的,還有我們實驗室也在做的合約漏洞的檢測,還有基於污點分析的合約漏洞的檢測、基於形式化的驗證技術和方法等等這樣的一些工作。

這些工作我們即便把它做好了,我們是不是就可以有效地防止攻擊行為呢?但是實際上不是,在這兒我就展開一下,像3D攻擊的案例,我相信做安全的很多人都知道。

在今年的8月22日,在以太坊上3D做了一輪正式的結束,結束了以後最後贏家拿走了10469個以太獎金,摺合人民幣大概是2200萬元。看起來像是一個按照規則中了頭彩的人,但是後來有人分析,說這是一個高手對智能合約進行了一場精緻的攻擊。

這個智能合約實現了一個遊戲開始的時候有一個24小時的倒計時,每一個人進來買一個的key的時候,時間就會延長30秒。你越早買的時候,後面買的人就會給你分紅,同時還會有一部分的錢進入獎金池。他設置了最後一個激勵的條件,如果你是最後一個購買key的人,你可以分享這個獎金池裡面48%的獎金,其中還有2%是分配給社區,另外50%有一個分配的方式,我們姑且理解這個50%是做善事、公益。

這樣的一個情況,我們會看到,最後這個攻擊發現,它在倒計時剩下3分鐘左右,這個攻擊者買了一個key,他就預先準備了大量的智能合約,發起了跟這個交易不相關交易。但是由於在以太坊上面礦工有一個激勵機制,越有錢的,交易就越在前面做。然後這個攻擊者還不斷地判斷他是不是最後那個key的持有者,最後沒有人購買,他就贏得了這個大獎。我們看到了他前面花的代價,大概花了6000人民幣做前期的交易。

這個啟示是什麼?我們說我們可能在數學、計算機、工程上做了大量的事情,但是基於規則的攻擊,可能還是會存在。

所以,回想到6000萬美金的攻擊當中,攻擊者也是說他是充分研究了裡面的規則,充分利用了這個規則,才做了這件事情。因此就導致了這個社區對這樣的行為到底該制裁還是不該制裁?當然一種制裁就是在計算機里,我們就反悔了,我們把這個交易返回到他攻擊發生前的那個時刻,那個區塊就到那兒了,後面的統統作廢,這樣的話就把他捲走的錢拿回來了。

當然最後我們知道了這個結果,85%支持了分叉,所以以太坊分叉了。但是有15% 的人堅持原來的規則,所以以太坊的社區依然存在,並且運行。現在我們看到幣值掉下來得很厲害,所以ETC已經停擺,開發者已經沒有錢再去更新他的系統。

所以,這樣來看的話,我們實際上在區塊鏈裡面所面臨的黑客的攻擊,它是來自於方方面面,是一個演算法上和聰明人的博弈。

所以,有很多研究團體,現在也在跟蹤、研究,似乎這件事情已經從技術到了經濟、社會、新的規則上。

所以,這是舉的智能合約的一個例子。

最後,我想做一個結束語,我在1994年、1995年,當時做全國人民銀行的支付清算系統,在大連做系統的時候,晚上沒事就把人民銀行的體系花了兩個多小時就給破解了。後來破解了以後,知道這個密碼是誰編的,是我們的總參編的,所以後來跟總參有不解之緣,又進入了密碼學領域。所以,在北大成立信息安全實驗室和教密碼學的課,也是從那個時候開始的。

在開始的時候,我們看到1994年有一本書,號稱是密碼學各位開發者的《聖經》,第二版裡面就說在這本書里描述了一個數學的烏托邦,密碼演算法能把你最深的秘密保持數千年,安全協議能夠安全而可靠地執行,難以想像地像交易交互、不規則的賭博、不可檢測的認證、匿名貨幣等等,所以密碼學是超凡的技術均衡系,任何人只要有一台便宜的計算機,就可以達到與最強大的政府同樣的安全性。

他說這個話的時候,實際上我們看到1994年的時候是互聯網剛剛開始民用大規模商用的時候,而個人計算機從80年代開始,經過10年左右發展,基本上可以做到人手一台。而美國恰好是法律保護非常好的國家,所以後面還加了一句話:你們僅靠法律保護自己還遠遠不夠,我們還需要用數學來保護我們自己。

但是到了2000年(過了4年以後),又有另外一本書,這個裡面是這麼些前沿:我寫這本書部分原因是為了糾正一個錯誤,密碼學不能做那麼多的事情,密碼學並非存在於真空之中,數學是完美的,而現實是主觀的;數學是精確的,而計算機卻充滿矛盾;數學是遵循邏輯的,而人卻是不穩定的、反覆無常的甚至是難以理解的。我把密碼學說成靈丹妙藥,真的有些天真。

然後他進一步說:安全性的弱點與數學毫無關係,它們存在於硬體、軟體、網路及人的身上,糟糕的編程、極差的操作系統、口令選擇不當,都會產生這樣的問題。

實際上我還是想呼籲,數學如何能夠助力區塊鏈安全?我們從頭疼醫頭、腳疼醫腳,從工程走向科學,有沒有這種可能性?

所以,我們認識了許多規律,比如說安全是一條鏈、安全是一個過程、安全的措施要滲透在各種組建和連接里,但是現在的軟體系統太複雜了,有大量的組建和連接,以至於開發者、設計者、實踐者都不知道。靠什麼呢?現在就靠了經濟學、錢。

所以,我們看到過去的微軟到今天的阿里巴巴、騰訊這樣一些大的企業,都是花重獎金去獎勵那些發現了系統漏洞、後門、問題的人,還逃離不到用經濟激勵的方式來解決這樣的問題。

但是不管怎麼樣,有一句話:我認為數字安全是當今最酷的事,它十分艱辛,但充滿樂趣。

所以,在安全或者是更泛化一點兒的網路空間安全,能不能從工程走向科學,我覺得這是一個很大的命題,我也希望在這兒第一次的區塊鏈數學科學會上,我們能夠有人一起來探索、探討這樣的事情。

實際上我們看到區塊鏈它涉及了很多的領域,包括計算領域、經濟領域、法律領域等等新的研究領域,在它分散式賬本的金字塔上,我們已經涉及了很多學科的交叉。這也是為什麼我們區塊鏈研究中心已經成立了,但是在北大我們也希望說把經濟學院、管理學院、法學院、數學學院都能夠團結到一起,然後共同地來推進相應的研究的課題。

特別是在今天,我們看到用區塊鏈如何把數據安全的問題轉成數據主權的問題來解決,這也是一個非常重要的探討的方向。

所以,今年我看到有很多在美國的做數學、密碼學、安全的教授們,他們出來把下一代區塊鏈的技術開始向前實質性地推進。所以,我也預期我們後面還有更多機會來探討這樣一個交叉學科協同的問題。

謝謝大家!

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 零壹財經 的精彩文章:

零壹新金融日報:AMC介入網貸資產處置第一單落地;11月M2增長8%
12月14日P2P風險輿情:今金貸、源金所被立案調查

TAG:零壹財經 |