新公鏈 Nibiru 主網將上線,解析其技術特點與安全開髮實踐

新手3/18/2024, 8:25:25 AM
Nibiru Chain作爲新興Layer1公鏈,專註於解決DeFi應用的安全性與速度,併已穫得融資超過2000萬美元。文章解析了Nibiru Chain的核心協議和生態髮展計畫,以及在開髮應用時需要註意的安全問題。

Layer1 公鏈 Nibiru Chain 在 2024 年 1 月底推出空投激勵,在經過一個月的空投活動後,其社區增長超過 3 倍,推特關註人數超過 50 萬。作爲融資超 2000 萬美元的新公鏈,Nibiru Chain 專註於解決 DeFi 應用的安全性與速度,將成爲 dYdX 的潛在競爭對手。

目前,Nibiru Chain 計畫在本周啟動其主網。作爲增長快速的 Layer1,Nibiru Chain 有何技術特點與競爭優勢?其生態項目的開髮需要註意哪些安全問題。今天 Beosin 將爲大家一一解析。

Nibiru Chain 協議解析

Nibiru Chain 主要以 DeFi 交易爲核心業務。其核心組件有以下 4 個:

1. Nibi-Perps

鏈上永續合約交易,允許用戶對 BTC、ETH 和 ATOM 等熱門加密資産進行最高 10 倍的杠桿交易。$NIBI 的質押者將擁有 Nibi-Perps 的治理權和交易手續費折扣。

2. Nibi-Swap

Nibiru 的自動化做市商協議,計畫支持 2 種 LP 池:穩定幣兌換池和普通的恆定乘積池。

3. $NUSD

Nibiru 生態的足額抵押穩定幣。Nibiru 計畫首先支持用戶使用 $USDC 和 $NIBI 來鑄造 NUSD, 兩者的具體比例由抵押品比率 (Collateral Ratio) 決定。如果 CR= 80%, 意味著鑄造 100 $NUSD, 用戶需要提供 80 $USDC 和等值 20NUSD 的 NIBI。

未來 Nibiru Chain 將支持更多類型的抵押物,目前 $NUSD 更像是 Cosmos 生態的 $FRAX。

4. Nibi-Oracles

Nibi-Oracles 是 Nibiru 的原生預言機解決方案,允許驗證者運營商積極參與預言機共識投票,將鏈下數據高保真地集成到區塊鏈上,提供來自外部 API 和智能合約的低延遲反饋。

在 2024 年,Nibiru Chain 將著眼於擴大生態繫統,其主要髮展包括多個計畫,如與多條鏈的主要 DeFi 項目整合、在一流的中心化交易所上市、完成併行樂觀執行,以及實現全麵的 EVM 兼容性。

安全開髮實踐

若在 Nibiru Chain 上開髮應用,其開髮流程和所需語言與在其它 Cosmos 繫公鏈幾乎完全相衕,遵循以下安全指南可以提高項目的合約安全性:

合約開髮安全

  1. 做好應對攻擊的準備

與使用 Solidity 開髮合約類似,開髮者都需要考慮到如何麵對攻擊和修覆漏洞。因此開髮者需要構建可升級的智能合約,併製定好風險應對方案。

  1. 註意地址的驗證標準化

任何有效的 Cosmos SDK 地址都有兩種有效的錶示形式:全小寫和全大寫,如:cosmos1uzwqa88hcqe5gs7u7lgjxekz7xc6sm0f7xwp6a 與

COSMOS1UZWQA88HCQE5GS7U7LGJXEKZ7XC6SM0F7XWP6A 都是衕一個地址,Nibiru 也是一樣。在處理合約中地址時,我們需要考慮地址的這一特性。

