IOHK官网博客:Cardano上的原生代币:核心原则和差异点

Uploading: image.png…

原文来自IOHK的Polina Vinogradova,由卡尔达诺大使陈哲Anson翻译

在昨天的帖子中,我们研究了Cardano上代币的目的和价值。在这里,我们将深入研究指导方法的四个原则以及主要优势

以太坊使用智能合约实现自定义(用户定义)代币,模拟自定义资产的转移。我们使用Cardano的方法不需要智能合约,因为分类帐本身支持非ada本地资产的会计处理。

另一个不同之处是,卡尔达诺的多资产分类帐支持无替代代币的可替代和唯一的不可替代的令牌,而无需专门的合同(类似于ERC-20和ERC-721所要求的)。它可以在单个输出中同时存储可替代和不可替代代币。

卡尔达诺的原生代币框架基于以下四个原则:
轻巧
•可负担性
•安全性
•统一流程

轻巧

原生代币框架基于围绕代币群(值)构建的多资产分类帐结构。代币群可以包含ada和其他代币的异构混合,包含代币的结构存储在分类帐的输出中,而不是像以前一样存储在ada中。每种类型的代币都通过其资产ID进行标识,其中包括对其铸造策略的哈希引用。造币策略本身仅在造币或燃烧期间进行检查,而本身不会存储在分类帐中,这使此方法非常轻便。

资产ID还以一种轻量级的方式捕获了可替代性关系:具有相同资产ID的代币可以相互替代,但是不能与具有不同资产ID的代币进行替代。唯一代币与其资产ID相关联的数量恰好为1。

资产ID可以识别单个代币群内以及整个分类帐中的每种代币类型。它还在代币群的内部两级地图结构中标识代币的位置。这种内部数据结构使可替代和不可替代代币得以统一表示。它还为可以在系统中标记化的资产用例提供了极大的灵活性。例如,可以很直接地表示单个财产的分时,或者代表由艺术家控制的单一铸造政策范围内的一系列独特艺术品。

当我们查看以太坊ERC-20中两个合同之间的资产转移工作原理时,原生代币固有的简单性得到了进一步加强。在这种情况下,它需要智能合约代码,这会增加复杂性,并有可能出现错误和成本。代币群的结构为资产转移提供了一种相当轻量级的方法,因为可以在单个交易中以更快的速度来交易不同类型的代币。

可负担性

在ERC-20代币环境中,在两个对等方之间转移任何数量的代币都需要执行智能合约,该合约会收取执行费(gas)。相比之下,在卡尔达诺的原生多资产生态系统中,资产(代币,ada,自定义货币等)的转移不需要智能合约,并且不收取任何执行费,这意味着更大的承受能力。

安全

与以太坊的ERC-20和ERC-721标准相比,原生代币具有更轻便、成本更低的设计。但是,如果没有强大的安全层来保证系统的完整性,这两个功能将毫无意义。

在原生代币中,系统完整性围绕值保留的分类帐属性构建(即,所有输入的总和等于输出的总和)。与用户定义的智能合约相反,所有原生代币传输逻辑都在分类账中用代码表示,这确保了系统的可预测且统一的行为,并且不需要用户了解智能合约,而智能合约通常可能是系统脆弱的一个点。

尽管总账可以确保会计正确性,但代币的铸造和燃烧由用户定义的铸造策略来管理。铸造策略永久性地与它所作用域内的代币进行哈希关联,并且无法更改此策略。这保证了发行人选择的策略永远不会更改以允许铸造或燃烧未经原始策略授权的这种类型的代币。每当将铸币交易添加到分类账时,便会检查并且必须满足每种铸造代币的策略。除ada(因为Cardano禁止铸造额外的ada)外,每个流通的代币都必须具有铸造策略,并保证已根据该策略进行铸造。

因此,在Cardano中操作代币所需的唯一自定义代码是策略本身。将策略哈希值绑定到资产标识符意味着不需要全局资产注册表,因此创建资产既便宜又容易。该系统保持简单,轻巧且易于使用。

统一的流程

当原生代币作为Goguen的一部分实现时,分类帐将以相同方式处理所有代币。铸造代币只能以一种方式完成,以减少歧义和可能的​​错误。使用统一过程的这种简化方式将导致更快的开发和总体上更好的开发体验。

进入产块前环境

在2021年第一季度对协议进行升级(内部名称为“ Mary”)后,原生代币功能将部署到Cardano主网,从而为用例开辟了新天地。对于在此日期之前加入新的开发人员,我们现在正在完成原生代币的预产块环境的部署。因此,请密切关注我们的社交频道,以获取有关部署的最新消息。

如果您是开发人员,并且希望尽早参与我们的开发,请访问我们的开发人员网站,您可以在其中获得支持文档和资源。我们将对此加以补充;在此页面上注册我们的开发人员调查,以表达您的兴趣,并在一切就绪后可以立即提醒。

原文链接:https://iohk.io/zh/blog/posts/2020/12/09/native-tokens-on-cardano-core-principles-and-points-of-difference/