Neste fim de semana, um invasor retirou 186,4 milhões de ZEAL e 54,4 bilhões de NACHO de uma carteira da ponte Kaspa KRC-20 sem possuir sua chave privada; em seguida, reciclou os tokens por meio de redes de camada dois (L2) e os vendeu em pools de liquidez. O mais estranho é que a própria Kaspa não foi hackeada. Cinco transações válidas enganaram um indexador off-chain, levando-o a reconhecer transferências que, na verdade, ninguém havia assinado, deixando os tokens na ponte sem lastro e algumas reservas perdendo até 99,6% de seu valor no lado KAS.
O indexador Kasplex KRC-20, com o recurso “Signature Bypass”, esvazia dois pools de tokens

Principais conclusões
- Um invasor movimentou 54,4 bilhões de NACHO sem possuir a chave privada da carteira de ponte.
- Os pools do Zealous Swap perderam de 94% a 99,6% de seu valor no lado do KAS após as transferências falsificadas.
- A Igra suspendeu as principais saídas enquanto os operadores do KRC-20 se preparam para corrigir e reindexar o sistema.
Cinco transações, sem chave privada
A chave privada deveria ser a linha divisória entre possuir criptomoedas e simplesmente saber onde elas estão. Em 20 de setembro, alguém encontrou uma maneira de contornar essa suposição para tokens KRC-20 sem comprometer de forma alguma a cadeia base da Kaspa.
O invasor transferiu 186.425.259 ZEAL e 54.397.983.246 NACHO de um endereço de custódia da ponte, mesmo sem controlar sua chave privada. Esses tokens foram então enviados de volta para o mesmo endereço de custódia como depósitos comuns da ponte, cunhados na camada EVM da Igra Labs e no Kasplex L2, e despejados nos pools de liquidez do Zealous Swap.
Quando a poeira baixou, os saldos de ZEAL e NACHO na L2 do invasor estavam vazios, enquanto os pools afetados haviam perdido entre 94% e 99,6% de seu valor no lado KAS. Eis o problema: a camada um (L1) da Kaspa fez exatamente o que deveria fazer.
Uma assinatura vazia que ainda assim foi aprovada
A propriedade de tokens KRC-20 não é imposta diretamente pelo consenso do Kaspa. As instruções dos tokens são incluídas nas transações do Kaspa, enquanto um indexador off-chain do Kasplex lê essas instruções e determina quem é o proprietário de cada token. Normalmente, uma transferência KRC-20 contém uma chave pública, instruções do token e uma assinatura válida. O invasor manteve essa estrutura familiar, mas forneceu uma assinatura vazia e adicionou um OP_NOT após o OP_ENDIF.

Uma assinatura vazia faz com que o OP_CHECKSIG retorne “false” em vez de cancelar a transação imediatamente. O OP_NOT adicional inverteu esse resultado de volta para “true”, deixando o Kaspa com uma transação válida. Nada havia saído dos trilhos na camada de consenso. O indexador foi outra história. Ele reconheceu o envelope KRC-20, mas não exigiu que o script correspondesse exatamente ao formato canônico. Consequentemente, ele considerou a transferência falsificada como legítima. A própria API da Kasplex chegou a retornar opAccept: 1 na primeira transação ZEAL falsificada.
Qualquer um poderia criar a falsificação
A reviravolta mais perversa foi que o invasor não precisou descobrir nenhuma credencial oculta. Um endereço Kaspa padrão expõe a chave pública necessária para construir a operação KRC-20 falsificada. Isso significa que transferir os tokens para outro endereço não resolve o problema subjacente. Até que o indexador seja corrigido e seu histórico reindexado, a mesma falha pode, teoricamente, ser usada contra saldos KRC-20 em outros lugares.
Cinco transações falsificaram as transferências de ZEAL e NACHO. Nove pequenas retiradas de uma unidade, por outro lado, foram genuinamente assinadas pela custódia e parecem ter sido testes para verificar se a rota de saída funcionava. Curiosamente, as transações legítimas eram as de valor mínimo. A carteira de custódia continha cerca de 50 outros tokens KRC-20. O invasor escolheu dois.
Os tokens ainda estão lá, mas o lastro não
Na manhã de domingo, a Igra informou que todo o saldo de ZEAL e NACHO da carteira de custódia havia sido roubado, deixando 97.651.212 ZEAL e 42.570.879.908 NACHO nas redes de Camada 2 sem lastro total na Camada 1. Outros 4,5 bilhões de NACHO permaneceram com o invasor na L1.
A Igra suspendeu as saídas do iKAS para a L1 da Kaspa e as transferências via Hyperlane, enquanto os usuários foram alertados contra a ponte de tokens KRC-20, a compra de ZEAL ou NACHO em exchanges descentralizadas (DEXs) da L2 ou a adição de liquidez aos pools afetados. Os ativos nativos da KAS, do consenso Kaspa e da Igra que não eram tokens KRC-20 transferidos por ponte foram descritos como não afetados.
A correção do software por si só não resolverá o problema. A Zealous Swap afirma que os operadores precisam corrigir o indexador e reindexar seu histórico, rejeitando assinaturas vazias, tags malformadas e scripts que se estendem além de OP_ENDIF. Nacho the Kat, por sua vez, diz que a comunidade pretende migrar para o KCC-20, um padrão projetado para incorporar regras de tokens em scripts aplicados pela própria rede.
O problema surge após uma série de explorações, bugs, invasões e violações de dados nas últimas semanas. No sábado, a Blink Wallet, provedora de infraestrutura custodial e não custodial da Lightning Network, divulgou que “algumas dezenas” de contas custodiais foram esvaziadas. A empresa de segurança cibernética DCENT também constatou que as carteiras do aplicativo DCENT foram esvaziadas nesta semana. Isso ocorre em um momento em que os ataques de segurança cibernética se intensificaram, e alguns suspeitam que a IA esteja auxiliando essa onda de exploradores.
Este artigo foi traduzido do inglês usando IA. A versão original em inglês é a fonte autorizada; traduções automáticas podem conter imprecisões, especialmente em terminologia jurídica e regulatória.











