比特幣行情 比特幣行情
Ctrl+D 比特幣行情
ads

ALI:智能合約中的競爭條件和搶跑交易漏洞:全面概述

Author:

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

智能合約是一項創新技術,徹底改變了我們進行交易的方式。這些合約是自動執行的,可以編程為在滿足某些條件時執行特定操作。然而,與任何技術一樣,智能合約也不能幸免于漏洞的困擾。

競爭條件和搶跑交易漏洞是智能合約面臨的兩個最常見的問題。當兩個或多個進程嘗試同時訪問和操作相同的數據時,會發生競爭條件。這可能會導致意外結果,并可能被攻擊者利用來竊取資金或造成其他類型的損害。另一方面,當攻擊者能夠在交易執行之前看到交易并可以操縱區塊鏈以發揮其優勢時,就會發生搶跑交易漏洞。

了解這些漏洞對于任何使用智能合約的人來說都是至關重要的。在本文中,我們將全面概述智能合約中的競爭條件和搶跑交易漏洞。我們將探討這些漏洞的工作原理、它們的潛在影響以及可以采取哪些措施來減輕它們的影響。在本文結束時,讀者將更好地了解與智能合約相關的風險以及如何保護自己免受這些漏洞的影響。

背景

近年來,智能合約因其無需中介即可自動執行交易的能力而越來越受歡迎。這些合約是自動執行且不可變的,使其成為供應鏈管理、投票系統和金融交易等用例的理想選擇。

然而,智能合約也不能幸免于漏洞,兩個最常見的漏洞是競爭條件和搶跑交易漏洞。當兩個或多個交易同時執行時,就會發生競爭條件,并且它們的執行順序會影響合約的結果。當礦工或交易者利用價格差異在合法用戶之前執行交易時,就會發生搶跑交易。

以太坊信標鏈今日凌晨短暫中斷后恢復,開發人員正在調查原因:金色財經報道,數據提供商Beaconcha.in顯示,以太坊信標鏈今日凌晨遭遇了短暫中斷,從epochs 200,552到epochs 200,554,收到的證明數量急劇下降。第一個有問題的epochs大約發生在北京時間今日04:13,網絡數據顯示,該問題在大約半小時內得到解決。以太坊核心開發人員表示,他們仍在調查導致此次中斷的原因,并將盡快向社區報告。[2023/5/12 14:58:45]

競爭條件和搶跑交易可能會導致財務損失和其他負面后果,因此開發人員必須了解這些漏洞并采取措施減輕它們的影響。在以下部分中,我們將全面概述智能合約中的競爭條件和搶跑交易,包括預防示例和最佳實踐。

智能合約中的競爭條件

競爭條件是智能合約中常見的漏洞。當多個交易嘗試同時修改同一狀態變量時,會發生競爭條件。當這種情況發生時,不清楚哪個交易將首先處理,智能合約的結果變得不可預測。

競爭條件漏洞的一個示例是重入攻擊。在此攻擊中,惡意參與者利用競爭條件在合約函數完成其先前執行之前多次調用該函數。這可能會導致意外行為,例如攻擊者能夠提取比他們有權提取的更多的資金。

土耳其慈善機構Ahbap已籌集約200萬美元加密貨幣捐款:2月13日消息,土耳其歌手Haluk Levent旗下慈善機構Ahbap已在Avalanche、BNB Chain和以太坊鏈上籌集大約200萬美元的加密貨幣捐款。當地交易所Paribu也在為兩個非營利組織籌款。其中Avalanche原生代幣AVAX占Ahbap地址收到的總捐款的55.56%,價值約110萬美元;42.65%來自各種穩定幣。(CoinDesk)

據金色財經此前報道,Etherscan數據顯示,北京時間2月11日13:49:23,vitalik.eth (Vitalik Buterin以太坊地址)向被標記為“Ahbap Yard?m / Earthquake Support”的地址捐贈99枚ETH(約15萬美元)。[2023/2/13 12:02:48]

