比特币技术周报丨闪电网络迎来重大更新,0.168 BTC通道限制将消失

注:原文来自Bitcoin Optech

在本周的比特币技术简报中,我们首先介绍了简化ECDSA 适配器签名(adaptor signatures)的研究工作,然后总结了常规的Bitcoin Core PR 评议俱乐部讨论内容,最后,我们还会介绍闪电网络三大客户端Eclair、C-Lightning以及LND的最新研发进展,其中Eclair新客户端已支持金额超过0.168 BTC的闪电网络通道,而C-Lightning也在跟进开发。

据悉,在这之前,各大LN客户端都设置了约0.168 BTC的通道限制,而放开限制,意味着开发者对协议的安全性有了更大的信心。

图虫创意-454480837948997847

(图片来自:tuchong.com)

 

一、 使用简化版ECDSA适配器签名方案,修复闪电网络的安全隐患

 

点时间锁定合约(PTLC)是当前在闪电网络中启用可路由支付的哈希时间锁定合约(HTLC)的一种替代方法。而现有HTLC机制存在的问题是,支付路径上的每一跳点(hop)都使用相同的哈希摘要来确保其条件支付。这意味着,沿着同一路径控制两个节点的用户知道,这些节点之间的任何跳点(hop)都不是最终的付款方或收款方,而这不仅降低了闪电网络洋葱路由提供的隐私性,而且还允许恶意用户窃取支付给中间跳点(hop)的路由费用(这被称为虫洞攻击—— wormhole attack)。例如,在下面的路径中,马洛里(Mallory)可以窃取鲍勃(Bob)和卡罗尔(Carol)的路由费,并得出结论称,他们都不是最终付款的支出者或接收者。

Alice → Mallory → Bob → Carol → Mallory’ → Dan

相比使用哈希值,PTLC通过使用适配器签名(代表椭圆曲线上的点),使每个跳点(hop)都可以使用不同的标识符进行付款。适配器签名(Adaptor signature)最初被提出用于schnorr签名方案,我们已经知道,适配器签名可与比特币当前的ECDSA签名方案一起使用(详见第16期Newsletter),但该过程依赖于双方ECDSA签名(2pECDSA),而这是复杂的,并且其所需的安全性假设,超出了比特币ECDSA签名通常所要求的。然而,最近Lloyd Fournier发表了一篇论文,其描述了如何仅通过常规的2-of-2比特币多重签名(例如OP_CHECKMULTISIG)和简单的离散对数equivalence (DLEQ)安全地使用适配器签名。去年11月份,开发者们还在闪电网络开发(Lightning-Dev)邮件列表中对此进行了总结。

上周在闪电网络HackSprint活动中,几位开发人员研究了这些2-of-2多重签名适配器签名,然后Adam Gibson撰写了一篇关于C语言libsecp256k1和Scala bitcoin-s库主题和概念证明实现的出色文章,目前这些代码尚未得到审查,并且可能是不安全的,但是它可以帮助开发人员在主网上尝试使用适配器签名,其既可以用于闪电网络中的PTLC,也可以用于其他无需信任的合约协议。

 

二、Bitcoin Core PR评议俱乐部探讨重点

 

在本节中,我们总结了最近的Bitcoin Core PR 评议俱乐部会议上探讨的一些重要问题及答案。

讨论从建立PR(Pull Request,合并代码请求)的根本原因开始:

问题1 : 为什么可更快地重试notfound会有帮助?

答:预防DoS、交易传播速度、隐私以及未来的mapRelay删除。

问题2 : 什么是潜在的DoS攻击问题?

答: 具有小存储池(mempool)的节点可能会通过宣布一笔交易,然后因无法交付它,而无意中减慢了交易向对等节点的中继过程。

问题3 : 为什么交易传播速度是重要的?

答:几秒钟的短暂延迟并不是一个问题(甚至对隐私而言也是可取的),但几分钟的较大延迟,可能会损害交易的传播及BIP152 致密区块(compact block)的中继。

问题4: 最初添加maprerelay的时间和原因?

答:mapRelay出现在比特币的第一个版本当中,它确保如果节点宣布了一笔交易,即使已在宣布交易和请求交易的对等节点之间进行了确认,也可以下载该交易。

问题5 :删除mapRelay时会遇到什么问题?

答:它可能导致在诚实的情况下请求的交易更容易遇到notfound的情况,延迟最多会有2分钟,从而损害传播。

在会议的后半部分,开发者们还讨论了TxDownloadState数据结构:

问题6: 描述下TxDownloadState 数据结构的作用?

