介绍代币、Coin协议 和货币
在之前的课程中,我们已经涵盖了开发人员在 Move 中入门所需的大部分基本概念。在本课中,我们将深入探讨一个更实际的话题,即区块链中两种最常见的核心构建块之一——代币。
代币在加密货币世界中起着关键作用,作为价值或资产的数字表示。它们类似于数字证书,授予对各种资产的所有权或访问权,无论是有形资产还是虚拟资产, 所有这些都安全地记录在区块链上。以太坊区块链上的一个著名标准是 ERC-20。
代币
这些数字资产仅以电子形式存在于区块链上,即去中心化的数字账本。 它们代表有价值的东西,无论是加密货币、公司股份、去中心化组织的投票权,甚至是游戏中的虚拟收藏品。 代币可以在区块链上转移或交易,其所有权和交易透明地记录在案。由于智能合约的存在,一些代币可以自动化诸如红利分配或特定生态系统内的服务访问等流程 。首次代币发行(ICOs)通常使用代币作为筹资手段,投资者购买代币期望其未来价值的升值。
Coin协议
ERC-20 标准是关于如何实现代币的第一个规范之一,定义了一组代币在以太坊区块链上必须遵守的接口函数。 这些函数提供了与代币交互的通用框架,并确保不同应用程序和钱包之间的互操作性。以下是最重要的 ERC-20 接口函数的摘要:
totalSupply()
: 该函数返回流通中的代币总供应量。balanceOf(address _owner)
: 它允许你检查特定以太坊地址拥有的代币余额。transfer(address _to, uint256 _value)
: 该函数使得从发送者地址向另一个地址转移指定数量的代币成为可能。
尽管 ERC-20 标准易于实现,但所有开发人员都需要提供自己的实现方式,并且最终会一次又一次地编写几乎相同的代码。 这是由于以太坊网络(以及许多其他 EVM 网络)的限制,那里没有核心智能合约可以作为开发人员使用的库,类似于许多语言(如 Java)中的核心库。
Move 通过在 0x2
直接定义 Coin
标准解决了这个问题,使开发人员可以直接定义和管理代币,而不必每次都重新编写实现。Sui 网络上的代币称为 Coin
。
另一个 Coin 设计中的关键设计原则是反映现实世界中货币的自然设计。 例如,当某人收到 $1 时,他们可以将这 $1 放进口袋并稍后取出。这与 EVM 链中的代币余额情况不同,在 EVM 链中,所有余额都记录在定义 USDC 代币(与美元挂钩的代币)的智能合约中。 这种集中式余额设计更类似于银行存款系统,所有余额仅在银行系统中定义。这给新接触加密货币的用户带来了很多困惑, 因为他们认为自己的钱包(例如硬件钱包)实际上持有各种代币。
在 Move 中,Coin 更自然且易于理解——当用户收到 Coins 时,这些 Coins 实际上存储在属于该用户的对象中(可以被认为是钱包)。 用户可以稍后轻松地从该对象中取出 Coins 并随意使用它们。