基於UTXO的公鏈更安全

nt1979發表於2021-09-09

 袁夢

今年以來,多個基於ERC20的智慧合約被曝存在安全漏洞,除了已經造成巨大影響的BEC、SMT、BAI等,仍有多個存在安全隱患的智慧合約代幣依然在交易。巴位元此前也做過特別報導,詳情請戳

雖然事後交易所立刻暫停交易和提幣,專案方立馬升級智慧合約,造成的損失和市場恐慌等一系列反應卻不可追回,在程式設計師小哥背鍋的同時,我們也可以思考頻出的漏洞是否有其深層次的原因?以太坊智慧合約是否本身就存在著風險?重要的token資產是否適合建立在ERC20體系基礎之上?

目前基於以太坊的Token合約風險主要有兩種:

一是自己寫的智慧合約出現漏洞, 被人攻擊。以太坊作為一個記錄DAPP執行結果的區塊鏈, 對於基於合約層的智慧合約,需要依賴開發者自己來保障其安全邏輯,一旦合約編寫者一時粗心,便可能造成一失足成千古恨的後果。

例如:2018年4月22日BeautyChain出現重大安全漏洞,價值幾乎歸零,BEC憑空蒸發了10億美元,事後證明是程式設計師忘記做溢位檢查。

二是合約呼叫的底層合約出問題,間接產生風險。合約層是一臺封裝了可以執行圖靈完備指令碼語言的虛擬機器,可以透過編寫指令碼語言作為智慧合約部署到以太坊區塊鏈中。

例如:去年,一個叫做“devops199”的開發者觸發了以太坊Parity錢包漏洞,漏洞出在錢包呼叫的一個library(以太坊的底層庫函式,可以理解成公用合約)上。因為以太坊的合約呼叫是把地址當指標使用,每次執行使用者編寫的智慧合約都要呼叫library。“devops199”把底層庫函式破壞的同時相當於把所有合約的指標都破壞了,從而使得所有錢包裡的資金被永久凍結。

微博研發副總經理Tim Yang曾表示,

“為什麼以太坊比較容易出安全問題?以太坊只是一個記錄DAPP執行結果的區塊鏈,其本身並沒有加密貨幣複式記賬所需的UTXO模型。重要的TOKEN資產本身是需要貨幣級別的安全程度,以太坊目前的設計更適合遊戲積分之類的合約執行結果。” 他還強調,重要的TOKEN資產不適合構建在ERC20體系基礎之上

那加密貨幣複式記賬所需的UTXO模型的區塊鏈專案有哪些,在安全性上又有哪些優勢?

比特幣的UTXO模型經過了多年較為穩定的執行和測試,效能和安全性都有較大的優勢。而以太坊的賬戶模型理解起來比較容易,但是需要考慮更多複雜的臨界情況來防止雙花攻擊和重播攻擊。

另外做資產交易的量子鏈和比原鏈也採用了UTXO模型。其中使用擴充套件UTXO模型BUTXO的比原鏈,把資產作為新的UTXO形式進行互動,不僅支援無限種類的資產,而且擁有了圖靈完備的智慧合約。同時杜絕了以太坊帳戶模型所存在的資料溢位,或者各種其它漏洞的出現,兼具靈活性和可控性。

對比以太坊,比原鏈的優勢有三點:

第一,比原鏈天然支援多資產,在比原鏈上的每一筆資產都是一個UTXO, 而不是用智慧合約來模擬的。據比原鏈開發團隊朱益祺表示,比原鏈交易的設計思路其實更接近比特幣,即一切都基於UTXO。每一筆比原鏈上的資產UTXO都是由圖靈完備的智慧合約守護。在比原鏈的設計中賬戶只駐留在本地,唯一上鍊的就是智慧合約,而且每一筆交易都會自動生成一個新的智慧合約。

第二,比原鏈的髮型資產的職能合約是天生自帶的,不像以太坊上都是由開發者編寫的,水平參差不齊的話,則會有安全風險。比原鏈的合約呼叫是建立智慧合約的時候就將呼叫合約作為子合約加入進來,以後不管呼叫的合約模版是否更改或出現漏洞,都不會影響所有已經完成的智慧合約。

第三,比原鏈的合約呼叫更安全,呼叫以太坊的智慧合約更像是呼叫一個映象,而不是呼叫一個底層合約的最新狀態

  • 由於以太坊的合約呼叫是把地址當指標使用,一旦以太坊的底層庫函式即公用合約呼叫出錯,所有合約的指標都將被破壞。

  • 作為管理成千上萬種資產的公鏈,比原鏈在合約呼叫的設計中對指標合約的使用進行了規避。比原鏈的合約呼叫是建立智慧合約的時候就將呼叫合約作為子合約加入進來,當被呼叫的智慧合約的底層模板沒有漏洞時,則不會影響已經完成的智慧合約。

比原鏈的目標是做資產管理的專用型公鏈,比起近期漏洞頻出的以太坊智慧合約,比原鏈有希望在打造世界級的安全區塊鏈平臺的路上走得更遠,同時也需要時間的驗證。




來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4822/viewspace-2804195/,如需轉載,請註明出處,否則將追究法律責任。

相關文章