答: 这是具有计时器的对等式状态机,用于协调来自对等方的请求交易。

问题7: 我们如何改善TxDownloadState结构,以减少将来引入交易中继错误的可能性?

答: 向结构中添加内部一致性检查,或用定义良好的接口类替换它。

然后,开发者们深入探讨了PR 实施、潜在的问题、未来的改进以及它们与wtxid交易中继提议的交互。有关更多详细信息,请参阅会议学习笔记及日志。

 

三、闪电网络三大客户端迎来重大更新

 

上周,闪电网络客户端Eclair迎来了0.3.4新版本,其支持设置超过0.168 BTC的闪电网络通道,并且还修复了一些漏洞,以及一些其它改进。有关详细信息,请参见其发布说明。

类似的,由Blockstream开发的闪电网络客户端C-Lightning,也在尝试放开0.168 BTC通道金额限制。其C-Lightning#3612添加了启动参数--large-channels--wumbo (两者等效),如果使用了这些参数,则节点将在其init消息中通告对option_support_large_channel的支持,这意味着它将接受具有比先前的上限(约0.168 BTC)更高值的通道。如果远程对等节点也支持此选项,则C-Lightning的fundchannel RPC将允许用户创建超出先前限制的通道。另请参阅第88期Newsletter中所述的Eclair对此选项的支持。

此外,C-Lightning#3600还使用盲路径(blinded path)增加了对onion消息的实验性支持。

那什么是onion消息呢?在第86期Newsletter中,我们将其称为“闪电网络直接消息”,它允许节点通过网络发送加密消息,而无需使用闪电网络支付机制。这可以替代Whatsat等应用使用的消息-支付机制。相比消息-支付机制,onion消息有几个优点:

  1. 它们具有规范草案,如果被采纳,它将使多个实现更容易支持它们;
  2. 它们不需要onchain可执行支付通道的安全性,因此Onion消息甚至可以在不共享已建立支付通道的对等方之间路由;
  3. 它们不需要HTLC或错误消息这样的信息双向传输,因此一旦节点转发了一条消息,它就不需要保留任何与该消息相关的信息。这种无状态性,使节点的内存需求最小化。如果发送节点想要接收答复,则草案规范允许它包含一个盲reply_path字段,接收节点可以使用该字段在新消息中发送答复。

那什么是盲路径(blinded path)呢?盲路径在第85期Newsletter中被称为“轻量级集合路由”,目前它还是一个草案提议,它可以让发起者无需了解目的地的网络标识或使用的完整路径,就可以路由支付或消息。这是通过几个步骤完成的:

  1. 目标节点选择从中间节点到自身的路径,然后使用onion加密该路径信息,以便路径中的每个跳点(hop)仅能够解密应接收消息的下一个节点的标识符。目标节点将这个加密的(“盲”)路径信息提供给发送节点(例如,通过BOLT11 invoice中的字段或使用前面提到的onion消息reply_path字段)。
  2. 发送节点使用普通洋葱路由将其消息中继到中间节点;
  3. 中间节点从盲路径解密要使用的下一跳点(hop),并将消息发送给它。下一节点解密自己的下一跳点(hop)字段,并进一步中继消息,该过程一直持续到消息到达目标节点为止。

与普通路由不同的是,始发节点和目标节点都不需要了解另一个节点的身份或使用的确切路径。这不仅改善了这些端节点的隐私,而且还改善了盲路径上任何未宣布节点的隐私。

最后,另一大闪电网络客户端LND也迎来了一些更新内容,其中包括:

  1. LND#4087添加了对自动创建瞭望塔(watchtower)tor 隐藏服务的支持(如果在命令行中启用)。
  2. LND#4079增加了对部分签名比特币交易(PSBT)融资通道的支持,从而允许任何与PSBT兼容的钱包为通道开放提供资金。而在这之前,只有通过LND的内部钱包才能实现,在通道获得资金后,LND会像平常一样管理所有其他操作,用户可以将--psbt标志提供给lncli openchannel,以启动交互式对话框来完成资金流(有关详细信息,请参阅该文档)。
  3. LND#3970在LND的支付生命周期系统中增加了对多路径支付的支持,这使LND更接近其0.10版本完全支持多路径支付的目标。

本文链接:https://www.8btc.com/article/580286
转载请注明文章出处

转载声明:本文 由CoinON抓取收录,观点仅代表作者本人,不代表CoinON资讯立场,CoinON不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。若以此作为投资依据,请自行承担全部责任。

声明:图文来源于网络,如有侵权请联系删除

