目录
在区块链上,部署智能合约的方式有两种,一种是create,另外一种是create2,那么这两种部署合约有什么区别呢?这两种部署方式都会在哪些应用场景中使用呢?
Create和Create2的区别
- Create无法预测部署后的合约地址
- Create2可以预测部署后的合约地址
Create部署合约的原理
Create方法部署合约,首先拿到部署者的SenderAddress
和SenderNonce
值==》进行编码==》编码之后进行哈希运算==》取哈希值最后20个字节==》拿到创建合约的地址
因为SenderNonce
值是递增的,即使是相同的用户每次部署相同的合约生成的部署地址都不相同。
Create2部署合约的原理
Create2方法部署合约,首先拿到部署者的SenderAddress
和salt
、合约字节代码
》将creationCode进行哈希运算》对0xff + SenderAddress + salt + hash(creationCode)