【鏈得得獨家】專訪智慧合約專家Peter Vessenes:如何應對區塊鏈技術安全難題?
圖/ New Alchemy創始人、比特幣基金會創始主席Peter Vessenes
The DAO攻擊事件,一直被稱為史上最大的智慧合約漏洞事件。
2016年6月,黑客攻擊the DAO轉走了300多萬ETH資產,當時價值為6千萬美元,兩年後,若以2018年6月的ETH價格計算,其價值已達到了15億美元。
事實上,比特幣基金會創始主席Peter Vessenes在該事件發生前,就發表了一篇有關具體安全性弱點的論文,指出像DAO這樣的智慧合約完全建立它們的程式碼之上,一旦釋出在以太坊區塊鏈上,DAO的程式碼將無法修改。
隨著The DAO “重入式攻擊”事件的發生,Peter Vessenes越發意識到智慧合約安全對區塊鏈產業發展的重要性。他選擇在2016年成立New Alchemy,一家專門提供代幣化服務和軟體的企業,同時也會提供智慧合約安全相關的諮詢服務。
近日,鏈得得App獨家專訪了Peter Vessenes,就“目前全球智慧合約安全的現狀”、“交易吞吐量、安全性和去中心化的三角要如何權衡”、“熊市下安全技術公司該如何生存”等問題進行探討。
鏈得得App瞭解到,New Alchemy早期的開發專案包括為Bittrex建立安全儲存客戶代幣的錢包以及大量的智慧合約軟體系列。Peter Vessenes稱:“如今,通過New Alchemy的軟體交易的電子加密貨幣價值數十億美元,並且沒有一美元丟失過。”
智慧合約有所進步,但整體創新速度變慢
“在某些程度上來講,現在的智慧合約比兩年前進步很多了。” Peter Vessenes表示:“但是不幸的是,人們害怕做一些新嘗試,在我看來這是比較失望的結果,因為我們希望在智慧合約上看到更多的創新,而不是保守地、更少地用智慧合約。”
正如Peter Vessenes所言,現在很多人都知道怎樣讓ERC20智慧合約更安全地執行,但是隻有非常少的人在真正研究怎麼樣將Solidity程式語言應用在區塊鏈技術行業上。
他坦言:現在做“類似基於Solidity的語言”這樣應用的人越來越少,創新的速度變得越來越慢。即使市場上的交易體系相比之前是較完善的,很多軟體工程師也知道怎麼樣去設計一個安全的智慧合約或安全的程式。但是很多工具,並沒有讓這些工作變得更簡單,或者讓更多的開發者更容易地去完成這樣的事情。
這跟很多現實的因素掛鉤,智慧合約的設計門檻相對較高、容錯率較差,隨著技術的不斷完善,創新成本也變得越來越高。
智慧合約有一個最基本的特點,就是一旦公佈後,就會無條件一直執行下去。這種效能讓它本身非常強大,同時也非常危險。因為一旦智慧合約執行中涉及到一些負面的事情,無法關閉停止它的運作。
因此,寫智慧合約的程式這件事變得非常嚴謹,Peter笑談就像給太空飛船或火箭寫程式一樣,在設計網頁程式或前端程式的時候,錯誤率是在每1000行程式碼裡面有30個錯誤。但是像NASA應用在太空技術、航天技術裡的程式裡,他們的錯誤率在每1000行程式碼裡面只能有0.1個錯誤。
熊市之下:縮減部門、關注研發
從今年一季度後,整個區塊鏈的市場陷入熊市,且一直沒有回暖的跡象。Peter Vessenes認為在這樣熊市的市場裡,大家應該縮減開支,真正把錢花在更創新、更優秀的技術應用和開發上。
他很遺憾告訴鏈得得App表示:在短時間內整個安全性相關的市場會比較小,所以在New Alchemy,已經把安全部門和技術服務的部門合併成一個部門。
“我願意為那些現在願意在熊市的情況下需要擴張的公司提供區塊鏈安全方面、或更多技術上的解決或服務,幫助他們度過區塊鏈的寒冬,或者讓他們加入我們的團隊來。因為從長期的角度看,如果區塊鏈公司做了很多新技術開發,會變得非常有價值。”
Peter Vessenes認為大家應該把注意力轉移到積極的一面去,需要看到更多技術上面的創新,可以達到更多、更高量的交易頻率和速度。
他談到:很多區塊鏈的專案,不論是有幣區塊鏈,還是無幣區塊鏈都面臨著處理速度和安全性的問題。對於高速率的處理,現有的側鏈技術,可以支援非常高效的交易速度和過程。當然,最終側鏈上面的資訊和所有的交易都會被放到主鏈上進行記錄。
另一方面,智慧合約雖很難做到無懈可擊,但也在不斷研發新的技術避免成為黑客攻擊的物件。目前市場上常用的解決方案是採用更嚴格的程式碼審計和形式化驗證。
Peter Vessenes認為程式碼審計是一個非常有用的工具,可以讓所有的開發者很快速地檢查他們所寫的程式碼裡的錯誤。
但是形式化驗證不是一個很好的解決方案,因為形式化驗證會限制開發者在形式化設計的框架下面進行技術上的開發和應用。不管形式化驗證這套解決方案有多好,如果它很難大規模被程式設計師採用,比如如果只有10個程式設計師能採用這樣形式,整個體系是沒有價值的。
大部分的形式化驗證只被非常小的一部分的開發者進行使用,因為他們都非常聰明,但對於普通的程式設計師來講是非常大的挑戰。當少數的人去推廣形式化驗證,這對整個行業而言極難大規模複製化發展。
(本文首發鏈得得App)