EOS 合约是由开发者部署到主网上,开发者用一个EOS账户来部署合约,之后该EOS账户名就是合约的标识,并且EOS账户名和合约是一一对应的。举个例子,EOS账户A 部署了 合约X,那么合约X 的地址就是EOS账户A的账户名;如果EOS账户A接下来又去部署了合约Y,那么合约X就从主网上消失了,被合约Y代替了。合约从X变为Y,但是合约名(标识)还是EOS账户名A,演绎EOS版的“狸猫换太子”。
部署合约这个动作,必须要有部署该合约的EOS账户的私钥(owner key 或者active key),用来签名。举个例子, EOS账户A部署合约,那么钱包中必须导入账户A的私钥,否则就无法用EOS账户来执行任何动作。
综上说明,EOS账户私钥拥有者完全控制其部署的合约,小伙伴们在使用主网上已部署的合约,要注意风险。重新部署合约正常情况是开发者的需求,比如合约升级。但不排除少数合约部署者做恶,更改合约内容,损人利己,图谋不轨。