被闪电劈过的比特币竟然焕发生机!

欢迎来到智识星球,在这里,我们将重塑你的思想。
Here is Intellectual Planet, here we craft your mind.


前不久,我们聊到了为比特币续命的方式,那里我们介绍了一个叫隔离见证的概念。

忘记的朋友可以出门左转,左转,再左转...

其实,除了隔离见证,比特币还有另外一种扩容方式——闪电网络

怎么样?是不是听到这个名字就感受到了速度?

确实如此,它也被认为是比特币创立以来最重要的革新。

我看到了你好奇的目光,先系好安全带,然后我们一起来追逐闪电吧!

迅雷不及掩耳的闪电网络

闪电网络(Lightning Network)最早由Joseph Poon和Tadge Dryja提出,它利用了比特币的安全特性,在线下提供高速的实时交易处理能力。

用户既可通过点对点的直接支付方式,也可以通过网络路由的方式实现间接支付。

闪电网络并没有发明新的加密形式,也没有使用新奇的比特币脚本,却巧妙地实现了离线支付的功能。

还记得欢喜买火车票的事情吗?多亏了互联网的普及,我们可以在网上轻松购票。

然而在十几年前却并非如此,我们都需要去火车站排队购买。

长长的队伍里,总会有一些神秘人穿梭其中,我们亲切的称他们为“黄牛”。

黄牛提供了一种线下支付的场景,让很多着急买票的乘客无需排队等待,从一定程度上减少了拥堵。

不过,闪电网络比这个过程要复杂的多。

它的实现需要借助支付通道HTLC,让我们来深入理解一下。

轻便的支付通道

支付通道可由参与的双方共同发起一个交易来创建,实质上就是双方往一个多重签名(multisig)地址存入一定数量的比特币。

小潮和欢喜在玩一个猜硬币的游戏(智识星球的传统游戏),谁猜错了,就要支付给对方1块钱。

虽然他们每人都有一个存钱罐的零钱,但每次交付依然很麻烦。

于是,他们便采用记账的方式,待游戏结束的时候统一结算。

但问题是,万一游戏结束时,记账的金额大于存钱罐的钱呢?这意味着一方可能有欠账的风险。

没关系,他们每人提前往桌上拍100元钱,一方的记账额度用光时,便停止游戏。

这个过程有些类似于微信钱包。

我们在群里抢到的红包并不是真正的金钱,只是腾讯公司在帮你记账。

真正的交易出现在你体现到银行卡的时候。

这便是支付通道的高效之处。由于比特币的线上交易拥堵,我们可以采用离线方式进行多次交易。

这样规避了在线等待确认的时间,从而提高了交易效率。

或许你希望深入了解整个实现过程。

假定小潮打算给欢喜发送1个比特币,因为他刚猜错了硬币。

小潮可直接在比特币的网络上广播一个交易,从他的地址转向欢喜的地址。

但是考虑到他们要玩一个周末的游戏,等待的时间是难以忍受的。

于是他们决定向同一个地址X各转入100个比特币,X拥有200个比特币的未花费输出(UTXO)

而这个地址含有多重签名,需要两人同时签名才可以使用地址中的比特币。这个交易称为支付通道的“首次交易”(opening transaction)

同时小潮和欢喜各自确定一个随机数作为密码,然后对密码进行哈希运算,把哈希值(hash)告诉对方(密码各自保留)。

接下来就是小潮和欢喜各自创建离线交易,更改通道的离线余额。

小潮把首次交易中的输出地址X作为输入地址,发送99个比特币给自己,101个比特币给一个新的多重签名地址Y。

不过这个多重签名地址Y很特别,它有两种花费方式:

一种方法是欢喜可以单独广播交易来解锁拿到101个比特币,但需要再等待一个周末的时间(从交易在区块链上确认后算起),这相当于一个时间锁;

另一种方法是由小潮单独广播交易来解锁,前提是小潮得到了欢喜的哈希值对应的密码。

欢喜可以随时广播,来获取自己的比特币,不过要等待一段时间;而与此同时,小潮也立即获得自己的99个比特币。

欢喜也在进行相反的操作,把101个比特币发给自己,99个比特币给一个新的多重签名地址Z。

他们又进行了一次游戏,而这次欢喜的手气不佳,需要支付给小潮一个比特币。

第二次的交易过程与第一次类似,不过他们各自需要设定新的随机密码,并将上次的交易密码公布。

还记得地址Y的两种花费方式吗?

这里的精妙之处在于,如果欢喜单独广播第一次的交易(这对他有利),则需要等待一个周末的时间。而由于小潮得到了欢喜第一次的交易密码,可以立即取走里面的钱。

