¿Qué significa dirección (0)? [duplicar]

Haciendo referencia a este enlace: https://theethereum.wiki/w/index.php/ERC20_Token_Standard

Mirando el último contrato. (Línea 130)

function totalSupply() public constant returns (uint) {
    return _totalSupply  - balances[address(0)];
}

¿Por qué usamos balances[address(0)]aquí? ¿Eso significa que obtendremos la suma de todos los valores en los saldos?

Respuestas (1)

balanceses una asignación de dirección a cuántos tokens posee esa dirección.

balances[address(0)]entonces significa cuántos tokens posee la dirección 0 (0x00000000...00).

Aunque no me gusta la práctica, algunos tokens ERC20 consideran que los tokens que se envían a la dirección 0 se "queman" y, por lo tanto, no los cuentan en el total. Por lo tanto, _totalSupply - balances[address(0)]da el número total de tokens menos los que se han "quemado" al transferirlos a la dirección 0.

Gracias por la respuesta. ¿Quién enviará realmente a la dirección (0) entonces? ¿Por errores, error en contrato o fallas en blockchain?
La expectativa es que las personas envíen a address(0)propósito para quemar tokens.
Y también debido a un error humano, cuando no se pasan datos a la función, por defecto se usa la dirección cero.
@smarx ¿por qué no te gusta esta práctica? Lo estoy implementando en el contrato de mi token, ya que a veces quemaré tokens y quiero que se muestre el total en circulación. ¿Tiene algún inconveniente?
No me gustan los casos especiales. ¿Por qué no se cuentan los tokens propiedad de la dirección 0 pero sí los tokens propiedad de la dirección 1? Preferiría una burn()función explícita.
¿La dirección (0) tiene una clave privada?