风险提示:投资有风险,入市需谨慎。本资讯不作为投资理财建议。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 2020年4月9日 下午4:46
下一篇 2020年4月9日 下午7:46

相关推荐

比特币技术周报丨闪电网络迎来重大更新,0.168 BTC通道限制将消失

星期四 2020-04-09 17:22:03

注:原文来自Bitcoin Optech

在本周的比特币技术简报中,我们首先介绍了简化ECDSA 适配器签名(adaptor signatures)的研究工作,然后总结了常规的Bitcoin Core PR 评议俱乐部讨论内容,最后,我们还会介绍闪电网络三大客户端Eclair、C-Lightning以及LND的最新研发进展,其中Eclair新客户端已支持金额超过0.168 BTC的闪电网络通道,而C-Lightning也在跟进开发。

据悉,在这之前,各大LN客户端都设置了约0.168 BTC的通道限制,而放开限制,意味着开发者对协议的安全性有了更大的信心。

图虫创意-454480837948997847

(图片来自:tuchong.com)

 

一、 使用简化版ECDSA适配器签名方案,修复闪电网络的安全隐患

 

点时间锁定合约(PTLC)是当前在闪电网络中启用可路由支付的哈希时间锁定合约(HTLC)的一种替代方法。而现有HTLC机制存在的问题是,支付路径上的每一跳点(hop)都使用相同的哈希摘要来确保其条件支付。这意味着,沿着同一路径控制两个节点的用户知道,这些节点之间的任何跳点(hop)都不是最终的付款方或收款方,而这不仅降低了闪电网络洋葱路由提供的隐私性,而且还允许恶意用户窃取支付给中间跳点(hop)的路由费用(这被称为虫洞攻击—— wormhole attack)。例如,在下面的路径中,马洛里(Mallory)可以窃取鲍勃(Bob)和卡罗尔(Carol)的路由费,并得出结论称,他们都不是最终付款的支出者或接收者。

Alice → Mallory → Bob → Carol → Mallory’ → Dan

相比使用哈希值,PTLC通过使用适配器签名(代表椭圆曲线上的点),使每个跳点(hop)都可以使用不同的标识符进行付款。适配器签名(Adaptor signature)最初被提出用于schnorr签名方案,我们已经知道,适配器签名可与比特币当前的ECDSA签名方案一起使用(详见第16期Newsletter),但该过程依赖于双方ECDSA签名(2pECDSA),而这是复杂的,并且其所需的安全性假设,超出了比特币ECDSA签名通常所要求的。然而,最近Lloyd Fournier发表了一篇论文,其描述了如何仅通过常规的2-of-2比特币多重签名(例如OP_CHECKMULTISIG)和简单的离散对数equivalence (DLEQ)安全地使用适配器签名。去年11月份,开发者们还在闪电网络开发(Lightning-Dev)邮件列表中对此进行了总结。

上周在闪电网络HackSprint活动中,几位开发人员研究了这些2-of-2多重签名适配器签名,然后Adam Gibson撰写了一篇关于C语言libsecp256k1和Scala bitcoin-s库主题和概念证明实现的出色文章,目前这些代码尚未得到审查,并且可能是不安全的,但是它可以帮助开发人员在主网上尝试使用适配器签名,其既可以用于闪电网络中的PTLC,也可以用于其他无需信任的合约协议。

 

二、Bitcoin Core PR评议俱乐部探讨重点

 

在本节中,我们总结了最近的Bitcoin Core PR 评议俱乐部会议上探讨的一些重要问题及答案。

讨论从建立PR(Pull Request,合并代码请求)的根本原因开始:

问题1 : 为什么可更快地重试notfound会有帮助?

答:预防DoS、交易传播速度、隐私以及未来的mapRelay删除。

问题2 : 什么是潜在的DoS攻击问题?

答: 具有小存储池(mempool)的节点可能会通过宣布一笔交易,然后因无法交付它,而无意中减慢了交易向对等节点的中继过程。

问题3 : 为什么交易传播速度是重要的?

答:几秒钟的短暂延迟并不是一个问题(甚至对隐私而言也是可取的),但几分钟的较大延迟,可能会损害交易的传播及BIP152 致密区块(compact block)的中继。

问题4: 最初添加maprerelay的时间和原因?

答:mapRelay出现在比特币的第一个版本当中,它确保如果节点宣布了一笔交易,即使已在宣布交易和请求交易的对等节点之间进行了确认,也可以下载该交易。

问题5 :删除mapRelay时会遇到什么问题?

