對SUI合約安全性和生態系統挑戰的分析

進階12/17/2024, 5:30:04 AM
作為 Move 生態系統的重要成員,Sui 致力於為各種區塊鏈應用場景提供快速安全的交易服務。在本文中,Beosin 將幫助您了解 Sui 生態系統用戶和開發人員面臨的安全挑戰,並提供多年的安全審計經驗。

自八月以來,Sui 生態系統的發展迅猛。根據 DefiLlama 的數據,Sui 的總鎖倉價值已經超過了 10 億美元,在過去兩個月增長了 200%,目前在 Sui 上建立的去中心化交易所 Cetus 的交易量每天超過 1.6 億美元。

10月9日,SUI的本地USDC上线了主网,将继续吸引更多的资金进入SUI生态系统。作为Move生态系统的重要成员,SUI致力于为各种区块链应用场景提供快速安全的交易服务。

在本文中,Beosin將幫助您了解SUI生態系統用戶和開發人員面臨的安全挑戰,並具有多年的安全審計經驗。

合約安全

Sui使用Move作為智能合約的編程語言。Move旨在成為可執行的字節碼語言,具有內置的安全算法和字節碼驗證器,並在調用合約時使用靜態呼叫。

這個設計允許 Move 處理智能合約中常見的漏洞,例如重入攻擊、整數溢位、雙重支付和潛在的編譯器問題,但開發人員仍然有可能在合約開發中不經意地引入漏洞。為了應對這一情況,Beosin 在 2023 年推出了 Move Lint,一種靜態檢測工具,可以自動檢測合約中的潛在安全風險並找出漏洞。

除了檢測工具外,開發人員在開發Move合約時還需要特別注意以下安全問題,以提高安全性:

1)整數溢出

相比其他智能合约语言,Move 在执行整数计算操作时默认检查溢出问题,这可以避免大量的溢出问题,但仍需注意两点:

在Move語言中,位操作不會自動執行溢出檢查,因為位操作本質上是對數據進行位級操作,其行為與整數操作不同。

當 Move 的自動溢出檢查生效時,函數執行會拋出異常,如果設計不當,可能導致項目業務無法按預期執行,從而導致 DoS 攻擊。

2) 權限和存取控制

特權對象和特權函數調用的傳遞應該經過仔細驗證,因為這些函數和對象涉及資金安全。此外,需要檢查對象的類型,以確定它們是私有對象還是共享對象。如果一個對象從私有對象錯誤轉換為共享對象,未經授權的用戶可能能夠訪問該對象,構成潛在的安全風險。

開發人員可以使用 Move Prover 來驗證該程式是否執行明確的存取控制政策。例如,在 std::offer 中,我們可以看到當收件者不在白名單中時,函數被終止:

3)交易順序依賴問題

交易排序相依性(Transaction Ordering Dependence,簡稱TOD)是指合約的行為可能因交易執行的順序不同而產生不同結果,尤其在去中心化環境中,礦工或驗證者可以選擇如何排序交易。這可能帶來前套利攻擊等風險。

在SUI中,仍然由區塊生產者執行交易順序,因此,如果MOVE合約設計為依賴交易順序進行狀態更改,它們仍可能受到此問題的影響。

4) Gas consumption problem

在SUI鏈上,Move智能合約的Gas問題主要體現在合約執行所需的計算和存儲成本上。隨著合約複雜度和狀態變化的增加,Gas消耗也相應增加。開發者需要關注優化合約邏輯,減少不必要的計算和狀態更新,從而降低用戶的交易成本,特別是要避免合約中無法控制的迭代情況,這可能是由於Gas不足而無法正常執行業務。

5)計算精度

目前,Move 支持的數字類型為無符號整數,不支持浮點數,因此在除法運算期間,小數部分將被截斷並向下取整,這將導致不準確的計算結果,可能影響一些重要政策,導致收入損失,甚至成為安全漏洞。

針對這個問題,通常的緩解措施是擴大準確度,但需注意的是,當獲得最終結果時,需要恢復準確度。

