服務項目

需求溝通

以太坊智能合約開發社區

  以太坊智能合約是何方神圣?

  在了解以太坊的背景之后,我們再來看智能合約。這個概念最早由Nick Szabo在1995年提出,智能合約是一套以數字形式定義的承諾,包括合約參與方可以在上面執行這些承諾的協議。

  有人把智能合約稱為區塊鏈2.0,它確實有別于以比特幣為代表的數字貨幣。在以太坊中,智能合約由網絡本身執行,具有諸多特性:網絡共識不需要可信第三方、無人可依違反合約、無法偽造合約的執行、允許在區塊鏈上達成永久的P2P的共識。

  簡單看智能合約的優點和缺點,有很多優點可以帶來一些新的社會合作模式。但其實也存在很多問題,比如效率低,只能做高值低頻工作、法幣支持困難、數模綁定難題、代碼安全問題、隱私問題等。

  而以太坊智能合約有四個目的:存儲和維護數據、管理不可信用戶之間的合約/關系、作為軟件庫為其他合約提供函、支持復雜權限管理。大家看其實很通用,并沒有針對某些特定的應用做優化,并且以上特性可以組合使用。這是以太坊一直堅持的,做一個最基本、對代碼執行機制的支持。

  很多年前人們學習數據庫,數據庫里有一個叫存儲過程,它是一個預先編制一系列SQL語句,存在數據庫里面,不用臨時現編語句,這跟我們現在看到智能合約很類似。其實從多個渠道驗證智能合約并不是特別新的概念。存儲過程是管理人執行,智能合約同樣,但智能合約權限管理是一個最大的問題,很多的漏洞都是在權限管理的時候出現,對用戶的地址、對數據擁有者沒有做嚴格驗證導致它出現問題。

  智能合約的安全性分析

  智能合約本質是計算機程序,計算機程序就是代碼,只要是代碼就會大概率出現漏洞。

  來看幾個案例,4月22日美圖合約漏洞導致價值歸零,4月24日SMT智能合約類似的漏洞被黑客利用。這是一個很嚴重的問題,因為普通代碼的問題,可能丟失數據、可能造成崩潰,但智能合約的漏洞被利用,造成的是最直接的經濟損失。

  今年年初,我們看到新加波科研工作者對以太坊上的智能合約做了細致分析,主要是對漏洞進行分析,設計了合約漏洞的形式化驗證方法,設計了合約漏洞的檢測工具,并在Github上開源。

  按照它的分析,大致分成三類:一是貪婪型,有進無出型,相當于以太幣鎖定在合約上,永遠無法取出;二是揮霍型,任何人都可以得到合約中的以太幣;三是自殺型,任何用戶都可以終止該合約。

  研究人員對幾萬個合約進行了分析,實驗結果顯示69%的合約存在問題,最大99%都存在問題。就是一小段代碼,框出來了,如果用安全加值就不會溢出。但是開發者沒有正確采用,它用了一個簡單的沒有考慮它可能會有溢出的可能,帶來了問題,導致后門被利用,漏洞被利用帶來了很大的危害。這就是重入攻擊,類似還有重放攻擊、短地址攻擊。

  這個問題我們必須得解決,其實有這樣一些可能的思路,可以將合約安全性問題得到顯著改善:首先是檢測,檢測包括靜態形式化檢查和驗證機制、動態分析以及模糊測試技術。還有一個思路是對整個鏈的設計,從新的角度考慮,功能分層,包括對操作系統分裝,這兩種角度可以同時發力,共同努力讓代碼質量有一個提升。

  來具體談談檢測技術,這個技術在智能合約里有廣泛的應用前景,叫CFI,最早在CCS2005提出,并被廣泛應用于安全漏洞分析理論研究之中。前面文章我們發現的一些漏洞是由于底層EVM自身執行機制的問題導致代碼的非正常跳轉,其實CFI可以防止這種重入的發生。CFI 核心思想是限制程序運行中的控制轉移,使之始終處于原有的控制流圖所限定的范圍內。

  最后再來看一些常見的測試,比如模糊測試,通過對目標系統提供非預期的輸入,不正常的輸入看輸出是不是有問題,有的時候靠異常的輸入來考驗程序。在這種情況下,模糊測試是比較好的手段,針對智能合約可以有另外模糊系統,在另外層面完成合約執行,提高效率,分析結果看會不會發現隱藏的漏洞。

  剛才講代碼層的措施,從整個鏈的設計角度,看是否可以對安全性有所增強。這里面主要提出了鏈結構分層,底層區塊鏈就做關鍵數據存儲和研究,其他復雜業務在鏈外進行操作。

  從這些分層結構,我們可以得到一些啟發:首先鏈上的合約邏輯復雜性會大大降低,鏈上的代碼本身不會特別的復雜,代碼越簡單出現漏洞可能性越小,因為漏洞往往都是很復雜的流程,把復雜過程放到鏈下處理,關鍵數據存儲再用鏈上合約,這是一個我們能想象到的,從結構的角度來解決安全性的問題。

我們的優勢:

專注區塊鏈系統開發,多年互聯網系統軟件開發經驗

  1、我們能定制開發:我們了解市場上的所有的熱門案例、熱門模式,不單單是單一的鏈世界,譬如:網易星球、布洛克城、UFO鏈、淘優樂等多種區塊鏈系統,我們都能為您定制開發。

  2、我們有成熟案例:關于區塊鏈系統,我們有成熟案例,包括區塊鏈商城、區塊鏈挖礦、區塊鏈積分、區塊鏈游戲、區塊鏈分銷排位等案例。

  3、百余人技術團隊:設立專門的區塊鏈研發項目組,技術團隊,專門服務于區塊鏈項目開發,我們有成熟案例,包括區塊鏈商城、區塊鏈挖礦、區塊鏈積分、區塊鏈游戲、區塊鏈分銷排位等。

  我司承接各種熱門系統開發,以太坊開發,區塊鏈、虛擬幣平臺、330游戲、釋放分紅系統、全返系統、公排系統、報單系統、商家入駐、新微商系統、共享紙巾系統區塊鏈挖礦系統區塊鏈商城系統區塊鏈公排系統分銷分紅返利系統等等,您有想法,我有技術,期待您的聯系!

文章標簽:
文章評論:

專業的游戲開發/系統開發、品牌設計/網站建設,選仟源!

選擇專業的企業服務公司,服務更靠譜!

立即點擊咨詢>
客服圖標
客服圖標
118旺角心水论坛