了解Cardano上的原生资产

Understanding native assets on Cardano | Cardano Explorer (cexplorer.io)

原生资产功能是一种将代币发行者与代币所有者分开并将核心操作留给协议的创新方式。 处理原生资产更便宜、更安全,但代价是可编程性较低。 让我们比较一下卡尔达诺和以太坊平台对代币的处理方式。

原生资产
卡尔达诺是一种所谓的多资产分类账。 账本模型中定义的会计基础设施已得到扩展,能够以与 ADA 币相同的方式处理代币。 卡尔达诺账本支持跟踪账本上不同类型资产的转移和所有权。

卡尔达诺可以以所谓的本机方式铸造、存储和转移代币,即它不需要像以太坊这样的智能合约。 本机脚本仅用于铸造(和燃烧)代币。

代币从一个地址到另一个地址的本机传输意味着该功能由卡尔达诺协议提供。 用于 ADA 币传输的协议源代码的相同部分也用于代币传输。 处理令牌的所有必要功能仅实现一次,并且对于所有令牌都完全相同。

简而言之,账本和协议可以处理代币,而不需要第三方(代币发行者)提供源代码(智能合约)以及用于基本操作的附加规则和功能。

对代币的控制
想要铸造代币的用户必须定义铸造策略。 该用户称为资产控制者。 铸造政策是一组规则,其中定义了谁以及在什么条件下可以控制代币的供应,即铸造和销毁。 该用户称为令牌发行者。 资产控制者和代币发行者可以是一个实体。

在处理交易时,节点始终会检查是否遵守铸币政策。 几乎没有任何可利用的空间。

在下图中,您可以看到谁在令牌的生命周期中拥有对其的控制权。 代币的铸造和燃烧由代币发行者控制。 他需要与卡尔达诺节点进行交互。 一旦发行人将代币发送到用户地址,他们就是唯一通过自己的钱包控制代币的人。 换句话说,代币的转移和所有权不依赖于原生脚本。

卡尔达诺账本负责存储代币,协议负责代币的传输。 代币持有者使用常规卡尔达诺钱包构建并向网络提交交易以花费代币。

用户可以在第三方应用程序中使用令牌。 请注意,用于铸造和燃烧代币的脚本与应用程序是分开的。 应用程序(在普利拓斯平台中执行)与卡尔达诺交互以操纵代币。

蓝色框中是卡尔达诺提供的流程,其功能无法由代币发行者定义或限制。 红框中是令牌发行者定义的流程。 黄色框中是允许处理用户脚本(程序)的执行环境(平台)。

一旦用户拥有代币,代币发行者就完全无法控制它们。 用户可以互相发送代币,只需要卡尔达诺协议和账本。 只有当用户将代币发送到其地址时,代币发行者才能获得对代币的控制权(并可能销毁它们)。 用户可以完全无限制地使用任何智能合约,也不需要请求代币发行者的许可。

下面是以太坊的类似图片,以便您可以比较这两个平台。

原生资产的优点和缺点
原生资产的最大优势之一是它们可以通过常规交易发送,就像 ADA 币一样。 费用较低,因为传输对计算机资源的需求低于必须使用智能合约的情况。 如果需要使用智能合约,费用将取决于智能合约的复杂性(消耗的资源量)。

独立于智能合约使得在单笔交易中发送多个代币变得容易。 甚至可以在一笔交易中定义多个接收者。 此类交易的验证非常简单,并且如上所述,对于所有代币来说都是相同的。

将代币存储在账本中并通过卡尔达诺协议进行传输更加安全,因为它不依赖于第三方在智能合约中实现的功能。 这样,代币就不会因为合约代码中的错误而丢失。 没有必要复制/粘贴其他现有合同或发明新的东西。

如果代币发行者出于某种原因想要自己定义代币转移规则,则无法自定义代币转移规则是一个缺点。 如果代币发行者出于遵守法规的需要而希望保留对代币转让的控制权,那么在卡尔达诺的情况下这是不可能的。 例如,在某个司法管辖区发行稳定币可能需要实施黑名单、nsor 交易,或冻结帐户。

请注意,原生代币与 ADA 币具有相同(或非常相似)的属性。 不可能阻止某人使用代币、实施交易审查或使用代币冻结地址。

