以太幣交易所 以太幣交易所
Ctrl+D 以太幣交易所
ads

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

Author:

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

驗證軟件功能介紹

01

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

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

案例介紹

02

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

Shardeum創始人:下一個Web3浪潮將顛覆一些行業:金色財經報道,Shardeum創始人Nischal Shetty在社交媒體上稱,下一個Web3浪潮將顛覆一些行業,Play to Earn將是這樣的一個領域,中心化的P2E模式是有缺陷的。玩家沒有辦法知道他們是否在玩一個公平的游戲。而去中心化的P2E確保公平游戲。

此前報道,Shardeum正尋求以2億美元估值進行2000萬至3000萬美元融資。[2022/8/24 12:45:26]

百度副總裁馬杰:希壤是一個負6.0版的元宇宙產品:金色財經報道,12月25日消息,百度副總裁馬杰接受經濟觀察網采訪時表示,希壤是一個負6.0版的元宇宙產品,也就是說,直到6年后,這款產品才會完善,屆時才會正式上線。虛擬世界產生眩暈感等問題近幾年解決不了,但他相信5年后,會達到一個理想效果。就像希壤現在是一個仍然很粗糙的半成品,但6年后,他相信會變得完整。[2021/12/25 8:03:09]

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

火幣研究院馬天元:DEFI應用的集成產品將是下一個階段的流量入口:10月22日,火幣大學《全球區塊鏈領導者課程(GBLP)》第五/六期金融模塊繼續開課。火幣研究院首席技術研究院馬天元以《DeFi解析》的主題為學員們帶來分享。

馬天元表示,DeFi本身是多項創新分布式應用的集合,包括借貸、DEX、穩定幣、衍生資產和預言機,這五個賽道相互緊密聯系,缺一不可,在過去半年中取得了極高的熱度,其中最重要的兩個賽道是DEX和借貸。當區塊鏈應用越來越多,DEFI應用的集成產品將是下一個階段的流量入口,比如收益聚合器、交易聚合器,而在借貸領域,聚合借貸、匯聚流動性的產品,也是創業者可以思考的方向。[2020/10/22]

具體合約和函數說明

MoneyGram董事長:與Ripple的合作第一季度是一個相對安靜的季度:在2020年第一季度的財報電話會議上,MoneyGram董事長兼首席執行官Alexander Holmes表示,與Ripple (XRP)的合作,從真正將任何特別新的東西推向市場或擴大服務的意義上來說,這是一個相對安靜的季度。隨著Ripple繼續擴展服務并轉移一些東西,我們會繼續與Ripple保持聯系,并真正弄清楚Ripple想要什么,產品的外觀和感覺以及Ripple如何將其推向各個市場。因此,我認為它會隨著時間而改變。我認為我們所做工作的結果將按季度和按月變化。但是Ripple是一個很好的合作伙伴關系,對我們所做的事情絕對感到滿意。展望未來,Holmes預計,該合作伙伴關系將從“新服務和新走廊”的試驗中獲得收益。(cointelegraph)[2020/5/4]

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:CHEFUNDUNDGOALCHES價格PAWS FundCompound USD CoinGOAL價格

幣安下載
衍生品不會影響市場的既有格局,BTC劍指10000-ODAILY_BTC

春節前,市面上充斥著各種類型對2020年行情預測的文章,各類文章中意見不一。特別是關于減半行情,樂觀的、悲觀的說法眾說紛紜,僅從春節前后的行情來看,減半效應影響顯著,BTC在一月份整體的漲幅已經.

1900/1/1 0:00:00
BTC突破癥結在于量能,減半途中遇攪局者-ODAILY_BTC

2020年第一個加密貨幣減半已經完成,是基于Mimblewimble協議開發的加密貨幣BEAM.

1900/1/1 0:00:00
BTC反轉否定,多頭上攻,異常放量許是主力出貨-ODAILY_BTC

合約交易-必備 BTC反轉否定多頭上攻,異常放量許是主力出貨 內容摘要: BTC日線反轉信號被否定,多頭繼續發力上攻發量拉升幅度不強.

1900/1/1 0:00:00
BSV暫時熄火,“末日戰車”卻轟響了油門-ODAILY_BSV

短時間內BSV應該是停止瘋狂了,不過事情尚未結束。這次BSV的拉盤,始終是建立在澳本聰能提供自證身份的“郁金香信托”秘鑰的話題上,而在拉盤之后,澳本聰申請了庭審延期,并且獲得了批準,可以于202.

1900/1/1 0:00:00
你是在低位埋伏,還是高位追漲?-ODAILY_比特幣

在12日凌晨比特幣的價格再次站上了10000美元,這是繼2月9日比特幣第一次站上10000美元大關經歷短暫下探后,再次站上10000美元大關.

1900/1/1 0:00:00
1000點戰爭行情后續如何搞,沒上車的怎么辦?-ODAILY_BTC

今天終于騰出空來給大家寫行情策略,簡單回顧,一周前發文跟大家提到小陽春行情,目前價格8300點,距離7200點差不多正好1000點,這一段行情其實是有點運氣成分在,感謝“特不靠譜”先生.

1900/1/1 0:00:00
ads