如何将ERC20代币持有者的钱包地址保密?

时间:2018-11-13 00:29:56

标签: token tokenize ethereum erc20

这是令牌成为ERC20令牌所需的接口

contract ERC20Interface {
    function totalSupply() public constant returns (uint);
    function balanceOf(address tokenOwner) public constant returns (uint balance);
    function allowance(address tokenOwner, address spender) public constant returns (uint remaining);
    function transfer(address to, uint tokens) public returns (bool success);
    function approve(address spender, uint tokens) public returns (bool success);
    function transferFrom(address from, address to, uint tokens) public returns (bool success);

    event Transfer(address indexed from, address indexed to, uint tokens);
    event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
}

我想将拥有我令牌的人的地址保密。因此,我删除了转移事件和批准事件。我还把balanceOf函数设为私有。

是否还有某种方式让公众人士找出谁拥有我的代币?公共人士还可以通过某种方式知道何时进行交易?

2 个答案:

答案 0 :(得分:0)

是的,比特币和以太坊的主要特征之一是它们是公开的。当任何人使用您的智能合约时,他们的所有行为必定会有计划地记录在区块链中。

请参阅此tx,它称为智能合约方法。注意,我如何看到谁向谁发送了什么,调用了什么函数以及带有什么参数。

答案 1 :(得分:0)

它是私人的吗?

  

是否还有某种方式让公众人士找出谁拥有我的代币?公共人士还可以通过某种方式知道何时进行交易?

可以检查合同的存储,还可以检查交易数据。此数据必须是公开的。您能做的最好的事情就是使您的中级用户更难找到此信息(尽管知道自己在做什么的人可以将其挖掘出来然后发布)。

这是ERC20令牌吗?

  

这是令牌成为ERC20令牌所需的接口...我删除了Transfer事件和Approval事件。我还把balanceOf函数设为私有。

请注意,删除这些内容将使其不再是ERC20令牌。 ERC20 spec中需要这些。

现在怎么办?

公共区块链上的私有交易是一个持续的研究领域。如果您真的想实现此目的,则需要深入研究该领域的最新研究,并熟悉ZK-SNARKS和替代方法。