当前位置:首页 行业动态 正文

一文了解如何使用内存池数据进行UX研究 改善NFT拍卖体验

2025-04-02

用户体验 (UX) 描述了人们在与系统或服务交互时的感受,包括多个因素,包括可用性、设计、营销、可访问性、性能、舒适度和实用性。唐诺曼曾经说过,

“万物皆有个性;一切都发出了情感信号。即使这不是设计师的本意,浏览网站的人也会推断出个性并体验情感。糟糕的网站具有可怕的个性,通常在不知不觉中向用户灌输可怕的情绪状态。我们需要设计东西——产品、网站、服务——来传达任何想要的个性和情感。”

以太坊的个性是一个极其高深莫测且容易被误解的人。更糟糕的是,大多数用户在使用您的界面或钱包时甚至不会将其视为与以太坊进行交互。如果你曾经在 Artblock 拍卖的实时聊天中,你会注意到拍卖一结束,至少有十几个人抱怨他们没有抢到份额是 Metamask 的错。我认为在过去的一年里,以太坊上许多 dapp 的用户体验在产品交互和交易的可解释性方面都有了很大的改进。在大多数情况下,dapps 不再只是在您签署交易后给您留下一个加载微调器。

即使 dapps 的设计总体上在改进,但我不确定 UX 研究的深度。当我看到对各种协议的数据分析或研究时,用户大多被视为同质的。根据我所看到的 Uniswap V3 流动性提供商和 Rabbithole Questers 的一些分析,这种情况有所改变,但即便如此,这些分析仍主要集中在刚刚确认的链上交易上。根据我自己的经验,大多数情绪诱发和行为怪癖发生在我提交、等待、加速或取消交易时。对于某些应用程序,用户可能会在提交交易后离开并去做其他事情。但是对于像 Artblock 的拍卖这样的产品,他们会一直待到确认发生为止,可能会检查所有可能的更新并增加焦虑。

我认为通过开始更多地利用内存池(mempool),我们可以更好地理解用户行为和摩擦。内存池是节点临时存储未确认交易的地方。这意味着如果您提交、加速或取消您的交易,那么这些操作将首先显示在内存池中。需要注意的是,来自内存池的数据并未存储在节点中,因此您无法像查询已确认交易那样查询历史数据。从这里,您可以看到他们提交了一些交易,将交易加速了很多次,但远未达到所需的 gas 价格,最终在 20 个区块后看到了确认。我相信这是用户体验和他们在整个过程中可能感受到的情绪的一个很好的代表。如果我们了解不同用户群体在这个循环中的行为,我们就可以弄清楚如何补充他们的决策或缓解他们的焦虑。据我所知,几乎只有以太坊基金会、所有核心开发人员和一些钱包团队出于用户体验的原因利用内存池数据。

用户体验研究论文:通过随着时间的推移通过拍卖查看用户的行为以及他们的钱包历史,我们可以开始为不同的用户群体提供行为身份。从这里,我们可以确定要尝试缓解的主要问题。为此,我们将使用 Blocknative 获取一个月的 Artblocks Auctions 数据,并使用 Dune 查询对这些地址的历史进行分层。

这篇文章将比我之前的一些文章更具技术性,因为我相信这项工作可以而且应该很容易推广。我想强调的是,我的背景不是用户体验研究,我纯粹是在尝试我认为加密原生用户体验研究的样子。

数据来源和预处理所有拍卖数据

如果你对技术位不感兴趣,请跳到下一节——关于特征工程

Blocknative 和 Mempool 数据流

使用 Blocknative 的 Mempool 浏览器,您可以过滤提交给特定合约或来自特定钱包的交易。就我而言,我想听听 Artblock 的 NFT 合约列入白名单的铸币合约。您可以在此处找到我使用的流,如果您想使用完全相同的设置,请将其保存下来。

您可以在其子图?中使用以下查询找到列入白名单的铸币地址:

qxlRz6o63wsVAZhmRSRszwh2YsY1VC0r5LPNtZm6.png

获得所有购买的订阅过滤器需要三个步骤:

  1. 使用“创建新订阅”按钮添加新地址

  2. 单击地址旁边的“ABI”按钮添加 ABI。 就我而言,我只需要“购买”功能。

GIfk0yl5GYL1nXQGgsvlz98s1DeFbDNUuvnWlH5A.png

3. 为 methodName 匹配购买添加过滤器(确保您没有执行全局过滤器)

最后,您的设置应如下所示:

QlLrXTQ5iaNjzdDy5GIFQx9t7Cjt0wuGaRrX56sI.png

为了存储这些数据,我创建了一个 ngrok/express 端点来存储在本地运行的 SQLite 数据库中。我创建了一个 GitHub 模板?,其中包含复制此设置的步骤。可能这里要记住的最重要的一点是,在 Blocknative 帐户页面中将 POST 端点添加为 webhook 时,您需要将 POST 端点作为 ngrok URL 的一部分。

关键预处理函数

多个交易哈希

当您加速或取消交易时,原始交易哈希将替换为新交易。这意味着如果您想在其整个生命周期中跟踪用户的交易,您需要将新交易哈希与原始交易哈希进行协调。假设您将交易加速五次,您将拥有总共六个哈希值(原始哈希值 + 五个新哈希值)。我通过将 tx_hash 的字典映射到新的 replaceHash 来调和这一点,然后递归替换。

qek6f4lHL6A1KgaYMgDWB1PZkfHkxQbSTx0iNrTb.png

区块编号问题

删除的交易的区块号为 0,所以为了解决这个问题,我按时间戳按升序对数据帧进行排序,然后进行向后填充,这样 0 就会被它放入的正确区块号替换。这是功能的重要修复工程。

It8RD4DcE5IQY11xZwnsiTz0dBL0qqNyOUadXRgO.png

在主要拍卖期间处理铸造