作者:Bitcoin Design 来源:https://bitcoin.design/guide/case-studies/payjoin/ Payjoin 指的是发送方和接收方通过协作来共同构建一笔比特币交易。作为一种强大的工具,Payjoin 交易能为用户提升隐私性、节省手续费,并整合 UTXO。但由于其交互式和同步的特性,Payjoin 也面临着一些挑战和权衡。 在支付过程中,Payjoin 交易能够打破一些链上分析的启发式算法。然而,构建这种交易需要发送方和接收方通过一个端点进行实时协调。 本案例研究将: 阐明发送方和接收方各自的动机与目标。 分析交易双方的 Payjoin 用户体验(UX),并提出相应的设计方法。 提出具体的用户流程,并尽可能提供可行的设计方案。 本研究的核心结论是:对于接收方而言,虽然初始设置较为繁琐,但后续每笔交易几乎无需任何额外操作。 而对于发送方来说,除了要使用支持 Payjoin 的钱包外,几乎无需额外设置。并且,根据他们的选择以及具体实现方案的成熟度,其用户体验可以做到与普通交易完全相同或几乎一致。 什么是 Payjoin? 在 Payjoin 交易中,发送方和接收方会以协作的方式,共同为这笔交易贡献输入。Payjoin 机制也被称为“Pay-to-Endpoint”(P2EP),因为整个协作过程是由接收方运行的一个网络端点(endpoint)来协调的。这个端点的地址会和支付地址、金额信息一起,通过 BIP-21 格式的 URI 来传递。 在 Payjoin 的流程中,双方会对交易进行编辑、签名和多次传递,直到最终版本确认后才进行广播。 BIP-78 提案正式定义了一个包含两轮交互(或在地址共享之外,再进行一轮交互)的协议,正如下处图示。 背景 本案例研究源于一项设计挑战,目标是设计一个基于 Payjoin 的发送方支付流程。 Payjoin 对交易双方的实时协作提出了独特的挑战,我们需要一套全新的用户流程,才能健壮而优雅地实现 BIP-78 所启用的各项功能。 截至 2023 年初,Payjoin 尚未在比特币生态中获得广泛的采用。 我们的方法 本案例研究遵循了以下步骤: 理解发送方与接收方的用户及技术要求。 调研 Payjoin 的具体实现: BlueWallet (发送端)和 […] Сообщение 案例研究:Payjoin 的使用体验和交互设计 появились сначала на КриптоВики.
作者:Bitcoin Design
来源:https://bitcoin.design/guide/case-studies/payjoin/
Payjoin 指的是发送方和接收方通过协作来共同构建一笔比特币交易。作为一种强大的工具,Payjoin 交易能为用户提升隐私性、节省手续费,并整合 UTXO。但由于其交互式和同步的特性,Payjoin 也面临着一些挑战和权衡。
在支付过程中,Payjoin 交易能够打破一些链上分析的启发式算法。然而,构建这种交易需要发送方和接收方通过一个端点进行实时协调。
本案例研究将:
本研究的核心结论是:对于接收方而言,虽然初始设置较为繁琐,但后续每笔交易几乎无需任何额外操作。
而对于发送方来说,除了要使用支持 Payjoin 的钱包外,几乎无需额外设置。并且,根据他们的选择以及具体实现方案的成熟度,其用户体验可以做到与普通交易完全相同或几乎一致。
在 Payjoin 交易中,发送方和接收方会以协作的方式,共同为这笔交易贡献输入。Payjoin 机制也被称为“Pay-to-Endpoint”(P2EP),因为整个协作过程是由接收方运行的一个网络端点(endpoint)来协调的。这个端点的地址会和支付地址、金额信息一起,通过 BIP-21 格式的 URI 来传递。
在 Payjoin 的流程中,双方会对交易进行编辑、签名和多次传递,直到最终版本确认后才进行广播。 BIP-78 提案正式定义了一个包含两轮交互(或在地址共享之外,再进行一轮交互)的协议,正如下处图示。
本案例研究源于一项设计挑战,目标是设计一个基于 Payjoin 的发送方支付流程。
Payjoin 对交易双方的实时协作提出了独特的挑战,我们需要一套全新的用户流程,才能健壮而优雅地实现 BIP-78 所启用的各项功能。
截至 2023 年初,Payjoin 尚未在比特币生态中获得广泛的采用。
本案例研究遵循了以下步骤:
从技术上来讲,任何在比特币链上进行交易的人都可以使用 Payjoin。本案例研究从以下两个维度对用户进行分类:
接收方的目标
作为接收方,我希望:
发送方的目标
作为发送方,我希望:
发送方要求
发送方通过 Payjoin 获得隐私保护,通常需要承担更高的交易手续费。
接收方要求
接收方有望获得以下好处:
对于发送方来说,参与 Payjoin 交易的流程相对简单。只需使用支持 Payjoin 的钱包,并在交易过程中保持在线即可。
我们分析了 BlueWallet 在 2020 年率先实现的 Payjoin 用户流程。详细内容见调研报告.
主要发现如下:
我们设计了一套新的发送方流程,试图解决上述问题。
为了创建这套流程,我们假设接收方只提供 UTXO 而不承担手续费,因为这样可以让双方的流程更简单和自动化。
简而言之,我们设计的这套发送方流程要求用户选择一个手续费区间,而非具体的手续费金额(或费率),而流程的其余部分则与普通交易几乎一致。我们通过这个设计来设置 BIP-78 中规定的 3个可选参数,从而构建一个简洁而高效的 Payjoin 实现方案。
详细思路见此文档.
可通过此 Figjam 文件 查看该流程。详细过程和考量见此 文件。
我们引入“Payjoin 握手”这一术语,旨在简洁地描述发送方与接收方之间自动化的往返交互过程。在此过程中,一份最初仅包含发送方输入的 PSBT,会转变为一份包含双方输入、已签名且可广播的最终交易。
以上步骤对于参与交易的用户来说并不重要,也无需他们任何一方执行额外的操作。通俗地说,交易双方甚至无需察觉这一过程,只要在交易过程中保持在线即可。
我们的目标是让这套用户流程的体验无限接近于常规流程。对于那些必须有所区别的环节,我们会通过 UI 来指导和帮助用户。
支持 Payjoin 的钱包会展示一个默认启用该功能的界面。
用户会看到一个和常规界面非常相似的手续费区间选择页。
接着,屏幕会显示一个过渡界面,提示用户 Payjoin 交易正在构建和签名中。
Payjoin “握手”完成后,进入交易广播前的最终检查界面,上面会显示最终的手续费。
最后,支付成功界面会告知用户,该 Payjoin 交易已成功广播。
每个界面的详细说明见此文档。设计稿见此 Figma 文件。
基于 BIP78 协议,接收方的门槛 要远高于发送方。 发送方只需要一个兼容的移动钱包,但接收方仅靠移动钱包无法维护一个始终在线的端点。而企业和机构则面临另一种困境:虽然他们有能力轻松地部署一套 Payjoin 接收方案,但对热钱包的安全顾虑又令其望而却步。
尽管几乎所有移动钱包都是热钱包,为其充值也很简单,但要专门运行一个在线服务器来进行 Payjoin 握手,无论在技术上还是实践中都颇具挑战。这或许是当前阻碍 Payjoin 获得支持和普及的最大障碍。
作者于 2023 年 2 月成功测试了 BTCPay v1.7.12 的 Payjoin 接收功能。
主要发现如下:
在 BTCPay 上接收 Payjoin 的完整调研见此分析报告。
在此,我们将为可以始终在线的销售终端(POS,point-of-sale)系统设计一套用户流程。此流程不适用于移动钱包。
接收方应当能够在平台(应用或 POS 系统)的初始配置过程中、或之后任意时间点设置 Payjoin。以下展示的是一个独立的 Payjoin 设置流程。
集成了初始配置过程的详细流程图见此 Figjam 文件 。
一旦 Payjoin 设置生效, 所有支付请求(BIP-21 支付链接或二维码) 都应该包含执行 Payjoin 交易所需的信息(包括端点地址),无需用户额外操作。
在设置页面中开辟一个版块,提供一个用于管理 Payjoin 设置和监控其状态的专属空间,会是个不错的设计。这个版块还能为使用冷钱包的用户提供一个发现并设置 Payjoin 功能的入口。该版块可以包含以下内容:
在本案例研究的过程中,我们收获颇丰,而我们所设计的用户流程已经应用了其中的许多洞见。
由于涉及多方协作和众多不确定的环节(如端点),无论是理解还是实现 Payjoin 都有着较高的门槛,但这也为各式各样的新功能和服务打开了大门。
以下是一些例子:
本案例研究深入探讨了围绕 Payjoin 的设计问题,希望能借此激发社区对其多样化用例和潜在价值的兴趣。
致谢:
Сообщение 案例研究:Payjoin 的使用体验和交互设计 появились сначала на КриптоВики.