基於UTXO的公鏈更安全
袁夢
今年以來,多個基於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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 基於Java語言構建區塊鏈(四)—— 交易(UTXO)Java區塊鏈
- Java安全之基於Tomcat的通用回顯鏈JavaTomcat
- 區塊鏈安全:基於區塊鏈網路攻擊的方式原理詳解區塊鏈
- 比原鏈設計思考: 擴充套件性UTXO模型套件模型
- “區塊鏈+司法” 讓“鏈上法院”更安全、可信、高效區塊鏈
- ---慢更-基於 go 的 IM 聊天Go
- 來BSN,體驗更輕鬆的公鏈應用開發
- 區塊鏈安全:實現公鏈雙花攻擊的多種方法區塊鏈
- 最新太陽能汽車《Lightyear One》公佈 更安全更環保更長續航里程!
- 基於DevOps的容器安全實踐dev
- 美國銀行公佈基於區塊鏈的外部資料驗證系統專利區塊鏈
- UTXO 匯出格式設計
- 基於Liuli追更&閱讀小說
- 基於區塊鏈的隱私計算區塊鏈
- zOffice | 新版本釋出,辦公更高效,資訊更安全
- 基於kerberos的hadoop安全叢集搭建ROSHadoop
- 基於Kerberos的大資料安全方案ROS大資料
- 阿里雲CDN不止於加速:基於https**演算法構建安全資料傳輸鏈路阿里HTTP演算法
- 螞蟻雙鏈通:基於區塊鏈的供應鏈協作網路區塊鏈
- 基於CA簽名的使用者公鑰管理
- IBM推出區塊鏈雲服務,可打造更安全網路IBM區塊鏈
- 構建基於 Ingress 的全鏈路灰度能力
- 關於Fabric聯盟鏈和幾個公有鏈以及基於DHT技術的HoloChain的測試AI
- 基於施工現場安全的安全帽識別系統
- 公鏈開發,搭建公鏈要什麼條件
- 更安全的隨機數生成隨機
- 更安全的Web通訊HTTPSWebHTTP
- LLM-文心一言:UTXO
- iOS端基於RSA公鑰加密和解密iOS加密解密
- 基礎問題不簡單 | 怎麼合理使用值物件,讓你的程式碼更清晰、更安全?物件
- 基於 Traefik 的激進 TLS 安全配置實踐TLS
- 案例詳解 | 基於Embedding的特徵安全計算特徵
- 基於區塊鏈技術的反向保理模式供應鏈金融研究區塊鏈模式
- 關於區塊鏈技術安全隱患的解決方案區塊鏈
- 愛立信:更智慧、更快速、更安全的“員工”的崛起
- 【深度學習-基於Tensorflow的實戰】公開課實況深度學習
- WebAuthn預覽 – 基於公鑰的免密認證登入Web
- WebAuthn預覽 - 基於公鑰的免密認證登入Web