《区块链开发指南》一一2.5 最新比特币技术

简介:

本节书摘来自华章计算机《区块链开发指南》一书中的第2章,第2.5节,作者:申屠青春 主编 宋 波 张 鹏 汪晓明 季宙栋 左川民 编著更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.5 最新比特币技术

随着区块链的不断发展,区块链技术也在飞速发展,不仅已经有了相对成熟的应用,还有一些原型应用也被提出,下面将介绍几个现在比较流行的在区块链中的应用。
2.5.1 IBLT
比特币系统(Bitcoin)需要矿工(或者说矿池)及全节点的分散化,以实现某些人认为的比特币核心属性:抗审查性(censorship resistance)。因此,区块大小的争议也意味着是一种权衡。更大的区块,允许比特币网络可以承载更多的交易,但也会带来更多的问题,它需要更多的时间来传播交易,虽然这有利于大矿工和矿池,但同时,增加的数据传递对于用户运行全节点而言,也是一种打击。
幸运的是,当前也存在着一些提议,它们可以提高比特币网络的效率,并降低更大区块将会产生的风险。而其中最有前途的创新,就是可逆式布鲁姆查找表(Invertible Bloom Lookup Table),或者简称为IBLT,如图2-2所示。
image

图2-2 IBLT原理示意图
这一概念首先是由Bitcoin Core和Bitcoin XT开发者加文·安德烈森(Gavin Andresen)提出的,那么这个可逆式布鲁姆查找表解决了什么问题呢?
通常情况下,所有的比特币交易,都是通过节点到节点来完成对等式网络交易的,然后通过个人节点的内存池(mempool,记录未确认的交易)进行存储。当一位矿工发现一个区块时,它包括(部分)区块中的交易,随后便会在同一对等网络中广播该区块。当然,这也意味着,区块中的所有交易,都有效地在网络上发送了两次:一次作为一笔交易,另一次则作为区块的一部分。可见,在区块中已经有了冗余。不过,大多数节点已经知道该区块包含的一些内容了。因为它们已经看到过了,如果我们能够优化它,那么就可以加快区块的广播速度。这也降低了中心化的压力,因为矿工们可以更快地将他们的区块弄出来。
其基本原理如下:首先,在一个区块中包含的所有交易,都会写入一个表(table)中,每一笔交易均会始于表上每一个不同的点。然而,存在的交易数远多于表的空间(room),所以它会导致令人绝望的重叠结果。这使得IBLT显得非常密集,但对于那些无法访问任何交易数据的人而言,IBLT是无法读取的,也是无法破译的。而那些拥有交易数据的人,则可以通过使用类似的逻辑,将他自己的交易填充到一个IBLT中,然后比较IBLT上的重叠交易数据。如果两个IBLT最终看起来完全一样,这就意味着所有的交易都是完全匹配的。即使这两个IBLT最终看起来并不是完全相同,但只要交易集是非常相似的,这就可能仍然是有用的。在这种情况下,这两个IBLT可以进行比较,采用这种方式,所有相同的交易就可以抵消掉一方。而IBLT中“剩余的”交易,往往可以用于重构丢失的交易。
2.5.2 隔离见证
每一个比特币交易,都可以分为两部分。第一部分是转账记录,第二部分是用来证明这个交易合法性(主要是签名)的。第一部分可称为“交易状态”,第二部分就是所谓的“见证”(witness)。如果你只关心每个账户的余额,那么转账记录就已经足够。只有部分人(主要是矿工)才有必要取得交易见证。
中本聪设计比特币时,并没有把两部分资料分开处理,因此导致交易ID的计算混合了交易和见证。因为见证本身包括签名,而签名不可能对其自身进行签名,因此见证可以由任何人在未得到交易双方同意的情况下进行改变,造成所谓的交易可塑性(malleability)。在交易发出后、确认前,交易ID可以被任意更改,因此基于未确认交易的交易是绝对不安全的。在2014年就曾有人利用这个漏洞大规模攻击比特币网络。
比特币核心开发员Pieter Wuille在2015年12月于香港提出的隔离见证(Segregated Witness,以下简称SW)软分叉解决了这个问题。SW用户在交易时,会把比特币传送到有别于传统的地址。当要使用这些比特币的时候,其签名(即见证)并不会记录为交易ID的一部分,而是进行另外处理。也就是说,交易ID完全是由交易状态来决定的,不会受见证部分的影响。这种做法有如下几个重要的结果。
可以用软分叉增加最大区块容量。因为旧节点根本看不到这些被隔离的见证,即使真实的区块已经超过了1MB,它们仍会以为没有超过限制而会接受区块。在整场有关区块容量的辩论中,最大的难点就是硬分叉。SW可以提供约2MB的有效区块空间而没有任何硬分叉风险。
从此以后,只有发出交易的人才可以改变交易ID,没有任何第三方可以做到。如果是多重签名交易,那么只有得到多名签名人的同意才能改变交易ID。这可以保证一连串的未确认交易的有效性,是双向支付通道或闪电网络所必须具备的功能。有了双向支付通道或闪电网络,二人或多人之间就可以从实际上进行无限次交易,而无须把大量零碎交易放在区块链上,从而大大降低区块空间压力。
轻量钱包可以变得更轻量,因为它们无须再接收见证数据。
可以大幅改善签名结构。在区块链上,曾经有一个超过5000个输入的交易,因为签署设计缺憾,需要半分钟才能完成检查。SW软分叉解决了这个问题。
2.5.3 闪电网络
比特币从诞生之日起就一直存在着若干个技术问题,比如交易处理能力,目前全网每秒只有7笔交易;其次是区块产生时间,现在大致是每10分钟出一个块;再其次是交易确认问题,一般建议在等待6个区块后才视为交易被确认,大额交易则建议等待更长时间;最后是容量,目前已经生成了40多万个区块,约60GB的数据量,且眼见的未来中只见增加不见减少。这些无疑会是区块链技术在实际应用中的一大障碍。
在闪电网络出现之前,虽然比特币社区也试图通过区块扩容、隔离见证等技术在一定程度上提高交易处理的能力,但这些方式并不能导致交易处理能力出现数量级的改善。至于前面提及的其他技术难题,也不是短时间内就能攻克的,比如,现存的PoW机制是万万动不得的,需要等待多个区块的确认也是不能触碰的底线,更麻烦的是,交易处理能力和区块链数据容量似乎是一对无可调和的矛盾。
因此,闪电网络提供了一个可扩展的微支付通道网络。交易双方若在区块链上预先设有支付通道,就可以多次、高频、双向地通过轧差方式实现瞬间确认的微支付。双方若无直接的点对点支付通道,只要网络中存在一条连通双方的、由多个支付通道构成的支付路径,则闪电网络也可以利用这条支付路径实现资金在双方之间的可靠转移。
闪电网络并没有试图解决单次支付的银货对付问题,其假设是单次支付的金额足够小,即使一方违约另一方的损失也非常小,风险可以承受。因此使用时必须注意“微支付”这个前提。多少资金算“微”,显然应该根据业务而定。
2.5.4 RSMC
闪电网络的基础是交易双方之间的双向微支付通道,RSMC(Recoverable Sequence Maturity Contract)定义了该双向微支付通道的最基本工作方式。
微支付通道中沉淀了一部分资金,也记录有双方对资金的分配方案。通道刚设立时,初始值可能是{Alice: 0.4, Bob: 0.6},这意味着打入通道的资金共有1.0 BTC,其中Alice拥有0.4 BTC,Bob拥有0.6 BTC。通道的设立会记录在比特币区块链上。
假设稍后Bob决定向Alice支付0.1 BTC。双方在链下对最新余额分配方案{Alice: 0.5, Bob: 0.5}进行签字认可,并签字同意作废前一版本的余额分配方案{Alice: 0.4, Bob: 0.6},Alice实际上就获得了0.5 BTC的控制权。如图2-3所示。
如果Alice暂时不需要将通道中现在属于她的0.5 BTC用作支付,那么她可以无须及时更新区块链上记录的通道余额分配方案,因为很可能一分钟后Alice又需要反过来向Bob支付0.1 BTC,此时他们仍然只需要在链下对新的余额分配方案达成一致,并设法作废前一版本的余额分配方案就行了。
image

