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

新手Mar 18, 2024
Nibiru Chain作爲新興Layer1公鏈,專註於解決DeFi應用的安全性與速度,併已穫得融資超過2000萬美元。文章解析了Nibiru Chain的核心協議和生態髮展計畫,以及在開髮應用時需要註意的安全問題。
新公鏈 Nibiru 主網將上線,解析其技術特點與安全開髮實踐

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 主網將上線,解析其技術特點與安全開髮實踐

新手Mar 18, 2024
Nibiru Chain作爲新興Layer1公鏈,專註於解決DeFi應用的安全性與速度,併已穫得融資超過2000萬美元。文章解析了Nibiru Chain的核心協議和生態髮展計畫,以及在開髮應用時需要註意的安全問題。
新公鏈 Nibiru 主網將上線,解析其技術特點與安全開髮實踐

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
和價值
$5500
理財體驗金獎勵!