Precision Loss / Rounding Errors

Segurança · Profundo

Uma classe de vulnerabilidade numérica onde divisão de inteiros descarta restos fracionários, causando sub-contabilização sistemática de taxas, juros ou valores de token que um atacante pode explorar através de transações pequenas repetidas para drenar fundos do protocolo ou receber mais do que o devido. Como programas Solana usam aritmética de inteiros exclusivamente (sem ponto flutuante nativo em código on-chain), operações de divisão como amount / price sempre truncam para zero, e protocolos devem decidir se arredondam a favor do protocolo (divisão ceiling para taxas coletadas, divisão floor para tokens distribuídos) usando fórmulas como (numerator + denominator - 1) / denominator. Erros de precisão também podem se acumular entre representações de ponto fixo, então escala intermediária de alta precisão (ex: multiplicar por 10^9 antes de dividir) é uma mitigação comum.

Termos relacionados