To reach the ethereum genesis block programatically, starting from an erc20 token I give you, you need that "need the contract code" part which is centralised.
The contract that holds the ERC20 is hosted in every single node of the blockchain so it is not centralised at all.
The contract that holds the ERC20 is hosted in every single node of the blockchain so it is not centralised at all.