4月23日,一個名字叫 AkuDreams 的 3D 動畫 NFT 項目在荷蘭的一個拍賣會上,遭遇了 智能合約系統(tǒng)的Bug 慘案。原因是該智能合約系統(tǒng)有代碼 bug。投標(biāo)者的 11539.5 枚加密貨幣——以太幣被永久鎖定,且無法退款。而且該加密貨幣價值 3400 萬美元,約 2.2 億元人民幣。
加密貨幣開發(fā)商 foobar 發(fā)推表示,鎖定的以太幣無論是個人還是開發(fā)商,都將無法取出。
同時,該開發(fā)商還貼出了故障代碼:
從上述的代碼來看,該智能合約代碼存在兩個 bug。
第一個是用戶完成投標(biāo)后,狀態(tài)會設(shè)為 1;
第二是競標(biāo)失敗后退款條件狀態(tài)為0.因此用戶無法申請退款,開發(fā)團(tuán)隊也無法取款,因為 refundProgress ≥ totalBids,totalBids 是賣出量,而代碼應(yīng)該針對是的報價人數(shù)——對應(yīng) bidIndex。(該說法是開發(fā)商說的)。
Akutars 表示將努力為那些打算以低于最終價格 0.5 個以太幣的價格投標(biāo)的通證持有者發(fā)放資金。并且還表示,投放漏洞的人并非惡意,在他們進(jìn)行深入調(diào)查并取得所有權(quán)后,對方便很快解除了對漏洞的封鎖。
最后Akutars還在@_MouseDev、@NftDoyler 和@AnonymiceNFT的幫助下,寫了一份新的造幣合同,并請求大家積極參與測試。
雖然加密貨幣還沒有被世界大多數(shù)國家支持,甚至有些國家還禁止使用加密貨幣,但是這些加密貨幣所使用的的技術(shù),例如區(qū)塊鏈技術(shù),它的安全性和穩(wěn)定性已經(jīng)受到了質(zhì)疑。這些系統(tǒng)性的功能測試、業(yè)務(wù)邏輯測試、壓力測試等等無疑都是是非常重要且需要認(rèn)真對待的。比如:
運行環(huán)境測試:考慮各種應(yīng)用場景和運行環(huán)境的變化下,對加密貨幣的影響。
節(jié)點管理和測試:加密貨幣運轉(zhuǎn)的時候,所有的事情幾乎都要節(jié)點參與,網(wǎng)絡(luò)通信、邏輯運算、交易、數(shù)據(jù)驗證等,而加密貨幣系統(tǒng)一般是由多個節(jié)點組成協(xié)同工作,因此節(jié)點屬性及對節(jié)點的管理至關(guān)重要。
連接測試:因為加密貨幣應(yīng)用的大多數(shù)都是區(qū)塊鏈技術(shù),并且號稱去中心化,因此在系統(tǒng)的各個節(jié)點的連通上需要重點測試。
共識算法的測試:正所謂“無共識,不區(qū)塊”,是加密貨幣運行的基礎(chǔ)——區(qū)塊鏈的核心屬性,共識機(jī)制不僅決定記賬節(jié)點如何打包出塊,還需要提供系統(tǒng)能正常工作的容錯機(jī)制,并且保證各共識節(jié)點對交易執(zhí)行結(jié)果達(dá)成一致。
智能合約測試:合約的本質(zhì)是由語言寫出來的一些代碼,通過區(qū)塊鏈平臺提供的執(zhí)行環(huán)境,運行其中的代碼邏輯,達(dá)到預(yù)期目標(biāo)。某些安全場景下,能否凍結(jié)或者銷毀合約,使之不能再被調(diào)用執(zhí)行,在需要使用時,又能解凍。平臺支持的合約語言越豐富,用戶實現(xiàn)功能選擇的余地就越多,對項目盡早落地能有更好的保障。
同步性測試:在環(huán)境正常時,區(qū)塊鏈各節(jié)點數(shù)據(jù)都應(yīng)一致,同步特性至關(guān)重要。
存儲方面的測試:可以從賬戶狀態(tài)和存儲介質(zhì)對區(qū)塊鏈的存儲進(jìn)行功能和穩(wěn)定性測試。
更多關(guān)于軟件測試培訓(xùn)的問題,歡迎咨詢千鋒教育在線名師,如果想要了解我們的師資、課程、項目實操的話可以點擊咨詢課程顧問,獲取試聽資格來試聽我們的課程,在線零距離接觸千鋒教育大咖名師,讓你輕松從入門到精通。