比特幣行情 比特幣行情
Ctrl+D 比特幣行情
ads
首頁 > 以太坊 > Info

比特幣:一個案例說明高層屬性形式化驗證-ODAILY

Author:

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

驗證軟件功能介紹

01

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

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

案例介紹

02

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

OpenAI推出新的網絡爬蟲工具GPTBot,計劃推出下一個模型GPT-5:金色財經報道,人工智能公司OpenAI推出了新的網絡爬蟲工具“GPTBot”,據稱該工具有可能用于改進未來的ChatGPT模型,計劃推出下一個模型GPT-5。[2023/8/8 21:31:34]

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

持有至少1000枚BTC的地址數達一個月低點:金色財經報道,數據顯示,持有至少1000枚BTC的比特幣錢包地址數量為2018,達一個月低點。[2023/6/11 21:29:42]

具體合約和函數說明

03

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

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

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

比特幣轉折點:牛市觸頂前一個月的價位:華爾街知名策略機構Fundstrat在4月13日報告中指出一個比特幣值得關注的價位——觸頂前一個月的價格水平。回顧2014年比特幣牛熊轉換行情,發現價格觸頂前的一個月貢獻了比特幣90%的漲幅,而隨后的熊市是跌倒了觸頂前一個月的價格水平后止跌反轉,2017年的牛市行情最后一個月時間貢獻了比特幣70%的漲幅,而比特幣在今年的2月6號事實上一度已經跌倒了5600區間,區別在于2014年跌倒這一水平,用了405天,而今年只用了52天。[2018/4/16]

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

巴菲特首次談論比特幣:遠離比特幣 認為它具有巨大內在價值就是一個笑話:比特幣的定義非常復雜。簡而言之,它是一種虛擬貨幣,在匿名和不受監管的環境下,在網絡中被創造、持有和交易。理論上講,這些沒有物理實體的數字“貨幣”的數量是有限的,但目前還沒有達到上限。據市場觀察網報道,他表示:“我不能對比特幣估值,因為它不是一種能產生價值的資產。”早在2014年時,比特幣的價值還遠低于當前水平,巴菲特就曾表示:“遠離比特幣,那只是一種幻覺。在我看來,認為它具有巨大內在價值的想法就是一個笑話。”[2017/12/28]

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

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

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

結果分析和說明

04

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

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

P1:

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

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

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

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

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

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

Tags:比特幣CHEUNDFUND比特幣最新消息中國Cheetah tokenPAWS Fundbefund

以太坊
SWAP:無縫利用預測分析與監控實現資產性能最大化-ODAILY

采集資產性能數據依舊面臨困難提到設備機器租賃,難免會想到業務優化與自動化的種種痛點:高昂的維護費用,高頻次的宕機,以及高效性能監控遇到的阻力等.

1900/1/1 0:00:00
以太坊:我們寧愿跟寒總搞機,也不愿跟詹總做AI-ODAILY

早上一看,行情是“突突突”往上漲,這個莊家估計是有強迫癥,高點嚴格控制在7999,一個小數點都不多.

1900/1/1 0:00:00
區塊鏈:香港保險業聯會:擬于今年推出香港首個以區塊鏈技術發展的電子化保單平臺-ODAILY

據香港《信報》4月9日消息,香港保險業聯會擬籌建一個利用區塊鏈技術的電子平臺,并計劃在今年第三或第四季度將其推出。該電子平臺旨在幫助車主查證所投保單的真偽.

1900/1/1 0:00:00
COMP:1.31比特幣行情分析:BTC震蕩盤整,蓄力備戰下一波-ODAILY

在投資道路上,不管你是新手還是老手,你都需要有自己的原則!一次投資就是一次經歷,把握住你的每次成長,俗話說:“吾日三省吾身”,只有學會總結,培養自己的原則,不讓自己迷失在投資的道路上.

1900/1/1 0:00:00
DEFI:2.19比特幣行情解析:大行情與波段行情你該如何抓住?-ODAILY

行情的變化,印證著一個慘痛的事實:我們在行情面前,是無能為力的,你根本無法逆勢而為。一旦你這樣對著行情做,后果便是現貨虧損,期貨爆倉.

1900/1/1 0:00:00
BSV:行情爆漲,如何應對?-ODAILY

1月14號的晚間,市場行情突然變得有些癲狂:BSV繼前幾日大漲后稍事調整,再次爆漲,并且幅度驚人。這次在BSV的領漲下,比特幣,BCH,以太坊,EOS等各大主流幣全部上漲.

1900/1/1 0:00:00
ads