比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads
首頁 > 以太坊 > Info

一個案例說明高層屬性形式化驗證-ODAILY_DEF

Author:

Time:1900/1/1 0:00:00

驗證軟件功能介紹

01

Beosin-VaaS的業務邏輯驗證軟件,是一款用來檢測智能合約上層業務邏輯漏洞的軟件。

基于合約的白皮書,軟件利用形式化方法,首先對單個函數進行屬性的描述,在對單個函數進行屬性的驗證并通過后,基于這些已驗證屬性,抽取出高層的狀態屬性,進而對上層屬性進行自動推理和驗證,若屬性不滿足,則會返回一條反例路徑。

案例介紹

02

我們可以以下面這個案例來舉例說明。

《華爾街日報》:幣安的財務狀況仍然是“一個謎”:金色財經報道,根據《華爾街日報》最近的一篇報道,盡管幣安最近努力提高透明度,但它的財務狀況仍然是個謎。??本周早些時候,審計公司 Mazars 發布了一份“審計”報告,指出該交易所的儲備已完全抵押。中心化交易所的用戶持有約 97 億美元,比特幣儲備率達101%。然而,上市公司會計監督委員會 (PCAOB) 前首席審計師Douglas Carmichael表示,Mazars報告實際上并未回答有關資金是否得到充分抵押的問題。?Mazars也沒有表達“保證結論”,這意味著這些數字可能不完全準確。沒有關于交易所總資產和總負債的信息。?[2022/12/12 21:37:45]

Higer:DeFi是公鏈遺失的最重要的一個拼圖:2020年8月13日晚,Cocos-BCX 中文社區發起“Cocos-BCX 熱點 AMA 之 DeFi 狂想曲”主題討論活動。區塊鏈研習社創始人 Higer 發表“DeFi 是公鏈遺失的最重要的一個拼圖”主題分享,其從公鏈發展簡史、公鏈發展困局、DeFi 是公鏈最后的希望和公鏈的 DeFi 生態發展思路四方面闡述了 DeFi 對公鏈發展的重要性,并表示 DeFi 的三駕馬車是穩定幣、借貸、交易。而穩定幣已經取得廣泛共識,公鏈最值得做的是借貸和交易。[2020/8/13]

分析 | 本輪上漲只是一個震蕩區間中的反彈:在本期金色財經的《幣情觀察室》上,針對近期主流幣的上漲的問題,姥爺解盤表示:本輪主流幣的上漲原因在于,主流幣連續幾個月下跌之后產生了技術上的抵抗情緒,核心根源在于成交量和波動率的下降。

由此,在利好之下有了EOS,ETH的上漲。XRP是新低后圓弧底具備超跌反彈的潛質,有望成為次龍頭。目前可以說是存量博弈,是歷史存量離開市場后的再度抄底,視為一個階段底部的信號。

但我認為只是一個震蕩區間中的反彈而已,但主流幣已經存在中期層面的支撐。因為市場處在一個存量之中,所以在短期上漲之后,我建議是分批落袋為安,留5成倉位看未來空間。[2019/9/18]

這里我們考慮進行一次眾籌,目標是在部署后deadline時間內,收集fundingGoal個以太幣。如果在該期間收集到相應數額個以太幣,則表明眾籌成功,在這種情況下,受益人可以提取資金。否則,將認為眾籌失敗,并允許用戶要求退款。眾籌合約本身繼承了token合約,并直接收集眾籌期間投入的所有資金。

聲音 | 趙長鵬:加密已經是一個廣泛的術語:趙長鵬在推特上稱,加密已經是一個廣泛的術語。互聯網是騙局嗎?不是。互聯網上存在騙局嗎?存在。但互聯網本身并不是一個騙局,對許多事情而言都很有用。[2018/12/1]

具體合約和函數說明

03

我們可以進一步得知,該項目包含了一個Crowdsale合約,繼承一個token合約。

在眾籌合約中,構造函數會初始化設置眾籌的截止時間deadline,并添加眾籌目標額度fundingGoal,并在合約中硬編碼受益人的地址beneficiary;

然后會提供回調函數,提供給用戶來參與投資,在開放眾籌期間,只要未達到目標額度,就允許所有用戶進行投資;

提供一個checkGoalReached()函數,如果達到眾籌目標,或者達到了截止時間,就可以修改狀態標識,關閉眾籌;

然后會提供響應的transfer()和issue()函數接口,用于在眾籌分配代幣,以及能夠進行代幣的交易

