在过去的一两年中,比特币社区的主要话题一直是系统最终将如何发展。 规模 数以百万计的用户。在这类讨论中经常提出的两个概念是 闪电网络 和 侧链. 区块流 在改进这些比特币方面处于独特的位置,因为它拥有同时开展这两个概念的资金和激励措施。在最近接受《比特币》杂志采访时,Blockstream首席技术官 格雷格·麦克斯韦(Greg Maxwell) 分享了他对侧链作为可扩展性解决方案的观点,以及为什么从长期来看闪电网络将是一个更好的选择. 将比特币经典版实现为侧链 比特币社区的一些成员想知道,对比特币的比特币实施更改是否是一个好主意 堵塞 通过侧链限制大小。实际上, 比特币蜂巢的 保罗·斯托克(Paul Sztorc) 在他的 传动链建议 是侧链会允许 比特币经典 和 比特币XT 通过这项技术实现. 虽然麦克斯韦(Maxwell)同意这种功能是可行的,但他似乎并不确信这种功能很有用。他解释说: “我们对比特币侧链概念的最大动机是能够更好地满足系统的互斥目标。然而,侧链本身并不能从根本上改变全球广播系统的扩展限制,尽管如果实验链失败了,侧链应提供安全划分。” 换句话说,将网络的各个部分划分为不同的侧链并不一定意味着比特币可以扩展到每秒无限大的交易数量. 闪电网络是更好的选择 尽管许多人认为侧链可能是比特币解决可扩展性问题的长期解决方案,但麦克斯韦认为闪电网络是一个更好的选择。这是最近完全相反的意见 共享 经过 比特币核心 贡献者和 布洛克 首席执行官 杰夫·加兹克(Jeff Garzik) 在一个 最近一集 的 未经审查的比特币. Garzik是Lightning Network概念的忠实拥护者,但他仍然认为,与其相关的问题太多,无法将其视为比特币扩展的真正解决方案。应当指出,Garzik承认侧链也存在此类问题. 关于侧链帮助比特币扩展的能力,麦克斯韦告诉《比特币杂志》,“从技术上讲,在有限的范围内,低价值,低保证和侧重于小额支付的侧链可能是可行的。” 然后他澄清说:“但是,闪电一旦发布,就提供了更引人注目的扩展解决方案,可以真正将比特币生态系统定位于大规模的比特币零售用途和新的,更高规模的小额支付用例。” 比特币核心贡献者和 西弗雷克斯 首席执行官 埃里克·隆布罗佐(Eric Lombrozo) 讨论过的 闪电网络的一些与小额支付相关的用例,位于 圣地亚哥区块链议程 去年下半年。 […]
闪电
付钱吗?自助付款可能是闪电隐私的关键
闪电网络以其快速和廉价的付款而闻名。但是第2层协议还可以提供比链上支付更多的隐私,因为交易未在比特币的区块链上发布,因此区块链分析在很大程度上是不可能的. 但是,闪电网络确实存在其自身的隐私风险。付款通过用户网络进行路由,在监视资金流的同时,没有什么可以阻止间谍参与转发交易的过程。在闪电网络上,区块链分析可以代替网络分析. 有一些解决方案可以限制这些风险,例如Tor式洋葱路由。这些有帮助,但是根据网络拓扑和付款类型的不同,弱点可能仍然存在。最近几周,以化名ZmnSCPxj命名的比特币和闪电开发商已经发布了关于持久性风险的广泛分析。 Lightning-dev邮件列表 (1个, 2个, 3). 根据他的分析,ZmnSCPxj还提供了一个解决方案。类似于Payswap(他的关于链上隐私的建议,两周前被《比特币》杂志报道)一样,开发人员认为“自费”可能是隐私难题的重要组成部分。. 理解 自助付款 在上一篇文章中,我们讨论了Payswap,这是ZmnSCPxj提出的一项提案,该提案似乎通过颠倒付款人和收款人之间的关系来改善链上隐私。实际上,ZmnSCPxj最初是在闪电网络的背景下提出这个想法的。实际上,它可能在闪电网络上会更好地使用:嵌入在链上替代方案中的一些折衷不适用于第2层协议. 简而言之,对于Payswap的Lightning版本,自助付款是同一付款途径的一部分. 为了解释它是如何工作的,让我们看一下闪电网络的一个极其简化的版本。 A(虱子)具有与B(ob)和C(arol)的支付渠道。鲍勃与爱丽丝(Alice)和D(ave)有频道。卡罗尔与爱丽丝(Alice)和戴夫(Dave)都有频道。戴夫(Dave)与鲍勃(Bob)和卡罗尔(Carol). A — — B | | | | C — — D 如果爱丽丝想支付戴夫3比特币,她通常会通过鲍勃或卡罗尔付款。 Bob或Carol将为此服务收取少量费用,但为简单起见,在此示例中,我们将忽略费用。但是,实际上,已支付费用的事实与以下几段内容相关,因此请记住这一点。. 现在,我们要说的是,爱丽丝选择了鲍勃的付款方式。她将3个硬币发送给Bob,然后Bob继续将3个硬币转发给Dave。付款成功. 但是不幸的是,在这个例子中,鲍勃很容易正确地假设爱丽丝付给戴夫3枚硬币。他知道这笔钱是因为他转发了这笔钱,而如果爱丽丝想付卡罗尔,或者卡罗尔想要付戴夫,他们本可以直接付钱,而不必依靠鲍勃作为中介。如果鲍勃(Bob)是监视网络流量的间谍,那么他的正确假设会损害爱丽丝(Alice)和戴夫(Dave)的隐私. 因此,ZmnSCPxj提出了一种替代方案。爱丽丝可以将付款全部退还给自己……是“自费”,戴夫则承担了很大的“费用”。该费用实际上是实际付款. 为了像以前一样付给戴夫,爱丽丝这次要走5个硬币。首先,她将5枚硬币发送给Bob,Bob会将5枚硬币转发给Dave。然后-这是把戏-Dave继续将付款转发给Carol…但他只转发了2个硬币!最后,卡罗尔将2枚硬币转发给爱丽丝。最终,爱丽丝比他的硬币差3个硬币,而戴夫比他的硬币差3个硬币。因此,爱丽丝向戴夫支付了3枚硬币. 这种自我支付会误导鲍勃和卡罗尔。鲍勃转发了5枚硬币,并可能在逻辑上但错误地假设爱丽丝付给戴夫5枚硬币。同时,Carol可能会变得更糟:她会认为Dave付给Alice 2枚硬币。从Carol的角度来看,付款方向相反. 如果鲍勃(Bob)或卡罗尔(Carol)暗中监视网络活动,那么他们可能会误以为付款的金额和/或方向,从而受益于爱丽丝(Alice)和戴夫(Dave)的隐私。如果间谍经常被误导,它甚至可能完全使这种间谍活动毫无用处. PTLC,标准金额等 从网络图到交易量,上述示例的所有内容都得到了简化,而更细微的隐私风险(例如费用金额和时间锁定)则被完全忽略了。同时,假设即使Bob和Carol都是间谍,他们也不合作,或更糟糕的是:他们是一个假装是两个用户的间谍. 实际上,路由的隐私风险和隐私利益会同时变得更大和细化。解决所有这些细微差别超出了本文的范围。 ZmnSCPxj向Lightning-dev邮件列表提交的内容是进行更深入分析的更好资源。更广泛地讲,有关闪电隐私的研究正在进行中. 仍然需要指出的是,ZmnSCPxj提出的改善Lightning隐私的建议超出了自付费用的范围,在某些情况下,实际上,或多或少需要进行其他协议更改才能使自付费方式有效地改善隐私。两个最重要的变化是从哈希时间锁定合同(HTLC)到公钥时间锁定合同(PTLC)的转换,以及采用标准金额。因此,让我们简要地看一下这两个. 目前,闪电付款使用HTLC进行路由。沿途的所有用户本质上都会传递一个代码,该代码可确保如果另一方从另一方索取资金,则他们可以从另一方索取资金(这是通过网络转发资金的方式)。不幸的是,如果合作间谍是同一路线的一部分,则他们可以使用HTLC来告知不同跃点实际上是同一付款的一部分,从而在一定程度上丧失了洋葱路线的好处。 PTLC将利用加密技巧来防止间谍将不同的跃点链接到同一路由. ZmnSCPxj还建议闪电用户采用标准金额。尽管是可选的,但应鼓励钱包将付款分成较小(但相互关联)的付款,其中每个较小的付款均由标准金额组成。如果标准金额是例如1个,2个和5个硬币,则上例中的Alice将分两次支付1个硬币和2个硬币,而不是一次支付3个硬币(或者,如果她进行自付款,她可以发送5,然后将2路由返回给自己). 如果有足够的用户将其付款(分数)限制为标准金额,则间谍无法依靠金额将不同的跃点链接到同一付款。在自助付款的情况下,用户甚至可以将非标准金额从收款人转回自己,这使它们看起来更像是常规付款. 自助付款的缺点 ZmnSCPxj提案的链式版本Payswap具有重大的权衡。与常规付款相比,需要进行更多的交易,这意味着更高的费用。最重要的是,Payswap交易要求在比特币协议之外的用户之间进行交互。常规的比特币交易不. 在Lightning Network上,这些缺点并没有得到解决,或者在较小程度上得到了解决。两种情况下,雷电付款都需要互动,因此自付款不会使情况变得更糟。尽管需要一些额外的交易跃点来进行自付款,但这些跃点是在链外发生的,因此它们不需要额外的块空间. 也就是说,即使在Lightning上,自费支付仍存在一些缺点。虽然比链上费用便宜,但额外的跃点确实会增加路由费。此外,随着付款增加更多的跃点,付款失败的风险也会增加,间谍成为路线一部分的风险也会增加(如果在上面的示例中,仅Carol是间谍,则自费会给了她更多信息,而不是通过鲍勃的简单路线就能获得). 最后,当然,可能还有其他(尚无法预料的)折衷方案。自费是一个相对较新的建议。正如ZmnSCPxj在其电子邮件中总结的那样,“可能需要对付款时使用循环付款的情况进行更多分析。”
比特币的未来:闪电会是什么样
经过多年的构思和开发,第一个Lightning实施现在处于beta中。结果,每天有更多的节点出现在网络上,越来越多的用户在彼此之间打开渠道,甚至一些商家甚至开始接受闪电付款. 但是,当然,这仍是闪电网络的起步阶段。尽管主要实现可用并且一些钱包和其他应用程序可用,但比特币的覆盖支付网络预计将在未来几年内在从网络架构到安全性和可用性等诸多领域中得到改善。. 这些是目前正在开发中的一些更重要的闪电项目. 双资频道 闪电网络由一系列付款渠道组成。每个付款渠道都存在于两个用户之间,从而可以在他们之间来回转账. 但是,在发展的初期阶段,支付渠道只能由两方之一来资助。出资方必须首先与对方进行交易;只有这样,对方才能在同一付款渠道内退还付款. 这 闪电网络白皮书, 但是,建议采用双重资助的渠道,为此, 规格书 现在也由 ACINQ, 背后的公司 小饼. 顾名思义,双重资助的渠道将使两个用户通过各自存入一些比特币来为支付渠道提供部分资金。这应该为Lightning用户体验带来更大的灵活性,因为用户在打开频道后可以立即发送和接收付款. 水下互换 为了进行闪电付款,用户必须在闪电渠道中存入资金。一旦进入渠道,这些资金就无法发送到常规(链上)比特币地址(除非首先关闭渠道)。这意味着闪电通道中的比特币与普通钱包中的比特币有些不同,这与支票账户中的钱与储蓄账户中的货币有些不同. 但是有一些解决方案可以使闪电支付和链上支付之间的切换更加无缝. 一种解决方案是 水下互换. 由Alex Bosworth开发(但由 闪电实验室 首席技术官Olaoluwa Osuntokun 在那之前),“海底交换”实质上是允许用户向闪电网络上的中间人发送闪电付款;该中间人将向相应的常规(链上)比特币地址发送相应数量的比特币。它也可以用另一种方式起作用:用户可以向中间人发送常规的链上付款;然后该中间人将向闪电网络上的接收闪电节点发送相应数量的比特币. 重要的是,对于“水下互换”,此转换是“原子地”完成的。使用已经嵌入在Lightning网络中的技巧,Lightning付款和链上付款可以有效地彼此链接。这使得中间人无法通过不转发付款来窃取资金。 (与用户达成协议后,他可以收取少量服务费用。) 拼接 使Lightning用户体验更加无缝的另一种解决方案称为“拼接”。从本质上讲,拼接可以使用户“充值”现有Lightning通道中的资金,或“消耗”现有的Lightning通道中的资金,同时可能保持通道开放. 这个想法很简单。任何Lightning渠道均始于开放交易,以确保两个用户都同意在该渠道中转移资金。闪电频道的其余部分由用户之间交换的一系列后续交易组成,这些交易通常不会广播到比特币网络。开仓交易中的资金只有在关闭渠道后才会转移. 当“投入”时,用户接受期初交易,而是从一个或两个用户向替代期初交易(包括更多比特币)发送资金。一旦此新的开仓交易在区块链上确认,该渠道便被充值。在确认新的开张交易之前,两个用户可以简单地同时更新旧渠道和新渠道,从而避免任何“渠道停机”。 相反,当用户“分拆”时,用户将进行开仓交易以将资金发送到常规(链上)地址,并有可能使用相同的技巧将其保留在渠道中。这样,用户可以直接从闪电通道进行链上交易. Eltoo 每次进行新的付款时,用户之间的闪电渠道都会更新,以反映他们的相互余额。当前用于完成此操作的技巧包括对试图通过广播较旧的余额作弊的用户进行惩罚(大概是因为较旧的余额将向他们支付更多费用)。作弊用户可能会损失其在渠道中拥有的所有资金. 问题在于广播旧余额并不总是作弊尝试。在许多情况下,用户可能会意外广播较旧的余额;例如,由于软件错误或备份出错。在这种情况下,渠道资金的完全损失是一个沉重的惩罚。. 首次发布于2018年4月30日, 埃尔托 是本文中的最新建议。由Blockstream的开发 c-闪电 开发团队-Christian Decker博士和Rusty Russell-以及Lightning Labs的Osuntokun,eltoo通过建立时间锁定的交易链来更新渠道,其中每笔交易都花费前一笔交易的资金以反映最新的渠道余额. 如果一个用户广播较旧的交易(表示较旧的频道余额),则其交易对手有一段时间广播最新的交易(表示最新的频道余额). 这样的解决方案今天可以使用,但是在失败的情况下不可行。这就要求将整个交易链广播并记录在比特币区块链上,这或多或少地破坏了闪电网络的目的。因此,百得 建议的 对比特币协议的软叉更改,以在这些类型的交易中引入一种层次结构:任何较新的交易都可以覆盖任何较旧的交易,而无需广播整个链中的所有交易. 如果在比特币网络上采用并激活了此分叉,则闪电用户可以根据自己的喜好创建当前样式和eltoo频道. 紧凑的客户端块过滤 虽然闪电网络是第二层协议,但出于安全目的,比特币区块链本身仍与闪电用户相关。具体来说,闪电用户必须密切关注区块链,以查看是否包含特定交易。这可能会占用大量资源,尤其是对于移动用户而言. 一种解决方案称为简化付款验证(SPV),并在比特币白皮书中进行了描述。当前的SPV钱包使用一种称为“布隆过滤器以确定是否发生了任何相关交易. 不幸的是,Bloom过滤器相当不适合隐私,因为钱包本质上会将其所有地址透露给比特币网络上的节点。它们还存在一些扩展性和可用性问题,因为每个单独的SPV钱包都从至少一个完整的比特币节点上占用资源。. 为了解决这些问题,闪电实验室的Osuntokun和Alex Akselrod以及 […]
闪电实验室发布渠道流动性市场
今天,闪电网络开发公司Lightning Labs 已经发布 一个称为Lightning Pool的对等,非托管市场,Lightning节点运营商可以在其中买卖渠道的流动性. 市场是需要入站流动性的节点运营商向拥有流动性的节点运营商支付在其方向上开放渠道的方式. 如比特币杂志分享的闪电实验室声明中所述,“用户可以通过Pool市场买卖闪电通道,相当于几千美元。” “想要在Lightning上获得资金的商人和初创公司是渠道流动性的自然买家,而拥有多余资金并希望从其比特币上获得回报的节点运营商自然是卖家。” 闪电流动性市场 闪电网络实际上是一个支付渠道网络,通过仅在关闭底层比特币网络上的用户之间的余额时才进行结算,才能实现更快,更便宜的比特币交易。闪电节点运营商通过这些渠道处理交易并收取费用. 在此处了解有关闪电网络如何工作的更多信息. 要在闪电网络上进行比特币交易,您必须说服其他节点与您一起锁定频道中的比特币。 Lightning Pool已作为一种解决方案推出,供用户寻找具有可用BTC的参与者以创建频道的解决方案. 公告称:“我们是根据Lightning用户的市场需求开发Pool的,他们正在寻找新的流动资金来源,以使他们能够更有效地接收资金并通过Lightning进行交易。” “用户试图以各种特殊方式来解决此问题,例如聊天组和OTC服务,而Pool提供的解决方案使他们都能参与其中。” 确实拥有流动性的节点运营商现在可以得到报酬,将其分配给出价最高的竞标者. 公告解释说:“现有的节点运营商无法获得定价信号来帮助确定应在网络中分配其出站流动性的位置,而新的节点运营商也没有办法表明他们需要新的入站流动性,”该公告解释说。 “ Lightning Pool将这两个方面整合到一个市场中,同时允许他们保持对资金的保管。” 有关市场运作方式的更多信息,请访问 来自Lightning Labs的技术深入探讨. 影子链介绍 Pool将使用比特币区块链作为其结算层,并且市场将在何时将新的比特币区块添加到区块链中进行结算(只要至少有一个出价与要价相匹配)。. 在接受《比特币杂志》采访时,闪电实验室业务开发负责人Ryan Gentry表示,闪电池建立在“影子链”的第一个实例上,该影子池实现了非托管的链下比特币交易,并在主区块链上进行了批量结算。通过Pool,用户将其BTC与影子链运营商节点一起存入具有时间锁定的2比2多重签名合约,后者需要用户的许可才能移动这些代币。由于操作员节点是每个事务的每个输入的部分签名者,因此可以批量在链上执行它们,从而使它们更便宜地进行验证. Lightning Labs的CTO Olaoluwa Osuntokun告诉“比特币杂志”:“影子链是一种在比特币之上设计具有更复杂逻辑的应用程序的新方法。” “用户始终可以控制自己的资金,并完全验证提议的区块。区块验证可以在比特币脚本之外的自定义执行环境中进行,例如常规程序,区块也可以“压缩”到链下,从而提高了可扩展性。升级也可以在链外进行,与侧链不同,没有新链。而是将新规则应用于UTXO集的子集。” 有关影子链的更多信息,请访问Lightning Labs 闪电池白皮书. LiFi的到来 Lightning Labs将此发行版定位为迈向基于Lightning的金融产品生态系统的一个步骤,该生态系统被称为“ LiFi”。通过为用户提供一种赚取收益的方式,该公司推出了一项新颖的服务,该服务可能会激发人们对提供闪电流动性的更多兴趣,或者激发类似的项目来帮助闪电用户从参与中获得回报. Lightning Labs首席执行官伊丽莎白·斯塔克(Elizabeth Stark)告诉《比特币杂志》:“比特币本地金融产品,尤其是LiFi,试图利用比特币区块链无与伦比的安全性,同时创建与真实比特币绑定的新一代金融产品。” “这些范围可能从离散日志合同到Pool等流动性市场,再到由比特币支持的资产,所有这些都可以在Lightning之上实现。” 而且Lightning Labs希望这仅仅是Pool的开始,Pool可能会成为基于比特币的金融服务的基础市场. “随着Pool的成熟和更多市场的增加,它将产生一条收益曲线,为新生的比特币原生资本市场提供基准收益率,”该公告称。.
我们可以从#LNTrustChain2:第1部分中学到有关闪电的知识
第一个闪电网络“火炬传递”于2019年1月19日首次亮相,以推广第二层比特币支付协议的采用。当它在2019年4月结束时,它吸引了278名参与者和56个国家访问。一年后,火炬诞生背后的人霍德洛纳特(Hodlonaut)开始 于2020年1月19日再次接力. 然而,几天后,很明显,新的火炬迭代是不同的,首先是高比率的火炬被盗,然后通过将量通过tippin.me发送给一个默默无闻的杰克,从而“取消”了火炬链。 Twitter的首席执行官Dorsey乐意接受2019版的火炬. 由于该链通过Twitter帖子传播的方式,闪电网络“信任链”(#LNTrustchain2)的路径有些容易遵循,并且有关特定付款请求(发票)的数据可以公开获得。因此,它可以为我们提供有关采用Lightning Network的与消费者相关的方面的大量见解。最常使用哪些客户代理?哪些手机钱包服务?托管钱包是否盛行? 遵循#LNTrustchain2提供了一个绝佳的机会来衡量闪电网络的采用情况。在全球范围内发生的其他事件还包括来自世界各地的用户,从混合职业到比特币大罢工到首席执行官,他们的所有付款请求都公开发布在Twitter上? 作为一名区块链分析师,我受到专业好奇心和内在动力的鼓舞,他们渴望传播有关比特币和闪电网络匿名性方面的知识。专门选择了本文提供的几个示例,以扩大公众对特定解决方案隐私缺陷的认识。. 在本系列的第1部分中,我将概述我收集的数据,并说明获取数据集的方法。然后,我将专注于移动钱包,主要研究保管服务,同时也展示包括Phoenix和Breez在内的钱包的新发展潜力. 方法论的一些注意事项 我通过收集所有参与者及其各自的付款请求或“发票”来开始研究。在159位参与者中,有19位是在DM上进行交易或从那以后删除了付款请求,因此这些付款请求对他们来说是不可见的。这对他们的隐私很有好处,因为研究人员(例如我本人)无法剖析他们的数据. 每个闪电网络 支付请求 的字段“ node_id”指向所有者的节点。为什么这很重要?现在,让我们考虑通过某种虚拟专用服务器(VPS)或通过家庭环境进行的专用节点设置,这些设置主要以即插即用节点(CASA,Nodl),Raspberry Pi节点或桌面节点( Zap). 如果用户的设置不是通过Tor(洋葱路由器)运行的,那么仅公开发布发票的行为就可以为对抗实体提供一种了解节点IP地址的方法。无论TOR是否处于活动状态,攻击者都可以使用节点ID来收集节点所有者打开的所有公共通道,以及相应的比特币地址。使用像这样的区块链分析工具 通用输入聚类, 甚至只有一张公共发票也可以使对手看到自己的全部钱包余额. 通过提取TrustChain2的所有140张公开可见的发票,我能够绘制所有钱包提供商的甜甜圈图。所有钱包中至少有56%用于手机。与使用Bluewallet,Satoshi的Wallet或Dropbit的使用有关,占总钱包的48.2%。私有节点占通过不同提供商(例如eclair mobile)或通过一些个人Lightning Network节点(后端上的lnd或c-lightning)使用的总钱包的44%。. 保管服务:这种疯狂的方法! 安德烈亚斯·安东诺普洛斯(Andreas Antonopoulos)曾说过:“不是您的钥匙,不是您的比特币。”同样,对于闪电网络,格言是“不是您的节点,不是您的坐席”。在比特币方面,到2020年,即使是最差的比特币钱包也为用户提供了备份其钱包种子的机会。就硬币的所有权而言,这一点很重要。例如,如果一个集中式钱包提供商倒闭,那么密钥和比特币将随之而来. 闪电网络也是如此。 2020年的火炬传递中使用的大多数钱包要么与Satoshi钱包,Bluewallet或Dropbit有关-都是托管服务。通过解码发票,我们将获得这三个软件提供商之一拥有的接收者的节点ID。. 托管的闪电网络钱包正在使用自己的节点基础结构,以允许其用户在闪电网络层上进行交互(通常在链上的比特币上不受监管)。整个钱包用户界面(UI)只是其集中式SQL数据库处理Lightning Network付款的顶层。我将使用这些钱包与在钱包提供商保存的资产负债表中写I Owe You(IOU)语句进行比较。每个托管钱包都完全管理其自己的节点基础结构(通常是单个节点),因此所有与LN相关的操作:打开/关闭渠道,请求付款,发送付款都是代表用户完成的。知道节点的ID(在付款请求中看到)可以将我们指向钱包提供商(Satoshi,Wallet,Bluewallet或Dropbit). 如果其节点遭到破坏或服务停止工作,将会发生什么?结果很容易预测-客户资金损失。 (Dropbit应用程序已经 陷入困境 在撰写本文时。) 使用托管服务确实有一些好处,尽管其中一些好处也可以在非托管设置中(通过私有渠道)实现。这些特权与无法识别的渠道和位置数据有关。由于托管钱包为所有用户使用他们自己的节点,因此这些用户不必担心保护自己的IP地址,也不必担心错误地将其持有的比特币匿名化. 幸运的是,托管服务不一定是解决这些问题的答案。随着新功能不断添加到闪电网络协议中 (螺栓), 新型闪电网络钱包应运而生. 非监管性手机钱包:匿名且安全 运行个人Lightning Network移动钱包的理想方案是拥有一个内置节点,并向钱包提供商的节点打开专用通道。第一部分,在设备上拥有自己的节点,是自我监护的重要组成部分。即使附近的任何一个节点(重点放在钱包提供商的节点上)应该掉线,节点所有者也可以通过关闭该通道的力量来退还锁定在支付通道中的资金。这是关闭渠道的建议解决方案,在这种渠道中,当事方对自己的州有不同意见或当事方之一下线时. 去匿名化节点所有者的比特币地址怎么办? Breez钱包和Phoenix都提供了“微妙的”功能,允许其用户仅创建到节点的通道。这些不仅仅是“正常”的闪电网络付款渠道,而是“私人”渠道。它们不会被闪电网络协议“迷住”;用外行的话来说,他们的存在不会向网络的其他成员宣布。甚至比特币层上与发布承诺交易有关的活动也不是确定性的,从而留下了潜在的对手 怀疑 关于发生了什么承诺交易. 通过想象Breez或Phoenix的用户Alice,可以更好地解释此功能的核心。爱丽丝想收到火炬付款,因此她在上一条推文下过帐了付款请求(发票)。鲍勃(Bob)看到了她的发票,决定将火炬发送给她。解码请求后,他看到了爱丽丝的节点ID和附加的有效负载,称为“路由提示”,以及钱包提供商的相应节点ID。发送付款的操作会将资金通过钱包提供商的节点进行路由,该节点是爱丽丝节点的一跳邻居,并且知道私有路径. 如果我们在任何条件下通过ID搜索爱丽丝的节点会怎样? 闪电网络资源管理器? 该结果将不存在,因为她的节点对网络的其余部分不可见. 到目前为止,我们已经探究了从#LNTrustchain2运动中收集的数据,并描述了该研究背后的动机。托管和非托管Lightning钱包之间存在界限,并说明了为什么访问Lightning Network基础结构的特定方法可能很危险的原因. 在第2部分中,我们将研究私有节点实例的私密性,并在系列结束时提供有关在使用Lightning Network时如何采取措施保持匿名性的建议。. […]
良好的悲伤:闪电网络上的持久漏洞仍然需要修复
当您的闪电网络路由节点被永远无法解决的垃圾交易所困扰时,会发生什么?简而言之,这会给路由节点带来很多麻烦。精明的脚本编写者可以用不费吹灰之力就锁定了曾经是一个平滑的全球支付系统. 在一个由路由节点组成的小组中,我们成功地用实际资金对攻击进行了测试,并展示了“悲痛攻击描述 乔斯特·贾格(Joost Jager). 这次袭击称为悲伤袭击,因为它不是偷窃资金,但会导致受害者的闪电资金被冻结:这是一次重大打击。我们发现,悲伤对大型“巨大”渠道构成了严重威胁,这些渠道希望从其比特币中获得收益,而只是将其资金冻结了一段时间. 这主要是一次悲伤的袭击:没有资金损失,但受害人可能被迫为关闭昂贵的通道部队付出代价。这是Mainnet Lightning上的一个已知漏洞,需要对其进行理解和确定优先级,尤其是在比特币Lightning Network的早期市场阶段. 感谢Clark Burkhardt和Phillip Sheppard愿意参加此测试,并感谢Jager所做的不懈努力,以引起人们对这个漏洞的关注和优先考虑。贾格(Jager)在我们的示威活动中扮演了攻击者的角色,而伯克哈特(Burkhardt)和谢泼德(Sheppard)加入了我,成为了互联的受害者路由节点. 攻击如何进行 攻击者将一个(或几个)信道与未确定为最终付款的哈希时间锁定合同(HTLC)饱和。这些是HTLC的特殊种类,称为HODL发票。这些悬而未决的HTLC中只有483个需要使每个方向的信道不堪重负。一旦这些HTLC进入通道,就不可能使用同一通道方向进行任何交易,包括以合作方式关闭该通道的交易. 从理论上讲,攻击者可以与受害者联系(也许通过键盘输入消息或“洋葱团”),并要求支付赎金以停止攻击。支付赎金后,攻击者可以删除未解决的款项,从而结束攻击。攻击可以无限期持续,从而停止该通道中的所有路由和支付活动。这冻结了闪电渠道中的资金. 通过在每个方向上使用入站和出站的483个HTLC,可以在一个通道中停止两个付款方向. 我的平衡通道到Burkhardt的Thunderhub视图受到攻击。该频道显示为“未激活”,就像Burkhardt处于离线状态一样,但他没有。蓝色的数量是饱和状态下的本地余额,绿色的数量是Burkhardt拥有的饱和状态下的远程余额。来源: Thunderhub. 为什么攻击者会做这样的事情? 我想到的第一个动机是要求赎金。这种攻击会给受害者带来痛苦,即使不保证攻击会停止,支付赎金对受害者也可能很有吸引力。与受害者联系可能对攻击者有风险,但赎金付款可能不是某人这样做的唯一原因. 发动悲伤攻击的第二个诱因是破坏路由竞争。阻塞竞争对手的路线可能会增加对攻击者拥有的路线的需求. 作为基准,请考虑Lightning Labs的Loop节点对流动性的需求持续不断,有时它会支付每百万分之2500的付款(ppm)(0.25%)费率。以我的经验,他们通常会在大约两周内耗尽1600万萨特的流动资金(年增长率为5.2%),但这存在竞争. 如果攻击者可以以较低的费率禁用任何竞争路线,则Loop可能愿意支付较高的费率(因为现在减少了流动性供应)。假设Loop将支付3,000 ppm(0.3%)的费用,并且由于没有其他渠道在起作用,因此可以更快地使用这种流动性。 Loop可能会在一半时间(例如一周)内使用该流动性。在此示例中,攻击者的正常收益率将提高一倍以上,达到15.6%。攻击者的唯一成本是在现有频道上运行脚本的成本,以及对闪电网络进行不道德/破坏性行为的心理成本。使用单个攻击者通道,恶意行为者可能会阻塞大约九个通道(请参阅 Jager关于此的推文). 这次攻击经历的受害者是什么? 除非他们为未决的HTLC设置了一些特殊警报,否则此攻击的受害者不会真正知道此攻击是否正在发生。对于Thunderhub用户(强烈推荐的工具),主屏幕将显示挂起的HTLC图表以及警告,指出通道只能容纳483个挂起的HTLC. 资料来源:Thunderhub 在实践中,我的节点很快变得不可靠,并经历了几次应用程序崩溃,其中包括Thunderhub,后者是唯一通知我该问题的应用程序。然后,多亏了我的“ Satoshis平衡” Telegram机器人,我收到了频道关闭通知。受到攻击的通道本身就关闭了!那不应该是实验的一部分。 (有关非自愿关闭力的更多技术信息,请参见下面的其他强制关闭数据。) 由于这次攻击,与Burkhardt(salmiak)一起使用该频道进行的测试付款失败。此警告报告Burkhardt的节点处于脱机状态,尽管该节点处于联机状态。资料来源:Thunderhub. 受害者可以做些什么来阻止悲伤的袭击? 攻击开始后,受害者基本上无法采取任何行动来阻止它。阻止正在进行的攻击的唯一替代方法是强制关闭被攻击的通道,这意味着恐怖分子会获胜. 为了增加侮辱性伤害,强制关闭渠道会将未解决的付款推送到链上交易数据,从而触发第二次链上交易,以强制关闭力量的发起者。以50个sat / vbyte和483个链上交易计算,这很容易以100万个sat的价格标签强制关闭一个受到攻击的频道(按今天的价格收取368美元的频道关闭费)。仅当输出超出最低付款“灰尘”限制时,才会发生多个链上交易。 (看 这个例子 在测试网上。) 闪电通道的发起者支付关闭费. 您可能不希望获得483(无尘)htlcs的另一个原因是,以50 sat / vB的价格可能会发生强制平仓交易,如下所示: https://t.co/z6mAGZxvrC. 收盘费越来越贵,超过一百万. -Joost Jager(@joostjgr) 2020年9月28日 如何防止悲伤攻击 Jager一直在研究概念验证程序,以帮助隔离和打击攻击者。他称他的程序为“断路器.断路器在网络级别工作,不幸的是,这意味着每个人都必须参与才能使之有效. 除此之外,此问题还需要确定优先级并得到专门工程师/开发人员的关注,以找到更好的解决方案。在修改比特币Optech新闻通讯(第122号或第126号)中,也进行了一些有关修改协议的很好的讨论。. […]
插入C-Lightning:Lightning插件的前途一片光明
尝试浏览不同的Lightning实现可能是一个挑战。尽管最初有3种实现方式:c-lightning,eclair和lnd,但随着雷鸟,防锈闪电和Electrum的出现,更多的东西一直无休止地从木制品中脱颖而出。. 通常,似乎开发人员和有抱负的开发人员都基于其所编写的语言选择使用特定的实现或为该实现做出贡献。熟悉Scala吗?选择泡芙。对Rust的潜力感到兴奋吗?选择防锈闪电。但是,还有其他关键考虑因素,例如目标,设计理念,用例和不同实现的权衡取舍。此外,仅因为实施是用某种语言编写的,并不一定意味着您需要使用该语言进行编码才能为该实施周围的生态系统做出贡献. 在Breaking Bitcoin 2019和《比特币杂志》的这篇文章中的一个小组中探讨了lnd和防锈实现之间新出现的对比。尽管Lnd试图减轻开发人员的负担并提供现成的终极功能,但是rust-lightning试图为最终开发者提供最大的灵活性,鼓励他们自带组件并将其插入. 相比之下,c闪电提供了第三种方式。它维护了一个健壮和安全的内核,该内核设计为不被开发人员调整或替换。通过使用可由开发人员以各种语言(例如Python或Go)编写的插件,可以提供灵活性和附加功能。目的是使c-lightning生态系统成为试验新前沿功能的试验台,而这些试验是以前其他实现方式(例如lnd和eclair)的地形,而又不牺牲核心的性能和鲁棒性. 插件是由主lightningd守护程序启动的子进程。他们与lightningd合作。任何超出要求的插件都不需要运行。有些插件确实需要将某些钩子引入lightningd中,这些钩子将通知插件有关内部事件和/或更改lightningd的行为。. 第一个C-Lightning插件 区块流有一个 系列 中的博客文章,展示了c-lightning团队编写的一些首批插件。这些包括“摘要”插件,该插件提供节点状态的摘要,包括satoshis onchain,按法定金额表示的金额,对等点数,通道数,平衡程度等。. “ Probe”插件确定是否存在向网络中某个节点进行付款的途径,返回所需的费用水平,并指示哪些渠道阻止成功付款。这可用于准备将来的付款基础,或仅用于探索网络拓扑. “ Prometheus”插件收集有关节点性能的数据,以提供可视化和警报。使用所有这些插件,您可以选择通过添加功能或从头开始构建自己的插件来为插件做出贡献. 社区插件 在撰写本文时,总共有16个用于c-lightning的“社区管理”插件。这些包括 自动驾驶插件 从Rene Pickhardt构建的库中移植。自动驾驶仪代表用户决定与哪些节点打开通道。用户需要告诉自动驾驶仪他们所控制的资金百分比,要打开的通道数量以及最小通道大小。当远程方打开和关闭通道时,也需要通过lightningd通知自动驾驶仪。建立有效的自动驾驶仪具有挑战性,因为用户偏好(例如最大程度地提高了成功付款的可能性)可能会与网络运行状况(例如分散级别)发生冲突. 还有一个 重新平衡插件, 从而在用户渠道之间移动流动性,以确保有足够的流入和流出流动性;和 无发票付款插件, 这样一来,用户无需先收到发票即可付款。运行c-lightning时,您可以选择打开或关闭这些插件的任意组合. 饰演Lisa Neigut(@niftynei)在她说 暴风雨, c-lightning不会像lnd一样为第三方应用程序开发人员提供“现成的标准化HTTP可访问接口或身份验证方案”。但是社区构建的插件提供了构建其他实现中存在的c-lighting等效项的机会。. 克里斯塔普斯·考普(Kristaps Kaupe) 已经启动了GitHub 回购 用于模拟一些lnd命令的插件。其他值得强调的插件作者是 理查德·邦迪(Richard Bondi), 他在Go中编写了一系列插件,其中包括禁止同行使用的插件; 菲亚特, 谁编写了实现插件 LN URL 帮助付款人与收款人互动;和 科纳·斯科特(Conor Scott), 他用Python编写了许多插件,其中包括一个用于创建具有最大容量节点的通道的插件。最后, 贾斯汀·穆恩(Justin Moon) 建立了一个概念验证插件,用于使用硬件钱包为Lightning频道提供资金. 插件的挑战 尽管此插件体系结构似乎提供了两全其美的优势,但确实带来了一些挑战和潜在的弊端。目前尚不清楚锈闪电的最终灵活性是否意味着它更适合于寻求将闪电整合到其现有代码库中的现有比特币钱包. 此外,随着社区插件数量的增加以及依赖这些插件的比特币价值的增加,安全性和管理性将变得至关重要。插件之间不可避免地会有重复和重叠. 整理是一项具有挑战性的工作,因为它可以有效地建议(非正式地,警告购买者)建议使用哪些插件,哪些不该使用。没有策展,用户和开发人员就不可能在不检查所有竞争插件的情况下快速上手。有一种观点认为,某些语言(和一些开发人员!)更适合于编写对安全性要求很高的软件。但是,特别危险的JSON-RPC方法只能与developer选项一起安装,并且只能在c-lightning团队的帮助下进行测试和调试。对于利用特定钩子可以改变c-lightning默认行为的插件开发人员可能带来的危险,也提供了一些指导。. 这种方法并非为开发人员创造了一个完美的无许可环境,因为某些将来的插件仍然需要c-lightning团队将附加的钩子合并到c-lightning代码库中。例如,一个用于监视watch望塔插件的钩子已插入 讨论 […]