Encaminhar o título original:新公链 Nibiru 主网将上线,解析其技术特点与安全开发实践
A cadeia pública Layer1 - Nibiru Chain lançou um incentivo de lançamento aéreo no final de janeiro de 2024. Após um mês de atividades de lançamento aéreo, a comunidade cresceu mais de três vezes, com mais de 500.000 seguidores no Twitter. Com mais de US$ 20 milhões em financiamento garantido, a Nibiru Chain está pronta para lidar com a segurança e a velocidade dos aplicativos DeFi, potencialmente competindo com a dYdX. Atualmente, a Nibiru Chain planeja lançar sua Mainnet nesta semana. Como uma solução Layer1 em rápido crescimento, quais são os recursos técnicos e as vantagens competitivas da Nibiru Chain? Que considerações de segurança os desenvolvedores devem ter em mente ao desenvolver projetos em seu ecossistema? Hoje, Beosin fornecerá uma análise detalhada.
A Nibiru Chain concentra-se principalmente em transações DeFi como seu negócio principal. Ele é composto por quatro componentes principais:
Negociação de contratos perpétuos na cadeia, permitindo que os usuários se envolvam em negociações alavancadas de ativos de criptografia populares, como BTC, ETH e ATOM, com alavancagem de até 10x. Os detentores de tokens $NIBI terão direitos de governança sobre a Nibi-Perps e desfrutarão de descontos nas taxas de negociação.
O protocolo do criador de mercado automatizado da Nibiru foi projetado para suportar dois tipos de pools de liquidez: pools de troca de stablecoin e pools de produtos constantes regulares.
Uma stablecoin totalmente garantida dentro do ecossistema Nibiru. A Nibiru planeja inicialmente apoiar a cunhagem de $NUSD usando $USDC e $NIBI, com a proporção específica determinada pelo Collateral Ratio (CR). Por exemplo, se CR=80%, isso significa que para cunhar 100 $NUSD, o usuário precisa fornecer 80 $USDC e o equivalente a 20 $NUSD em NIBI. No futuro, a Nibiru Chain oferecerá suporte a mais tipos de garantias e, atualmente, o $NUSD é mais parecido com o $FRAX no ecossistema Cosmos.
O Nibi-Oracles é a solução de oráculo nativa do Nibiru, permitindo que os operadores de validação participem ativamente da votação de consenso do oráculo. Ele integra dados fora da cadeia com alta fidelidade ao blockchain, fornecendo feedback de baixa latência de APIs externas e contratos inteligentes.
Em 2024, a Nibiru Chain se concentrará na expansão do ecossistema, com grandes desenvolvimentos que incluem vários planos, como a integração com os principais projetos de DeFi em várias cadeias, a listagem em bolsas centralizadas de primeira linha, a conclusão da execução otimista paralela e a obtenção de compatibilidade abrangente de EVM.
Se o senhor desenvolver um aplicativo na cadeia Nibiru, o processo de desenvolvimento e as linguagens necessárias são quase idênticos aos de outras cadeias públicas do Cosmos. Seguir as diretrizes de segurança abaixo pode melhorar a segurança do contrato do projeto:
Assim como no desenvolvimento de contratos usando o Solidity, os desenvolvedores precisam considerar como lidar com ataques e corrigir vulnerabilidades. Portanto, os desenvolvedores devem criar contratos inteligentes atualizáveis e formular planos de resposta a riscos.
Qualquer endereço válido do Cosmos SDK tem duas representações válidas: todas as letras minúsculas e todas as letras maiúsculas, como, por exemplo:
cosmos1uzwqa88hcqe5gs7u7lgjxekz7xc6sm0f7xwp6a vs.
COSMOS1UZWQA88HCQE5GS7U7LGJXEKZ7XC6SM0F7XWP6A
Eles estão no mesmo endereço que Nibiru. Ao lidar com endereços em contratos, precisamos considerar essa característica dos endereços.
pub fn valid_transfer (
deps: DepsMut,
info: MessageInfo,
quantidade: Uint128,
dest: String,
) -> Result <Response, ContractError> {
// Verificar se o endereço está na lista negra
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);
}
......
};
Conforme mostrado no código acima, como o dest não é padronizado e os endereços comumente usados são endereços em minúsculas, qualquer pessoa pode contornar a BLACKLIST fornecendo um endereço em maiúsculas.
Nos contratos CosmWasm, os desenvolvedores devem estar atentos aos riscos de estouro de números inteiros ou a situações como divisão por zero. Recomenda-se que os desenvolvedores usem os tipos Uint256 e Uint512 do CosmWasm e empreguem funções matemáticas como full_mul() que não causem estouro.
O controle de acesso é uma das principais preocupações da segurança de programas, e vários incidentes de segurança foram causados por problemas de controle de acesso. É igualmente importante abordar as questões de controle de acesso nos contratos da Cosmwasm.
Aqui está um exemplo típico:
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"))
}
Devido à falta de verificações e restrições no endereço do chamador, o código acima permite que qualquer pessoa chame update_config(), defina seu próprio endereço como o endereço do cofre e receba todas as recompensas geradas pelo contrato.
A operação do contrato da Cosmwasm define um limite alto de gás, mas o uso inadequado esgotará o gás. O contrato CosmWasm pode ficar preso em um loop infinito, chamando a si mesmo de volta no manipulador de ACK. Se os desenvolvedores transferirem pacotes de dados entre dois contratos da CosmWasm, eles devem estar cientes de que isso pode levar a um loop infinito e consumir uma grande quantidade de taxas de gás.
A auditoria de contratos inteligentes envolve testar e revisar sistematicamente o código do contrato inteligente para identificar possíveis vulnerabilidades de segurança, mitigar riscos de segurança e garantir que o código não tenha falhas de lógica comercial e esteja em conformidade com os processos e resultados operacionais esperados. É fundamental realizar auditorias regulares de segurança de contratos inteligentes para projetos. Recomenda-se que as auditorias sejam realizadas após a conclusão do desenvolvimento do contrato e antes da implantação da Mainnet.
As equipes de projeto devem considerar o uso de carteiras com vários sigilos para gerenciar tesourarias de projetos e contratos inteligentes. As contas com várias assinaturas devem ser mantidas por várias entidades para atenuar os possíveis riscos de controle de acesso e a má conduta interna. A Nibiru Chain já adotou a solução multissig Nomos, e as equipes de projeto podem considerar o uso do Nomos para fins de gerenciamento de ativos.
Como uma nova cadeia pública Layer1, a Nibiru Chain oferece uma plataforma inovadora para DeFi, jogos, RWA e outros campos. Seu objetivo é resolver os problemas de acessibilidade, segurança e desempenho dos aplicativos Web3 e oferecer aos desenvolvedores e usuários comuns serviços abrangentes e excelentes. Serviços.
Encaminhar o título original:新公链 Nibiru 主网将上线,解析其技术特点与安全开发实践
A cadeia pública Layer1 - Nibiru Chain lançou um incentivo de lançamento aéreo no final de janeiro de 2024. Após um mês de atividades de lançamento aéreo, a comunidade cresceu mais de três vezes, com mais de 500.000 seguidores no Twitter. Com mais de US$ 20 milhões em financiamento garantido, a Nibiru Chain está pronta para lidar com a segurança e a velocidade dos aplicativos DeFi, potencialmente competindo com a dYdX. Atualmente, a Nibiru Chain planeja lançar sua Mainnet nesta semana. Como uma solução Layer1 em rápido crescimento, quais são os recursos técnicos e as vantagens competitivas da Nibiru Chain? Que considerações de segurança os desenvolvedores devem ter em mente ao desenvolver projetos em seu ecossistema? Hoje, Beosin fornecerá uma análise detalhada.
A Nibiru Chain concentra-se principalmente em transações DeFi como seu negócio principal. Ele é composto por quatro componentes principais:
Negociação de contratos perpétuos na cadeia, permitindo que os usuários se envolvam em negociações alavancadas de ativos de criptografia populares, como BTC, ETH e ATOM, com alavancagem de até 10x. Os detentores de tokens $NIBI terão direitos de governança sobre a Nibi-Perps e desfrutarão de descontos nas taxas de negociação.
O protocolo do criador de mercado automatizado da Nibiru foi projetado para suportar dois tipos de pools de liquidez: pools de troca de stablecoin e pools de produtos constantes regulares.
Uma stablecoin totalmente garantida dentro do ecossistema Nibiru. A Nibiru planeja inicialmente apoiar a cunhagem de $NUSD usando $USDC e $NIBI, com a proporção específica determinada pelo Collateral Ratio (CR). Por exemplo, se CR=80%, isso significa que para cunhar 100 $NUSD, o usuário precisa fornecer 80 $USDC e o equivalente a 20 $NUSD em NIBI. No futuro, a Nibiru Chain oferecerá suporte a mais tipos de garantias e, atualmente, o $NUSD é mais parecido com o $FRAX no ecossistema Cosmos.
O Nibi-Oracles é a solução de oráculo nativa do Nibiru, permitindo que os operadores de validação participem ativamente da votação de consenso do oráculo. Ele integra dados fora da cadeia com alta fidelidade ao blockchain, fornecendo feedback de baixa latência de APIs externas e contratos inteligentes.
Em 2024, a Nibiru Chain se concentrará na expansão do ecossistema, com grandes desenvolvimentos que incluem vários planos, como a integração com os principais projetos de DeFi em várias cadeias, a listagem em bolsas centralizadas de primeira linha, a conclusão da execução otimista paralela e a obtenção de compatibilidade abrangente de EVM.
Se o senhor desenvolver um aplicativo na cadeia Nibiru, o processo de desenvolvimento e as linguagens necessárias são quase idênticos aos de outras cadeias públicas do Cosmos. Seguir as diretrizes de segurança abaixo pode melhorar a segurança do contrato do projeto:
Assim como no desenvolvimento de contratos usando o Solidity, os desenvolvedores precisam considerar como lidar com ataques e corrigir vulnerabilidades. Portanto, os desenvolvedores devem criar contratos inteligentes atualizáveis e formular planos de resposta a riscos.
Qualquer endereço válido do Cosmos SDK tem duas representações válidas: todas as letras minúsculas e todas as letras maiúsculas, como, por exemplo:
cosmos1uzwqa88hcqe5gs7u7lgjxekz7xc6sm0f7xwp6a vs.
COSMOS1UZWQA88HCQE5GS7U7LGJXEKZ7XC6SM0F7XWP6A
Eles estão no mesmo endereço que Nibiru. Ao lidar com endereços em contratos, precisamos considerar essa característica dos endereços.
pub fn valid_transfer (
deps: DepsMut,
info: MessageInfo,
quantidade: Uint128,
dest: String,
) -> Result <Response, ContractError> {
// Verificar se o endereço está na lista negra
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);
}
......
};
Conforme mostrado no código acima, como o dest não é padronizado e os endereços comumente usados são endereços em minúsculas, qualquer pessoa pode contornar a BLACKLIST fornecendo um endereço em maiúsculas.
Nos contratos CosmWasm, os desenvolvedores devem estar atentos aos riscos de estouro de números inteiros ou a situações como divisão por zero. Recomenda-se que os desenvolvedores usem os tipos Uint256 e Uint512 do CosmWasm e empreguem funções matemáticas como full_mul() que não causem estouro.
O controle de acesso é uma das principais preocupações da segurança de programas, e vários incidentes de segurança foram causados por problemas de controle de acesso. É igualmente importante abordar as questões de controle de acesso nos contratos da Cosmwasm.
Aqui está um exemplo típico:
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"))
}
Devido à falta de verificações e restrições no endereço do chamador, o código acima permite que qualquer pessoa chame update_config(), defina seu próprio endereço como o endereço do cofre e receba todas as recompensas geradas pelo contrato.
A operação do contrato da Cosmwasm define um limite alto de gás, mas o uso inadequado esgotará o gás. O contrato CosmWasm pode ficar preso em um loop infinito, chamando a si mesmo de volta no manipulador de ACK. Se os desenvolvedores transferirem pacotes de dados entre dois contratos da CosmWasm, eles devem estar cientes de que isso pode levar a um loop infinito e consumir uma grande quantidade de taxas de gás.
A auditoria de contratos inteligentes envolve testar e revisar sistematicamente o código do contrato inteligente para identificar possíveis vulnerabilidades de segurança, mitigar riscos de segurança e garantir que o código não tenha falhas de lógica comercial e esteja em conformidade com os processos e resultados operacionais esperados. É fundamental realizar auditorias regulares de segurança de contratos inteligentes para projetos. Recomenda-se que as auditorias sejam realizadas após a conclusão do desenvolvimento do contrato e antes da implantação da Mainnet.
As equipes de projeto devem considerar o uso de carteiras com vários sigilos para gerenciar tesourarias de projetos e contratos inteligentes. As contas com várias assinaturas devem ser mantidas por várias entidades para atenuar os possíveis riscos de controle de acesso e a má conduta interna. A Nibiru Chain já adotou a solução multissig Nomos, e as equipes de projeto podem considerar o uso do Nomos para fins de gerenciamento de ativos.
Como uma nova cadeia pública Layer1, a Nibiru Chain oferece uma plataforma inovadora para DeFi, jogos, RWA e outros campos. Seu objetivo é resolver os problemas de acessibilidade, segurança e desempenho dos aplicativos Web3 e oferecer aos desenvolvedores e usuários comuns serviços abrangentes e excelentes. Serviços.