为 Web3 创建无缝用户引导

METAPIXEL 致力于为 Web3 游戏提供无缝的用户体验,通过代理 gas 费支付服务,用户可以使用游戏内货币或物品支付 gas 费,而无需直接使用区块链原生代币。METAPIXEL 正在Aptos链上开发多重代理交易技术,旨在降低 Web3 的进入门槛,使用户在不知情的情况下也能进行区块链交易。

为 Web3 创建无缝的 Onboarding 体验

Meta Platform 团队负责人,KS (KyuSang) Lee 博士,概述了 METAPIXEL 实现 web3 onboarding 的技术方法

METAPIXEL 的主要目标之一是顺利地将 web3 游戏的价值传递给大众。web3 游戏的关键价值主张是保障用户在游戏中花费的时间和金钱,即用户游戏资产的数字主权。

然而,web3 的一些必要功能,对于实现用户主权来说,对 web2 用户来说构成了巨大的障碍。目前,普通用户进入 web3 领域极其困难,因为他们需要熟悉大量的新术语、概念和实践。这就是为什么 METAPIXEL 致力于在保持 web2 易用性的同时,为用户提供 web3 的优势。

web3 的一个固有方面,使得 web2 用户尤其难以加入,那就是区块链交易的 gas 费。虽然常规的 web2 在线服务被认为是免费交互的(假设你忽略了你需要为互联网服务向你的互联网提供商付费),但 gas 的概念,即用户每次链上交易都必须支付费用,可能是一个陌生的概念。即使他们接受了这个概念,支付 gas 费的过程仍然是一个负担,也是一个常见的痛点。更不用说新用户经常在具有挑战性的用户体验设计、交易签名和网络拥塞中挣扎。

简而言之,gas 费以及相关的整体体验可能会给新手留下对 web3 游戏的不良印象。

这就是为什么我决定在 METAPIXEL 在 Medium 上的第一篇技术文章中解决 gas 费的问题。在这里,我想谈谈 METAPIXEL 团队如何看待这个问题以及我们正在研究的解决方案。

Gas 费

为了使交易在区块链上发生(例如,向 Lucas 发送 10 个 APT),在提交交易时必须支付相应的 gas 费。该费用用作交易在区块链上执行和记录的通行费(计算、网络、存储等)。在某些区块链的情况下,该费用会返还给验证者和运营区块链节点的生态系统参与者,从而使网络能够运行。此外,作为一个理想的副作用,收取 gas 费可以减轻恶意用户在短时间内进行大量交易的攻击动机,例如 DDoS(分布式拒绝服务)攻击。

然而,对于普通的 web2 用户来说,gas 费为 web3 服务创建了一个巨大的进入壁垒。理想情况下,用户应该了解为什么首先需要支付费用才能完成链上交易。然而,最大的挑战是用户需要使用他们正在交易的任何区块链的原生代币支付 gas 费。从交易所(例如 CEX,或中心化交易所)购买代币并将它们转移到自己的钱包中,这确实很麻烦。

即使对于已经熟悉区块链的 web3 用户来说,gas 费也会阻碍对服务的访问。最近,为了庆祝 METAPIXEL 的第一款游戏 Gran Saga: Unlimited (GSU) 的发布,我们在 Galxe 平台上开启了一个活动,人们可以通过完成任务并获得链上成就代币 (OAT) 作为回报。

尽管 OAT 本身可以免费领取,但许多用户在领取时遇到了困难,因为 Aptos 网络需要以 APT(Aptos 区块链的原生代币)支付 gas 费,并且用户必须在其钱包中至少拥有 0.02APT 才能在 Galxe 上进行交易。有趣的是,这是 Aptos 上可以收取的最大 gas 量。

图 1. GSU OAT

简而言之,这些固有的障碍使得用户难以访问 web3 服务,除非他们有强大的动力驱动他们进入 web3,否则它可能会完全劝退他们。

由于这是一个在 web3 中普遍存在的问题,METAPIXEL 并不是唯一一个试图解决这个问题的项目。包括以太坊(meta-transactions)、Solana (octane) 和 1inch Network 在内的几个 web3 生态系统已经在积极进行相关研究,试图消除 gas 费造成的障碍。虽然我不会在本文中介绍每种技术的优缺点,但我想强调的是,METAPIXEL 也在研究和讨论如何在 Aptos 现有开发生态系统的基础上最大限度地提高用户体验。

