发布时间:2020-03-26所属分类:计算机职称论文浏览:1次
摘 要: 摘要比特币是中本聪(Nakamoto)于2008年提出的数字货币,它具有去中心化、跨国界和发行总量固定等特性,现在已经成为使用最广泛的数字货币之一.然而,比特币设计初期的一些人为限制,导致现有网络处理交易的速率十分有限,最近交易处理能力已经接近上限,交易
摘要比特币是中本聪(Nakamoto)于2008年提出的数字货币,它具有去中心化、跨国界和发行总量固定等特性,现在已经成为使用最广泛的数字货币之一.然而,比特币设计初期的一些人为限制,导致现有网络处理交易的速率十分有限,最近交易处理能力已经接近上限,交易确认时间显著增加.这不仅严重影响比特币的使用体验,进而限制使用范围,而且对比特币的设计提出更高的要求.针对比特币所面临的交易处理性能挑战,以提升区块链容量为目标对比特币展开深入研究.首先,分析比特币当前网络状态,根据比特币交易数据,统计交易延迟情况;其次,针对链上扩容方案,分析可行性,研究扩容效果%再次,针对链下扩容方案,分析作用原理,研究扩容效果;最后,分析链上/链下扩容方案优缺点,提出适应社区的可行的比特币扩容路线方案.最新比特币扩容的进展进一步证明了我们结论的正确性.
关键词比特币;区块链;扩容;见证隔离;闪电网络
比特币是一种去中心化的数字货币,最早由中本聪(Nakamoto)于2008年10月提出[1],其目的是避免传统金融体系中存在中心机构可能带来的风险.和传统电子货币相比比比特币具有系统健壮性强、使用便捷和安全性高等优势.自从被推出以来,比特币正受到越来越多的关注[2].随着比特币的广泛使用,比特币设计之初的一些缺陷逐渐显露出来,其中非常严重的缺陷就是区块链容量不足.
从2012年开始,平均区块大小不断增加.在2016年年中左右,区块容量已经接近1MB上限[].这意味着一些交易将不能及时地被收集到区块中,的&频次继续增加而区块容量保持不变,那么一些交易可能永远也不能人块.因此,这一问题将会严重影响比特币的使用体验.
文献[)]针对研究交易延迟问题,分析2016年5月交易人块情况,结果表明:43%的交易在发布超过1h后仍未进人区块链.文献[5]列举出比特币等密码货币的研究远景和面临的各种挑战,其中之一就是可扩展性问题.由于改变比特币规则需要引人分叉,同时造成各方面的影响,因此比特币扩容是一个非常复杂的问题.
文献[6]指出,将交易杂凑值代替交易数据可以提升网络处理交易的能力.同时,该文献主张以修改区块链本身结构的方式达到扩容的目的.文献[7]研究区块在网络中的传播情况,指出过大区块需要更长的时间传播至整个网络,传播延迟将不再远小于区块间隔,这会影响网络的共识机制,造成高孤块率等问题.同时作者指出当前网络未被充分利用,可以改进比特币协议以提高网络利用效率.文献[8]引人定量框架分析基于工作量证明的区块链安全和性能,并分析了区块参数改变对于比特币系统安全性的影响.作者得出结论:在区块大小是1MB的前提下,将区块间隔降低至1min不会显著影响比特币的安全性&
为解决比特币区块链容量不足带来的问题,比特币社区已经提出多个解决方案,下面依次介绍代表性方案.
2015年6月,Andresen在比特币改进建议(bitcoinimprovementprotocol)BIP101中提出区块容量限制在未来一段时间内以可预测方式增大[]%同月,Garzik在BIP102中提出区块容量上限一次性从1MB增长到2MB[10];同期,相关人员提出很多类似的直接提高区块链上限的改进建议[1112].由于交易数目与区块大小成正比,因此通过增大单个区块的大小,可以使得更多的交易被容纳.
2015年12月,Lombrozo,Lau和Wuille在BIP141中提出的见证隔离(segregatedwitness)技术也对区块链扩容有帮助[13].当前的比特币交易中,交易数据与签名数据保存于同一数据结构中.见证隔离则将签名数据从交易中分离出来,组成新的结构另行保存.由于旧节点不能解析这些新的数据,因此他们认为区块大小要小于新节点,这意味着区块实际大小可以超过1MB.
2015年,Poon和Dryja提出闪电网络方案,将频繁的小额支付利用事先建立的通道离链完成[14].这种方案可以避免大量小额交易占用区块链容量%文献[15]提出了建立双向微支付通道的协议,允许用户建立离线通道,实现无延迟的实时支付,同时保证了端到端的安全性;文献[16]对上述方案作了改进,提出了新的支付通道Sprites.利用状态通道,Sprites将闪电网络在最坏情况下的抵押开销复杂度大为降低,由〇(M)变为0(+W,其中分别代表通道个数和链上交易确认时间;文献[17]引人Teechan,它是一种全双工的支付通道框架,可直接部署在现有区块链上,比闪电网络具有更高的交易容量和更低的交易延迟.但是,它需要利用具备可信执行环境的安全硬件,例如IntelSGX,因此会额外增加开销;Teechan的升级版Teechain实现了沿路径支付,允许未直接建立连接的用户交换资金[18].
可见,针对区块链容量不足的情况,社区和学术界都已经提出多个扩容方案.但是依然存在区块链统计数据直、扩案可性、见证隔离对区块容量的贡献不明确和社区意见不统一题
本文主要贡献有3个方面!
1)针对区块容量达到上限的问题,分析当前比特币网络中交易确认状态.通过抓取2017年1#3月的比特币交易数据,统计分析交易确认理论时间和实际时间的差别.已经进人区块的交易中,有16%等待时间超过1h,甚至有1[等待时间超过1d.另夕卜,待确认交易(unconfirmedtransaction)池不断扩大,一度超过110MB.
2)针对链上扩容方案争论,分析方案的优点和缺点.链上扩容提倡增大区块容量上限,此方案对改善交易延迟效果显著,将区块容量上限设定为2MB,即可解决当下交易延迟问题.但考虑到当前网络情况,为避免过高的孤块产生率,最大区块不应超过4MB.链上扩容优势在于见效快,但是无限扩容易造成中心化.
3)针对链下扩容方案的不确定性,分析链下扩容效果.链下扩容方案也附带有链上扩容效果,基于当前交易比例的统计显示,见证隔离最多可以将区块容量提升83%.基于见证隔离的闪电网络技术,完全部署可以极大提高交易处理能力,缩短确认时间.链下扩容可以达到近乎无限的交易处理能力,但网络建立需要时间.
1背景知识
本节简要介绍比特币的相关背景知识,包括比特币的交易、区块链形式和工作量证明机制等,详细的介绍可以参考文献[19-20].
1)比特币交易.比特币是一种基于交易的数字货币,一■切彳了为均通过父易完成.每一■项父易均有至少一个输人和至少一个输出.每一个交易指向另一个交易的输出,用于表明资金的来源,仅当交易被正确签名之后,验证方可通过.交易可以包含多个输人和多个输出,从而起到拆分与合并资金的功能.
2)比特币脚本.交易输出中存在scriptPubKey脚本,在标准P2PKH交易中,scriptPubKey包含收款人的公钥杂凑值.交易输人中存在scriptSig脚本,包含公钥和签名等信息.验证交易时,依次运行scriptSg脚本与前一交易中的scriptPubKey脚本,如果成功运行并在桟顶设置true,即相当于成功验证交易发起人的公钥与签名,那么证明交易发起人具备对应输出的使用权限,验证通过&1].在BIP16中,P2SH类型的交易被引人.该类型允许输出中不指明收款人公钥杂凑,并用一段脚本的杂凑替代.这种交易将复杂性从输出脚本转移到了输人脚本,使得付款更加方便,利于多重签名等交易普及&2].
3)比特币账本.基于交易的数字货币存在的最大问题是双花(double-spending),即支付者生成2笔交易,共用同一项输出.解决办法之一是维护一个任何人都可以访问的账本,记录所有历史交易,使收款方可以查看一项输出是否已被使用过.比特币使用梅克尔树与区块链构建全局账本.当交易双方需要交易快速完成时,收款方会选择在交易未进人区块链时即接受,这会带来额外的双花风险&3].只要攻击者算力资源不超过全网算力的50%,此风险随时间增长呈指数级下降[1].
4)梅克尔树.梅克尔树是一种二叉树,其叶子节点用于存放数据,其他节点为2个子节点串联的杂凑值.比特币将交易杂凑值存放于梅克尔树叶子节点中,任何一笔交易的变动都将影响到梅克尔树根的值.因此,只要保留梅克尔树根的值,即可验证每一笔交易是否被篡改[19].
5)区块链.每个区块中包含一个梅克尔树根,作为当前区块所有交易的指代.除此之外,区块中还包含上一个区块头的杂凑值,作为此前区块的指代.区块依次相连形成区块链,使用这种链状结构,只要保存最后一■个区块头的杂凑值,就能保证整条区块所有篡改[19]&比特币头下字段:version字段,表示当前区块版本号,被解释为比特向量,用于表明支持的特性;previousblockheaderHash字段,表示前一区块头的杂凑值,是所有历史数据的指代;merklerootHash字段,表示梅克尔树根,是区块中所有交易的指代;time字段,表示区块产生的时间,是Unix时间戳;nBits字段与nonce字段是工作量证明相关的字段&4].
6)工作量证明.作为一种去中心化的数字货币,比特币区块链的维护工作无法由中心化机构完成.实际中区块链由运行于互联网上的节点进行维护.在新区块生成问题上,所有节点需要达成共识.比特币采用的解决方案是工作量证明机制.所有节点利用算力解决一个难题,得到正确结果的节点有资格发布新的区块.因此,难题应该是难于求解和易于验证的.比特币采用的难题为:改变区块头中的nonce字段(如果nonce字段遍历完毕,那么矿工也可以改变coinbase交易中的coinbasescript字段,从而改变梅克尔根的值),计算区块头杂凑值,仅当杂凑值低于某个目标值时,区块合法,目标值越低,难度越高.这样,计算出合法区块的节点即可证明自己已经花费足够多的算力.目标值保存在区块头的nBi+字段中,每经过2016个(约2周#根据平隔重定目标值,调整难题难度,以保证隔的稳定.
相关期刊推荐:《计算机研究与发展》刊登内容主要为计算机科学技术领域高水平的学术论文、最新科研成果和重大应用成果。本刊优先刊登国家基金项目(如国家自然科学基金项目、“八六三”、“九七三”等)、省部级基金项目等论文。本刊只接收中文稿,不受理英文稿。有投稿需求的作者,可以直接与期刊在线编辑联系。
SCISSCIAHCI