可以将Zaps理解为打赏。通过闪电网络打赏,不仅速度快而且几乎没有手续费。
Nostr协议设计之初,就有考虑集成闪电网络。随着NIP-57规范的实施,Zaps成为Nostr协议传递价值的主要方式。让我们看一下NIP-57规范是如何实现的以及Zaps的工作原理。
NIP-57
NIP-57规范文档描述了Zaps应该被如何实现。它创建了两个种类的注释(notes):kind为9375的Zap以及kind为9374的Zap请求。通过这两种方式,Nostr 客户端可以从 LNURL 服务器请求 Zap 发票并进行支付。 NIP-57 规范还描述了接收 Zap 付款的闪电钱包应如何创建要发送到中继器的票据。
有趣的是,为Zaps选择的kind类型(9375)与 闪电网络使用的网络端口 (9735) 相同。
Zaps是如何工作的
这里不会探讨深入的技术细节,下面让我们简要了解Zaps的工作原理吧。
- 1.当你点击客户端(Damus、Iris或者Amethyst等)中的⚡图标时,第一件发生的事情是客户端会ping一下你所要Zap用户的闪电网络钱包的LNURL服务器。第一个请求是这样的,“我想给Alice发送一些sats。”
- 2.LNURL服务器响应并且,如果Alice的钱包支持Zaps的话,告诉客户端Alice的钱包支持Zaps并发送/确认Alice的公钥。
- 3.此时,客户端会把将要Zap的相关数据信息、打赏数量、将要发送该注释的中继器以及其他一些数据打包到同一个Zap请求中。这实际上是从 LNURL 服务器请求发票。
- 4.LNURL 服务器以请求的发票作为响应。
- 5.此时,客户会将发票交给用户的闪电钱包进行支付。如果你使用类似Alby这样的浏览器钱包(并设置了预算),这个过程会很快发生。
- 6.一旦用户将发票直接支付给他们正在Zap的人的钱包后,接收者的钱包将创建一个kind为9735的注释,然后将其广播到之前在 Zap 请求中指定的中继器。
- 7.收到此注释的中继器将告知连接的客户端有关zap和客户端的信息,并在其 UI 中向用户显示zap。
所有过程仅发生在几秒钟之内,并且手续费微乎其微。
我应该如何发送或接收Zaps?
在Nostr协议中Zap别人,只需做好以下两种准备:
- 1.一款支持Zaps的闪电网络钱包(比如Alby或者Wallet of Satoshi)
- 2.一款支持Zaps的客户端(比如Damus、Amethyst、Iris)
其他唯一需要做的就是确保在个人设置页面中设置了闪电网络地址。你将用此地址接收Zaps。
当然,你可以使用个人资料中设置的接收Zaps地址以外的钱包或地址为其他用户的Zaps付款。
例如,可以想象以下场景:
- 1.你在Nostr客户端中配置的闪电网络地址是Stacker News的闪电网络地址,你将通过此地址接收别人Zap的sats。
- 2.在浏览器中,你使用Iris作为客户端,并使用Alby钱包支付Zaps。
- 3.在手机上,你使用Damus作为客户端,并使用Wallet of Satoshi支付Zaps。