Layer1 公鏈 Nibiru Chain 在 2024 年 1 月底推出空投激勵,在經過一個月的空投活動後,其社區增長超過 3 倍,推特關註人數超過 50 萬。作爲融資超 2000 萬美元的新公鏈,Nibiru Chain 專註於解決 DeFi 應用的安全性與速度,將成爲 dYdX 的潛在競爭對手。
目前,Nibiru Chain 計畫在本周啟動其主網。作爲增長快速的 Layer1,Nibiru Chain 有何技術特點與競爭優勢?其生態項目的開髮需要註意哪些安全問題。今天 Beosin 將爲大家一一解析。
Nibiru Chain 主要以 DeFi 交易爲核心業務。其核心組件有以下 4 個:
鏈上永續合約交易,允許用戶對 BTC、ETH 和 ATOM 等熱門加密資産進行最高 10 倍的杠桿交易。$NIBI 的質押者將擁有 Nibi-Perps 的治理權和交易手續費折扣。
Nibiru 的自動化做市商協議,計畫支持 2 種 LP 池:穩定幣兌換池和普通的恆定乘積池。
Nibiru 生態的足額抵押穩定幣。Nibiru 計畫首先支持用戶使用 $USDC 和 $NIBI 來鑄造 NUSD, 兩者的具體比例由抵押品比率 (Collateral Ratio) 決定。如果 CR= 80%, 意味著鑄造 100 $NUSD, 用戶需要提供 80 $USDC 和等值 20NUSD 的 NIBI。
未來 Nibiru Chain 將支持更多類型的抵押物,目前 $NUSD 更像是 Cosmos 生態的 $FRAX。
Nibi-Oracles 是 Nibiru 的原生預言機解決方案,允許驗證者運營商積極參與預言機共識投票,將鏈下數據高保真地集成到區塊鏈上,提供來自外部 API 和智能合約的低延遲反饋。
在 2024 年,Nibiru Chain 將著眼於擴大生態繫統,其主要髮展包括多個計畫,如與多條鏈的主要 DeFi 項目整合、在一流的中心化交易所上市、完成併行樂觀執行,以及實現全麵的 EVM 兼容性。
若在 Nibiru Chain 上開髮應用,其開髮流程和所需語言與在其它 Cosmos 繫公鏈幾乎完全相衕,遵循以下安全指南可以提高項目的合約安全性:
與使用 Solidity 開髮合約類似,開髮者都需要考慮到如何麵對攻擊和修覆漏洞。因此開髮者需要構建可升級的智能合約,併製定好風險應對方案。
任何有效的 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 進行操作。
在 CosmWasm 合約中,開髮者需註意整數溢出風險或被 0 除等情況。建議開髮者使用 CosmWasm 的 Uint256 和 Uint512 類型,併使用不會溢出的數學函數 full_mul()。
訪問控製是程序安全的主要問題之一,由於訪問控製問題引起的安全事件數不勝數,在 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(),將自己的地址設置爲金庫地址,接收合約産生的所有獎勵。
Cosmwasm 合約運行設置了很高的 gas limit,但使用不當會耗盡 gas。CosmWasm 合約可能通過在 ACK handler 中回調自身從而陷入無限循環。如果開髮者在兩個 CosmWasm 合約之間有傳遞數據包,需註意這可能導緻無限循環併損耗大量 gas 費。
智能合約審計是通過對智能合約代碼進行繫統的測試和審查,盡可能地髮現潛在的安全漏洞,排除安全風險,確保代碼沒有業務邏輯漏洞,符合預期運行流程和結果。定期對於項目的智能合約進行安全審計至關重要,審計的時間點建議在合約開髮完成後,主網部署之前進行。
項目方需考慮使用多簽錢包管理項目金庫以及智能合約,多重簽名帳戶需由多個實體持有,盡量避免潛在的訪問控製風險和內部作惡。目前 Nibiru Chain 已採用 Nomos 多簽解決方案,項目方可以考慮使用 Nomos 進行資産管理。
Nibiru Chain 作爲一條全新的 Layer1 公鏈,爲 DeFi、游戲、RWA 等領域提供了一個創新平颱,旨在解決 Web3 應用的可訪問性、安全性和性能問題,爲開髮者和普通用戶提供全麵且優秀的服務。
本文轉載自[Techflow],著作權歸屬原作者[Beosin],如對轉載有異議,請聯繫Gate Learn團隊 “Gate Learn團隊”),團隊會根據相關流程盡速處理。
免責聲明:本文所錶達的觀點和意見僅代錶作者個人觀點,不構成任何投資建議。
文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io)的情況下不得覆製、傳播或抄襲經翻譯文章。
Compartilhar
Conteúdo
Layer1 公鏈 Nibiru Chain 在 2024 年 1 月底推出空投激勵,在經過一個月的空投活動後,其社區增長超過 3 倍,推特關註人數超過 50 萬。作爲融資超 2000 萬美元的新公鏈,Nibiru Chain 專註於解決 DeFi 應用的安全性與速度,將成爲 dYdX 的潛在競爭對手。
目前,Nibiru Chain 計畫在本周啟動其主網。作爲增長快速的 Layer1,Nibiru Chain 有何技術特點與競爭優勢?其生態項目的開髮需要註意哪些安全問題。今天 Beosin 將爲大家一一解析。
Nibiru Chain 主要以 DeFi 交易爲核心業務。其核心組件有以下 4 個:
鏈上永續合約交易,允許用戶對 BTC、ETH 和 ATOM 等熱門加密資産進行最高 10 倍的杠桿交易。$NIBI 的質押者將擁有 Nibi-Perps 的治理權和交易手續費折扣。
Nibiru 的自動化做市商協議,計畫支持 2 種 LP 池:穩定幣兌換池和普通的恆定乘積池。
Nibiru 生態的足額抵押穩定幣。Nibiru 計畫首先支持用戶使用 $USDC 和 $NIBI 來鑄造 NUSD, 兩者的具體比例由抵押品比率 (Collateral Ratio) 決定。如果 CR= 80%, 意味著鑄造 100 $NUSD, 用戶需要提供 80 $USDC 和等值 20NUSD 的 NIBI。
未來 Nibiru Chain 將支持更多類型的抵押物,目前 $NUSD 更像是 Cosmos 生態的 $FRAX。
Nibi-Oracles 是 Nibiru 的原生預言機解決方案,允許驗證者運營商積極參與預言機共識投票,將鏈下數據高保真地集成到區塊鏈上,提供來自外部 API 和智能合約的低延遲反饋。
在 2024 年,Nibiru Chain 將著眼於擴大生態繫統,其主要髮展包括多個計畫,如與多條鏈的主要 DeFi 項目整合、在一流的中心化交易所上市、完成併行樂觀執行,以及實現全麵的 EVM 兼容性。
若在 Nibiru Chain 上開髮應用,其開髮流程和所需語言與在其它 Cosmos 繫公鏈幾乎完全相衕,遵循以下安全指南可以提高項目的合約安全性:
與使用 Solidity 開髮合約類似,開髮者都需要考慮到如何麵對攻擊和修覆漏洞。因此開髮者需要構建可升級的智能合約,併製定好風險應對方案。
任何有效的 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 進行操作。
在 CosmWasm 合約中,開髮者需註意整數溢出風險或被 0 除等情況。建議開髮者使用 CosmWasm 的 Uint256 和 Uint512 類型,併使用不會溢出的數學函數 full_mul()。
訪問控製是程序安全的主要問題之一,由於訪問控製問題引起的安全事件數不勝數,在 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(),將自己的地址設置爲金庫地址,接收合約産生的所有獎勵。
Cosmwasm 合約運行設置了很高的 gas limit,但使用不當會耗盡 gas。CosmWasm 合約可能通過在 ACK handler 中回調自身從而陷入無限循環。如果開髮者在兩個 CosmWasm 合約之間有傳遞數據包,需註意這可能導緻無限循環併損耗大量 gas 費。
智能合約審計是通過對智能合約代碼進行繫統的測試和審查,盡可能地髮現潛在的安全漏洞,排除安全風險,確保代碼沒有業務邏輯漏洞,符合預期運行流程和結果。定期對於項目的智能合約進行安全審計至關重要,審計的時間點建議在合約開髮完成後,主網部署之前進行。
項目方需考慮使用多簽錢包管理項目金庫以及智能合約,多重簽名帳戶需由多個實體持有,盡量避免潛在的訪問控製風險和內部作惡。目前 Nibiru Chain 已採用 Nomos 多簽解決方案,項目方可以考慮使用 Nomos 進行資産管理。
Nibiru Chain 作爲一條全新的 Layer1 公鏈,爲 DeFi、游戲、RWA 等領域提供了一個創新平颱,旨在解決 Web3 應用的可訪問性、安全性和性能問題,爲開髮者和普通用戶提供全麵且優秀的服務。
本文轉載自[Techflow],著作權歸屬原作者[Beosin],如對轉載有異議,請聯繫Gate Learn團隊 “Gate Learn團隊”),團隊會根據相關流程盡速處理。
免責聲明:本文所錶達的觀點和意見僅代錶作者個人觀點,不構成任何投資建議。
文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io)的情況下不得覆製、傳播或抄襲經翻譯文章。