¿Qué es una función de transferencia en cripto?
Una función de transferencia en cripto es una función de contrato inteligente que mueve tokens de una dirección blockchain a otra.Suele mencionarse principalmente en estándares de tokens como ERC-20 en Ethereum y TRC-20 en TRON.En este contexto, una función de transferencia no es lo mismo que una función de transferencia matemática utilizada en ingeniería o sistemas de señales.Es una regla programable dentro de un contrato de token que comprueba si se permite un movimiento de tokens y, a continuación, actualiza los saldos on-chain.La especificación oficial de ERC-20 define una función
El mismo estándar también define
Ethereum.org explica en su guía sobre el estándar de tokens ERC-20 que los tokens ERC-20 se transfieren mediante
Por qué es importante la función de transferencia
La función de transferencia es importante porque los tokens solo son útiles si pueden moverse de forma segura entre direcciones.Un token puede representar una stablecoin, un activo de gobernanza, un punto de recompensa, un activo envuelto, un token de utilidad, un token de liquidez o una moneda de juego.Si la función de transferencia está dañada, restringida, es maliciosa o está mal diseñada, es posible que los usuarios no puedan mover el token con normalidad.Una transferencia de tokens normal debería reducir el saldo del remitente y aumentar el saldo del receptor en la misma cantidad de tokens.La función también debería rechazar las transferencias que infrinjan reglas básicas, como enviar más tokens de los que posee el remitente.En la mayoría de los estándares de tokens, una transferencia correcta emite un evento de transferencia para que las carteras, los exploradores de blockchain, los indexadores y las aplicaciones puedan seguir el movimiento.Este registro de eventos es importante porque muchas interfaces muestran la actividad de los tokens leyendo los registros de eventos.Sin funciones de transferencia predecibles, las carteras y las aplicaciones necesitarían una lógica personalizada para cada token.Los estándares de tokens resuelven este problema al proporcionar a los desarrolladores una interfaz compartida.Por este motivo, la función de transferencia es uno de los componentes más importantes de los ecosistemas de contratos inteligentes.Cómo funciona una función de transferencia
Una función de transferencia comienza cuando un usuario firma una transacción desde una cartera.La transacción llama al contrato del token e incluye la dirección del destinatario y la cantidad de tokens.La blockchain comprueba si la transacción está correctamente firmada con la clave privada del remitente.Después, el contrato del token comprueba si el remitente tiene saldo suficiente.El contrato también puede comprobar si las transferencias están pausadas, bloqueadas, gravadas, limitadas o restringidas por reglas adicionales del token.Si se superan todas las comprobaciones, el contrato resta tokens del saldo del remitente.A continuación, el contrato añade la misma cantidad, o la cantidad neta permitida, al saldo del receptor.El contrato suele emitir un evento
Función básica de transferencia ERC-20
La función ERC-20
El parámetro
El parámetro
La especificación ERC-20 indica que la función transfiere tokens a una dirección y debe activar el evento
La especificación ERC-20 también indica que quienes realizan llamadas deben gestionar los valores de retorno
Por ejemplo, la documentación actual de OpenZeppelin ERC-20 describe ERC-20 como un estándar para tokens fungibles y proporciona patrones de implementación ampliamente utilizados.
Los desarrolladores deben seguir leyendo el contrato real de cada token en vez de asumir que todos los tokens se comportan perfectamente.Un token puede afirmar ser compatible con un estándar y, aun así, incluir reglas adicionales que afecten al comportamiento de las transferencias.Función de transferencia frente a función TransferFrom
La función
La función
Una transferencia normal desde una cartera suele utilizar
Un contrato inteligente que mueve tokens en nombre de un usuario suele utilizar
Antes de que pueda funcionar
Evento de transferencia
El evento
En ERC-20, el evento suele escribirse como
El campo
El campo
El campo
Función de transferencia y saldos de tokens
El saldo de un token suele almacenarse en un mapping dentro de un contrato inteligente.En los tokens de estilo ERC-20, el contrato registra cuántos tokens posee cada dirección.Cuando se llama a
Función de transferencia y comisiones de gas
Llamar a una función de transferencia tiene comisiones de red porque la blockchain debe ejecutar código y almacenar el resultado.En Ethereum y muchas redes compatibles con EVM, este coste se paga como gas.Una transferencia simple de moneda nativa puede costar menos que una transferencia de tokens, ya que las transferencias de tokens ejecutan código de contrato inteligente.Las transferencias de tokens pueden resultar más caras cuando el contrato incluye lógica adicional, como comisiones, límites, listas negras, hooks o mecanismos de reflection.Los usuarios deben comprobar la comisión de red estimada antes de confirmar una transferencia de tokens.Los desarrolladores deben optimizar la lógica de transferencia porque un código ineficiente encarece cada transferencia de los usuarios.El coste del gas no es solo una cuestión de experiencia de usuario.También puede afectar a si un token resulta práctico para pagos, juegos, recompensas o transferencias frecuentes.Un token diseñado para movimientos cotidianos debe evitar una complejidad de transferencia innecesaria.Un token con una lógica de transferencia pesada puede generar una mala usabilidad y un mayor riesgo de fallo durante la congestión.Función de transferencia en tokens TRC-20
Los tokens TRC-20 también utilizan funciones de tipo transferencia en la blockchain TRON.La interfaz oficial del protocolo TRON TRC-20 describe TRC-20 como un estándar de contratos para emitir activos de tokens.
La guía oficial de interacción con contratos TRC-20 explica cómo las direcciones autorizadas pueden llamar a
Función de transferencia y transferencias de monedas nativas
Una función de transferencia suele analizarse en relación con contratos de tokens, no con transferencias de monedas nativas.El envío de ETH, TRX u otra moneda nativa normalmente se gestiona mediante el protocolo base de la blockchain.El envío de un token ERC-20 o TRC-20 suele requerir llamar a una función del contrato del token.Esta distinción es importante porque una cartera puede mostrar tanto saldos de monedas nativas como saldos de tokens en la misma interfaz.El usuario puede pensar que todas las transferencias funcionan igual, pero el proceso de backend puede ser diferente.Una transferencia de moneda nativa puede fallar por no disponer de saldo nativo suficiente para la cantidad y la comisión.Una transferencia de token puede fallar por saldo de tokens insuficiente, gas insuficiente, allowance insuficiente, transferencias pausadas, listas negras o restricciones específicas del contrato.Una transferencia nativa normalmente no emite un evento
Función de transferencia y direcciones de contratos inteligentes
Enviar tokens a la dirección de un contrato inteligente puede ser arriesgado si el contrato no está diseñado para gestionar esos tokens.Ethereum.org advierte de que los tokens ERC-20 transferidos mediante
Función de transferencia y autorizaciones
Las autorizaciones están estrechamente relacionadas con las funciones de transferencia porque permiten que funcione
Un usuario otorga una autorización llamando a
La dirección o contrato inteligente autorizado puede llamar después a
Función de transferencia y allowance
Un allowance es la cantidad de tokens que una dirección ha permitido gastar a otra dirección.El sistema de allowance es lo que hace posible
El contrato inteligente puede llamar entonces a
Después de una operación correcta de
Casos de fallo de la función de transferencia
Una función de transferencia puede fallar por muchas razones.El remitente puede no tener saldo de tokens suficiente.El remitente puede no tener suficiente moneda nativa para pagar el gas o los recursos de red.La dirección receptora puede estar bloqueada por las reglas del token.La dirección del remitente puede estar bloqueada por las reglas del token.El contrato del token puede estar pausado por un administrador.La cantidad transferida puede superar un límite por transacción o por cartera.El token puede incluir comisiones de transferencia que hagan que el resultado esperado sea diferente de la entrada.El contrato puede revertirse porque la transferencia infringe reglas internas de contabilidad.La red puede rechazar la transacción si el límite de gas es demasiado bajo.El usuario puede llamar a una función incorrecta o utilizar una dirección de contrato de token incorrecta.Función de transferencia y tokens fee-on-transfer
Algunos tokens incluyen comisiones dentro de la función de transferencia.Suelen denominarse tokens fee-on-transfer, tax tokens o tokens deflacionarios.Cuando un usuario envía 100 tokens, el receptor puede recibir menos de 100 porque una parte de la cantidad se quema, se redirige o la recauda el contrato.Este comportamiento puede romper las suposiciones de carteras, sistemas de pago y protocolos DeFi.Un receptor de pagos puede esperar una cantidad exacta, pero recibir menos.Un pool DeFi puede calcular incorrectamente los saldos si asume que cada cantidad transferida llega íntegramente.Los desarrolladores deben detectar y gestionar cuidadosamente el comportamiento fee-on-transfer al integrar tokens.Los usuarios deben leer la documentación del token antes de enviar o intercambiar tokens inusuales.Un token puede seguir una interfaz conocida y seguir teniendo un comportamiento de transferencia que sorprenda a los usuarios.La función de transferencia es donde se aplican muchas de estas reglas especiales.Función de transferencia y listas negras
Algunos contratos de tokens incluyen lógica de lista negra o lista de bloqueo dentro de la función de transferencia.Una lista negra puede impedir que determinadas direcciones envíen, reciban o muevan tokens.Esta función puede utilizarse para cumplimiento normativo, respuesta al fraude, fondos hackeados o control del emisor.También puede generar riesgo de centralización porque el emisor del token puede tener un gran poder sobre los saldos de los usuarios.Los usuarios deben comprobar si un contrato de token incluye funciones de lista negra antes de mantener cantidades elevadas.Los desarrolladores deben revelar claramente cualquier lógica de restricción de transferencias.Los tokens orientados al cumplimiento normativo pueden necesitar restricciones por motivos legales.Los tokens comunitarios podrían no necesitar tales facultades y afrontar problemas de confianza si las incluyen de forma silenciosa.Una función de transferencia con lógica de control oculta puede hacer que un token sea mucho más arriesgado de lo que parece.La libertad de un token depende tanto de la interfaz estándar como de la implementación real del contrato.Función de transferencia y tokens pausables
Un token pausable puede detener las transferencias en determinadas condiciones.La función de pausa suele estar controlada por un rol de administrador o un proceso de gobernanza.Cuando está pausada, la función de transferencia puede rechazar los movimientos normales de tokens.Esto puede ser útil durante emergencias como hackeos, errores de contratos, incidentes de bridges o problemas legales.También puede crear riesgo para los usuarios, ya que los fondos pueden quedar temporal o indefinidamente inmovilizados.Los usuarios deben entender quién puede pausar un token y en qué condiciones.Un token con un proceso de pausa transparente puede ser más seguro que un token con facultades de emergencia ocultas.Los desarrolladores deben documentar la autoridad de pausa e incluir salvaguardas de gobernanza cuando sea posible.Los auditores deben inspeccionar si los controles de pausa pueden utilizarse de forma abusiva.La función de transferencia es donde las reglas de pausa suelen afectar a los usuarios cotidianos.Función de transferencia y acuñación o quema
La acuñación y la quema están relacionadas con las transferencias, pero no son lo mismo que las transferencias normales.La acuñación crea nuevos tokens y suele emitir un evento de transferencia desde la dirección cero.La quema destruye tokens y suele emitir un evento de transferencia hacia la dirección cero.Este patrón de eventos ayuda a las carteras y exploradores a seguir los cambios de oferta.Sin embargo, los usuarios no deben confundir los eventos de mint o burn con transferencias normales entre usuarios.Un token con poder de acuñación ilimitado puede diluir a los titulares.Un token con mecanismos de quema puede reducir la oferta o destruir tokens de usuarios conforme a determinadas reglas.Los desarrolladores deben separar claramente la lógica de transferencia normal de los permisos de mint y burn.Los auditores deben comprobar quién controla la acuñación y la quema, y si esas facultades tienen límites.El control de la oferta puede ser tan importante como el control de transferencias al evaluar el riesgo de un token.Función de transferencia y reentrada
La reentrada es un riesgo de contrato inteligente en el que una llamada externa permite que otro contrato vuelva a entrar en la función original antes de que finalice la primera ejecución.Las transferencias ERC-20 básicas suelen actualizar los saldos internos sin llamar al código del receptor.Sin embargo, los tokens con hooks, callbacks, lógica de comisiones o integraciones externas pueden introducir rutas de ejecución más complejas.Los desarrolladores deben tener cuidado al escribir funciones de transferencia que interactúen con contratos externos.Las llamadas externas dentro de la lógica de transferencia pueden aumentar la superficie de ataque.Las protecciones habituales incluyen patrones checks-effects-interactions, protecciones contra reentrada, llamadas externas limitadas y un orden cuidadoso de actualización del estado.Los usuarios no necesitan entender todos los detalles de la reentrada para enviar tokens.Sin embargo, deben entender que un comportamiento inusual de los tokens puede generar riesgo técnico.Las auditorías son especialmente importantes para los tokens que añaden lógica compleja a las transferencias.Una función de transferencia sencilla suele ser más fácil de analizar que una muy personalizada.Función de transferencia y NFT
Los estándares NFT también utilizan funciones de transferencia, pero su comportamiento difiere de los estándares de tokens fungibles.Los tokens ERC-721 representan activos únicos, por lo que la función de transferencia mueve un ID de token específico en lugar de una cantidad fungible.Una transferencia NFT puede utilizar funciones como
Función de transferencia e interfaces de cartera
Las carteras ocultan a los usuarios gran parte de la complejidad de las funciones de transferencia.Un usuario puede pulsar «enviar», introducir una dirección, elegir una cantidad y confirmar.Tras la interfaz, la cartera prepara una llamada de contrato a la función de transferencia del token.La cartera estima el gas o los recursos de red.La cartera pide al usuario que firme la transacción.La cartera transmite a la red la transacción firmada.Una buena cartera debe mostrar claramente el token, la dirección de destino, la cantidad, la red y la comisión estimada.Una cartera deficiente puede ocultar detalles importantes del contrato o no advertir a los usuarios sobre autorizaciones arriesgadas.Los usuarios deben confirmar siempre la red y la dirección receptora antes de firmar.La interfaz de cartera es práctica, pero la función de transferencia sigue ejecutándose exactamente conforme al código del contrato.Función de transferencia y exploradores de blockchain
Los exploradores de blockchain ayudan a los usuarios a verificar los resultados de las funciones de transferencia.Después de una transferencia de token, los usuarios pueden buscar el hash de la transacción en un explorador.El explorador puede mostrar el estado de la transacción, el contrato del token, el remitente, el receptor, la cantidad, la comisión, el número de bloque y los eventos emitidos.Si el saldo de una cartera parece incorrecto, el explorador puede ayudar a confirmar si la transferencia se produjo on-chain.Si falta un depósito, el hash de la transacción ayuda a los equipos de soporte a identificar la transferencia.Los exploradores leen datos de blockchain, pero también pueden depender de sistemas de indexación que pueden sufrir retrasos o errores de visualización.La transacción sin procesar y los registros de eventos son más importantes que las capturas de pantalla.Los usuarios deben proporcionar hashes de transacciones en lugar de enviar únicamente imágenes de pantallas de carteras.Los desarrolladores deben hacer que los eventos de tokens sean claros para que los exploradores puedan mostrar las transferencias correctamente.El seguimiento fiable de transferencias depende tanto de buenos eventos de contratos como de una buena indexación.Función de transferencia y sistemas de pago
Los sistemas de pago que aceptan tokens dependen en gran medida de las funciones y los eventos de transferencia.Un comerciante puede pedir a un usuario que envíe un token a una dirección de depósito.El sistema del comerciante vigila entonces la blockchain en busca de un evento de transferencia o un cambio de saldo.Si la cantidad y el token coinciden con la factura, el comerciante puede marcar el pago como recibido.Los sistemas de pago deben gestionar cuidadosamente los decimales, las comisiones, las direcciones de contratos, la selección de red y las confirmaciones.No deben basarse únicamente en los símbolos de los tokens porque estos pueden copiarse.Deben almacenar direcciones de contratos de tokens y hashes de transacciones en los registros de pago.Deben tener en cuenta los tokens fee-on-transfer si se requiere una liquidación exacta.También deben esperar una política de confirmación adecuada según la cadena y el valor de la transferencia.Un buen procesamiento de pagos trata las transferencias de tokens como eventos de contratos programables, no solo como mensajes simples entre cuentas.Función de transferencia y auditorías de seguridad
Los auditores de seguridad inspeccionan las funciones de transferencia porque controlan el movimiento de tokens.Comprueban si los saldos se actualizan correctamente.Comprueban si los eventos se emiten correctamente.Comprueban si las transferencias pueden pausarse, bloquearse, gravarse o redirigirse.Comprueban si los roles de administrador pueden abusar de la lógica de transferencia.Comprueban si la oferta puede acuñarse o quemarse inesperadamente a través de rutas relacionadas con transferencias.Comprueban si las transferencias pueden romper integraciones DeFi.Comprueban si hooks inusuales crean riesgos de reentrada o denegación de servicio.Comprueban si la gestión de la dirección cero es segura.Una auditoría de token que ignore la función de transferencia está incompleta.Función de transferencia y tokens de estafa
Los tokens de estafa suelen manipular las funciones de transferencia para atrapar a los usuarios.Un token puede permitir la compra, pero bloquear la venta.Un token puede cobrar comisiones de transferencia extremas después del lanzamiento.Un token puede incluir en una lista negra a los compradores después de que reciban tokens.Un token puede permitir que solo determinadas direcciones transfieran con normalidad.Un token puede falsificar eventos de transferencia para confundir a exploradores o usuarios.Un token puede incluir facultades ocultas del propietario que modifiquen posteriormente las reglas de transferencia.Estos riesgos explican por qué los usuarios no deben confiar en un token únicamente porque aparezca en una cartera.Los usuarios deben comprobar si el código fuente del contrato está verificado y si las reglas de transferencia son comprensibles.Una función de transferencia puede parecer normal en el nivel de la interfaz mientras oculta lógica peligrosa en el código.Buenas prácticas para usuarios
Verifica la dirección del contrato del token antes de enviar o recibir tokens.Mantén suficiente moneda nativa para el gas o los recursos de red.Comprueba cuidadosamente la dirección receptora antes de firmar.Utiliza una pequeña transferencia de prueba antes de enviar una cantidad elevada.Revisa cuidadosamente los avisos de la cartera y las pantallas de la hardware wallet.Evita autorizar contratos desconocidos.Revoca los allowances no utilizados cuando sea posible.Comprueba las transferencias con un hash de transacción en un explorador de blockchain de confianza.No envíes tokens a direcciones de contratos salvo que el contrato esté diseñado para recibirlos.Nunca compartas claves privadas ni frases de recuperación para resolver un problema de transferencia.Buenas prácticas para desarrolladores
Utiliza bibliotecas de tokens auditadas y ampliamente revisadas cuando sea posible.Sigue exactamente el estándar de token pertinente, salvo que exista una razón clara para ampliarlo.Emite eventos de transferencia coherentes con los cambios de saldo.Documenta todas las restricciones de transferencia, comisiones, listas negras, pausas y facultades de administrador.Evita las llamadas externas dentro de la lógica de transferencia salvo que sean necesarias y estén cuidadosamente protegidas.Prueba los casos de fallo de transferencia, no solo las transferencias correctas.Prueba el comportamiento de la dirección cero, los allowances, las comisiones y los saldos en casos límite.Haz que los decimales del token sean claros para las carteras y los sistemas de pago.Verifica el código fuente del contrato después del despliegue.Diseña un comportamiento de transferencia que otras aplicaciones puedan integrar de forma segura.Errores comunes sobre las funciones de transferencia
El primer error es pensar que una transferencia de token es lo mismo que una transferencia de moneda nativa.Una transferencia de token suele llamar a un contrato inteligente, mientras que una transferencia de moneda nativa se gestiona mediante el protocolo base.El segundo error es pensar que
Preguntas frecuentes
¿Qué es una función de transferencia en cripto?
Una función de transferencia es una función de contrato inteligente que mueve tokens de una dirección blockchain a otra.¿Una función de transferencia es lo mismo que enviar cripto?
Es parte del envío de tokens, pero las transferencias de monedas nativas pueden producirse en el nivel de protocolo sin llamar a una función de transferencia de contrato de token.¿Qué es la función de transferencia ERC-20?
La función de transferencia ERC-20 es
¿Qué es transferFrom?
¿Qué es un evento Transfer?
Un evento
¿Por qué falló mi transferencia de tokens?
Una transferencia de token puede fallar por saldo insuficiente, gas insuficiente, recursos insuficientes, transferencias pausadas, listas de bloqueo, límites o reglas específicas del contrato.¿Puede una función de transferencia cobrar una comisión?
Sí, algunos tokens incluyen lógica fee-on-transfer que envía al receptor menos cantidad que la introducida por el remitente.¿Puede una función de transferencia bloquear usuarios?
Sí, algunos contratos de tokens incluyen reglas de lista negra, pausa o permisos que pueden bloquear determinadas transferencias.¿Pueden quedar bloqueados tokens después de utilizar una función de transferencia?
Sí, los tokens pueden quedar bloqueados si se envían a una dirección de contrato que no está diseñada para gestionarlos o recuperarlos.¿Una función de transferencia requiere gas?
Sí, las funciones de transferencia de tokens suelen requerir gas o recursos de red porque ejecutan lógica de contrato inteligente y actualizan el estado de la blockchain.¿Una transferencia TRC-20 es igual que una transferencia ERC-20?
El concepto es similar, pero TRC-20 se ejecuta en TRON y utiliza recursos específicos de TRON, como Energy y Bandwidth.¿Puede ser maliciosa una función de transferencia?
Sí, un contrato de token malicioso puede utilizar la lógica de transferencia para atrapar usuarios, bloquear ventas, cobrar comisiones ocultas o redirigir fondos.¿Deben los usuarios inspeccionar las funciones de transferencia antes de comprar tokens?
Los usuarios deberían comprobar al menos el código fuente verificado, las auditorías, los permisos del token, las restricciones de transferencia y las advertencias de la comunidad antes de confiar en tokens desconocidos.¿Cuál es la forma más segura de enviar tokens?
La forma más segura es verificar el contrato del token, confirmar la dirección y la red, mantener suficiente gas, enviar primero una cantidad de prueba y revisar cada aviso de la cartera antes de firmar.Conclusión
Una función de transferencia es uno de los elementos más importantes de la lógica de contratos inteligentes de tokens en cripto.Controla cómo se mueven los tokens entre direcciones, cómo se actualizan los saldos y cómo las carteras y los exploradores detectan la actividad de los tokens.En los tokens ERC-20 y TRC-20, la función de transferencia proporciona a los usuarios una forma estándar de enviar activos fungibles on-chain.La función relacionada
También te puede interesar
ZK-Rollup
ZK-Rollup-as-a-Service
zk-SNARK
POPULAR
Criptomonedas de moda que están acaparando la atención del mercado
Volumen TOP
Las criptomonedas con mayor volumen de trading
Recién Añadidos
Criptomonedas recientemente listadas y disponibles para operar

