¿Cómo es posible que 0x0000000000000000000000000000000000000000 envíe tokens ERC-20?

¿No es 0x0000000000000000000000000000000000000000una dirección de grabación donde nadie tiene una clave privada? Si ese es el caso, ¿cómo puede esta dirección enviar tokens a otras direcciones? Si observa la pestaña ERC-20 Token de Etherscan, hay muchos registros OUT: https://etherscan.io/address/0x00000000000000000000000000000000000000000#tokentxns

Respuestas (2)

Según el estándar ERC20 , los tokens ERC20 recién creados se envían desde 0x0000000000000000000000000000000000000000la dirección a la que deben enviarse. Se hizo como una forma de registro y para evitar crear tokens de la nada.

Actualizar

El estándar ERC20 en realidad no define que los tokens se envíen desde 0x0000000000000000000000000000000000000000. Los tokens se crean simplemente agregando al balancesmapeo del usuario deseado, emitiendo un Transfer()evento y agregando ese valor al archivo _totalSupply.

Si bien no está definido en el estándar, es una buena práctica emitir un Transfer()evento con 0x0una dirección al crear tokens. Permite a los clientes front-end leer eventos y mostrar datos basados ​​en este evento. De esta publicación:

Esto se hace de esa manera para que los exploradores de bloqueo y las billeteras que solo interpretan el evento 'Transferir' puedan mostrar la operación al usuario. Hubo algunas quejas de los usuarios de que la transferencia falló porque no apareció en su billetera (o en el explorador de bloques).

Solo el evento 'Transfer' es parte del estándar ERC20, y los eventos 'Mint' y 'Burn' no lo son. Es una solución alternativa a esa limitación generar una transferencia desde 0x0 para simular un evento 'Mint' y una transferencia a 0x0 para simular un evento 'Burn'.

Cada una de esas transacciones que ve en la página que vinculó son la representación de Etherscan de una creación de token.

Para agregar a este punto, eche un vistazo a cualquier dirección que haya transferido un token ERC20 a otro lugar. Si hace clic en la pestaña "ERC20 Token Tx", verá transacciones que envían tokens de un usuario a otro. Lo que realmente está sucediendo es una transacción del remitente al contrato de token, que reduce el balancesmapeo del remitente, se suma al mapeo del receptor balancesy emite un Transfer()evento. Lo que ve en esa pestaña es simplemente la lectura Etherscan de los Transfer()eventos de los tokens.

No veo eso en ninguna parte del estándar, ¿podría dar una cotización directa?
En realidad no está allí. La interacción con 0x0se usa realmente en el Transfer()evento al crear el token. He actualizado la respuesta en consecuencia.
A la hora de crear la oferta inicial se Transfer()puede o no utilizar. Los tokens que he creado no lo usan. El evento es principalmente para soporte de EtherScan y otros exploradores de bloques, en ausencia de eventos estándar de mint y burn.

Además, puede encontrar transacciones de ciertos tokens de direcciones que posiblemente no podrían enviarlos emitiendo eventos de transferencia falsos para engañar a etherscan para que lo reconozca como una transferencia de token. Estos ni siquiera son fichas reales.

Etherscan los marca como "tokens de SPAM" una vez que se les notifica.