精通以太坊-代币

十、代币

代币和可替代性

严格意义上说,如果一个代币的交易历史是公开的,那么它就不完全是一个可互相替代的代币。根据代币交易历史的追踪,可由此设定对应的黑名单或白名单,这会降低甚至消除这个代币的可替代性。

对手方风险

对手方风险是指交易的另一方没有履行他们的承诺或义务。

代币和内在性

有些代币所代表的资产是区块链内在的。这些资产是由共识规则所控制的,就如同代币本身。

区块链内在资产的代币不会有额外的对手方风险。

一个非常重要的未来,就是用区块链内的资产替代区块链外的资产,因此可以消除对手方风险。

使用代币:工具型代币还是权益型代币?

工具型代币是指用来支付某个服务、应用或资源的代币。

权益型代币可以被设定为没有投票权的,用来分红和分配利润的代币,也可以承载一个去中心化自治组织的投票权,这类组织的管理由持有代币的所有人共同投票决定。

对于一个初创公司,每次创新都增加了失败的风险。

有限的流动性、有限的应用范围和较高的沟通交易成本降低了代币的价值。

如果你在进行创业并且面临的是一个全新的市场,发行工具型代币并不会为你带来优势。

只有在你的应用必须使用工具型代币的时候,才考虑发行。使用代币来解决你所面临的市场准入或其他门槛问题。不要因为更快融资的原因而发行那些看上去不是公开募资的工具型代币。

以太坊的代币

以太坊账户的以太币余额在协议级别处理,而以太坊账户的代币余额在智能合约级别处理。

要在以太坊上创建新代币,你必须创建一个新的智能合约。

ERC20代币标准是代币的第一个标准。

ERC20标准定义了通过合约实现代币的通用接口,兼容此标准的所有代币都可以采用相同的方式被访问和使用。这个接口包含了一组必须实现的函数,及若干可选的函数和属性,可供开发者根据需要添加。

ERC20支持两种转账。第一种是单一式转账,直接使用transfer函数。

第二种方式是使用了approve和transferFrom的两步式交易。这个流程允许代币的持有人授权其他地址操纵他们的代币。这通常用于授权给某一个合约地址,进行代币的分发,但也可以用于交易所的场景。

ICO是一种众筹机制,公司和组织通过销售代币来筹集资金。

文中有创建和发行代币的例子,使用Truffle框架和Ganache测试链。

在把合约部署到具体的以太坊测试网络之前,先启动一个本地区块链环境来做一遍测试。

以太币是使用带有目标接受人地址的交易进行转账的,而代币的转账是通过代币合约内相关的状态转换进行的,使用合约作为地址,而不是接收方的地址。

一个发送以太币的合约会改变目标地址的状态。一个发送代币的合约只会改变合约内部的状态,而不是接收方地址的状态。即代币仅存在合约内部,出了合约则不存在代币。

如果你有一个长期使用的活跃以太币地址,特别是这个地址是在以太坊平台众筹前后创建的,那么你会发现这个地址充满了不知道来自何方的各种垃圾代币的余额。

你不能使用代币来支付一笔交易所需要的gas,代币合约也不会替你支付这笔gas。即需要L1层的代币来支付gas,有种用假币换真币的感觉。

ERC223方案试图解决不慎把代币转入不支持代币的合约这个问题,通过检测目标地址是否为合约的方式来完成。另一个针对代币合约的改进行方案是ERC777。

ERC721方案是针对不可替代物代币的标准,也称为契约代币。

ERC20将所有者作为映射的主键,跟踪每个所有者的余额;而ERC721将契约ID作为映射的主键,跟踪每个契约ID及其所有者。

代币标准

代币标准是实现的最小化标准。

现存的实现,比如说OpenZeppin,是“经过实战检验的”。

代币接口标准的扩展

很多项目在此基础上创建了扩展的实现,用于支持它们应用中所需要的功能。这些扩展包括:销毁、铸币、众筹、硬顶等等。

代币和ICO

在代币世界中生存的诀窍是将这种技术的长期愿景和影响与可能是巨大的短期ICO泡沫分离开来,这种泡沫充斥着欺诈行为。