Restricciones de Trading: Análisis Educativo
Comprende cómo las restricciones maliciosas de trading pueden atrapar tus inversiones a través de blacklists, funciones de pausa y limitaciones selectivas.
Contenido Educativo
Este análisis se basa en datos blockchain públicos y casos documentados. Solo para fines educativos.
Blacklists Automáticas
Contratos que automáticamente impiden a grandes compradores vender
Funciones de Pausa
Mecanismos que pueden parar todo trading sin aviso previo
Tipos de Restricciones Maliciosas
Blacklisting de Wallets
Contratos mantienen listas de direcciones prohibidas de tradear, generalmente añadidas tras grandes compras
Funciones de Pausa Global
Desarrolladores pueden pausar todo el trading "para mantenimiento" pero nunca reactivan
Restricciones Temporales
Implementan "períodos de lock" que se extienden indefinidamente o tienen condiciones imposibles de cumplir
Patrones Maliciosos Comunes
Anti-Whale con Blacklist
Tokens que detectan grandes compras y automáticamente añaden al comprador a una blacklist permanente
Abuso de Pause Function
Contratos con función pauseTrading() que puede activarse en cualquier momento por desarrolladores
Manipulación de Cooldown
Implementan cooldowns de venta que pueden extenderse dinámicamente
Cómo Identificar Restricciones Maliciosas
🚨 Funciones Sospechosas
- • addToBlacklist() o similar
- • pauseTrading() sin timelock
- • setMaxTxAmount() modificable
- • setCooldownEnabled() dinámico
- • excludeFromReward() selectivo
⚠️ Señales de Alerta
- • Muchos poderes administrativos
- • Ausencia de renounceOwnership()
- • Modificadores onlyOwner excesivos
- • Funciones de emergencia vagas
- • Control total sobre trading
Ejemplos de Código Malicioso
Blacklist Automática:
function _transfer(address from, address to, uint256 amount) internal {
if (amount > maxTxAmount && !isExcluded[from]) {
blacklist[from] = true; // Añade automáticamente a blacklist
}
require(!blacklist[from], "Address blacklisted");
// ... resto de transferencia
}Pausa Maliciosa:
bool public tradingPaused = false;
function pauseTrading() external onlyOwner {
tradingPaused = true; // Sin timelock o condiciones de reactivación
}
function _beforeTokenTransfer(address from, address to) internal {
require(!tradingPaused, "Trading is paused");
}Protección y Verificación
Antes de invertir, siempre verifica si el contrato posee restricciones maliciosas:
- • Revisar todas las funciones onlyOwner
- • Verificar existencia de blacklists
- • Chequear funciones de pausa
- • Analizar modificadores de transferencia
- • Simular ventas antes de comprar
- • Verificar historial de transacciones
- • Monitorear actividad administrativa
- • Probar con pequeñas cantidades primero