#bitcoin #payment #sending #public-key #receiving #wallet #silent

silentpayments

为钱包添加BIP352:无声支付支持的库

4个版本 (2个破坏性更新)

0.3.0 2024年6月3日
0.2.0 2024年5月15日
0.1.1 2024年3月17日
0.1.0 2024年3月15日

#4 in #silent

每月下载 32

MIT 许可证

50KB
870

无声支付

BIP352:无声支付的一种Rust实现。

关于

警告:这个crate和BIP352都还相当新。在使用主网资金之前,请仔细审查此库。

此库支持创建并发送到无声支付地址,基于 secp256k1 PublicKeySecretKey 结构体进行接口。未来,此库可能会扩展到依赖于rust-bitcoin的结构体。

库分为两部分:发送和接收。

发送

要发送到无声支付地址,你可以调用 sender::generate_recipient_pubkeys 函数。此函数接受一个无声支付接收者列表,以及一个 partial_secret

partial_secret 代表所有输入私钥与输入哈希的乘积之和。要计算 partial_secret,可以使用 utils::sending::compute_partial_secret 函数,尽管这需要向此库公开秘密数据。稍后还会添加其他计算 partial_secret 的方法。

接收者

对于接收无声支付,我们使用 receiving::Receiver 结构体。此 Receiver 结构体实现了一个 scan_transaction 函数,可以用来扫描传入的交易以查找新收到的支付。

此库还支持标签。更改标签(用于生成更改地址的标签)默认包含。您可以通过使用 add_label 函数在扫描之前添加额外的标签。

示例

请查看 examples 文件夹以获取一些简单的发送和接收示例。这些示例仍然非常基础,稍后将进行扩展。同时,您可以通过查看 tests/vector_tests.rs 来了解发送和接收的更详细工作方式。

我们还在开发一个客户端,该客户端实现了发送和接收功能。这个客户端可以作为构建静默支付钱包的基础。即使它对你直接没有用处,它仍然是一个很好的资源,展示了如何将这个库与钱包集成。

测试

tests/resources文件夹包含截至2024年5月1日的测试向量副本。

您可以通过运行以下命令使用测试向量测试代码:cargo test

依赖项

约7.5MB
约98K SLoC