ERC20智能合約安全問題在BCH上或許就不會存在
最近幣圈黑客事件接二連三的被爆出。先是4月22號,有黑客利用以太坊 ERC-20 智能合約中 BatchOverFlow 漏洞中數據溢出的漏洞攻擊了美鏈 BEC 的智能合約,從中盜取出大量的BEC貨幣,導致其幣價幾近歸零。而昨天SMT遭到與BEC類似的溢出攻擊,幸虧交易平台幾個小時後發現交易異常,及時關閉了充值提現,否則SMT很可能重蹈BEC的覆轍,也就是直接歸零。
同樣的問題反覆出現,就不得不考慮造成這些漏洞背後的原因了。經過對比發現,這兩次黑客事件選擇攻擊的幣都是基於以太坊網路的。而早在兩年前,就已經有一個項目,被黑客以相似的方式進行了攻擊,這就是大名鼎鼎的「the DAO」項目。要不然也不會出現現在的以太坊和以太坊經典。因此有業內人士認為,出現這種情況的主要原因,是因為目前的以太坊智能合約還不完善,還存在漏洞。
根據微博研發副總經理Tim Yang的解釋,之所以會出現這樣的問題時因為以太坊是一個記錄 dapp 執行結果的區塊鏈,與比特幣不同,其本身並沒有加密貨幣複式記賬所需的 UTXO 模型。以太坊自身的以太幣也是由balance來表示賬號餘額,這樣做的缺陷就是很容易遭受重放攻擊。雖然以太坊用了 nonce 等 tricky 的做法避免主鏈貨幣重放,但對於基於 dapp 的代幣,仍然需要依賴開發者自己來保障其安全邏輯。採用複試記賬的UTXO則所有的轉賬需要檢查輸入來源,如果這個來源已經被使用過一次,則表示這次轉賬是一個雙花嘗試,而比特幣最主要的架構設計邏輯比如PoW以及長鏈勝出就是用於防止雙花攻擊。因為以太坊本身的智能合約就是有缺陷的,當通過它來構建其他代幣的時候這樣問題依然是存在的。所以,Tim Yang認為以太坊目前的設計更適合遊戲積分之類的合約運行結果,重要的token資產不適合構建在 ERC20的基礎之上。因為它沒有任何貨幣安全設計方面的考慮。
眾所周知,比特幣現金在即將到來的硬分叉之後很有可能推出智能合約的功能。面對這樣的黑客事件,讓我們不得不思考如果是在比特幣現金智能合約上會怎樣呢?
我們都知道比特幣現金和比特幣一樣都是具有UTXO 模型的。而比特幣現金的發布代幣的標準是基於OP_GROUP的。OP_GROUP和ERC2.0本質上是UTXO模式和賬戶模式的區別。OP_GROUP的本質是使用一個特殊的標記對UTXO進行染色,但不會改變和控制UTXO。雖然相比之下,OP_GROUP沒有ERC2.0靈活,但是因為有UTXO模型的存在,從根本上保證了代幣的安全性。沒有了漏洞,像上面的那些黑客事件就不會再出現。這是比特幣現金優於以太坊的地方。
不要再問有了以太坊為什麼還要在比特幣現金上添加智能合約了,「安全」這個理由是不是已經很充分了?


TAG:鏈行家 |