新公链 Nibiru 主网将上线,解析其技术特点与安全开发实践

新手3/20/2024, 2:09:35 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/20/2024, 2:09:35 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)的情况下不得复制、传播或抄袭经翻译文章。

Comece agora
Inscreva-se e ganhe um cupom de
$100
!
It seems that you are attempting to access our services from a Restricted Location where Gate 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, Thailand, 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.