pub fn valid_transfer (

deps: DepsMut,

info: MessageInfo,

amount: Uint128,

dest: String ,

) -> Result <Response, ContractError> {

// 檢查地址是否在黑名單

if let Some (is_in_blacklist) = BLACKLIST. may_load (deps.storage, &dest.to_string ( )? {

if is_denied {

return Err (ContractError::DeniedRecipient);

}

} else if let Some (is_in_blacklist) = BLACKLIST.may_load ( deps.storage , &info.sender.clone ( ) )? {

if is_denied {

return Err (ContractError::DeniedSender);

}

……

};

如上麵代碼所示,由於 dest 沒有經過標準化,通常使用的地址爲小寫地址,則任何人可以通過提供大寫地址繞過 BLACKLIST 進行操作。

  1. 註意運算與溢出

在 CosmWasm 合約中,開髮者需註意整數溢出風險或被 0 除等情況。建議開髮者使用 CosmWasm 的 Uint256 和 Uint512 類型,併使用不會溢出的數學函數 full_mul()。

  1. 訪問控製問題

訪問控製是程序安全的主要問題之一,由於訪問控製問題引起的安全事件數不勝數,在 Cosmwasm 合約中衕樣需要重視。以下是一個典型案例:

fn update_config(

deps: DepsMut,

msg: UpdateMsg

) -> Result<Response, ContractError> {

let config = CONFIG.load(deps.storage)?;

let new_config = Config {

rewards_vault_contract: msg.vault_address

.map(|human| deps.api.addr_validate(&human))

.transpose()?

.unwrap_or(config.rewards_vault_contract)

};

CONFIG.save(deps.storage, &new_config)?;

Ok(Response::new().add_attribute(“action”, “update_config”))

}

上述代碼因爲缺失對調用者地址的檢查和限製,允許任何人都可以調用 update_config(),將自己的地址設置爲金庫地址,接收合約産生的所有獎勵。

  1. 小心無限循環

Cosmwasm 合約運行設置了很高的 gas limit,但使用不當會耗盡 gas。CosmWasm 合約可能通過在 ACK handler 中回調自身從而陷入無限循環。如果開髮者在兩個 CosmWasm 合約之間有傳遞數據包,需註意這可能導緻無限循環併損耗大量 gas 費。

項目安全實踐

  1. 智能合約審計

智能合約審計是通過對智能合約代碼進行繫統的測試和審查,盡可能地髮現潛在的安全漏洞,排除安全風險,確保代碼沒有業務邏輯漏洞,符合預期運行流程和結果。定期對於項目的智能合約進行安全審計至關重要,審計的時間點建議在合約開髮完成後,主網部署之前進行。

  1. 使用多簽錢包

項目方需考慮使用多簽錢包管理項目金庫以及智能合約,多重簽名帳戶需由多個實體持有,盡量避免潛在的訪問控製風險和內部作惡。目前 Nibiru Chain 已採用 Nomos 多簽解決方案,項目方可以考慮使用 Nomos 進行資産管理。

總結

Nibiru Chain 作爲一條全新的 Layer1 公鏈,爲 DeFi、游戲、RWA 等領域提供了一個創新平颱,旨在解決 Web3 應用的可訪問性、安全性和性能問題,爲開髮者和普通用戶提供全麵且優秀的服務。

聲明:

  1. 本文轉載自[Techflow],著作權歸屬原作者[Beosin],如對轉載有異議,請聯繫Gate Learn團隊 “Gate Learn團隊”),團隊會根據相關流程盡速處理。

  2. 免責聲明:本文所錶達的觀點和意見僅代錶作者個人觀點,不構成任何投資建議。

  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io)的情況下不得覆製、傳播或抄襲經翻譯文章。

Поділіться

Контент

新公鏈 Nibiru 主網將上線,解析其技術特點與安全開髮實踐

新手3/18/2024, 8:25:25 AM
Nibiru Chain作爲新興Layer1公鏈,專註於解決DeFi應用的安全性與速度,併已穫得融資超過2000萬美元。文章解析了Nibiru Chain的核心協議和生態髮展計畫,以及在開髮應用時需要註意的安全問題。

Layer1 公鏈 Nibiru Chain 在 2024 年 1 月底推出空投激勵,在經過一個月的空投活動後,其社區增長超過 3 倍,推特關註人數超過 50 萬。作爲融資超 2000 萬美元的新公鏈,Nibiru Chain 專註於解決 DeFi 應用的安全性與速度,將成爲 dYdX 的潛在競爭對手。

目前,Nibiru Chain 計畫在本周啟動其主網。作爲增長快速的 Layer1,Nibiru Chain 有何技術特點與競爭優勢?其生態項目的開髮需要註意哪些安全問題。今天 Beosin 將爲大家一一解析。

Nibiru Chain 協議解析

Nibiru Chain 主要以 DeFi 交易爲核心業務。其核心組件有以下 4 個:

1. Nibi-Perps

鏈上永續合約交易,允許用戶對 BTC、ETH 和 ATOM 等熱門加密資産進行最高 10 倍的杠桿交易。$NIBI 的質押者將擁有 Nibi-Perps 的治理權和交易手續費折扣。

2. Nibi-Swap

Nibiru 的自動化做市商協議,計畫支持 2 種 LP 池:穩定幣兌換池和普通的恆定乘積池。

3. $NUSD

Nibiru 生態的足額抵押穩定幣。Nibiru 計畫首先支持用戶使用 $USDC 和 $NIBI 來鑄造 NUSD, 兩者的具體比例由抵押品比率 (Collateral Ratio) 決定。如果 CR= 80%, 意味著鑄造 100 $NUSD, 用戶需要提供 80 $USDC 和等值 20NUSD 的 NIBI。

未來 Nibiru Chain 將支持更多類型的抵押物,目前 $NUSD 更像是 Cosmos 生態的 $FRAX。

4. Nibi-Oracles

Nibi-Oracles 是 Nibiru 的原生預言機解決方案,允許驗證者運營商積極參與預言機共識投票,將鏈下數據高保真地集成到區塊鏈上,提供來自外部 API 和智能合約的低延遲反饋。

