買以太坊 買以太坊
Ctrl+D 買以太坊
ads

CHE:一個案例說明高層屬性形式化驗證-ODAILY_coincheck靠譜嗎

Author:

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

驗證軟件功能介紹

01

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

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

案例介紹

02

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

前Blockstream CSO:薩爾瓦多政府正運營一個Bitcoin Core完整節點:3月24日消息,前Blockstream首席戰略官Samson Mow(CSO)發布推文稱,薩爾瓦多政府目前正在運營一個Bitcoin Core完整節點和一個比特幣L2解決方案Liquid Network節點。[2022/3/24 14:15:28]

數據:ETH gas費達到一個月新低:12月12日消息,據Glassnode數據顯示,ETH上的gas費到達近一個月新低,為95.669GWEI。[2021/12/12 7:33:46]

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

具體合約和函數說明

03

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

數據:DEX聚合器在過去一個月中的交易量激增:12月6日消息,Dune數據顯示,DEX聚合器在過去一個月中的交易量激增。 1inch、0x和Paraswap三者的總交易量上周創下累計每周60億美元的歷史新高,自11月初以來增長了約50%。過去24小時去中心化交易所的交易量達到4 億美元,過去一周達到330億美元。(Cointelegraph)[2021/12/6 12:53:59]

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

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

聲音 | ZB.com CEO :只談銷毀不談回購,其實是一個誤區:2月22日20:00時,「BiYong 大咖直播」第16期在幣用百萬電報群同步展開,本期對話主題為「CMC年度報告TOP5的平臺幣ZB為何銷毀14億Token?」。ZB.com CEO 歐碼作為本期嘉賓出席,對話中,Omar Chen針對「團隊累計銷毀14億ZB」一事表示,大家都只看到銷毀,而沒有談回購,其實是一個誤區,合理的模型是應該按照從市場流通的token中,回購力度來計算市盈率才是最科學的。

“中幣是當前回購力度最大的主流平臺。從發行ZB以來,我們總回購2.69億,其中2019年回購1.45億ZB,截止上一次回購公告的時間(2019/12/7)流通量為4.68億。所以,總回購數占總流通的57%,如果按2019年的這種回購力度,我們(二級市場總的流通量4.68億)/1.45億,僅僅3.2年就可以全回購完了。這等于讓持有ZB的投資用戶享受到token通縮帶來的紅利,投資回報有保障。”[2020/2/22]

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

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

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

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

結果分析和說明

04

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

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

P1:

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

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

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

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

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

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

Tags:CHEFUNDSAFEFUNcoincheck靠譜嗎CITEX Fund TokenSAFEZONEfun幣目前行情

火幣網下載官方app
PLAT:PlatON創始人孫立林:「通用型公鏈」的證偽與分布式經濟體基礎設施的實踐-ODAILY_LAT價格

PlatON云圖首次社區議事會于2月29日晚20點正式啟動。在長約1個小時40分的直播過程中,PlatON團隊秉著公開透明的態度,熱情回答了來自于論壇、合作伙伴以及現場與會者的大量問題.

1900/1/1 0:00:00
數字貨幣:全球數字貨幣監管趨嚴,中國數字貨幣交易所海外牌照競逐提速-ODAILY_okex數字資產交易平臺

近日,國內交易所拓展海外布局消息頻傳。3月26日消息,據新浪財經報道,火幣集團CEO李林表示,火幣韓國站將于近期正式上線,韓國站將為韓國用戶提供合規的韓元數字資產交易服務,目前已接受預注冊.

1900/1/1 0:00:00
數字貨幣:2.3比特幣行情分析:減半行情是福是禍?-ODAILY_BTC

在已經過去的2019年我們在數字貨幣市場留下了興奮、喜悅、痛苦和淚水,或許還包含遺憾和惋惜。但2020已經到來,掃清昨日的光榮和陰霾,在深切反思后,2020年才是我們即將征伐的戰場.

1900/1/1 0:00:00
BTC:行情分析:春節前砸盤怎么辦?-ODAILY_比特幣

今天是周六,我們將會對每晚直播間提問用戶進行解答,挑選了針對性問題進行文字整理,不愿錯過的伙伴們請移步每晚直播間~~~問:昨日有大鯨賬戶在半個小時之內,連續22筆5萬余個BTC轉出.

1900/1/1 0:00:00
比特幣:行情分析:比特幣ATM、尼日利亞,加密資產的未來看非洲?-ODAILY_GMTK

摘要:大盤于今日凌晨快速下行,短時放量明顯,山寨幣跌幅較大,市場恐懼情緒開始籠罩,短時不確定性較大.

1900/1/1 0:00:00
SIS:加密貨幣初創公司Basis獲超1億美元融資,旨在開發穩定加密貨幣 -ODAILY_Symbiosis Finance

據Techcrunch報道,美國加密貨幣初創公司Basis宣布獲得1.33億美元融資。投資方包括Bain資本、谷歌風投、知名投資人AndreessenHorowitz以及來自中國的真格基金、策源.

1900/1/1 0:00:00
ads