图2-3 RSMC账户余额分配示意图
如果Alice打算终止通道并动用她的那份资金,那么她可以向区块链出示双方签字的余额分配方案。如果一段时间之内Bob不提出异议,那么区块链会终止通道并将资金按协议转入各自预先设立的提现地址。如果Bob能在这段时间内提交证据证明Alice企图使用的是一个双方已同意作废的余额分配方案,则Alice的资金将被罚并给到Bob。
2.5.5 HTLC
RSMC只支持最简单的无条件资金支付,HTLC(Hashed Timelock Contract)则进一步实现了有条件的资金支付,通道余额的分配方式也因此变得更为复杂。
通过HTLC,Alice和Bob可以达成这样一个协议:协议将锁定Alice的0.1 BTC,在时刻T到来之前(T以未来的某个区块链的高度来表述),如果Bob能够向Alice出示一个适当的R(称为秘密),使得R的Hash值等于事先约定的值H(R),Bob就能获得这0.1 BTC;如果直到时刻T过去Bob仍然未能提供一个正确的R,那么这0.1 BTC将自动解冻并归还Alice。
由于到期时间T、提款条件H(R)、支付金额和支付方向的不同,同一个通道上可以同时存在多个活动的HTLC合约,再加上唯一的通过RSMC商定的无条件资金余额,余额分配方式会变得相当复杂。下面以图2-4为例来讲解这一大致流程。
image