6) 物件管理

在SUI區塊鏈上的Move智能合約中,對象管理是一個關鍵挑戰,涵蓋對象的生命周期、所有權、並發訪問、序列化和存儲成本的多個方面。開發人員需要精確管理對象的創建、更新和銷毀,以防止資源浪費和狀態不一致。同時,合理設計合約邏輯來控制對象的所有權和訪問權,以及處理多個用戶同時訪問同一對象的情況,這些都是確保智能合約安全和高效運行的重要因素。

7)業務邏輯設計和實現問題

例如,在Sui DeFi項目中實施閃電貸款,攻擊者可以使用閃電貸款進行價格操縱等大額資金攻擊。

在常見的AMM代幣交換功能中, 開發人員可以使用Move Prover驗證代幣數量是否正確變化:

例如,借貸協議應該在一系列存款、借款和提款之後始終得到充分的安全保障。在下單後,如果取消了鏈上永續合約交易協議的訂單簿,帳本等方面不應該有任何變化,需要由開發人員進行檢查和驗證。

SUI生態系統中的挑戰

目前,DeFi和SUI的Memecoins蓬勃发展,交易量和TVL吸引了爆炸性增长。随之而来,用户需要避免越来越多种类的欺诈和垃圾交易。

釣魚

今年,一個名為Suisses的空投詐騙在Sui Eco中出現,許多用戶的資產被盜取。當用戶連接到Suisses網站上的錢包並點擊Claim時,會出現一個轉賬請求,要求轉移用戶的資產。如果用戶簽署該交易,他們將發現他們錢包裡的所有資產都已被轉移。

由於 SUI 的特性:一切皆為客體,不僅用戶錢包中的代幣是客體,NFT 也是客體,用戶參與 DeFi 挖礦、流動性抵押和其他憑證也是客體。如果發生釣魚攻擊,駭客可能一次性轉移 SUI 生態系統內用戶的所有資產。

代幣詐騙

Sui 生態系統中存在許多假幣和陷阱。尤其是在 Sui 生態系統中交易 memecoins 時,用戶可能會意外被捕捉到。

在 SUI 創建代幣時,如下所示,黑客可以定義與熱門或主要代幣相同的圖標和名稱,使它們對一般用戶來說難以辨識。因此,使用者在購買代幣時需要檢查代幣的數據格式是否正確。

此外,黑客還可以向代幣合約添加一個DenyList功能,使購買該代幣的用戶無法出售,從而導致用戶損失。

MEV 挑戰

MEV代表最大可提取價值。MEV最初是指礦工可提取價值,比特幣網絡中的礦工通過重新排序區塊中的交易,獲得超出區塊和網絡費用的獎勵。MEV與區塊鏈網絡的類型無關。MEV存在於所有區塊鏈中,Sui也不例外。

Sui使用獨角鯨作為記憶池,將未完成的交易分配給節點,並使用Bullshark算法作為共識引擎來排序交易。

對於SUI交易的排序規則是基於燃氣費用。此外,由於SUI採用了並行和順序相結合的交易執行方案,因此共享相同AMM交易池狀態的交易只能按順序執行。因此,三明治攻擊/預先交易是可行的。攻擊者可以通過更高的燃氣費用發動三明治攻擊,使參與DeFi交易的用戶遭受損失。

免責聲明:

  1. 本文轉載自[beosin]. 所有版權屬於原作者 [beosin]. 如果對此轉載有異議,請聯繫Gate 學習團隊會儘快處理。
  2. 責任聲明:本文所表達的觀點和意見僅代表作者個人觀點,並不構成任何投資建議。
  3. 文章的翻譯是由gate.io Learn團隊進行的。未經許可,禁止複製、分發或剽竊翻譯後的文章。

對SUI合約安全性和生態系統挑戰的分析

進階12/17/2024, 5:30:04 AM
作為 Move 生態系統的重要成員,Sui 致力於為各種區塊鏈應用場景提供快速安全的交易服務。在本文中,Beosin 將幫助您了解 Sui 生態系統用戶和開發人員面臨的安全挑戰,並提供多年的安全審計經驗。

