
新公鏈 Nibiru 主網將上線,解析其技術特點與安全開發實踐
TechFlow Selected深潮精選

新公鏈 Nibiru 主網將上線,解析其技術特點與安全開發實踐
作為融資超 2000 萬美元的新公鏈,Nibiru Chain 專注於解決 DeFi 應用的安全性與速度。
撰文:Beosin
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 開發合約類似,開發者都需要考慮到如何面對攻擊和修復漏洞。因此開發者需要構建可升級的智能合約,並制定好風險應對方案。
2. 注意地址的驗證標準化
任何有效的 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 進行操作。
3. 注意運算與溢出
在 CosmWasm 合約中,開發者需注意整數溢出風險或被 0 除等情況。建議開發者使用 CosmWasm 的 Uint256 和 Uint512 類型,並使用不會溢出的數學函數 full_mul()。
4. 訪問控制問題
訪問控制是程序安全的主要問題之一,由於訪問控制問題引起的安全事件數不勝數,在 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(),將自己的地址設置為金庫地址,接收合約產生的所有獎勵。
5. 小心無限循環
Cosmwasm 合約運行設置了很高的 gas limit,但使用不當會耗盡 gas。CosmWasm 合約可能通過在 ACK handler 中回調自身從而陷入無限循環。如果開發者在兩個 CosmWasm 合約之間有傳遞數據包,需注意這可能導致無限循環並損耗大量 gas 費。
項目安全實踐
1. 智能合約審計
智能合約審計是通過對智能合約代碼進行系統的測試和審查,儘可能地發現潛在的安全漏洞,排除安全風險,確保代碼沒有業務邏輯漏洞,符合預期運行流程和結果。定期對於項目的智能合約進行安全審計至關重要,審計的時間點建議在合約開發完成後,主網部署之前進行。
2. 使用多籤錢包
項目方需考慮使用多籤錢包管理項目金庫以及智能合約,多重簽名帳戶需由多個實體持有,儘量避免潛在的訪問控制風險和內部作惡。目前 Nibiru Chain 已採用 Nomos 多籤解決方案,項目方可以考慮使用 Nomos 進行資產管理。
總結
Nibiru Chain 作為一條全新的 Layer1 公鏈,為 DeFi、遊戲、RWA 等領域提供了一個創新平臺,旨在解決 Web3 應用的可訪問性、安全性和性能問題,為開發者和普通用戶提供全面且優秀的服務。
歡迎加入深潮 TechFlow 官方社群
Telegram 訂閱群:https://t.me/TechFlowDaily
Twitter 官方帳號:https://x.com/TechFlowPost
Twitter 英文帳號:https://x.com/BlockFlow_News














