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