乐知付加密服务平台

如果你有资源, 平台可以帮你实现内容变现, 无需搭建知识付费服务平台。

点击访问官方网站 https://lezhifu.cc

扫码关注公众号 乐知付加密服务平台-微信公众号
闪电网络是如何提高比特币网络的交易速度的? | chenzuoli's blog

闪电网络是如何提高比特币网络的交易速度的?

      闪电网络是依附在区块链主链上的区块链状态通道,类似于主链的网络缓存,通过智能合约功能以支持跨参与者网络的即时付款,同时利用区块链的特性消除将资金托管给第三方带来的风险。主要用于即时、高频的支付,它的设计初衷就是希望比特币的交易可以提升效率,快如闪电。

一、缘起扩容

      比特币在设计之初,每个区块容量的大小被限定为1MB,而1MB的比特币区块每秒大约可以处理7笔交易,这个处理速度,就当时比特币的交易量而言,1MB的区块容量是足够使用的。
      但从2013年开始,随着比特币价格的水涨船高,比特币的用户规模日益扩大,1MB的区块容量已经无法支持比特币网络进行快速交易确认,造成比特币网络拥堵。
      试想,你去便利店买桶泡面,你把泡面泡好了,吃完了,支付都还没有完成,这是一种怎样的体验?更离谱的是,当很多人跟你一样都在进行支付时,你还得支付非常高昂的手续费。
      因为矿工是根据手续费的高低来决定打包支付的优先级的,如果你给的手续费太低,别说吃完泡面的时候能不能支付完成,等到第二天吃泡面的时候,再看看有没有完成吧。
      2017年底,因为比特币币价大涨,导致交易量激增,那时的手续费最高曾达到过每笔55美元,折合人民币300多块。也就是说,你买了一个8块钱的泡面,为了付钱,还要另外支付300块钱给矿工。可能,你也吃不下这碗泡面了!
      所以,人们开始讨论如何给比特币“扩容”的问题。

二、比特币的扩容方案

1.链上扩容

      什么意思呢?就是直接扩大区块容量,1MB不够,那就2MB,2MB不够,那就10MB,管够为止。只是这样的扩容方式,会对网络的存储和运输带来很大的压力,区块是够了,宽带和硬盘容量不够了。
      举个例子,有一家叫做比特币的银行,由于人手有限(区块容量小),一秒钟只能处理七笔业务,而这家银行的生意又很好,每天都有成千上万笔业务需要处理,然后这家银行又有一个规定,每笔业务都必须经过柜台操作,导致效率很低,每一位想要办理业务的人通常都要等待很久,长此以往,肯定会有人不愿意等那么久,致使比特币银行的生意受到影响。
      于是,比特币银行开始考虑如何提升效率?最简单粗暴的办法,就是招人(区块扩容),扩大组织规模,把1个柜台变成8个。不够用?那就32个,100个。可是招那么多人,办公室不够用了。

2.链下扩容(相当于节流)

      就是把一部分交易区分出来,这些交易的交易过程不再直接记录在区块链之中,而是以缓存的方式进行记录,区块链中只记录其交易结果。以此来减少每一个区块需要记录的信息量。
      还是比特币银行的例子,柜台有很多要处理的业务,导致效率低下,然后银行引入了ATM机,规定低于两万的业务,大家可以在ATM机上自助办理小额业务,需要到柜台办理的业务减少了,效率自然也就提升了。
      闪电网络就是比特币链下扩容方案的一种,从理论上来说,利用这项技术,可以提升比特币的交易速度。

三、技术实现

      那么,闪电网络是如何实现交易提速的呢?

      这里我们需要搞清楚两个关键性的技术:序列到期可撤销合约RSMC(Revocable Sequence Maturity Contract)和哈希时间锁定合约HTLC(Hashed Timelock Contract)。