自八月以來,Sui 生態系統的發展迅猛。根據 DefiLlama 的數據,Sui 的總鎖倉價值已經超過了 10 億美元,在過去兩個月增長了 200%,目前在 Sui 上建立的去中心化交易所 Cetus 的交易量每天超過 1.6 億美元。

10月9日,SUI的本地USDC上线了主网,将继续吸引更多的资金进入SUI生态系统。作为Move生态系统的重要成员,SUI致力于为各种区块链应用场景提供快速安全的交易服务。

在本文中,Beosin將幫助您了解SUI生態系統用戶和開發人員面臨的安全挑戰,並具有多年的安全審計經驗。

合約安全

Sui使用Move作為智能合約的編程語言。Move旨在成為可執行的字節碼語言,具有內置的安全算法和字節碼驗證器,並在調用合約時使用靜態呼叫。

這個設計允許 Move 處理智能合約中常見的漏洞,例如重入攻擊、整數溢位、雙重支付和潛在的編譯器問題,但開發人員仍然有可能在合約開發中不經意地引入漏洞。為了應對這一情況,Beosin 在 2023 年推出了 Move Lint,一種靜態檢測工具,可以自動檢測合約中的潛在安全風險並找出漏洞。

除了檢測工具外,開發人員在開發Move合約時還需要特別注意以下安全問題,以提高安全性:

1)整數溢出

相比其他智能合约语言,Move 在执行整数计算操作时默认检查溢出问题,这可以避免大量的溢出问题,但仍需注意两点:

在Move語言中,位操作不會自動執行溢出檢查,因為位操作本質上是對數據進行位級操作,其行為與整數操作不同。

當 Move 的自動溢出檢查生效時,函數執行會拋出異常,如果設計不當,可能導致項目業務無法按預期執行,從而導致 DoS 攻擊。

2) 權限和存取控制

特權對象和特權函數調用的傳遞應該經過仔細驗證,因為這些函數和對象涉及資金安全。此外,需要檢查對象的類型,以確定它們是私有對象還是共享對象。如果一個對象從私有對象錯誤轉換為共享對象,未經授權的用戶可能能夠訪問該對象,構成潛在的安全風險。

開發人員可以使用 Move Prover 來驗證該程式是否執行明確的存取控制政策。例如,在 std::offer 中,我們可以看到當收件者不在白名單中時,函數被終止:

3)交易順序依賴問題

交易排序相依性(Transaction Ordering Dependence,簡稱TOD)是指合約的行為可能因交易執行的順序不同而產生不同結果,尤其在去中心化環境中,礦工或驗證者可以選擇如何排序交易。這可能帶來前套利攻擊等風險。

在SUI中,仍然由區塊生產者執行交易順序,因此,如果MOVE合約設計為依賴交易順序進行狀態更改,它們仍可能受到此問題的影響。

4) Gas consumption problem

在SUI鏈上,Move智能合約的Gas問題主要體現在合約執行所需的計算和存儲成本上。隨著合約複雜度和狀態變化的增加,Gas消耗也相應增加。開發者需要關注優化合約邏輯,減少不必要的計算和狀態更新,從而降低用戶的交易成本,特別是要避免合約中無法控制的迭代情況,這可能是由於Gas不足而無法正常執行業務。

5)計算精度

目前,Move 支持的數字類型為無符號整數,不支持浮點數,因此在除法運算期間,小數部分將被截斷並向下取整,這將導致不準確的計算結果,可能影響一些重要政策,導致收入損失,甚至成為安全漏洞。

針對這個問題,通常的緩解措施是擴大準確度,但需注意的是,當獲得最終結果時,需要恢復準確度。

6) 物件管理