競爭條件漏洞的另一個示例是時間戳依賴攻擊。在此攻擊中,惡意參與者通過操縱交易的時間戳來利用競爭條件,使其以與預期不同的順序進行處理。這可能會導致意外行為,例如攻擊者能夠在應該首先處理的另一個交易之前執行函數。

為了防止智能合約中的競爭條件,開發人員應使用鎖定機制來確保一次只有一個交易可以修改狀態變量。他們還應該避免使用時間戳或區塊號作為隨機性的來源或在合約邏輯中做出決策。

LooksRare原生代幣LOOKS將于2023年1月2日13:00解鎖總供應量的3.75%:12月29日消息,據TokenUnlocks數據,LooksRare原生代幣LOOKS將于2023年1月2日13:00進行一次小額解鎖,解鎖量為3750萬枚LOOKS,占總供應量(10億)的3.75%,約合552萬美元。解鎖的代幣中,包括團隊2500萬枚,財庫1250萬枚。[2022/12/29 22:14:45]

此外,開發人員應仔細檢查其合約代碼是否存在任何潛在的競爭條件,并徹底測試其合約,以確保它們免受這些類型的攻擊

智能合約中的搶跑交易

搶跑交易是一種攻擊,當惡意行為者在區塊鏈上確認交易之前觀察交易并試圖利用它來為自己謀利時,就會發生這種攻擊。這種類型的攻擊在涉及大量資金的去中心化金融應用程序中尤其普遍。

搶跑交易可以通過多種方式發生。一種常見的方法是通過使用監控內存池的機器人,內存池是等待添加到區塊鏈的未經確認的交易列表。當機器人檢測到它認為會導致有利可圖的交易時,它將嘗試以更高的gas費用執行類似的交易,以確保首先確認。

另一種可以發生搶跑交易的方式是使用基于時間的攻擊。在這種情況下,攻擊者將利用他們對網絡延遲的了解來提交將在受害者交易之前確認的交易。這種類型的攻擊更難執行,但成功后的結果可能是毀滅性的。

FTX前COO:不知道任何轉移客戶資金的事情,個人資產都在FTX上:11月15日消息,針對加密 KOL Autism Capital 發布的關于包括 FTX 前 COO Constance 在內的前員工的各種傳聞,FTX 前 COO Constance 進行了回應與澄清,其表示:

看到我們的前雇員在推特上散布關于我個人的不真實的謠言,最終還是感到很傷心和難過。我和這個事件沒有關系,在上周二之前我也毫不知情。我所做的只是盡力在事后提供幫助,我不想放棄我在過去 3 年中為之付出的公司,所以我真的試圖拯救它。

我想澄清的是:

1/我不知道任何轉移客戶資金的事情,也不了解 Alameda 的交易及其與 FTX 的安排。

2/我負責 BD,增長和市場營銷,直到最后一刻,我和我的團隊都在用自己的名譽來捍衛 FTX,看到這樣的事情發生,我們感到非常失望。

3/我和 Sam 沒有任何私人關系,在過去 3 年,我非常努力地建設公司和團隊,我不認為這次的失敗是由于我們的交易所業務沒有做好。

4/Conch Shack 是公司財產,不是送給我的,我和其他員工一起住在 Conch Shack。

5/像你們很多人一樣,我所有的資產都在 FTX 上,現在都沒了,我在其他交易所沒有任何資產。

6/我非常傷心,而且我個人也被員工們分享的這些不實之詞傷害了,我會暫停發布新的工作招聘貼,直到完全恢復過來,但我還是會在其他人 DM 我時把簡歷發送過去。[2022/11/15 13:07:46]

搶跑攻擊在智能合約中可能特別具有破壞性。例如,攻擊者可以在去中心化交易所上提前進行交易,并操縱交易的資產價格,使其對他們有利。或者,攻擊者可以提前運行與智能合約交互的交易,并利用代碼中的漏洞竊取資金。