这有效保障了双方各自的利益。

支付通道的建立是基于双方进行多次交易的基础上的。

但如果两个用户之间没有建立支付通道,他们怎样交易呢?

这便需要用到HTLC。

智能的时间锁

闪电网络设计了一种中间人方案:若小潮希望发送1个比特币给欢喜,他们之间没有直接的支付通道,但他们分别和我有支付通道,于是可以通过我作为中间人来支付。

这个过程采用了HTLC(Hashed Timelocked Contract,哈希时间锁合约),来保证交易能够畅通进行。

又出现了一个晦涩的概念。但实际上我们每个人都用过这个类似的过程。

回忆一下我们在淘宝买东西的过程,那些剁手的时刻都历历在目。

实际上,你剁手的时候,账户里的钱并没有进入商家的口袋里,而是打到了支付宝的官方平台上。

此时,一个倒计时的合约便启动了,一般默认是30天。

你收到了宝贝,也确认没有问题,便可以确认收货,提前结束合约,卖家同时收到货款。

然而当你收到的是一个空包裹时,你便可以怒气冲冲地向支付宝平台申请仲裁。卖家得不到货款,而钱也从平台推至你的账户。

HTLC就是这样一个过程。

小潮不是直接发送1个比特币给我,而是发送1个比特币给一个多重签名地址Q。

地址Q有两种解锁方式:用我的签名加上欢喜设置的一个密码;

或者小潮用本人签名解锁,但需要等待一段时间,例如30天。

在30天内,我如果得到密码,就可以用签名拿走地址Q中的1个比特币;如果我在30天内没有得到密码,被认为超时,小潮可以从地址Q中拿回自己的1个比特币。

同样的,我和欢喜也设立这样的HTLC,并且满足两个要求:

采用之前HTLC相同的密码,以及稍短一些的超时设置,如29天。

这样确保在我支付了欢喜之后,可以从小潮取回相应的比特币,而不会因为超时,被小潮拿走。

在支付过程中,首先欢喜随机生成一个密码R,再把R 进行哈希运算后得到H(R),然后将H(R)发送给小潮。小潮用哈希值H(R)作为时间锁,创建和我的HTLC合同,包含1个比特币,有效期30天。

我用同样的哈希值H(R)打开一个和欢喜的HTLC合同,也包含1个比特币,有效期29天。

29天内,欢喜可以随时使用密码R,来解锁我的HTLC,从而得到1个比特币。

与此同时,我也看到了密码R,可以去解锁和小潮的HTLC,也得到了1个比特币。

这样就完成了从小潮到欢喜的支付。

没错,你一定和我一样,感觉很辛苦,看起来一点都不轻松。

但整个过程不需要反复地记账,省去了大量的等待时间。这使得即便需要多个中间节点实现转账,也可以畅通无阻,只要两个用户之间存在一条通路。

结语

闪电网络实现了在离线环境下提供比特币交易的方式,多可以离线发生任意数量的交易,而无须广播到比特币的网络上。

这大大提高了交易速度,也减轻了比特币网络的压力,比特币似乎又能焕发新的活力。

闪电网络是传统方式迁移到区块链的创新,核心思路便是迂回包抄。

这也带给我们一些启示,一些智识的直接获取十分困难,不过我们可以在它的周边逐步建立认知网,待时机成熟后,一举获得智识的跃迁!

(参考文献《区块链技术指南》)


【智识星球】出品
每个人都是各自轨道上的拓荒者,
祝贺你又完成了一次思想跃迁!

个人转载、留言和点赞,无需特别申请许可。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、快速术语检索 比特币地址:(例如:1DSrfJdB2AnWaFNgSbv3MZC2m74996JafV)由一串...
    不如假如阅读 16,066评论 4 87
  • 平台:arm 类型:ARM 模板 软件包:Check Point vSEC Gateway R77.30-041....
    ITknight阅读 592评论 0 0
  • (1)我们要为未来做一些准备。 今天要分享的内容是,我们要以什么样的姿态来面对生活出的难题呢? 生活总会遇到这样那...
    石小柴阅读 449评论 7 1
  • 字符串的方法及注释 方法注释 capitalize()把字符串的第一个字符改为大写 casefold()把整个字符...
    可乐1024阅读 276评论 0 0
  • “你那么爱回忆过去,现在过得一定很不如意吧?” 在听到这句话之前,我一直以为我想要的应该是这种生活:平静、安定、与...
    梓君游离于世阅读 285评论 0 1