1.RSMC :Revocable Sequence Maturity Contract,序列到期可撤销合约

      RSMC,按照专业术语来讲,是一个资金池的机制。这有点像两个人私下记账,而且不能违反承诺,否则会受到惩罚。
      举个例子,在比特币银行里,张三和李四有一本共有的存折(资金池),为了交易便捷,他们两人都会先预存100元到这个存折里,这时这张存折的最大交易金额就是200元。每一次发生交易,张三和李四都需要对这200元钱的分配结果共同进行签字(数字签名和时间戳)确认,同时把之前交易后的分配方案作废。
      示例如下:

  • 第一笔交易:张三支付给李四50元,则分配结果为张三50元,李四150元,然后张三和李四共同对这一分配结果在存折上签字确认。
  • 第二笔交易:李四支付给张三20元,则分配结果为张三70元,李四130元,然后张三和李四共同对这一分配结果在存折上签字确认,同时废除第一笔交易的分配结果。
  • 第三笔交易:张三再支付给李四10元,则分配结果为张三60元,李四140元,然后张三和李四共同对这一分配结果在存折上签字确认,同时废除第二笔交易的分配结果。
  • 之后,如果张三或者李四需要把最后的分配结果进行提现,就需要把经他们双方共同签字确认过的分配结果拿去柜台登记(录入区块链)。
  •       这一整个过程,只有在提现的时候,才需要把张三和李四的余额结果录入到区块链当中,既减少了柜台的业务量,还减免了每一次在柜台办理业务的手续费。
          需要注意的是,任何一笔交易的分配结果都需要经过双方的签名确认才算是合法的,而在提现时,需要提供最后一笔交易,也就是时间戳最新的一笔交易的双方签名。
          这样的设置,是为了防止其中一方拿着已经作废的交易结果去提现。比如说,张三和李四,明明进行了第三笔交易(张三支付了10元给李四),但是张三为了多提现10元,把第二笔交易的交易结果拿去柜台要求提现。
          这时,比特币银行会先将李四的钱打到李四的个人账户上,并发送短信提示到账金额为130元,然后李四就会知道张三在提现时动了手脚。于是,李四拿着第三笔交易(张三余额60元,李四余额140元)的双方签名提交给比特币银行,比特币银行就会判定张三作恶,将归张三所有的60元余额罚归李四所有。这就是闪电网络“先提现后到账”以及“作恶罚没”的设计。

2.HTLC:Hashed Timelock Contract,哈希时间锁定合约

      RSMC解决了两个人或者说是两个点之间的交易往来,那么,如果是10个人,100个人需要进行交易,那不可能每一个人都要准备100个与另一个人共有的存折吧。于是,HTLC出现了。
      HTLC是一个限时转账的机制,就是转账方先把转出的钱进行冻结,再提供给收款方一个哈希值,在一定时间之内,收款方通过能提供出与这个哈希值相匹配的值,从而获得这笔钱。怎么用呢?
      在比特币银行里,张三和李四有一个共有的存折,李四和王五也有一个共有的存折,这时,张三需要给王五转账,可以由张三先转给李四,再由李四转给王五,那么张三和王五就不用再开一个共有存折了。
      张三通过智能合约将要转给王五的1000元进行冻结,并发送一个哈希值给王五,然后张三在朋友圈发布公告,“如果谁能给我一个暗语(与哈希值相匹配的值)”,我就给谁一笔钱。
      李四收到了张三的公告,也在朋友圈公告,“如果谁能给我一个暗语(与哈希值相匹配的值)”,我就给谁一笔钱。
      这时,王五把暗语提供给李四后,李四就需要转1000元给王五,然后王五再拿着这个暗语去找张三拿钱。从而实现张三和王五的转账。
      这个过程当中,李四充当了一个中转站的作用。当然在这个过程当中,充当了中转站的李四需要得到一定的激励,这个过程才能得以实现。

      现在清楚了吧,如果有什么不懂的地方,欢迎邮件我:chenzuoli709@163.com


Happy Halloween Festival.

书山有路勤为径,学海无涯苦作舟。

欢迎关注微信公众号:【程序员写书】
程序员写书

喜欢宠物的朋友可以关注:【电巴克宠物Pets】
电巴克宠物

一起学习,一起进步。

-------------本文结束感谢您的阅读-------------