EZ Blockchain利用電網未充分利用的能源擴展其挖礦設施:金色財經消息,EZ Blockchain通過利用電網上未充分利用的能源,將其在喬治亞州的挖礦設施從8兆瓦擴展到16兆瓦。(prnewswire)[2022/7/7 1:58:11]

為了降低搶跑交易攻擊的風險,開發人員可以利用各種技術,例如使用承諾-揭示方案或實行智能合約執行延遲。此外,用戶可以通過使用混合器等隱私增強工具或單純地等待他們的交易得到確認然后再執行其他交易來保護自己。

競爭條件和搶先交易漏洞示例

競爭條件和搶先交易漏洞是智能合約中的常見問題。以下是說明如何利用這些漏洞的一些示例:

競爭條件示例

考慮一個允許用戶相互轉移代幣的智能合約。合約有這么一個的函數,它接受兩個參數:接收者的地址和要轉移的代幣數量。以下是該函數的工作原理:

檢查匯款人是否有足夠的代幣進行轉移從匯款人的余額中減去轉賬金額將轉賬金額添加到收款人的余額中現在,假設兩個用戶,Alice和Bob,想要同時將代幣轉移給對方。Alice調用該函數時,Bob的地址作為接收方,100個代幣作為金額。同時,Bob以Alice的地址作為接收方,以50個代幣作為金額調用該函數。

根據處理這些交易的順序,合約的狀態最終可能會不一致。例如,如果首先處理Alice的交易,她的余額將減少100個代幣,而Bob的余額將增加50個代幣。但是,如果先處理Bob的交易,他的余額將減少50個代幣,而Alice的余額將增加100個代幣。這種不一致是一個競爭條件漏洞。

在這個簡單的合約中,有一個公共計數器變量,可以通過調用“increment”函數來遞增。如果兩個或多個交易嘗試同時增加計數器,則可能會出現競爭條件,并且計數器的最終值可能不是原來的值。

搶跑交易示例

搶跑交易是一種攻擊,惡意用戶觀察區塊鏈上的待處理交易,并試圖利用它們為自己謀取利益。下面是一個示例:

假設Alice想從去中心化交易所購買10ETH。她向交易所提交一筆交易,gas價格為10Gwei。不久之后,Bob在內存池中看到了Alice的交易,并決定也購買10ETH。然而,Bob設定了更高的gas價格20Gwei,希望他的交易能在Alice之前得到處理。

如果Bob的交易在Alice的交易之前處理,他將能夠以比Alice更低的價格購買10ETH。這是因為交易所的價格預言機根據最新交易更新其價格。如果首先處理Alice的交易,價格就會上漲,鮑勃最終將為相同數量的ETH支付更多費用。這是一個搶跑交易漏洞。

這些示例說明了如何在智能合約中利用競爭條件和搶跑交易漏洞。開發人員必須了解這些問題并采取措施緩解這些問題。

在這個合約中,用戶可以通過調用“buy”函數并提供正確數量的以太幣來購買東西。價格是通過調用'setPrice'函數來設置的。如果搶跑者看到價格即將上漲并迅速提交交易以拉高價格,他們可以在其他用戶有機會做出反應之前以舊的價格購買該商品。

防止競爭條件和搶跑交易漏洞

防止智能合約中的競爭條件和搶跑交易漏洞對于確保區塊鏈網絡的安全性和完整性至關重要。以下是一些可以實施的最佳做法,以緩解這些風險:?

