1

I was wondering, if I take an ERC token and remove the transfer event, is it still possible for someone or an organisation to be able to track the token movements with bytecode or any reverse engineering of the EMV?

Would that make the token more "anonymous" and hard to track?

2 Answers 2

2

Tracking calls to transfer is possible without the Transfer event. If you look at for example the EOS token, you can use public block explorers to see everything that goes on that contract, including all transfers whether they emit an event or not.

Proficient programmers would also be able to write their own programs which monitor what takes place on a specific token contract, regardless if it emits events.

The blockchain is not encrypted, it is in cleartext, thus everybody can read it. The security of the blockchain comes not from encryption but from signatures which can only be generated if you hold the private key for a particular address.

1
  • is the token obligated to emit events all the time? because if not, retrieving token transfers data wouldn't from events worth it, it wouldn't be reliable
    – Nulik
    May 30, 2018 at 11:07
2

No, because every transaction concerning the token contract is still in the blockchain, which is public. Tracking transactions is possible without events.

6
  • Can you details a bit please? Transfer events are public, but if no events,it become harder to track. I understand the blockchain is public but it's encrypted, right? Please explain more
    – btc4cash
    Apr 25, 2018 at 7:57
  • No, the blockchain is not encrypted. Every node and miner can see the state and every transaction. Ethereum does not use zk-snarks or ring signatures natively.
    – Henk
    Apr 25, 2018 at 7:59
  • The state and transaction don't contain any token related function? I mean there is a data field, but if you don't have the contract ABI how would you ready the transfer function?
    – btc4cash
    Apr 25, 2018 at 8:14
  • 1
    The ABI is only a defenition of the interface of a smart contract. It tells other applications, like web3 how to interact with it. When a contract is deployed to the network, it's compiled bytecode is stored in the blockchain, and thus the state of Ethereum. Although bytecode is not easily readable for humans, don't think it can't be done at all. Experts can analize the code and make sense of it, if they really want to. They can also analyze every transaction that involves the token contract, figuring out every transfer and call there has ever been made on it.
    – Henk
    Apr 25, 2018 at 8:20
  • So mainly it would be decompiling the byte code and figure each function
    – btc4cash
    Apr 25, 2018 at 8:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.