提供一個safeWithdrawal()函數,如果眾籌成功,受益人能夠取出投資人的錢;

最后還提供一個safeClaimRefund()退款接口,如果眾籌失敗,用戶可以通過該接口完成撤資。

結果分析和說明

04

我們這里已經完成了單個函數的屬性驗證,可以確認單個函數的功能是符合其屬性規范的,在此基礎上,編寫上層屬性進行驗證。

以下,我們編寫的上層屬性有兩條,一條是p1,含義是總是能夠滿足,一旦調用了safeWithdrawal()或者safeClaimRefund(),另一個函數就不能夠被成功調用。

P1:

得到輸出結果,可以看到屬性2是滿足的,而屬性1并不滿足。我們查看一下反例的可視化路徑,可以看到,確實存在一條路徑,safeWithdrawal()函數和safeClaimRefund()函數可以先后被執行成功。

回到合約中,根據所提供的反例路徑,可以看到,發生該情況是調用回調函數一段時間后,當前時間超過了眾籌的截止時間,眾籌的資金總量沒有達到目標fundingGoal,在checkGoalReached()關閉眾籌之后,此時的合約狀態,用戶是可以調用safeClaimRefund選擇退款的。

但是我們可以從結果中發現,此時依舊可以調用成功回調函數投資,那么就出現了后面的狀態可能,在眾籌失敗之后,依舊有用戶有意或者無意參與了投資,導致投資的總額超過了目標。

此時,能夠再次調用checkGoalReached()函數結束眾籌,改變狀態標識,最終受益人能夠在按原始需求,眾籌失敗的情況下,且有用戶選擇退款之后,依舊調用checkGoalReached()取出了所有的投資資金。

最終回到合約,我們發現,其實是由于用于投資的回調函數缺少了檢查當前事件是否超過了截止日期,進而導致的合約漏洞。

可以看到,在該例子中,所有的函數其實是滿足其自身的屬性并實現了相應的功能的,但是由于在合約之間、函數之間的調用和關聯關系,才導致出現了這樣一個漏洞。而該屬性驗證工具的作用也在于此,它能夠更加高效地發現邏輯屬性漏洞。

Tags:EFICHEDEFSAFEDEFILANCER幣smartcontractschemecoinDEF幣Safe PEPE Moon

以太坊
疫情在左,減半在右,礦業未來值得思索-ODAILY_HUT

在疫情前,比特幣的減半行情最為眾人所關注。比特幣每4年減半如同憲法一樣被寫在代碼里,其本身并無不確定性,變量產生于人們對它的預期.

1900/1/1 0:00:00
投入千余人,落地超過250個企業級應用,IBM希望用區塊鏈滿足商業場景中的業務訴求-ODAILY_元宇宙

IBM作為Hyperledger的主要發起方,在食品安全、全球貿易供應鏈、金融、廣告出版等領域與合作方落地了超過250個企業級應用.

1900/1/1 0:00:00
幣看BitKan獲1000萬美元B輪融資,建立內容付費社區、拓展海外業務-ODAILY_KAN

作者獲悉,數字貨幣資訊平臺幣看BitKan獲得B輪融資,金額為1000萬美元。本輪融資由中云輝資本領投,IDG資本和比特大陸跟投。融資方式為股權融資.

1900/1/1 0:00:00
突破這個價格,目標直沖 $12000-ODAILY_KET

無首先恭喜看了昨日推文的朋友,現貨期貨應當雙雙介入,目前就安心持有吧,等待接下來的多頭行情。今天周一,我們例行看一下btc在周線圖級別上的表現,價格收處了一根需求線以上且收盤價在中高位的pinb.

1900/1/1 0:00:00
比特幣持續區間震蕩,日內保持高拋低吸操作-ODAILY_比特幣

竹本無心,卻節外生枝,藕雖有孔,出污泥而心不染,不是所有的喜歡都能如愿以償,但只要熱愛終會有所回報,就算星星碎掉,溢出來的光也很亮眼.

1900/1/1 0:00:00
北美區塊鏈網絡Aion/The OAN啟動社區賞金計劃-ODAILY_AIO

北美知名區塊鏈基礎設施OAN開放應用公網,日前宣布啟動社區賞金計劃,推動其在中國的社區發展和建設。該賞金計劃名為“開放共創社區賞金計劃”,活動期截至3月20日.

1900/1/1 0:00:00
ads