想象一下,你正在飞越大西洋。机上没有互联网,而你座位旁的乘客想借10万聪。你拿出手机,打开你最喜欢的闪电钱包……却看到了“无法连接到服务器”的错误。你的密钥就在你的口袋里,你的助记词也安全地写在家里——但你却无法汇款。
这就是拥有和控制之间的区别。
在本文的第一部分中,我探讨了信任层是如何隐藏在“自托管”标签之下的。但是,钱包服务器会向这个俄罗斯套娃添加另一组隐藏的依赖关系。而这甚至适用于比特币——或者更确切地说,尤其适用于比特币。因此,让我们来分解一下,即使私钥就存储在你的手机上,究竟是什么阻止你立即使用你的聪。
众所周知,比特币的区块链没有太多空间。如果地球上的每个人都开始使用比特币,那么他们每个人一生只能进行大约两笔交易——因为将80亿笔交易记录到比特币区块中需要36年!这就是为什么,在大规模采用的情况下,只有一种实际的方式可以发送比特币:通过二层解决方案。
如今,比特币最著名的第二层是闪电网络。我在这里做了更详细的介绍——如果你还没有看过,请浏览一下。
简而言之,闪电网络是一种支付通道系统。每个通道都持有聪(satoshi),这些聪由连接到通道的两个人共同拥有。聪可以在来回移动,并且在每次移动后,双方参与者都会收到一个双方签署的交易,该交易允许他们中的任何一方单方面地将他们的资金份额提取到他们自己的链上地址。
这种机制旨在确保每个参与者始终保持对其聪的完全控制权。但这种控制依赖于两个关键组件:
Muun钱包的创建者在解释这种细微差别时,表达得最为恰当:
而在闪电网络的情况下,这确实很重要。如果你有你的密钥,但由于某种原因无法访问最新的通道关闭交易(例如,存储它的服务器已发生故障),那么你将被迫依靠通道中另一方的好意来检索你的聪。
如果你运行完整的闪电节点,则关闭交易存储在那里。但今天实际有多少人运行完整的节点呢?
我想说的是,大多数闪电网络用户都选择移动钱包,这使他们能够快速轻松地发送和接收聪——毕竟,这就是闪电的全部意义,不是吗?
特别是考虑到这些钱包的制造商一致地将它们宣传为自托管:
上面屏幕截图中显示的所有钱包都向用户提供了一个种子短语,对许多人来说,这可以作为非托管存储的证明。但实际上,这些钱包中甚至没有一个包含用于关闭通道的按钮——更不用说访问允许用户单方面关闭通道的交易了。要提取聪,钱包的后端服务器必须批准交易。如果该服务器离线——或者拒绝处理该请求——你的聪就不再是你的了。
在屏幕截图中显示的钱包中,最能说明问题的是 Bitmask。在其中一次更新之后,开发人员意外地从界面中删除了所有对闪电网络资产的引用。这意味着用户完全失去了对闪电网络中资金的访问权限。旧版本的钱包停止工作,而新版本根本不显示任何闪电聪。
如果你专门为闪电网络使用该钱包,它现在将显示你的余额为零。
而种子短语也无济于事。如果你将它导入到另一个钱包中,你可能会看到存储在比特币基础层上的资产(如果有任何)——但闪电支付通道中的资金仍然无法访问。
使用 Breez SDK / Greenlight 架构的钱包,例如 Green、Relai、Blitz 和其他几个钱包,情况变得更加棘手。这些钱包仅通过 Greenlight 服务器与闪电网络进行交互。一方面,此设置允许你使用相同的系统将你的种子短语导入到另一个钱包中并访问你的闪电资金。另一方面,它使你非常依赖 Greenlight 的服务器。如果发生技术故障并且通道关闭,你的资产将保留在服务器上——而不是在你身边。
Green 钱包的 GitHub 问题跟踪器显示,用户有时需要等待数月才能让开发团队解决问题并返还他们的聪。这真的是自托管应该有的样子吗?
Green 钱包中的提款错误。来源:Blockstream 的 GitHub
也有直接欺骗的例子。现在已经不存在的钱包 Mutiny 也声称提供自托管。当然,它为用户提供了一个种子短语,这本应意味着对他们资金的完全控制权。
但是有一天,该钱包的开发人员决定对传入交易收取费用。任何时候你收到聪,钱包都会自动从中扣除正好1聪。这似乎是一个微不足道的费用——用户可以接受的费用——但它提出了一个严重的问题:
不出所料,该钱包未能获得比特币社区的认可,并最终关闭。当它关闭时,它保留了一部分用户资金。因为真的——如果钱包可以在未经你同意的情况下拿走 1 聪,是什么阻止它拿走更多呢?特别是当项目即将关闭并且声誉不再重要时。
我们经常看到 自托管 这个词,并认为,“这正是我所需要的。”钱包开发者非常清楚这一点——即使这个术语不应该出现在那里,他们也会将这个术语贴到他们的产品上。
因此,如果你看到一个声称是自托管的钱包,请问自己几个问题:
而且不仅仅是提问——还要测试它。如果钱包用于你尚未持有任何资产的新网络,请尝试通过我们的交换服务向其发送少量资金。Rabbit.io 支持非常小的金额,因此如果你的钱包出现任何问题,你不会冒太多风险。
将我们网站上显示的金额与出现在你的钱包中的金额进行比较。如果传入的交易因费用而被“修剪”,则意味着钱包的开发人员有能力从你那里拿走钱。
最后,备份你的钱包,从你的设备上删除该应用程序,重新启动设备,重新安装该钱包,然后尝试恢复对你的资金的访问。只有在通过此测试后,你才能认为该钱包已准备好投入实际使用。
明智地选择你的工具。真正的自由是罕见的——而且常常被歪曲。