跳转到正文
buybitcoinsmart

术语表 /闪电网络与 Layer 2

Watchtower

Watchtower 是什么?
Watchtower(瞭望塔)是一项您付费或申请使用的服务,在您的闪电网络节点离线期间监视区块链,随时准备惩罚发布旧余额的通道对手方。

闪电网络通道之所以能保持诚实,是因为一方一旦广播过时状态,另一方就可以取走整个通道余额,但前提是有人及时发现。Watchtower 就是这个人:它保存一条长度为16字节的提示和一个加密数据块,在对应交易出现在链上之前,它无法读取该数据块。如果您的节点运行在会休眠的笔记本电脑上,就需要一个。

运作方式

Watchtower 从不持有您的私钥,在出问题之前也不会知道自己在保护哪条通道。

每当通道余额发生变化,您的节点会为即将撤销的状态构建惩罚交易并加密,然后向 watchtower 提交两样东西:一是提示,即已撤销承诺交易的 txid 的前16字节;二是密文。Watchtower 存储固定大小的数据块,并扫描每个区块,查找 txid 以其中某条提示开头的交易,除此之外不做任何事。一旦出现匹配,watchtower 会根据同一个 txid 推导出解密密钥,解开清扫指令,自身不签署任何新内容,然后广播已完成的惩罚交易。追回的比特币会进入您的钱包事先选定的地址。

在依赖 watchtower 之前,有两项限制值得了解。在 lnd 中,一个 watchtower 会话最多接受1024份备份,客户端才会开启新的会话;正义交易(justice transaction)按默认的10 sat/byte 费率构建,您可以通过 wtclient.sweep-fee-rate 设置调高。第二项限制是覆盖范围:lnd 的 watchtower 备份的是已撤销承诺交易的 to_local 和 to_remote 输出,不包括仍在途中的支付所对应的输出,因此聘用 watchtower 只能降低风险,而不能消除风险。

在哪里会遇到它

Watchtower 出现在节点软件的配置中,而不是大多数人用来发送聪的应用里。

运行 lnd 时,您可以通过公钥和主机地址添加一个 watchtower,也可以在默认的端口9911上为朋友运营一个。所有已部署的 watchtower 都是利他型 watchtower:它们会把追回的全部资金扣除挖矿手续费后返还,而不是抽成,因为协议中的付费版本虽已制定规范,却从未完成。托管型闪电网络应用不提供这些功能,大多数手机钱包也没有,因为它们的通道由服务商管理,服务商自己的机器从不休眠。

对主要想购买并持有比特币的人来说,您大概不需要。如果您运营路由节点,或者把相当数额的余额放在通道里,而存放通道的电脑一连几周被锁在抽屉里,那就需要。如果闪电网络对您来说只是手机上一个存放咖啡钱的应用,您应当防范的损失是手机掉进河里,而不是对手方作弊。

Watchtower vs 路由节点

Watchtower 保护通道,而路由节点为他人转发支付并收取手续费,两者除了同在一台机器上之外别无共通之处。路由节点必须保持在线,因为离线会损失收入,这正是正规的路由运营者聘用 watchtower、而不是自己充当 watchtower 的原因。两者可以在同一台机器上运行。它们回答的是相反的问题:如何持续赚取收入,以及如何在自己没有盯着的时候避免被盗。

请勿混淆

常见问题

Watchtower 需要我的私钥吗?

不需要。它存储的是您自己的节点已经构建并加密好的惩罚交易,因此 watchtower 只能广播您授权的那一笔清扫交易,资金会进入您的钱包事先选定的地址。

如果我从未设置过会怎样?

只要您的节点在作弊对手方输出的延迟期结束之前恢复在线,就不会有任何影响。危险在于长时间不在线,同时通道中持有真实资金。

Watchtower 能保护仍在途中的闪电网络支付吗?

不能完全保护。lnd 的实现备份的是已撤销承诺交易的两个主要余额输出,并表示备份 HTLC 输出尚在计划中,尚未发布。

接着阅读

相关术语

闪电网络与 Layer 2中的更多术语

阅读本页英文版