标准中无处不在的 metadata 是整个系统是否高效的关键,它用来存储无需验证的信息,以减轻链上负担。不止如此,metadata 可用来存储预处理的信息,对于需要验证的信息,通过服务商承诺可解决。

无需验证 Verifiless

无需验证、无法验证的信息应当存储在 metadata 中。无需验证是指不具备唯一性、用户可自定义的信息,例如可重复的用户昵称,这类信息中用户具有“这不是惟一的”预期。另一种“无需验证”的信息是因为其无法验证,例如在铸币合约中,通常使用 symbol 来增强代币的人类可识别性,但它是可重复的,我们无法验证用户期望的 symbol 到底是哪一个代币。因此我们应当在链下存储 symbol

预处理

例如头像的渲染、装备数值的计算,使得应用端不必获取复杂的 NFT 信息、计算、渲染,直接从 metadata 获取即可。

预渲染 Prerender

很多类型的NFT信息需要底层数据的组合渲染,例如组合式的头像NFT、多属性的土地NFT,渲染的类型也可能丰富多样,包括 3D 和流媒体,当 NFT 的结构变得复杂、类型变得丰富时,前端实时从链上获取数据即时渲染是想当低效的。预渲染技术将渲染行为交由服务商一次性处理并写入metadata,前端直接获取结果。

预渲染的数据通过签名来保证一定程度上的真实性,见 服务商 。但在 NFT 的交易等敏感操作前,必须再次从链上获取信息加以渲染以验证。

AIT 协议成熟后,每个视觉类 NFT 应当都拥有预渲染信息, Dapp 不再实时渲染,以减轻应用的复杂度。而钱包类的应用应该提供准确的、高可用性的渲染器,为用户提高更改 NFT 前的 预览。

装备集

在大型应用中,需要非常多的 NFT 和用户数据,应当在 metadata 中获取准确信息,它们无需验证,因为交互在链上进行。

服务商

注意:此标准中关于服务商的阐述是建议性的,旨在表达 AIT 的目标。

服务商作为 NFT 的中间件或数据层,承载了 NFT 生态的可用性,使得 Dapp 的应用体验接近中心化服务。服务商可以向用户收费、Dapp 收费,或者探索中的 ZeroCost 技术,或者服务商将预处理服务作为去中心化存储服务的一部分。当然,应该存在着现在无法预期的商业模式。此处阐述商业模式旨在规范预处理技术的验证规范。

假定存在一个服务商的市场,服务商实际上并没有作恶的动机,但如果预处理技术没有相应的可验证机制,服务商则至少存在“消极作恶”的可能性,即服务商失去持续投入安全性的动机,直至发生安全问题,例如将用户的预处理图像替换为广告或病毒。

虽然市场会进行自动调节,发生安全问题的服务商失去信任淡出市场,一次来约束服务商。但在发生垄断等情况下市场将失灵,因此可验证性是必不可少的,虽然增加整个系统的成本。

预渲染技术中,发行 NFT 的相应公链应该具有社区共同认可的服务商发现和验证机制,服务商注册需要抵押一定数额的代币,如果服务商预处理的数据是错误的,任何人都可通过签名直接索赔。在预渲染技术中,预言机机制已足够保证 NFT 类的安全性。

应用层应该具备开发者友好的验证方式,包括完善的工具链,以及低消耗的验证机制,例如Dapp前端中,可在页面渲染完成后,再进行少量的随机抽样验证,因此访问量越大的资源则会得到越多的验证,对于用户来说,这样的验证机制是“无感知”的。

去中心化数据库

去中心化的数据库有利于更彻底的 Chainless,在 metadata 发生变动后,它的数据库地址是不变的,因此无需再次向链上提交信息。另外,orbitdb 类的去中心化数据库有读写权限控制,意味着用户可以完全委托给服务商安全、即时地更新预处理数据。