比特币分层确定性钱包的可重用支付代码BIP47介绍
扫描二维码
随时随地手机看文章
比特币的隐私并不能在协议层面得到保障。个人如何存储、交易或以其他方式使用比特币,是保持匿名与向有动机的旁观者提供永久访问其交易历史记录的区别。
不幸的是,获得更大的隐私往往是以便利为代价的。地址重用是一个禁忌,但是对于懒惰的/不懂技术的人来说,生成一个新地址并与交易对手共享它并不总是那么简单。
输入BIP47钱包。
BIP47,分层确定性钱包的可重用支付代码,由Justus Ranvier于2015年提交。正如标题所示,它为现有的分层确定性(或HD)钱包结构增加了功能——值得注意的是,它概述了一个系统,方便双方重复支付(同时保护他们的隐私)。
HD钱包通过在不泄露“主密钥”(或xpub,这应该是保密的)的情况下派生出公钥,使用户更容易获得隐私。这些公钥的数量几乎是无限的,可以创建并分发给交易对手,而交易对手只能收集特定密钥所持有的数量(而不能收集钱包的全部)。
到目前为止,一切都发展的顺利。你避免了经典的“XYZ知道你拿了多少,现在你的生命处于危险之中”的场景,你可以更有效地划分你的活动,而不用不断地在不同的钱包应用程序中切换。
可以肯定的是,这是一个净改进,但是对于频繁的交易来说,仍然远远不是最优的。良好的实践要求每次付款都使用一个新地址,因此不断地重新签发它们会很快变得不方便。
解决方案
BIP47的实现通过提供可重用的支付代码,增强了HD钱包的功能,为那些寻求与同行建立重复支付通道的用户提供服务。如果你想要一个极其简单的类比,支付代码有点像你朋友可以支付的现金现金卡。
不久我将详细说明。首先有几件事需要澄清——您不是依赖于可信的第三方,您不是在技术上向付款代码发送代币,它仍然只是一长串字母数字字符(但您现在应该已经习惯了这一点)。如果你不喜欢,欢迎使用比特币!)
需要记住的关键是,这些支付代码可以在不损害隐私的情况下在每笔交易中重复使用,因为这些代币每次都被发送到一个新的链上地址。正如Ranvier 在2015年的BitcoinTalk帖子中所说,一个支付代码就可以将资金转移到40亿个不同的地址。
它们与其他的隐形地址实现有些不同(Kyle y在这里做了一个很好的比较)——这一点的一种表现方式是通过使用链上的“交易通知”来建立一个对等点的支付通道。
在来回传输资金之前,发送方向接收方的监听地址广播一个特殊的交易(使用OP_RETURN),从而启动通道。通过所有这些在链上展开的功能,用户可以在发生灾难时恢复他们的通道,前提是他们保留了备份(同样,这也是您肯定已经习惯的)。
在野外
令人惊讶的是,现在几乎没有实现——Samourai钱包只是人们脑海中想象出来的(Stash钱包也有支持,但我无法让它起作用)。除了常规的功能之外,后者还进一步使用BIP47来实现私有消息传递,而前者以PayNyms为基础构建更好的UI/UX标准。
BIP47对钱包软件来说是一个福音,它引入了隐私,这也许是大规模采用的最佳方式——也就是说,特洛伊木马(Trojan Horse-ing )在以便利的幌子下把它卖给了用户。