本周的比特币技术周报,我们会重点关注一个影响闪电网络支付的安全问题,随着比特币链上交易费用增高,其安全隐患也会随之暴露,而目前的解决方案仍存在着较大的权衡。然后我们会介绍一个新的预签名金库(vault)提议,最后是常规部分内容,例如Bitcoin StackExchange的热门问答以及流行比特币基础设施的重大更新。
闪电网络遭遇新安全问题,短期解决方案或难以令人满意
本周,来自Square Crypto的闪电网络开发者Matt Corallo公布了一种窃取闪电网络(LN)节点资金的新方法。这一问题部分与一个现有众所周知的费用管理问题是重叠的,但据我们所知,这个漏洞并没有被利用,因为在过去两年中,几乎所有中继的链上交易都能相对快速地确认,即使它们仅支付了默认的最低中继费率。
但如果费率在很长一段时间内大幅增加,这些问题将变得更加关键。如果你担心此问题可能会影响您的通道,请与闪电网络软件开发商联系。
下面我们会详细解释这个问题:
针对闪电网络(LN)支付原子性的新攻击:Matt Corallo在闪电网络开发邮件列表和比特币开发邮件列表中均发布了一个帖子,其公开了一种在讨论中发现的新攻击,它允许LN承诺交易通过锚输出(anchor output)来增加CPFP(父子支付)费用。我们将通过示例来描述这种攻击:Alice使用LN通道向Bob发送一个哈希时间锁定合约(HTLC),该合约旨在通过以下任一方式解决:
如果Bob公开了的原像(preimage),他就可以花掉Alice的 1 BTC;
否则,在过了80个区块之后,Alice就可以将这1 BTC取回;
Alice还告诉Bob,她的目标是向Mallory付款,因此Bob使用他与Mallory拥有的通道向她发送相关的HTLC:
如果Mallory公开了的原像,她就可以花掉Bob的1 BTC(在这个例子当中,我们忽略了路由费);
否则,过了40个区块之后,Bob就可以将这1 BTC取回;
尽管上述HTLC通常是在链外创建与结算的,但各方也有一笔承诺交易,可用于将HTLC承诺置于链上。单独的链上结算交易可以满足HTLC的任一条件。
例如,Mallory可以发布承诺交易,然后创建提供原像并认领Bob 1 BTC的结算交易。如果Bob在Alice-Bob合约的第80个区块超时之前,看到Mallory的原像结算交易,则Bob可以提取该原像,并将其用于从Alice那获取1 BTC(在链上或在链外)。
或者,如果Bob没有看到原像结算交易,则Bob可以在40个区块之后创建自己的退款结算交易,以收回他的1 BTC,这样他也可以发起Alice的1 BTC退款(同样可以是在链上或链下)。无论是哪种情况,这都会使每个人都遵守其合约意图。
不幸的是,正如本周Matt Corallo披露的那样,Mallory似乎有一种方法可以绕过这个过程,她既可以阻止Bob学习原像,又可以防止他发送退款结算交易。
原像拒绝:Mallory可通过给她的原像结算交易一个较低的费用率来阻止Bob学习原像,从而避免其被快速确认。如果Bob只是在区块链中寻找原像,那么在未确认的情况下,他将不会看到Mallory的交易。
退款拒绝:由于这两笔交易发生冲突(指它们都使用相同的输入),Mallory先前广播的原像结算交易,可阻止矿工与比特币中继节点接受Bob稍后广播的退款结算交易。从理论上讲,Bob的退款结算交易可通过支付更高的费用,来取代Mallory的原像结算交易,但实际上,Mallory可以使用各种交易固定(transaction pinning )技术来防止这种替换的发生。
由于Bob无法了解到原像结算交易,也无法确认其退款结算交易,因此一旦80个区块时间过去后,Alice便可以在Alice-Bob HTLC中收回她提供给Bob的1 BTC。当Mallory的原像结算交易最终确认时,Mallory在Bob-Mallory HTLC中获得了Bob提供给她的1 BTC,这就使得Bob损失掉了1 BTC。
Matt Corallo在帖子中考虑了几个解决方案,但它们也都会遇到一些问题,或者会涉及重大的权衡:
需要一个存储池(mempool):Bob可以使用一个比特币全节点来监控比特币P2P中继网络,并了解Mallory的结算交易。一些LN节点(如Eclair)已经这样做了,这似乎是一个合理的额外负担,因为问题仅直接影响路由节点(例如Bob)。
而只代表自己发送或接收付款的节点,仅会受到间接影响,因此日常用户仍可以在移动设备上运行轻量级LN客户端。不幸的是,并不是所有全节点都接收到与其他节点相同的交易,即使所有节点都工作得很好。
更糟糕的是,像Mallory这样的攻击者可以使用一些技术将不同的冲突交易发送给不同的对等方(例如,将固定的原像结算交易发送给已知的矿工,但将具有至少一个相同输入的不同非结算交易发送给非矿工中继节点)。
中继网络可以向交易提交者(例如Bob)提供有关冲突的信息,因此他们无需持续监控自身。这仍然会存在不良行为体的问题,比如Mallory使用目标中继,将不同的交易发送给矿工和非矿工。此外,Bob还可以为矿工或其他第三方节点支付所需的原像费用,但这需要一些人运行额外的软件,并且在部署LN协议升级时可能不那么容易。
结算交易锚输出:可以重新设计链上结算交易,将其价值用于锚输出,这些输出可能是使用CPFP carve out而增加了CPFP(父子支付)费用。这将要求这些交易变得更大(增加链上费用)并且是预先签名(降低灵活性)。
这只会直接影响到那些在等待付款时单方面关闭的通道,这已经是一种可显著增加链上成本的情况,因此也是用户试图避免的。然而,提高链上的执行成本,也提高了可通过LN不受信任地发送付款的最低实际价值。尽管存在这些挑战,但在撰写本文时,这似乎是最可取的解决方案。
Corallo称这是一个严重的问题,但他也指出,这一问题的后果与另一个有关链上LN交易中的费用管理已知问题类似。
截至目前,我们还尚未发现因为链上费用管理问题而引发的实际LN损失,部分原因可能是在过去两年中,很少出现持续时间足够长的大额费用峰值。
但这种好运不可能无限期地持续下去,所以这个新问题给了LN开发者一个额外的理由来优先考虑改进链上费用管理的实现。在此期间,关注攻击的节点运营商可能希望增加其cltv_expiry_delta,以便使原像结算交易有更多的确认时间。
在当前的LN节点中,C-Lightning的默认值为14.LND的默认值为40.Rust Lightning的默认值为72.Eclair的默认值为144.请注意,增加该值将使您的通道不太受使用者的欢迎,因为较高的值可能会导致付款被延迟。
新的多方金库(vault)契约实现
基于上周周报中提到的预签名金库(vault)契约原型,Antoine “Darosior” Poinsot公布了一个名为Revault的演示实现。这一新实现专注于存储具有多重签名安全性的多方共享资金。该协议允许各方子集通过确认信标交易(beacon transaction)来发起提款过程。
如果金库的其他方反对提款,则他们有机会广播第二笔交易,将资金退还至金库中的紧急地址。如果在一定时间内没有异议,则另一笔交易可以完成资金的提取。Poinsot目前正在征求对该提案的反馈意见。
StackExchange 精彩问答
Bitcoin StackExchange是Optech贡献者寻找问题答案的首选之地。在本期内容当中,我们会重点介绍一些近期最受好评的问题与答案。
问题1:如果我们使用原始公钥作为地址,对ECDSA的潜在攻击可能是什么?
Pieter Wuille总结了在地址中使用公钥哈希,而不是使用公钥的论点,即它可以减慢量子计算攻击的速度。他接着列举了为什么声称的论点可能被夸大,并给出错误的安全感的原因。
问题2: 在父子支付方案(child pays for parent)中的DEFAULT_ANCESTOR_LIMIT是什么意思?
Murch指出,此默认策略有助于防止垃圾交易攻击,并提供了一些确定祖先交易计数的示例。
问题3: 与script脚本语言相比,Simplicity如何更好地适合静态分析?
Simplicity白皮书作者Russell O’Connor描述了静态分析比特币脚本程序与Simplicity语言相比所面临的挑战。
比特币主要基础设施的候选版本更新
Bitcoin Core 0.20.0 rc1是下一版Bitcoin Core软件的首个候选版本;
LND 0.10.0-beta.rc6允许测试下一个主要版本的LND客户端。
C-Lightning 0.8.2-rc3是C-Lightning客户端的下一个版本的最新候选版;
除了这些之外,本周Bitcoin Core还发生了一些显著变化(注:下面提到的Bitcoin Core更改,我们需要等到0.21版本才会看到,而即将发布的0.20版本不会纳入这些新功能)。
Bitcoin Core #15761 增加了一个upgradewallet RPC,从而允许用户在加载钱包时将其解锁并升级到分层确定性(HD)钱包。此附加功能还与多钱包兼容。
Bitcoin Core #17509 允许钱包GUI将部分签名比特币交易(PSBT)保存到一个文件中,并从文件加载PSBT。后续PR有望增加在GUI中进行PSBT签名的能力。
与BCH和BSV等分叉币相比,闪电比特币LBTC同样是源自于比特币,其诞生的初衷也是为了解决比特币本身所存在的一些不足和缺陷,但是LBTC最大的不同在于采用了DPoS共识机制,而不是PoW共识机制,其所带来的最显著的好处有以下几点:一是大大提高了性能,众所周知比特币的每秒转账数也就是TPS只有7左右,其他采用PoW共识机制的比特币分叉币也都相差无几,而LBTC的TPS理论值可达2800,目前实际水平可以达到1000以上,性能提升了好几个数量级。 快如闪电这句口号绝非虚言,有兴趣的朋友可以到LBTC或者cobo钱包官网下载一个钱包体验一下。 二是大大降低了能源消耗和参与门槛,众所周知,以比特币为代表的PoW挖矿所导致的高额能源消耗一直为外界所诟病,同时由于挖矿早已成为重资产行业,矿机、矿场等领域也已被少数大玩家所垄断,普通的中小投资者和新晋厂商基本没有生存的空间,形成了强者恒强的局面。 而PoS/DPoS类币种只需要普通的PC甚至手机就可以运行钱包并进行staking,从而获得收益。 三是引入了链上治理,在民主和效率之间取得了很好的平衡,同时通过投票和staking的机制鼓励用户积极参与社区事务。 在PoW的世界里,算力即权力,简单粗暴;在PoS的世界里,谁持有的币更多,谁就拥有更大的话语权和收益权。 而在DPoS的世界里,则并不是简单地看谁持有的币更多,同时还需要得到社区的广泛支持,才能代表社区行使权力。 同时,广大中小用户也有机会发起议案,表达自己的诉求,并参与决策。 由于比特币上面已经承载了太多的利益,使得大家对于比特币的任何一点点改进都非常的谨小慎微,并且步伐非常的缓慢,这才导致了社区的分裂,产生了众多的分叉币。 然而事实上,相对于比特币而言,不论是BCH还是BSV,所进行的改进都相当有限,因此各方面的提升其实也很有限。 因此,如果你仔细的审视一下LBTC,会发现其实这是一个非常有意思的比特币分叉币,我认为它是基于比特币的一个非常大胆和有想象力的实验。 如果说莱特币在很多时候都为比特币充当了新技术和新想法的试验田,那么LBTC则可以被看成是变化更大,改变更为彻底的比特币试验田。 刚刚前面提到,比特币在推广和使用中遇到的最大障碍之一就是TPS过低,无法承载高频次的交易。 与比特币及其比较知名的一些分叉币比如BCH、BSV等相比,LBTC的性能提升了几个数量级,实际的TPS可以达到1000以上。 增加TPS可以通过减少验证时间的方式,但不可避免的会在安全性或分散性上有所牺牲。 如果TPS盲目增加,区块链将完全牺牲“去中心化”。 与此同时,对矿工的机器配置要求也会更严苛,如果它不能及时上传交易,那么将会产生更多未完成的交易,隐藏的危险也就越大。 虽然EOS使用21个超级节点来实现高效率,但它也牺牲了部分“去中心化”和安全性,引入了DDoS等潜在风险。 最近一两年不少公链项目盲目追求高TPS,动辄声称达到了几万、十几万甚至上百万的TPS。 有的项目方为了刷高TPS,购买数百万的设备在一个实验室内进行测试只是起到PR的效果或者自娱自乐,这样的高TPS是没有意义的,即使能够达到或者接近这样的数字,对于目前的市场需求来说,也属于性能过剩,势必造成不必要的资源浪费。 根据相关研究机构测算,即使公有链每天处理1亿笔交易,千位级的TPS也足够了。 值得注意的是,Facebook即将推出的Libra的TPS也是在1000左右,要知道Facebook在全球可是有着高达27亿的用户,这个数字应该也是他们在深思熟虑后确定下来的。 这意味着目前LBTC的TPS已能满足每天处理1亿笔交易的需求,这个性能是相当务实的,在未来数年内完全能够满足全球用户的需求。 而且LBTC也具备高度的可扩展性,随着全球互联网基础设施的进一步完善,LBTC的性能还将继续提升。 可以说当前LBTC在效率、安全性和去中心化程度这个“不可能三角”当中找到了一个很好的平衡点。 在很多比特币的原教旨主义者看来,只有中本聪所选择的PoW这条道路才是唯一正途。 PoW共识机制已经经历了近10年的稳定运行和持续的市场考验,而DPoS从诞生至今也已经6年多了。 那么我们不妨来做个实验如何,看看把比特币和DPoS结合到一起会产生怎样奇妙的化学反应呢?如果这个DPoS版的比特币同样也能经受住10年的持续考验,我们是否仍然还要坚持只有PoW才是比特币的唯一正途呢?当然,这个问题我们现在还没有确切的答案,时间会证明一切。 尽管我也自诩为比特币的信徒,但我觉得LBTC的存在是非常有意义的,这个意义并不是说要取代比特币,或者像其他一些分叉币的粉丝那样觉得只有自己所拥护的那个分支才是真正的比特币,而是在技术上探求更多更广的可能性,对比特币形成有益的补充。
闪电网络被誉为当前正在开发的最有效的加密货币扩展解决方案之一。 该方案在2015年被提出,基于一个位于比特币区块链顶端的网络,并最终落实在该网络上。 该网络由用户生成的渠道组成,这些渠道以安全且无信任的方式来回发送付款。
例来说,假设我想为观看的每一分钟付费。 我们将打开一个闪电通道,随着时间的流逝,我们将从我的钱包中定期付款给视频制作者。 当我看完后,我们将关闭该渠道以结算比特币区块链上的净剩额。 因为交易只是在我和对方之间,不需要广播到整个网络,所以它们几乎是瞬时的。 而且由于没有矿工需要激励,因此交易费用低,甚至根本不需要交易费用。
链乔教育在线旗下学硕创新区块链技术工作站是中国教育部学校规划建设发展中心开展的“智慧学习工场2020-学硕创新工作站 ”唯一获准的“区块链技术专业”试点工作站。 专业站立足为学生提供多样化成长路径,推进专业学位研究生产学研结合培养模式改革,构建应用型、复合型人才培养体系。
首先,需要进行交易各方建立了一个多签名钱包(需要一个以上的签名才能进行交易)。 这个钱包里装有一些比特币。 然后将钱包地址保存到比特币区块链中。 这样就建立了支付渠道。 双方现在可以进行无限数量的交易,而无需接触存储在区块链上的信息。 对于每一笔交易,双方都签署了更新的资产负债表,以始终反映出钱包中存储的比特币归属,以及每一笔的交易的数量。
双方完成交易并关闭通道后,将产生的余额记录在区块链上。 发生债务争议时,双方都可以使用最近签署的资产负债表来收回他们在钱包中的份额。 无需建立直接的渠道进行闪电交易,用户可以通过与之有联系的人的渠道将付款发送给某人。 网络会自动找到最快的交易渠道。
随着 SegWit 在比特币和莱特币网络上的采用,该技术的发展得到了极大的推动。 因为如果没有升级的交易可扩展性的修补程序,闪电网络上的交易风险便会太大,难以实施。 如果没有背后的区块链安全性,闪电网络将不会那么安全,这意味着它将被广泛用于风险较小的小型甚至微型交易。
链乔教育在线旗下学硕创新区块链技术工作站是中国教育部学校规划建设发展中心开展的“智慧学习工场2020-学硕创新工作站 ”唯一获准的“区块链技术专业”试点工作站。 专业站立足为学生提供多样化成长路径,推进专业学位研究生产学研结合培养模式改革,构建应用型、复合型人才培养体系。
Copyright @ 2024 啦啦收录网 此内容系本站根据来路自动抓取的结果,不代表本站赞成被显示网站的内容或立场。
你是本站第位访客 | 网站地图 | 粤ICP备2022150304号