Aptos 上的 Gas 费

幸运的是,Aptos 上的 gas 费非常便宜。以下是在 Aptos Explorer 上一天中随机时间记录的 gas 费。每次交易的费用在 0.0067 美元到 0.08 美元之间,与以太坊相比,这个价格非常低。但是,无论它多么便宜,除非绝对不需要 gas,否则用户仍然存在障碍,因为他们必须购买一定数量的 APT 才能使用任何服务。

图 2. Aptos 上的交易和 gas 费(截图于韩国标准时间 1 月 26 日下午 3 点)

无缝 Onboarding — 代理 Gas 费支付服务

METAPIXEL 的目标是让用户在不了解区块链 gas 费的情况下使用 web3 服务,即无缝 onboarding。

在设计无缝的 web3 onboarding 体验时,我们正在开发多个技术概念。其中之一是代理 gas 费支付服务,这意味着不拥有任何区块链原生代币的用户将能够通过游戏内货币或物品等其他数字资产代理支付 gas 费,而无需意识到他们正在支付 gas 费。已经熟悉 web3 并拥有区块链原生代币(例如 APT)的用户,如果愿意,仍然可以使用它来支付 gas 费。

除此之外,还可以为指定交易生成用户的免 gas 费区块链交易,例如 METAPIXEL 将有效补贴 gas 费成本的特殊活动 NFT 领取。这是可以实现的,因为在这些情况下,METAPIXEL 会代表用户支付区块链 gas 费。以下是一个测试交易的屏幕截图,其中 METAPIXEL 支付 gas 费而不是用户,因此本质上用户体验的是免 gas 费交易。

图 3. 以零 gas 费转移 APT 的示例

简而言之,用户无需获取原生代币即可执行区块链交易。用户甚至可能没有注意到这是一笔区块链交易!

METAPIXEL 仍然需要满足某些条件才能使交易免 gas 费或可以通过其他方式(例如游戏内货币)支付。如果我们不这样做,可能会打开攻击或利用网络通过生成无限交易的尝试之门。

现在,让我们深入了解我们如何尝试解决 gas 费问题。

多代理交易

在 METAPIXEL 端进行代理 gas 费支付需要一些先决条件。首先,必须创建一个交易,请求网络让 METAPIXEL 代替用户支付。此交易包括有关用户想要进行的交易的信息(例如“向 Lucas 发送 10 个 APT”)以及有关代理 gas 支付本身的信息(即,这是一笔 METAPIXEL 想要代替用户进行 gas 支付的交易)。为了使这项工作能够实现,我们使用了 Aptos 定义的多代理交易。(定义)

多代理交易 利用 Move 的签名者类型,允许在单个交易中跨多个链上帐户进行任意数量的原子操作。这可以使原子交换、K-of-N 批准以及两个或多个链上实体之间的任何任意原子操作在单个交易中完成。使这些复杂的交互不可分割可以提高安全性和性能。当将多代理交易与单个帐户中的多重签名支持相结合时,可以实现更广泛的可组合模式和用例。

远程签名流程

包含 gas 费支付信息的交易需要用户和 METAPIXEL 的签名,METAPIXEL 将补贴 gas 费支付。首先,用户通过 METAPIXEL 钱包向 METAPIXEL 服务器发出代理 gas 费支付请求。此时,服务器会传递有关将要收取费用的帐户的信息。此信息包括帐户地址和帐户的序列号。 ( 参考)

随后,请求(包括用户所需的交易和先前收到的信息)被签名并提交给 METAPIXEL 服务器。METAPIXEL 服务器执行严格的验证过程,如果请求有效,则对其进行签名并提交给 Aptos 网络。

Move 智能合约内部

提交给 Aptos 网络的交易将与 METAPIXEL 创建的智能合约进行交互。下面的代码显示了示例代码的摘录,其中 METAPIXEL 为用户支付 gas 费(代码第 5 行)并收到一定类型的资产作为回报,最终执行用户请求的转账。该代码检查是否存在预设费用(第 9-10 行)并收取费用(第 11 行)。之后,它包括提取用户想要转移的资产类型并将其存入接收者的代码(第 13-15 行)。

在图 3 的情况下,CoinType 设置为 APT,支付费用设置为 0。在这里,可以发送 APT 而无需从用户那里收取 gas 费。METAPIXEL 是支付费用的人。