在 2024 年,Nibiru Chain 將著眼於擴大生態繫統,其主要髮展包括多個計畫,如與多條鏈的主要 DeFi 項目整合、在一流的中心化交易所上市、完成併行樂觀執行,以及實現全麵的 EVM 兼容性。

安全開髮實踐

若在 Nibiru Chain 上開髮應用,其開髮流程和所需語言與在其它 Cosmos 繫公鏈幾乎完全相衕,遵循以下安全指南可以提高項目的合約安全性:

合約開髮安全

  1. 做好應對攻擊的準備

與使用 Solidity 開髮合約類似,開髮者都需要考慮到如何麵對攻擊和修覆漏洞。因此開髮者需要構建可升級的智能合約,併製定好風險應對方案。

  1. 註意地址的驗證標準化

任何有效的 Cosmos SDK 地址都有兩種有效的錶示形式:全小寫和全大寫,如:cosmos1uzwqa88hcqe5gs7u7lgjxekz7xc6sm0f7xwp6a 與

COSMOS1UZWQA88HCQE5GS7U7LGJXEKZ7XC6SM0F7XWP6A 都是衕一個地址,Nibiru 也是一樣。在處理合約中地址時,我們需要考慮地址的這一特性。

pub fn valid_transfer (

deps: DepsMut,

info: MessageInfo,

amount: Uint128,

dest: String ,

) -> Result <Response, ContractError> {

// 檢查地址是否在黑名單

if let Some (is_in_blacklist) = BLACKLIST. may_load (deps.storage, &dest.to_string ( )? {

if is_denied {

return Err (ContractError::DeniedRecipient);

}

} else if let Some (is_in_blacklist) = BLACKLIST.may_load ( deps.storage , &info.sender.clone ( ) )? {

if is_denied {

return Err (ContractError::DeniedSender);

}

……

};

如上麵代碼所示,由於 dest 沒有經過標準化,通常使用的地址爲小寫地址,則任何人可以通過提供大寫地址繞過 BLACKLIST 進行操作。

  1. 註意運算與溢出

在 CosmWasm 合約中,開髮者需註意整數溢出風險或被 0 除等情況。建議開髮者使用 CosmWasm 的 Uint256 和 Uint512 類型,併使用不會溢出的數學函數 full_mul()。

  1. 訪問控製問題

訪問控製是程序安全的主要問題之一,由於訪問控製問題引起的安全事件數不勝數,在 Cosmwasm 合約中衕樣需要重視。以下是一個典型案例:

fn update_config(

deps: DepsMut,

msg: UpdateMsg

) -> Result<Response, ContractError> {

let config = CONFIG.load(deps.storage)?;

let new_config = Config {

rewards_vault_contract: msg.vault_address

.map(|human| deps.api.addr_validate(&human))

.transpose()?

.unwrap_or(config.rewards_vault_contract)

};

CONFIG.save(deps.storage, &new_config)?;

Ok(Response::new().add_attribute(“action”, “update_config”))

}

上述代碼因爲缺失對調用者地址的檢查和限製,允許任何人都可以調用 update_config(),將自己的地址設置爲金庫地址,接收合約産生的所有獎勵。

  1. 小心無限循環

Cosmwasm 合約運行設置了很高的 gas limit,但使用不當會耗盡 gas。CosmWasm 合約可能通過在 ACK handler 中回調自身從而陷入無限循環。如果開髮者在兩個 CosmWasm 合約之間有傳遞數據包,需註意這可能導緻無限循環併損耗大量 gas 費。

項目安全實踐

  1. 智能合約審計

智能合約審計是通過對智能合約代碼進行繫統的測試和審查,盡可能地髮現潛在的安全漏洞,排除安全風險,確保代碼沒有業務邏輯漏洞,符合預期運行流程和結果。定期對於項目的智能合約進行安全審計至關重要,審計的時間點建議在合約開髮完成後,主網部署之前進行。

  1. 使用多簽錢包

項目方需考慮使用多簽錢包管理項目金庫以及智能合約,多重簽名帳戶需由多個實體持有,盡量避免潛在的訪問控製風險和內部作惡。目前 Nibiru Chain 已採用 Nomos 多簽解決方案,項目方可以考慮使用 Nomos 進行資産管理。

總結

Nibiru Chain 作爲一條全新的 Layer1 公鏈,爲 DeFi、游戲、RWA 等領域提供了一個創新平颱,旨在解決 Web3 應用的可訪問性、安全性和性能問題,爲開髮者和普通用戶提供全麵且優秀的服務。

聲明:

  1. 本文轉載自[Techflow],著作權歸屬原作者[Beosin],如對轉載有異議,請聯繫Gate Learn團隊 “Gate Learn團隊”),團隊會根據相關流程盡速處理。

  2. 免責聲明:本文所錶達的觀點和意見僅代錶作者個人觀點,不構成任何投資建議。

  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io)的情況下不得覆製、傳播或抄襲經翻譯文章。

Розпочати зараз
Зареєструйтеся та отримайте ваучер на
$100
!
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.