查看原文
其他

ICRC-1 同质化代币标准的设计和演变

Dfifans Internet Computer 2023-05-02


在 8 月 14 日,绝大多数 NNS 选民接受了互联网计算机的 ICRC-1 同质化(可替代)令牌标准提案,作为 Ledger & Tokenization 工作组的成员,我对社区的信任和支持感到谦卑。


很多人在投票后联系我了解更多关于标准的信息,激励我写这篇文章,我将解释工作组决定背后的原因,突出公认标准的有趣特征,并概述未来的工作。


设计原则


如果您让五位不同的程序员分别设计一个应用程序编程接口,他们的解决方案的多样性可能会让您大吃一惊,人们根据自己的价值观和优先事项做出决策和设计软件。


了解工作组在设计标准时遵循的原则将有助于您更好地了解最终产品。


互操作性


新标准与现有基础设施的兼容性是工作组的主要关注点。


价值数亿美元的代币被锁定在托管在互联网计算机上的现有分类账中,生成与这些分类账的存储模型不兼容的规范将需要包装这些令牌。


Wrapped token 是区块链之间互操作性的合理折衷方案,但将此解决方案应用于已托管在互联网计算机上的分类账有许多缺点:


  • 破碎的生态系统,一些参与者将继续使用原始账本,为方便起见,有些将移至包装的令牌,这两个小组将不得不使用和支持不兼容的工具和界面。


  • 用户沮丧,每个用户都必须决定他们需要使用哪个令牌版本(已包装或未包装),这种精神压力是不必要的,也是可以避免的。


  • 运营成本,包装代币需要建立和维护新的基础设施。


  • 安全问题,桥接器和令牌包装器通常是代价高昂的安全漏洞的来源。


安全


该标准应仅公开适用于高效和安全实现的功能。


例如,工作组考虑了要求分类账向收款人发送通知的支付流程,不幸的是,这个流程可能会损害账本升级的安全性,因此工作组专注于一个不太方便但更安全(至少从实施的角度来看)的流程。


实用主义


该标准不应依赖于实验性或新的平台功能。


工作组成员提出了许多没有成功的绝妙想法,继续支付通知示例:添加新的平台功能(例如,命名回调)可以启用通知的升级安全实现。


尽管如此,我们还是决定推迟通知功能,因为现在拥有一个好的标准比一年内拥有一个完美的标准更重要。


简单


该标准应该易于理解和实施。


不必要的复杂性是软件系统的祸害,工作组中讨论的一些功能,例如两步传输接口,是安全且实用的,但众所周知难以正确实施。


鉴于没有立即需要这些机制,我们同意开发高级支付流程作为未来的扩展。



功能亮点


嵌入


ICRC-1 代币标准可嵌入到现有的分类账实施中,例如,ICP 账本和任何兼容 DIP20 的账本都可以安全地集成 ICRC-1。


几个决定使这种嵌入变得容易:


  • ICRC-1 账户在选择内部表示时为分类账提供了很大的灵活性,例如,ICP 账本可以将 ICRC-1 地址转换为账户标识符。


  • ICRC-1 接口中的所有方法都有 icrc1_ 前缀,名称冲突不会阻止开发人员将 ICRC-1 方法添加到他们的接口中。


  • ICRC-1 接口没有指定对事务日志的访问,从而使现有分类账可以自由使用其(不兼容的)表示,有时没有东西是一种特征!


完善 ICP 账本技术


ICP 账本是部署在互联网计算机上的最大代币账本,它稳定而强大:自 2021 年 5 月上旬推出以来,没有发生任何重大事件或计划外中断。


该标准大量借鉴了开发和运营 ICP 分类账的经验,并继承了其许多有益特征:


  • ICRC-1 允许用户拥有多个子账户,从而提高透明度并实现简单安全的支付流程,NNS Governance 是此功能的重度用户。


  • ICRC-1 继承并改进了对在不可靠网络上实现安全传输至关重要的事务重复数据删除功能。


同时,该标准带来了一些生活质量改进,例如更透明的账户地址和扩展的备忘录大小。


分层设计


该标准的设计目标排除了包含许多实用功能的可能性,工作组了解这些特性的重要性,并决定遵循精益生产实践的原则并小批量交付成果,ICRC-1 标准提供icrc1_supported_standards 端点来查询账本功能。


正如我们已经讨论过的,该标准没有指定获取交易的接口,缺少此接口使得无法构建许多有价值的功能,例如,代币钱包没有显示所有过去交易的便携方式。


工作组选择为访问事务日志生成一个单独的可选扩展,一旦该规范准备就绪,一些分类账将实施新规范并通过支持的标准端点进行宣传。


钱包将能够查询分类账以获取扩展,并在新界面可用时使用它来提供更好的用户体验。


分层设计也非常适合平台演进,互联网计算机平台即将推出大量令人兴奋的功能,扩展机制将使 DeFi 生态系统与平台同步发展。


可扩展的元数据


许多代币标准遵循 ERC-20 示例,并允许账本客户端查询有关代币的信息,例如代币名称和符号。


然而,现代应用程序通常需要更多信息来提供良好的用户体验。显示令牌图标不是很好吗?深色和浅色主题的不同图标怎么样?或者可能是指向令牌描述的链接?


工作组提出的解决方案是提供对元数据的统一访问,使应用程序构建者能够在不更改分类账接口的情况下进行试验。



下一步


ICRC-1 代币标准是一个重要的里程碑,但这只是漫长旅程的开始,分类账和代币化工作组有很多工作要做:


  • 我们需要就 ICRC-1 账户的文本表示达成一致。


  • 受互联网计算机接口规范的启发,我们希望引入一个验收测试套件,允许开发人员测试他们的分类账实现。


  • 我们期待开发更多规范以支持新型应用程序,例如交易日志访问和高级支付流程。


敬请关注!


在 internetcomputer.org 上开始构建,并在 forum.dfinity.org 加入开发者社区。



作者:Roman Kashitsyn

翻译:Catherine



-              -


HashMix 抽奖活动上线,质押抽取 40 ICP 奖励!

InfinitySwap:很自豪支持互联网计算机上的 ICRC-1 令牌标准

使用 JavaScript 升级互联网计算机上的智能合约





你关心的 DFINITY 内容
技术进展 | 项目信息 | 全球活动


长按关注 DFINITY 微信公众号

随时答疑解惑


*添加小助手微信 comiocn 进交流社群


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存