此代码将在主网上发布,并在 METAPIXEL 服务正式发布之前开源,不仅使我们的用户受益,而且使整个 Aptos 生态系统受益。

//代码示例
public entry fun pay_for_user_and_transfer<CoinType>(
    fee_payer: &signer, // gas 费付款人
    user: &signer,  //普通用户
    receiver: address, // 接收者地址
    payment_fee: u64,  //gas 费金额
    amount: u64,  // 发送金额
    ):
{
    // 检查 gas 支付者是否是 Metapixel
    assert!(signature::get_txn_sender(fee_payer) == METAPIXEL_ADDRESS, error::not_allowed());   

    //如果设置了支付 gas 费
    if (payment_fee > 0){
        // 从账户中提取支付 gas 费的钱
        let payment = coin::withdraw<CoinType>(fee_payer, payment_fee);
        // 将支付 gas 费的钱存入 gas 收集器
        coin::deposit<CoinType>(&GasCollector, payment);
    };
    // 从用户的账户中提取 Token
    let payment = coin::withdraw<CoinType>(user, amount);
    // 将 Token 存入用户指定的接收者
    coin::deposit<CoinType>(receiver, payment);
}

如上面的代码所示,资产转移或资产管理遵循现有的 Aptos 标准。因此,通过使用我们的智能合约,可以轻松地为先前发行的 Aptos 资产提供 METAPIXEL 的代理 gas 费支付。

剩余的挑战 — 性能

多付款人密钥管理结构是解决此问题并实现并行执行的一种方法。在实验室环境中,在一台本地 PC (12-Core, 3.70 GHz) 上测量的费用支付服务的性能约为 100 TPS,延迟在 2 秒内。更具体地说,我们在 WSL (Windows Sub Linux) 环境下配置了本地 Aptos 网络、费用支付服务器和交易生成器。我们还观察到,诸如交易签名和验证之类的 CPU 密集型流程是吞吐量的更大瓶颈,而不是 RAM 和网络速度。

我们想通过实验室环境测试证明的不是具体的数字,而是我们的费用支付服务是否具有 1) 并行执行和 2) 扩大/缩小规模的结构。

图 4. 多个帐户的详细信息。用户图标由 Freepik 创建

如下图所示,通过利用多个付款人帐户可以实现并行执行,并且易于扩大规模。重要的是要注意,为了扩大规模,不仅必须以安全的方式分配和撤销付款人帐户,而且还必须以无状态的方式处理交易。我们计划对预计在服务上发生的交易量进行建模,在官方发布之前准备动态扩大规模的措施,并优化 HW/SW。

图 5. 顺序执行与并行执行

总结

创造愉快且易于访问的用户体验是 METAPIXEL 的最终目标之一。我相信无缝的 onboarding 流程(包括我们的代理 gas 费支付解决方案)将能够大规模采用 web3 游戏,METAPIXEL 的技术团队将继续研究如何使用户更容易使用 web3。

在未来的技术文章中,我将分享 GSU 玩家如何在游戏过程中无缝地获取和交易 NFT 资产,而无需与钱包进行交互。

关于 KS (KyuSang) Lee

KS (KyuSang) Lee 博士是 METAPIXEL 的 Meta 平台团队负责人。KS Lee 是一位首席工程师,在网络和通信技术以及 ICT 行业拥有丰富的工作经验。他的专长领域包括区块链技术、网络协议和系统、分布式系统、网络设计以及多种编程语言。

KS Lee 于 2013 年在韩国科学技术院获得电气和电子工程博士学位。之后,他曾在 NASA 艾姆斯研究中心担任博士后研究员和开发人员,然后在 Samsung SDS 工作了近 8 年,其中包括在区块链研究实验室工作 5 年(其中 1.5 年担任实验室负责人)。

现在,他正在运用其行业领先的知识和经验,使 METAPIXEL 的 web3 平台真正成为一流的。

官方链接

METAPIXEL 网站: METAPIXEL: the Complete Gaming Metaverse

METAPIXEL Discord: discord.gg/metapixel

METAPIXEL TwitterMETAPIXEL (@Metapixel) / Twitter

NPIXEL 网站: 엔픽셀 — NPIXEL

  • 原文链接: metapixelblog.medium.com...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
metapixelblog
metapixelblog
江湖只有他的大名,没有他的介绍。