我们可以在不同的区块链上部署相同的 ERC20 代币吗?

Posted

技术标签:

【中文标题】我们可以在不同的区块链上部署相同的 ERC20 代币吗?【英文标题】:Can we deploy same ERC20-token on different blockchains? 【发布时间】:2021-10-18 11:56:43 【问题描述】:

我想在不同的区块链上部署我自己的 ERC-20 代币,那么有没有可能在不同的区块链上部署相同的代币合约。如果我们这样做,我们就不能为三个区块链提供相同的名称和符号。谁能告诉我这个问题的解决方案是什么?或者我们可以在三个区块链上部署具有相同合约地址的合约吗?

【问题讨论】:

【参考方案1】:

我们可以在三个区块链上部署具有相同合约地址的合约吗?

这取决于您要部署到的网络和您要部署的地址。假设您选择的网络具有相同的 1) 地址格式和 2) 已部署合约地址的计算 - 那么是的,您将能够在多个网络上的同一地址上部署您的合约。

例如,以太坊和 BSC 确实具有这两个功能。但即使波场网络支持与 EVM 兼容的智能合约,它的地址计算方式也不同,因此无法将合约部署在与以太坊或 BSC 上相同的地址的波场网络上。

在多个网络上部署合约到同一个地址的关键是从同一个地址部署,并使用相同的参数:

    对于常规的CREATE 操作码,部署合约的交易需要在所有网络中具有相同的nonce(和相同的from)值。

    或者,如果您使用CREATE2 操作码,您需要传递相同的合约字节码、相同的盐(到CREATE2),并且再次,您需要从相同的地址发送部署交易。


如果我们这样做,我们就不能为三个区块链提供相同的名称和符号

这在技术上是可行的,所以我假设这“只是”您的业务案例或您正在使用的某些工具的限制,或者可能是对 ERC-20 标准如何工作的简单误解。

pragma solidity ^0.8;

contract MyToken 
    string public constant name = "MyToken";
    string public constant symbol = "MyT";
    
    // TODO rest of your token contract source code

【讨论】:

以上是关于我们可以在不同的区块链上部署相同的 ERC20 代币吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Polygon上创建ERC-20通证

剖析非同质化代币ERC721-全面解析ERC721标准

查看ERC20的精度

科普 | 三分钟搞懂 ERC-20 和 ERC-721 的不同

Freemoon 金融生态系统一览

第三方可以向以太坊区块链发送 ERC20 代币交易吗?