答:它可能导致在诚实的情况下请求的交易更容易遇到notfound的情况,延迟最多会有2分钟,从而损害传播。

在会议的后半部分,开发者们还讨论了TxDownloadState数据结构:

问题6: 描述下TxDownloadState 数据结构的作用?

答: 这是具有计时器的对等式状态机,用于协调来自对等方的请求交易。

问题7: 我们如何改善TxDownloadState结构,以减少将来引入交易中继错误的可能性?

答: 向结构中添加内部一致性检查,或用定义良好的接口类替换它。

然后,开发者们深入探讨了PR 实施、潜在的问题、未来的改进以及它们与wtxid交易中继提议的交互。有关更多详细信息,请参阅会议学习笔记及日志。

 

三、闪电网络三大客户端迎来重大更新

 

上周,闪电网络客户端Eclair迎来了0.3.4新版本,其支持设置超过0.168 BTC的闪电网络通道,并且还修复了一些漏洞,以及一些其它改进。有关详细信息,请参见其发布说明。

类似的,由Blockstream开发的闪电网络客户端C-Lightning,也在尝试放开0.168 BTC通道金额限制。其C-Lightning#3612添加了启动参数--large-channels--wumbo (两者等效),如果使用了这些参数,则节点将在其init消息中通告对option_support_large_channel的支持,这意味着它将接受具有比先前的上限(约0.168 BTC)更高值的通道。如果远程对等节点也支持此选项,则C-Lightning的fundchannel RPC将允许用户创建超出先前限制的通道。另请参阅第88期Newsletter中所述的Eclair对此选项的支持。

此外,C-Lightning#3600还使用盲路径(blinded path)增加了对onion消息的实验性支持。

那什么是onion消息呢?在第86期Newsletter中,我们将其称为“闪电网络直接消息”,它允许节点通过网络发送加密消息,而无需使用闪电网络支付机制。这可以替代Whatsat等应用使用的消息-支付机制。相比消息-支付机制,onion消息有几个优点:

  1. 它们具有规范草案,如果被采纳,它将使多个实现更容易支持它们;
  2. 它们不需要onchain可执行支付通道的安全性,因此Onion消息甚至可以在不共享已建立支付通道的对等方之间路由;
  3. 它们不需要HTLC或错误消息这样的信息双向传输,因此一旦节点转发了一条消息,它就不需要保留任何与该消息相关的信息。这种无状态性,使节点的内存需求最小化。如果发送节点想要接收答复,则草案规范允许它包含一个盲reply_path字段,接收节点可以使用该字段在新消息中发送答复。

那什么是盲路径(blinded path)呢?盲路径在第85期Newsletter中被称为“轻量级集合路由”,目前它还是一个草案提议,它可以让发起者无需了解目的地的网络标识或使用的完整路径,就可以路由支付或消息。这是通过几个步骤完成的:

  1. 目标节点选择从中间节点到自身的路径,然后使用onion加密该路径信息,以便路径中的每个跳点(hop)仅能够解密应接收消息的下一个节点的标识符。目标节点将这个加密的(“盲”)路径信息提供给发送节点(例如,通过BOLT11 invoice中的字段或使用前面提到的onion消息reply_path字段)。
  2. 发送节点使用普通洋葱路由将其消息中继到中间节点;
  3. 中间节点从盲路径解密要使用的下一跳点(hop),并将消息发送给它。下一节点解密自己的下一跳点(hop)字段,并进一步中继消息,该过程一直持续到消息到达目标节点为止。

与普通路由不同的是,始发节点和目标节点都不需要了解另一个节点的身份或使用的确切路径。这不仅改善了这些端节点的隐私,而且还改善了盲路径上任何未宣布节点的隐私。

最后,另一大闪电网络客户端LND也迎来了一些更新内容,其中包括:

  1. LND#4087添加了对自动创建瞭望塔(watchtower)tor 隐藏服务的支持(如果在命令行中启用)。
  2. LND#4079增加了对部分签名比特币交易(PSBT)融资通道的支持,从而允许任何与PSBT兼容的钱包为通道开放提供资金。而在这之前,只有通过LND的内部钱包才能实现,在通道获得资金后,LND会像平常一样管理所有其他操作,用户可以将--psbt标志提供给lncli openchannel,以启动交互式对话框来完成资金流(有关详细信息,请参阅该文档)。
  3. LND#3970在LND的支付生命周期系统中增加了对多路径支付的支持,这使LND更接近其0.10版本完全支持多路径支付的目标。

本文链接:https://www.8btc.com/article/580286
转载请注明文章出处