Since most ICO's published there Token-Code and SmartContract-Code on GitHub, what would happen if someone "steals" this code and re-deploys it on the Ethereum Main-net under the same Name and Token-symbol?
And how can one prevent such an action?
Ethereum Stack Exchange is a question and answer site for users of Ethereum, the decentralized application platform and smart contract enabled blockchain. It only takes a minute to sign up.Sign up to join this community
The name and symbol are vanity data, and are marked as optional in the ERC20 standard. What uniquely identifies contracts are their contract address which is generated based on the address of the user deploying the contract, and the transaction nonce. I can go ahead right now and clone the Gnosis Token, and deploy it on the main net, however because the address of the contract will be completely different from the address of the actual Gnosis contract, they are completely different (regardless of what the symbol and name variables contain) and as long as someone is making sure the address of the contract they are interacting with is the correct one you are fine.
If people redeploy your contract exactly as it is they will not also recreate the state of the contract. Meaning how many tokens each owner has, where they were transferred and so on.
The name and the symbol are not unique. Multiple contracts can have the same name and symbol this is not a violation of the standard, nor it creates any conflict.
There can be an unlimited number of contracts with the same name and symbol.
Also the name and symbol are optional in the ERC20 standard.
You cannot prevent the action of somebody deploying a contract. It's against the philosophy of the decentralized, permissionless applications.
What you can do is promote your token and contract better and stronger than the others. This way when people talk about your token symbol, they will refer to your contract and not any of the other copies.
Marketing and branding make a difference here.
The old code is still present.
Tokens that users hold are, by definition, associated with an "official" contract address. What you're describing is a possible beginning for an unsophisticated phishing-style attack.
The majority of token contracts are either mostly or exactly the same. Addresses are the unique identifier. In the case you describe, it would be hard to pass off the copycat as the real thing, since no wallet or exchange would recognize the claims.
Hope it helps.