使用互斥鎖:互斥鎖可用于通過確保一次只有一個線程可以訪問共享資源來防止競爭條件。這意味著,如果事務已在執行,則嘗試訪問同一資源的后續事務將被暫停,直到第一個事務完成。盡量減少外部調用的使用:外部調用可能會引入搶跑交易漏洞,因為它們允許攻擊者在原始交易完成之前監控區塊鏈網絡并執行交易。為了降低這種風險,開發人員應盡量減少外部調用的使用,并確保它們得到適當的保護。實現延遲機制:延遲機制可用于通過在事務廣播時間和執行時間之間引入延遲來防止搶跑交易漏洞。這可能會使攻擊者更難搶跑交易,因為他們不知道何時執行交易。實施訪問控制:訪問控制可用于防止未經授權訪問智能合約的行為,并降低搶跑交易漏洞的風險。開發人員應確保只有授權用戶才能訪問和執行智能合約上的交易。執行廣泛的測試:應執行廣泛的測試,以識別和解決智能合約中的任何潛在競爭條件或搶跑交易漏洞。這可以包括單元測試、集成測試和壓力測試。

互斥鎖示例——在此合約中,doSomething函數檢查資源當前是否已鎖定,如果已鎖定,則拋出錯誤。如果資源已解鎖,它將鎖定標志設置為true,執行關鍵部分,然后將鎖定標志設置返回false。

通過實施這些最佳實踐,開發人員可以幫助防止智能合約中的競爭條件和搶跑交易漏洞,并確保區塊鏈網絡的安全性和完整性。

結論

智能合約徹底改變了我們進行交易的方式,尤其是在加密貨幣領域。但是,它們有自己的一組漏洞,例如競爭條件和搶跑交易。攻擊者可以利用這些漏洞來獲得不公平的優勢,甚至從毫無戒心的用戶那里竊取資金。

開發人員必須了解這些漏洞,并在開發過程中采取措施緩解這些漏洞。這包括在將智能合約部署到區塊鏈之前對其進行徹底的測試和審計。

此外,用戶在與智能合約交互時應謹慎行事,并且僅使用經過信譽良好的第三方安全公司徹底審查和審計的智能合約。

隨著區塊鏈和加密貨幣世界的不斷發展,所有利益相關者都必須保持警惕并積極主動地解決這些安全問題。通過共同努力,我們可以為所有用戶創建一個更安全、更值得信賴的生態系統。

Tags:ALIICEALICELICNeuralink V2DICEalice幣價格blockchainresearchandapplication

比特幣價格今日行情
binance:CZ對CFTC起訴的回應:我們不回避挑戰

今天,商品期貨交易委員會提出了一項令人意外和失望的民事投訴,盡管我們與商品期貨交易委員會合作了兩年多。經初步審查,起訴似乎對事實陳述不完整,我們不同意起訴中對許多問題的定性.

1900/1/1 0:00:00
ORL:萬物研究所:OpenAI創始人要向10億人空投的Worldcoin是什么?

隨著OpenAI的ChatGPT發布后掀起了一波AI熱潮,但與此同時OpenAI創始人Sam正在謀劃另一起也會發生在上半年的Crypto熱潮:WorldCoin.

1900/1/1 0:00:00
NFT:Punk6529長推:重新審視人工智能與NFT市場的關系

注:原文來自@punk6529發布長推,MarsBit整理編譯。本系列專注人工智能和加密貨幣,為易于理解,目前不得不將這一主題劃分為多個不同,但更簡單的分支內容進行討論.

1900/1/1 0:00:00
穩定幣:新設計:基于ordinals的銘文穩定幣系統

1前言 穩定幣一直是數字貨幣的一個重要的需求點,錨定法幣的穩定幣,由于背后抵押物存在風險,例如近期usdc的不穩定,硅谷銀行的破產,直接導致了usdc脫錨.

1900/1/1 0:00:00
ARB:「DeFi 樂土」Arbitrum 終發幣,誰能乘風而起?

本周Arbitrum的代幣ARB空投即將正式解鎖,如果不出意外的話,這將為Arbitrum生態注入超過20億美元的附加流動性.

1900/1/1 0:00:00
USD:ARB鏈衍生品項目 JungleFi 激勵測試交互教程

寫在前面 對于衍生品項目來說會是未來一個極為重要的賽道,這是我非常關注的,對于幣圈發展的大致規律來說,每一輪的牛熊交替都會伴隨一些賽道項目的此起彼伏.

1900/1/1 0:00:00
ads