> At the time of deployment, it was discovered that the solidity compiler is not deterministic. AST nodes are identified by their raw pointers. So if we iterate over data structures, different raw pointers might result in a different iteration order.
> We originally wanted to let the community deploy The DAO and then just check the bytecode, but this was not possible at the moment of deployment. So instead a fixed transaction bytecode was provided for the community to deploy.
Shouldn't they have waited to deploy until they figured out how to make it verifiable?
In all seriousness though, when it comes to cryptography, cryptocurrency, and smart contracts, people are playing with fire, and they don't realize it. You can't fix a smart contract the same way you can fix a website. The fact that it's function is not good enough to push it out to the public.
Most software projects don't have that problem. Most software projects, it is okay to push buggy beta code out to the public. Because most software projects don't steward large amounts of money in an irreversible payment system.
> At the time of deployment, it was discovered that the solidity compiler is not deterministic. AST nodes are identified by their raw pointers. So if we iterate over data structures, different raw pointers might result in a different iteration order.
> We originally wanted to let the community deploy The DAO and then just check the bytecode, but this was not possible at the moment of deployment. So instead a fixed transaction bytecode was provided for the community to deploy.
Shouldn't they have waited to deploy until they figured out how to make it verifiable?