在SUI區塊鏈上的Move智能合約中,對象管理是一個關鍵挑戰,涵蓋對象的生命周期、所有權、並發訪問、序列化和存儲成本的多個方面。開發人員需要精確管理對象的創建、更新和銷毀,以防止資源浪費和狀態不一致。同時,合理設計合約邏輯來控制對象的所有權和訪問權,以及處理多個用戶同時訪問同一對象的情況,這些都是確保智能合約安全和高效運行的重要因素。

7)業務邏輯設計和實現問題

例如,在Sui DeFi項目中實施閃電貸款,攻擊者可以使用閃電貸款進行價格操縱等大額資金攻擊。

在常見的AMM代幣交換功能中, 開發人員可以使用Move Prover驗證代幣數量是否正確變化:

例如,借貸協議應該在一系列存款、借款和提款之後始終得到充分的安全保障。在下單後,如果取消了鏈上永續合約交易協議的訂單簿,帳本等方面不應該有任何變化,需要由開發人員進行檢查和驗證。

SUI生態系統中的挑戰

目前,DeFi和SUI的Memecoins蓬勃发展,交易量和TVL吸引了爆炸性增长。随之而来,用户需要避免越来越多种类的欺诈和垃圾交易。

釣魚

今年,一個名為Suisses的空投詐騙在Sui Eco中出現,許多用戶的資產被盜取。當用戶連接到Suisses網站上的錢包並點擊Claim時,會出現一個轉賬請求,要求轉移用戶的資產。如果用戶簽署該交易,他們將發現他們錢包裡的所有資產都已被轉移。

由於 SUI 的特性:一切皆為客體,不僅用戶錢包中的代幣是客體,NFT 也是客體,用戶參與 DeFi 挖礦、流動性抵押和其他憑證也是客體。如果發生釣魚攻擊,駭客可能一次性轉移 SUI 生態系統內用戶的所有資產。

代幣詐騙

Sui 生態系統中存在許多假幣和陷阱。尤其是在 Sui 生態系統中交易 memecoins 時,用戶可能會意外被捕捉到。

在 SUI 創建代幣時,如下所示,黑客可以定義與熱門或主要代幣相同的圖標和名稱,使它們對一般用戶來說難以辨識。因此,使用者在購買代幣時需要檢查代幣的數據格式是否正確。

此外,黑客還可以向代幣合約添加一個DenyList功能,使購買該代幣的用戶無法出售,從而導致用戶損失。

MEV 挑戰

MEV代表最大可提取價值。MEV最初是指礦工可提取價值,比特幣網絡中的礦工通過重新排序區塊中的交易,獲得超出區塊和網絡費用的獎勵。MEV與區塊鏈網絡的類型無關。MEV存在於所有區塊鏈中,Sui也不例外。

Sui使用獨角鯨作為記憶池,將未完成的交易分配給節點,並使用Bullshark算法作為共識引擎來排序交易。

對於SUI交易的排序規則是基於燃氣費用。此外,由於SUI採用了並行和順序相結合的交易執行方案,因此共享相同AMM交易池狀態的交易只能按順序執行。因此,三明治攻擊/預先交易是可行的。攻擊者可以通過更高的燃氣費用發動三明治攻擊,使參與DeFi交易的用戶遭受損失。

免責聲明:

  1. 本文轉載自[beosin]. 所有版權屬於原作者 [beosin]. 如果對此轉載有異議,請聯繫Gate 學習團隊會儘快處理。
  2. 責任聲明:本文所表達的觀點和意見僅代表作者個人觀點,並不構成任何投資建議。
  3. 文章的翻譯是由gate.io Learn團隊進行的。未經許可,禁止複製、分發或剽竊翻譯後的文章。
即刻開始交易
註冊並交易即可獲得
$100
和價值
$5500
理財體驗金獎勵!
It seems that you are attempting to access our services from a Restricted Location where Gate.io is unable to provide services. We apologize for any inconvenience this may cause. Currently, the Restricted Locations include but not limited to: the United States of America, Canada, Cambodia, Cuba, Iran, North Korea and so on. For more information regarding the Restricted Locations, please refer to the User Agreement. Should you have any other questions, please contact our Customer Support Team.