Warum gibt es 'OUT'-Token-Übertragungen von der Nulladresse (0x00...)?

Es gibt keine 'OUT'-Transaktionen mit Ether ( Link ), aber es gibt viele Token-Transfers ( Link ). Nach meinem Verständnis hat höchstwahrscheinlich niemand einen privaten Schlüssel für diese Adresse, also woher kommen diese Transaktionen?

Antworten (1)

ERC20-Token-Transaktionen müssen nicht den gleichen Regeln folgen wie Ether-Transaktionen.

Was die Liste der Token-Transfers für die Adresse 0x00 Ihnen zeigt, ist eine Liste von TransferEreignissen, die durch Verträge ausgelöst wurden, die ERC20-Token ähneln. Jeder Token-Vertrag kann ein TransferEreignis mit beliebigem Inhalt auslösen, daher ist er nicht unbedingt zuverlässig.

Nehmen wir zum Beispiel diese "ChangeBank"-Transaktion . Das Ereignisprotokoll zeigt zwei Ereignisse. Das erste ist ein TransferEvent, und die fromAdresse (Thema 1) ist tatsächlich 0x00....00.

Wenn Sie sich nun den Quellcode für das ChangeBank-Token ansehen, können Sie in Zeile 199 Folgendes sehen:

  function mint(address _to, uint256 _amount) onlyOwner canMint returns (bool) {
    totalSupply = totalSupply.add(_amount);
    balances[_to] = balances[_to].add(_amount);
    Transfer(0X0, _to, _amount);
    return true;
  }

Der Autor hat das Prägen neuer Token codiert, um ein TransferEreignis auszulösen, das als Übertragung von Adresse 0x00 angezeigt wird. Das erscheint mir etwas seltsam, aber fair genug; Es hat den gewünschten Effekt, dass es als eingehende Überweisung im Konto des Empfängers registriert wird, und wen kümmert es, wenn das 0x00-Konto inkonsistent ist?

Es ist also kein privater Schlüssel für 0x00 erforderlich, um scheinbare Token-Bewegungen von 0x00 aus zu registrieren.