图2-4 HTLC交易流程示意图
如图2-4所示,Alice想给Dave发送0.05 BTC,但Alice和Dave之间并没有微支付通道。Alice找到了一条经过Bob、Carol到达Dave的支付路径,该路径由Alice/Bob、Bob/Carol和Carol/Dave这样三个微支付通道串接而成。
此时,Dave生成了一个秘密R并将Hash(R)发送给Alice,Alice不需要知道R。
该交易的流程具体如下。
1)Alice和Bob商定一个HTLC合约:只要Bob能在“3”天内向Alice出示Hash正确的R,Alice就会支付Bob 0.052 BTC;如果Bob做不到,这笔钱将3天后自动退还Alice。
2)同样地,Bob和Carol商定一个HTLC合约:只要Carol能在“2”天内向Bob出示Hash正确的R,Bob就会支付Carol 0.051 BTC;如果Carol做不到,这笔钱到期后将自动退还Bob。
3)最后,Carol和Dave商定一个HTLC合约:只要Dave能在“1”天内向Carol出示Hash正确的R,Carol就会支付Dave 0.05 BTC;如果Dave做不到,这笔钱到期后将自动退还Carol。

相关文章
|
6天前
|
供应链 算法 安全
探索区块链技术中的隐私保护机制
探索区块链技术中的隐私保护机制
51 27
|
1天前
|
存储 供应链 安全
区块链技术在选举中的应用:透明与安全的新时代
区块链技术在选举中的应用:透明与安全的新时代
26 16
|
1月前
|
供应链 安全 分布式数据库
探索区块链技术在供应链管理中的应用
【10月更文挑战第21天】 本文深入探讨了区块链技术如何在供应链管理中发挥关键作用,通过具体案例分析,揭示了区块链提高透明度、降低成本和增强安全性的潜力。文章首先概述了区块链技术的基本原理及其对传统供应链模式的挑战,接着详细讨论了区块链如何在不同供应链环节中实施,并分析了其带来的变革。最后,文章提出了企业在采纳区块链技术时可能面临的挑战和应对策略,为供应链管理者提供了宝贵的参考。
122 26
|
2月前
|
存储 供应链 分布式数据库
深入理解区块链技术:原理、应用与挑战
本文旨在探讨区块链技术的基本原理、主要应用及其面临的挑战。通过分析区块链的分布式账本技术、加密算法和共识机制,我们揭示了其如何在无需中心化权威的情况下确保数据的不可篡改性和透明性。此外,文章还讨论了区块链在金融、供应链管理、智能合约等领域的应用案例,并指出了当前区块链技术面临的可扩展性、隐私保护和法律监管等挑战。通过对这些内容的深入分析,我们希望为读者提供一个全面而深入的区块链技术概览。
263 16
|
1月前
|
存储 安全 物联网
未来已来:区块链技术在物联网与虚拟现实中的应用
随着科技的不断进步,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)正在逐渐改变我们的生活和工作方式。本文将探讨这些技术的发展趋势和应用场景,以及它们如何相互融合,为我们带来更便捷、安全和沉浸式的体验。
|
1月前
|
存储 供应链 算法
深入探索区块链技术:原理、应用与未来展望
本文将带你深入了解区块链技术的基本原理,探讨其在金融、供应链、医疗等多个领域的应用案例,并展望其未来的发展趋势。通过本文,你将对区块链技术有一个全面的认识,理解其背后的技术逻辑和应用场景。
|
2月前
|
供应链 安全 区块链
探索区块链技术在数据安全中的应用
本文深入探讨了区块链技术如何革新数据安全领域,特别是在保护个人隐私、增强数据完整性和透明度方面的作用。通过分析区块链的去中心化特性、加密技术以及智能合约的功能,文章阐述了这一技术如何有效防止数据篡改、确保交易记录的不可逆性,并促进跨组织间的信任建立。此外,还讨论了当前区块链技术面临的挑战及未来发展趋势,为理解其在数据安全领域的潜力提供了全面视角。
|
1月前
|
存储 供应链 监控
深入探索区块链技术在供应链管理中的应用####
本文旨在探讨区块链技术如何革新供应链管理,通过分析其核心特性与实际案例,揭示该技术如何增强透明度、提升效率并降低成本。我们将从区块链的基本原理入手,逐步剖析其在供应链各环节中的具体应用,最终展望其未来发展趋势。 ####
89 3
|
1月前
|
供应链 物联网 区块链
未来技术的脉动:探索区块链、物联网与虚拟现实的融合趋势
本文深入探讨了区块链技术、物联网(IoT)和虚拟现实(VR)这三个领域的最新发展趋势,以及它们在现代科技生态中的交互作用。通过分析这些技术的独特优势和面临的挑战,我们揭示了它们如何共同塑造未来的技术景观,特别是在数据安全、智能设备管理和沉浸式体验方面。文章还讨论了这些技术融合后可能带来的社会和文化影响,以及它们如何推动创新和促进经济增长。
62 3
|
2月前
|
存储 供应链 区块链
探索区块链技术在供应链管理中的应用
本文旨在探讨区块链技术如何在供应链管理中提供透明性、安全性和效率,以及它如何帮助解决传统供应链所面临的挑战。通过分析区块链的工作原理及其在不同行业案例中的应用,本文揭示了这一技术革新对现代供应链管理可能产生的深远影响。