比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads
首頁 > SAND > Info

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

Author:

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

驗證軟件功能介紹

01

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

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

案例介紹

02

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

另一個Offchain Labs地址于5小時前從幣安轉出約50萬ARB:6月19日消息,據Lookonchain監測,另一個與Offchain Labs有關的地址0x011d于5小時前從幣安轉出約50萬ARB(約合501K美元)。

該地址在過去2個月中已經積累了1080萬枚ARB(約合1080萬美元)

此前消息,Offchain Labs過去7日從幣安轉出約722萬枚ARB。[2023/6/19 21:47:34]

美SEC成立了一個專注于加密貨幣公司的新辦公室:金色財經報道,Bitcoin Archive在社交媒體上稱,美國證券交易委員會成立了一個新的辦公室,重點關注加密貨幣公司。

金色財經此前報道,美國證券交易委員會(SEC)主席Gary Gensler支持美國商品期貨交易委員會(CFTC)對比特幣進行監管。[2022/9/9 13:19:40]

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

倫敦將展出世界上第一個加密雕塑:據artdaily消息,英國將展出世界上第一個貨幣致力于發展貨幣生態系統的公共雕塑。據悉雕塑是一個高三米的銅像,由多幣種加密錢包和混合交易Eidoo委托,當代藝術家Federico clapi創作。[2018/6/19]

具體合約和函數說明

03

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

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

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

美國財政部長表示將于20國集團合作 防止加密貨幣成為下一個匿名瑞士銀行賬戶:美國財政部長史蒂文·姆努欽(Steven Mnuchin)表示,他將與20國集團合作,防止比特幣等加密貨幣成為下一個匿名瑞士銀行賬戶的。姆努欽還表示,他一點也不擔心俄羅斯可能會使用加密貨幣,幫助銀行避免國際制裁。據報道,普京總統的顧問曾表示,對俄羅斯的制裁已經造成了俄羅斯對加密貨幣的需求,官員們擔心加密貨幣會在2018年出現擴張。[2018/1/13]

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

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

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

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

結果分析和說明

04

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

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

P1:

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

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

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

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

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

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

Tags:CHESAFE加密貨幣UNDTranchessSAFEARN幣加密貨幣是不是騙局投訴電話SquadFund

SAND
專訪8位區塊鏈專家 他們說出了自己最看好的應用方向-ODAILY_NFT

導讀 區塊鏈——不可變的、加密的、分散的——分布式賬本,可以使每個中心化流程、活動和組織都完全自治。這意味著我們可以消除中介和權威,從而精簡每一項商業、政府和非營利活動.

1900/1/1 0:00:00
從MOV穩定幣的設計哲學看基于四種因子的宏觀調控-ODAILY_OWN

1月15日比原鏈發布了《MOV穩定金融體系白皮書》,首創了三級清算體系并引入風險債券的清算方式、全天候風險度量體以及基于馬爾科夫鏈的風險評級模型.

1900/1/1 0:00:00
FinLab AG 和 Block.one 宣布投資 1 億美元,開發區塊鏈操作系統EOS.IO-ODAILY_LOC

德國金融科技孵化器FinLabAG和Block.one近日宣布,成立合作基金,投資1億美元,用于區塊鏈操作系統EOS.IO的開發中。EOS.IO是基于以太坊ERC20標準驅動的區塊鏈操作系統.

1900/1/1 0:00:00
用區塊瀏覽器輕松查看鏈上留言-ODAILY_以太坊

區塊鏈的本質是分布式賬本,當我們進行轉賬交易的時候,還可以順便“留言”。因此,我們可以借助轉賬附言的功能,在區塊鏈上永久留下你要表達的訊息,該記錄將會記錄在所有節點的“賬本”上,同時具有“不可篡.

1900/1/1 0:00:00
二線幣繼續領漲,大餅破位上沖-ODAILY_CTO

1.今日市場概況 今日市場總市值為2562億美元,相比昨日增加1.7%。交易量為1722億美元,相比昨日增加26%.

1900/1/1 0:00:00
區間上破,多頭小碎步縮量上攻,警惕階梯出貨行為-ODAILY_BCH

合約交易-必備 這兩天的行情走勢讓大家非常的折磨,從本月6號起行情基本就進入了一個高位盤整的行情,而說這個位置高,是因為本輪行情的起漲點在6700一線,從低點看上來有3000點的多頭行情.

1900/1/1 0:00:00
ads