审计代币非常容易,因为它们透明地存储在分类账中。 只需查阅铸币政策,审计员就掌握了所有必要的信息。

卡尔达诺和以太坊的比较
在卡尔达诺上铸造代币时,可以仅定义代币的基本属性,例如名称、数量以及可以铸造和销毁代币的实体。 只能为铸造和燃烧定义功能。 例如,可以指定一个时间,在此之后防止进一步铸造或燃烧硬币。

在以太坊上铸造代币时,需要编写一个完整的智能合约,其中定义了功能,即每个代币操作的具体行为。 除了代币的名称和数量之外,还需要定义铸造、销毁、代币转移等功能。 例如,批准功能可以保证帐户能够代表发送者花费一定数量的代币。 此外,允许查询允许一个帐户代表另一个帐户花费的代币数量的功能。

以太坊允许代币具有更高的可编程性。 代币发行者不仅可以控制代币的铸造和销毁,还可以定义谁可以使用代币以及在什么条件下使用代币。

下图描述了由智能合约和协议控制的功能。

红色框中是令牌发行者必须定义的所有流程。 智能合约定义了管理代币的创建、转移和平衡的功能和事件。 智能合约还在其存储中维护每个账户的代币余额的映射。 以太坊协议仅提供部署和执行智能合约的执行环境(平台)。

以太坊协议对铸造代币没有任何了解或控制。 它只根据其规则执行智能合约代码,并将其状态变化记录在账本上。

卡尔达诺协议了解铸造的代币,并通过交易和账本中的存储来控制它们的传输。

两个平台的不同方法体现在第三方应用程序如何使用代币。

卡尔达诺生态系统中的应用程序可以通过本机交易任意使用所有现有代币。 构建 DEX 的团队可以完全控制所有功能。 他们可以定义可以使用代币的条件。 令牌发行者无法控制第三方应用程序中令牌的使用。 换句话说,团队定义允许他们从用户接收代币的功能(通常用于交换其他代币)。 此外,他们自己定义了流动性池和代币互换的功能。 每个 DEX 的表现都有很大不同。

就以太坊而言,多个智能合约必须相互交互。 构建 DEX 的团队必须创建一个智能合约,与用于铸造代币的智能合约进行交互。 如果你想在 Uniswap 上交换代币,需要 4 个智能合约进行交互。 代币 X 的智能合约、代币 Y 的合约、代币 X 和 Y 的流动性池智能合约,以及所谓的路由器合约,促进用户和配对合约之间的交互。 构建 DEX 的团队在某种程度上受到智能合约中定义的代币铸造操作的限制。 好在采用了标准接口,交互也比较容易。

Cardano 区块链中的代币是 UTxO,就像 ADA 币一样。 可以并行处理事务和验证脚本。 请注意,发送代币完全独立于 Plutus 平台。 Plutus 平台可用于定义更高级的行为。

以太坊中的代币是由智能合约存储和调整的余额。 并行处理是不可能的,因为网络中的每个节点一次只能执行一笔交易。 这是因为以太坊使用顺序执行模型,并且代币处理(包括代币转移)依赖于执行环境(EVM)。

结论
在卡尔达诺上铸造代币简单且相对安全,因为代币发行者只定义了代币的基本特征以及铸造和销毁的权利。 代币的基本操作由 Cardano 节点提供,更复杂的操作可以在 Plutus 脚本中进行编程。 这使得发送令牌非常便宜,因为它消耗的计算机资源最少。

以太坊要求代币发行者定义(编程)代币操作的所有重要功能,包括转账。 通过代币更好地控制代币在某些情况下很有用,但代价是对计算机资源消耗的更高要求。

两种方法的区别最明显的可能是发行必须符合监管要求的稳定币的可能性。 在以太坊上,可以限制用户支出代币(审查交易、冻结账户),而卡尔达诺根本不允许这样做。

以太坊更高的可编程性当然也可以用于其他积极的功能,而不仅仅是限制用户关于代币支出的权利。 Cardano 缺乏类似于 ERC-20 标准的功能,这些功能允许代币发行者对代币有更多的控制权。 目前,在卡尔达诺上建立符合监管要求的稳定币在技术上是不可能的。 另一方面,如果监管机构允许只有所有者可以控制的稳定币的存在,也许会更好。