Back

链上推荐系统用于 Web3 归因跟踪

Dec 4, 2023Last updated: Jan 22, 2024
链上推荐系统用于 Web3 归因跟踪

链上跟踪推荐

在不断发展的数字领域,企业和开发者一直在寻找跟踪和分析数据的最有效工具。在 Origin,我们一直使用 Google Analytics 作为监测基于网页互动的首选解决方案,但区块链技术引入了一个引人注目的替代方案:链上跟踪交易。这种方法提供了独特的优势,尤其在准确性和透明度方面。

链上跟踪推荐的基本前提是,在任何由你控制的去中心化应用(dapp)发起的交易的 calldata 中附加一些额外的字节。这些额外的字节通常不会干扰合约调用(虽然有例外),但它会将交易的Gas成本微不足道地增加。

这些额外的字节被存储在链上,并且可以在 Etherscan 或任何其他索引器上可见。在 Origin 的案例中,我们使用 Subsquid 来标记 calldata 以已知字节数组结尾的交易,这样我们就知道哪些交易源自我们的 dapp。

这种技术已经被 NFT 市场使用了一段时间,这也是交易量可以被归因于聚合器,如 Blur 或 Gem 的方式。NFT 基础设施项目如 Reservoir 已经将这项功能直接内置在他们的 SDK 中,尽管这种技术在 DeFi 中还不常见。

实施一个链上推荐人系统是一个相对简单的过程,但有几个关键的考虑因素。您需要决定使用哪种归因方法(首次接触 vs. 最后接触),以及您将如何存储数据。以下是我为 Origin 协议设置链上推荐系统的方法。

 

从头到尾的工作原理如下:

  • 创建一个 4 字节代码,通过哈希一个字符串,例如 bytes4(keccak256("oeth.com"))。
  • 将哈希存储在某处,例如代码库或电子表格,以便以后引用。
  • 修改您的 dapp 以通过 URL 参数接受推荐代码,例如 mydapp.com/?code=abc12345,并将该代码存储在 localStorage 中。
  • 当您的 dapp 提交交易时,在 calldata 中附加推荐代码。
  • 一旦交易被挖出,您将看到推荐代码已经被附加到 calldata 并在 Etherscan 上可见,或通过 eth_getTransactionByHash RPC 调用。

 

链上跟踪的优势

  • 不可变记录:区块链的不可变性确保了推荐代码被无限期地记录并且可供任何人访问。
  • 独立可验证性。第三方可以独立验证推荐功能,无需访问受限数据。
  • 准确性。与传统跟踪方法不同,这种方法不受广告屏蔽器和浏览器 cookies 的影响。
  • 跨域。该方法可以跨不同的去中心化应用程序应用。
  • 开放标准。第三方索引器能够将交易归因于聚合器或其他第三方。

 

潜在限制

  • 增加的 Gas 成本:添加额外字节会轻微增加交易成本,每字节大约 16 gas,共计 64 gas。
  • 不兼容交易:在某些情况下,额外的 calldata 可能会导致第三方钱包出现故障。例如,像 ERC20 授权这样的常见交易可能会在钱包中显示自定义用户体验,比如 MetaMask。额外的 calldata 在这些情况下可能会引起错误,因此在实施任何功能时都要进行全面测试,以确保不会出现此类问题。

链上推荐跟踪提供了一些引人注目的优势,相较于传统的跟踪机制,如其不可变性、透明度以及对抗常见网络跟踪问题的能力。虽然它确实带来了自己的一系列挑战,包括增加的Gas成本和潜在的不兼容性,但这些好处可能超过了这些限制,这种技术值得作为替代方案考虑。

Brighton To
Brighton To