Coinbase Custody工程经理Andrei Anisimov
成为Coinbase Custody的工程师意味着解决安全性,可靠性和用户体验交汇处的挑战性问题。 Coinbase的安全至上文化要求所有折衷都应考虑到安全性。在保管机构中,这种方法被带到了新的高度。毕竟,安全性是大型机构和高净值个人信任托管机构代表他们托管价值数十亿美元的加密资产的主要原因。
安全性是所有托管技术决定的主要内容,而客户主要通过可靠性和便利性来体验我们的产品。我们的用户经常执行高价值,时效性高的提款,并期望在区块链上确认交易而不会拖延,并且有干净可预测的金额到达目的地(并且不从金额中扣除任何费用)。
幸运的是,比特币的先进技术称为“父母亲付钱”(CPFP)使我们能够满足上述所有要求:零费用交易和可靠的确认时间,同时保持安全的冷藏库的基本属性-使用每个私钥严格一次。
比特币费用和冷藏
提交给比特币网络的每笔交易都包括支付给矿工的费用,以处理该交易并将其包括在一个区块中。平均每10分钟产生一个块。当所有待处理交易的大小超过最大块大小限制(1MB)时,矿工将优先考虑具有较高收录费用的交易,同时将低费用交易降低到下一个块。这样的过程可能会重复多次,从而导致事务无限期地阻塞,直到网络拥塞消除。
如果您在2017-2018年进行比特币交易,您可能还记得价格波动和其他重要市场事件高峰期间的数小时甚至数天的延迟。在那段时间里,交易支付不超过100倍的常规费用以得到及时确认的情况并不少见。下图显示了比特币费用的波动性。
在Coinbase Custody,我们意识到了这一障碍,并不断创新,以在客户最需要时为他们提供优势。一个显而易见的解决方案是在将交易费用广播到比特币网络之前立即计算交易费用-知道当前的网络状况使我们能够预测最佳费用。不幸的是,冷库的安全要求使得难以在广播之前估算费用。
冷藏挑战
冷存储安全模型要求事先完全了解完整的事务有效负载(包括金额和目的地),以防止在密钥还原过程启动后对有效负载进行任何更改。在另一方面,由于交易费用被编码在有效载荷中,因此这意味着必须在广播交易之前很长时间计算费用。如果在该时间间隔内网络突然变得拥挤,则计算出的费用可能不足以及时确认交易。
救助父母的孩子
比特币的UTXO模型的一个有趣的特性是,交易可以被链接在一起,形成一个“捆绑”,矿工对费用进行整体评估。例如,如果一项(子项)交易花费了另一项(父项)交易的输出,则子项交易可以同时为这两项支付费用-矿工别无选择,如果他们想从子项交易中收取超额费用,则必须包括父项交易。 。这种方法通常被称为“父母给孩子付钱”(CPFP)。
Coinbase Consumer平台已经成功使用CPFP加速提款了一段时间,您可以在博客文章中了解更多有关它的信息 。但是,监护权的独特挑战迫使我们重新考虑该方法,并提出了不同的设计。
在“托管”中,我们使用CPFP将费用估算移到广播之前。此外,我们使用特殊的加油站服务来支付交易费用。逐步操作的方法如下:
- 当从冷地址撤离时,我们会进行初始费用估算,并使用加油站服务向该地址发送10倍的估算费用。
- 在构造目的地和更改输出的母(母)交易时,我们添加一个输出,将预充值(费用的10倍)移动到特殊的“费用”地址(此地址是为每次提款生成的,并用于只有一次)。我们将此输出称为“ CPFP链接”。
- 一旦在密钥恢复仪式的结尾和广播之前签署了主要交易,则将根据当前的网络状况重新估算费用。
- 费用地址生成了一个子交易,该子交易花费了CPFP-link输出,同时为这两项交易支付了费用,并将剩余的预充气金额发送回加油站。
例
让我们通过一个示例来更好地理解解决方案的机制。注意,为简单起见,省略了一些次要细节。假设我们有一个余额为15 BTC的客户,他们想从其托管账户中提取12 BTC到外部比特币地址。这是将要发生的步骤(请注意,“ satoshi”或“ sat”是比特币中最小的单位,等于0.00000001 BTC):
- 保管处估计完成此交易的费用为10,000 sat。
- 加油站将10倍的金额或100,000坐席发送到冷地址(存放要提取资金的地址)。
- 托管产生具有两个主要输出的提款交易:12 BTC到达目的地地址,3 BTC“更改”返回到Cold Storage。
- 我们添加了第三个“ CPFP链接”输出,该输出将100,000个坐席移动到新生成的费用地址-此金额以后将用于支付费用。
- “密钥恢复”仪式开始。其结果是准备好向网络广播的已签名交易有效负载。
- 就在广播之前,我们再次估算了费用。事实证明,网络突然变得拥挤,现在的费用是我们最初估计的2倍-20,000坐位,而不是最初的10,000坐位。
- 我们创建了一个子交易,该交易使用“ CPFP链接”输出,支付20,000 sat费用,并将剩余的80,000 sat移回加油站。
- 我们将这两项交易广播到网络。
请注意,目标地址会收到干净的12 BTC数量。从用户的角度来看,费用和子交易都不存在-它们被抽象出来并在后台工作,以实现可靠的零费用比特币取款。
结论
这只是Coinbase Custody工程师有机会进行研究的有趣技术问题的一个示例。如果您有兴趣加入Coinbase托管团队,请在此处查看开放的职位。
托管在“亲子代付”中的可靠,免手续费的比特币交易最初发表在“ Coinbase Blog on Medium”上,人们通过强调并回应这个故事来继续对话。
版权声明:项目均采集于互联网, 空投币 无法审核全面,且希望大家能赚钱,请谨慎切勿上当受骗!
温馨提示:★★★天上真会掉馅饼!天道酬勤,都是机会!不错过每个空投糖果!真假难以辨认,尽量0撸!