驗證軟件功能介紹
01
Beosin-VaaS的業務邏輯驗證軟件,是一款用來檢測智能合約上層業務邏輯漏洞的軟件。
基于合約的白皮書,軟件利用形式化方法,首先對單個函數進行屬性的描述,在對單個函數進行屬性的驗證并通過后,基于這些已驗證屬性,抽取出高層的狀態屬性,進而對上層屬性進行自動推理和驗證,若屬性不滿足,則會返回一條反例路徑。
案例介紹
02
我們可以以下面這個案例來舉例說明。
中國企業數改專業委員會主任趙永亮:數字經濟將成為拉動經濟增長的一個重要引擎:金色財經現場報道,與時共創第二屆年度金色盛典12月26日在三亞舉行。中國企業數改專業委員會主任趙永亮現場進行“探索區塊鏈2021:未來與無限想象”主題演講指出,區塊鏈已經上升到國家戰略的高度,區塊鏈技術將會賦能大部分實體產業。未來一段時期,數字經濟將成為拉動經濟增長的一個重要引擎,各行業各領域數字化轉型步伐將大大加快。國家制定系列政策助力企業數字化轉型,培育發展產業區塊鏈平臺,加快傳統企業數字化轉型,打造“虛擬產業園”,發展“數改”下的新經濟。[2020/12/26 16:35:52]
AEX CMO 小鳳仙:支持交易所長遠發展的一個必要條件是中立不作惡原則:在XBIT算力存證舉辦的行業人物專訪中,AEX CMO小鳳仙表示,支持交易所長遠發展的一個必要條件是中立不作惡原則,對產品業務的不斷創新是其核心因素。同時,她認為社區運營體系及社區氛圍的搭建是非常重要的,為使社區能夠長期活躍,需要多樣的內容板塊,完善的激勵體系,再加上豐富的運營活動。
XBIT現已開啟猜幣價贏比特幣活動,本次活動共有五十家企業參與,百位大咖助力,百家媒體支持。[2020/4/14]
Dillon Chen:Edgeware可能成為波卡網絡第一個智能合約平臺:BiKi交易平臺與Polkadot(波卡)生態聯合舉辦的主題為“探究Polkadot生態的奧秘”AMA于2020年3月20日20點舉行,參與此次AMA的分別為波卡生態內五個項目,分別為Edgeware、Phala Network、LamianrChain、ChainX、Darwinia。
Edgeware聯合創始人及CEO Dillon Chen在此次AMA中表示:Edgeware很可能會成為波卡網絡上第一個智能合約平臺,我們的競爭優勢在于波卡區塊鏈互操作性、安全性、以及我們的WASM合約運行。[2020/3/20]
這里我們考慮進行一次眾籌,目標是在部署后deadline時間內,收集fundingGoal個以太幣。如果在該期間收集到相應數額個以太幣,則表明眾籌成功,在這種情況下,受益人可以提取資金。否則,將認為眾籌失敗,并允許用戶要求退款。眾籌合約本身繼承了token合約,并直接收集眾籌期間投入的所有資金。
Bleakley咨詢集團首席投資官Peter Boockvar:加密貨幣是一個巨大的泡沫,而且破滅正在來臨:Bleakley咨詢集團首席投資官Peter Boockvar認為加密貨幣是一個巨大的泡沫,而且破滅正在來臨:“當某種東西出現這樣的拋物線時,結局通常是回到拋物線開始的地方。”他認為,隨著全球利率的上升,加密貨幣的崩盤也將隨之而來,比特幣可能從目前水平下跌90%。[2018/1/22]
具體合約和函數說明
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()取出了所有的投資資金。
最終回到合約,我們發現,其實是由于用于投資的回調函數缺少了檢查當前事件是否超過了截止日期,進而導致的合約漏洞。
可以看到,在該例子中,所有的函數其實是滿足其自身的屬性并實現了相應的功能的,但是由于在合約之間、函數之間的調用和關聯關系,才導致出現了這樣一個漏洞。而該屬性驗證工具的作用也在于此,它能夠更加高效地發現邏輯屬性漏洞。
BTC一天振幅50個多點,簡直聞所未聞。恐慌貪婪指數跌到歷史低點,市場情緒恐慌到極點,三大平臺部分空單都被強行平倉止盈,在這種行情大平臺全部宕機,全倉模式的情況,大部分都是歸零,慘烈程度可想而知.
1900/1/1 0:00:00“微博最近跟中國版權保護中心合作引用的DCI體系,其實是用了區塊鏈的技術。”微博CEO王高飛在2018沃頓中美峰會上接受媒體采訪時這樣表示。王高飛稱,國內對于知識產權的保護在逐步提升.
1900/1/1 0:00:00近期的行情,再次證明了市場的反復無常,大盤好好的反彈走勢,卻在空頭的打壓下一朝破滅。這一輪反彈行情,從底部起來,沖擊9000美金關口,突破了3次才成功.
1900/1/1 0:00:00大家好,上次分享我們講解了區塊大小和出塊時間跟擴容的關系,我們特別的闡述了在區塊鏈的系統中這兩個變量是如何互動和制約的.
1900/1/1 0:00:00據英國《金融時報》,萬事達卡(MasterCard)近日表示“非常樂意見到”各國發行數字貨幣。亞太地區聯合主席AriSarker表示,如果政府打算發行數字貨幣,萬事達對數字貨幣會持更加積極的態度.
1900/1/1 0:00:00克雷格·賴特一直聲稱自己的是比特幣創造者“中本聰”。但由于他遲遲拿不出證實身份的有效證據,且行事風格惹怒了加密貨幣社區的眾多成員,因而飽受批評和質疑.
1900/1/1 0:00:00