什么是闪电网络?

admin 8月前 307


何为闪电网络?

把一条链比作一个教室。这个教室只能容纳7对在这里面解决交易,如果超过了7对,不好意思,排队吧。闪电网络则创新性的表示,解决交易不一定在教室里嘛,我们去彼此都认识的小树林里解决交易,达成共识后再把结果报到教室这来,岂不是效果一样? 所以闪电网络主要包括两个步骤:第一约去小树林解决交易,第二,把我两人解决后的结果报回教室,如果有争议再来教室。前者使用的技术是RSMC(Recoverable Sequence Maturity Contract),后者使用的技术是 HTLC(Hashed Timelock Contract)。 RSMC就是在双方都认可的空间形式下进行资产重新划分。比如刚开始甲100个,乙一百个,甲私下答应给乙50个,那么就会按照甲50个,乙150个方式重新报上节点。 HTLC,中文意思是“哈希的带时钟的合约”,是确定两人解决结果的具体上报方式。通过智能合约规定,冻结好资产,约定好取资金的时间和暗号。只要有人答对,就可以领走资产。


当然,个人用户无法与每一个建立一条闪电网络通道,截止2019年1月19日,闪电网络共有2.4万条通道。 如果交易节点没有直连的通道,可借助路由节点(相当于中介)进行交易,当然这需要给这些“中介”支付一些路由费用。 现在已经有不少人做起了路由节点的生意,希望通过这些节点给闪电网络带来一些流动性,并可以从中收取一点费用。此外,还有一些电商平台利用闪电网络提供生活类服务,比如充话费等。


在全球范围内,闪电网络这项技术无论从节点数量、通道数量、网络容量等指标衡量,在过去一年间都出现了数倍的增长,并且这种增长在加速:





闪电网络的好处?

快速支付:乍一看好像操作比原来还要复杂,但是这些计算都是在后台进行,闪电网络出现会使既定通道内的支付没有限流,完全可以媲美数据在互联网上的传输。 

此外,此交易过程中(无第三方通道中的)两个参与者直接使用常规的比特币交易进行互相支付,任何第三方都不能控制其资金。 

为区块链减负:有开启通道,关闭通道和争议性交易需要提交到区块链上进行,允许闪电网络内的所有其他交易保持未提交状态。这这使得闪电网络用户可以通过比特币进行频繁支付,而不会使必须处理区块链上每笔交易的完整节点承担过多的负担。 

支付通道可以无限期地保持开放:只要频道中的双方继续彼此合作,频道可以无限期地保持开放 - 没有强制超时期限。根据双方的意愿,可以长期保持通道开启,这可以进一步减少区块链上的负载,同时也可以稀释最终的费用。 

具有多重签名功能:每个参与方都可以要求通过多个密钥对他们的付款进行签名。


闪电网络有什么潜在风险?

匹配失败:如果其中一个对等方没有响应,用户可能需要等待数小时才能关闭付款通道并通过替代路线重新发送资金,浪费了时间成本。

没有离线付款:用户双方必须在线才能进行付款交易,无法支付不在线的人。

对于大额付款并不理想:尽管可能存在通过各种支付渠道的路线,但同行多个钱包中的资金可能不足以转移大额资金

集中化:闪电网络可能会鼓励支付中心的集中化(类似于矿工集中),这也是为什么有人说闪电网络实际上会出现类似银行的超级节点的原因。任何设计都不能预见未来所有的情况,比特币是如此,闪电网络亦是如此。闪电网络作为解决比特币棘手问题迄今为止最佳的办法,是否能走得稳走得远,还需要交给用户来检验,交给时间来检验。

最新回复 (3)
  • admin 楼主 8月前
    0 引用 2

    为什么需要闪电网络?「支付」在比特币身上行得通吗?


    记者:闪电网络本质是实现支付功能的技术。但是我们看到市场上更多人在强调比特币作为「数字黄金」的价值存储功能,认为「支付」对比特币不重要。比特币作为「数字黄金」和「支付货币」的身份冲突吗? 


    熊越:在理想情况下,比特币可以兼具「数字黄金」和「支付货币」的双重身份。在中本聪写白皮书的时候,以及比特币发展的初期,我们都认为比特币同时具有这两个特性。


    但在现实情况下,在约束条件下,我们时刻面临着 trade-off。由于区块的容量有限,以及平均 10 分钟才出一个块,目前的比特币是很难用于支付的,我们只能首先确保最重要的功能,也就是价值存储的功能。


    这里需要注意的是,简单的增大区块容量并不能解决支付问题,只有构建以闪电网络为代表的第二层网络才能真正解决问题。


    一旦闪电网络成熟,比特币在技术上是可以用于日常支付的。支付在比特币身上是行得通的,目前已经出现了一些真正的支付场景,不是像几年前那样为了支付比特币而支付比特币。


    不过,我们热爱比特币,并不是因为它可以支付,支付宝和微信在支付上已经做得足够好了。我们热爱比特币,是因为它是一种真正属于你的资产,一种无国界、不依靠谁背书、自由的货币。



    记者:有人会说,闪电网络或许可以让比特币成为「支付货币」,但是比特币价格的波动会影响它作为「支付货币」的功能。你怎么看这种说法? 


    熊越:在本质上,比特币的价格波动并不会影响它的支付功能。


    如果商家不愿意承担价格波动,中间商可以去承担这个风险。Bitpay 在很早之前就做出了这个功能,商家拿到美元,消费者支付的是比特币,Bitpay 负责去市场上做对冲。价格波动的问题,实际上可以得到很好的解决。


    制约比特币支付功能的,更多的是政策以及更为重要的市场需求。


    • 政策。比如在中国,支付只能使用法定货币,即人民币,比特币在国内按理说是不能用于支付的。
    • 市场需求。用比特币做日常支付,比如去买一杯咖啡,对用户来说并没有明显的吸引力,支付宝、微信和 Apple Pay 等都足够方便。EOS 上的 USDT 代币可以说又快又稳定,但没人用它们来做日常支付,因为它们相比微信和支付宝并没有提供额外的便利。


    比特币是属于互联网的货币,如果它被用于支付,更多情况应该是去购买互联网上的服务。这些服务有一个特点,就是它们的边际成本非常小,因此可以接受较大的波动。



    记者:像闪电网站这样的支付功能兴起,如果真的激活了比特币的「支付」属性,这会让比特币的价格波动变小吗?


    熊越:频繁的使用并不会让比特币的价格趋于平稳,比特币在商家那里被频繁使用,在本质上与其在交易所里被频繁交易一样,没有任何理由认为这会让价格波动变小。


    人们对闪电网络的一系列担心成立吗?


    记者:人们担心,闪电网络的发展会造成矿工收入减少,进而影响主网的安全。


    熊越:有人认为闪电网络的发展会分流主链上的交易,从而减少矿工的手续费收益,这是一种非常静态的思维。从动态的思维来看,闪电网络有望让整个比特币网络更加繁荣,这是有利于所有人的,矿工也将从中受益。



    记者:还有一种说法,闪电网络节点之间以盈利为目的的竞争最终将带来中心化。你怎么看?


    熊越:所有人都可以成为节点,各种钱包、交易所、支付平台或电商都有动力去维护一个节点,而所有关心比特币又有能力的人都应该去成为一个闪电网络节点。我自己也在技术同事的帮助下,在 2018 年 2 月搭建了一个节点,实际上我们公司好多人都有自己的节点。


    这实际上就是一个近乎完美的自由市场,在一定的规则下,谁都可以来。


    和任何自由市场中的情况一样,充分竞争的结果一定是会出现大的玩家。我们几乎可以断定,闪电网络日后肯定会出现大节点,就好像比特币挖矿会出现大矿池一样,这很正常。去中心化从来就不是绝对的平均主义。


    闪电网络保证了主链的安全和去中心化,这是更重要的。



    记者:我们也听到有人说,闪电网络的发展会要求比特币网络去做一些改变来适应它,进而可能影响比特币?


    Daniel:虽然比特币加入 eltoo、schnorr 会让闪电网络更易用,会让闪电网络的实现更简单,但即使比特币不做改变也不会影响闪电网络的使用。


    闪电网络的前身是支付通道,比特币诞生的时候就已经考虑过支付通道,2009 年 bitcoin 0.1 版本的代码已经包含可替换交易,中本聪也解释过支付通道的理念,不过中本聪应该没有想象到闪电网络这样的实现方法。


    闪电网络不会影响比特币的安全性,闪电网络对比特币网络来讲是 off-chain 的。



    记者:还有一些听上有点像阴谋论的说法也很有意思,说闪电网络的发展有它「背后的」东西,比如 Blockstream 力推闪电网络,而 Blockstream 与 Bitcoin Core 关系比较亲密。是这样吗?


    熊越:闪电网络是潘志豪先生提出来的,他和 Blockstream 应该并没有直接的利益关系,我不太认同这种看法。


    Daniel:Bitcoin Core 的开发者们虽然关注闪电网络,但是真正参与闪电网络开发的非常少。



    闪电网络真正的挑战和问题是什么?


    记者:闪电网络有私钥的安全性问题吗? 


    Daniel:闪电网络的私钥安全和比特币一样,管理好节点服务器的安全就好了。闪电节点里有多种私钥,各自有不用的用处,比如建立资金的私钥,HTLC,惩罚用的私钥等, 都是从一个 seed 派生出来的,保护好 seed 就可以。



    记者:闪电网络寻找支付路径的路由问题严重吗?


    Daniel:在我看来路由问题并不会严重制约闪电网络的发展,因为即使单次路由发送失败,节点也可以自动重新发送直到成功。寻找最短路径也不是难题,已经有很多成熟可靠的算法。


    闪电网络的不同之处在于它需要计算整条路径的费用,所以在发送前就需要确定所有经过的中间节点,一旦发送失败,就需要从起始节点开始重新计算和发送。


    在路由上,闪电网络确实还存在一些其他的问题,比如以下几点:


    • 目前每个节点都需要维护所有的节点和通道列表,随着网络规模的增大,这个表也越来越大,需要各种同步和更新的消息也越来越多,这会占用大量带宽。
    • 节点可以发送的最大金额取决于经过路线中资金量最小的那个通道的金额。
    • 恶意用户可能在网路中进行欺骗。比如广播的时候宣称虚假的通道数据导致路由失败,即使禁用通道,本次路由也会失败。
    • 发送前无法保证发送一定成功,比如发送过程中通道可能被关闭。目前闪电网络的很多通道并不稳定,不过随着网络规模越来越大,真正商业级的稳定节点增加,以及路由技术的演化,这样的问题会越来越少直到消失。


    记者:在你看来,闪电网络自身的真正问题是什么?


    Daniel:就国内的发展来说,国内的问题是「什么都没有」,也就是说只有一些媒体的报道和人员的讨论,并没有人在做具体的应用。主要体现在:


    • 目前几乎没有闪电网络节点,没有节点意味着没有底层硬件基础,没有硬件基础就没法谈上层应用。
    • 没有核心开发人员,只有个位数的开发人员在参与闪电网络。
    • 目前几乎没有商业公司和钱包软件支持闪电网络。


    就整个闪电网络的发展来说,现在还处于很早期的阶段。当前的问题一是易用性不够,导致用户使用闪电网络的门槛太高,需要明白节点、通道等概念;二是软件还不够稳定,性能还不够好,有很多功能还不能支持。



    记者:闪电网络永远只适合做小额支付吗?


    Daniel:闪电网络目前只建议小额支付,有两个主要原因,一是大额支付比小额支付更容易耗尽通道资金,二是闪电网络目前规模还不大,安全性、易用性都存在一些问题,可能存在一些未知的风险。


    不过,大额通道已经在讨论中,未来建立通道的双方节点可以协商建立大额通道,随着网络的成熟和网络规模的扩大,闪电网络不一定只适合用来做小额支付。



    闪电网络的路线是对的吗?


    记者:闪电网络会提升比特币本身的价值这种说法正确吗?


    熊越:比特币在价值存储上的作用经历了十年的考验,可以说已经非常可靠了。但它还不够完美,其中一个经常被批评的点就是它很难被用于快速支付。闪电网络彻底解决了这个问题,它无疑会提升比特币本身的价值。


    我个人认为闪电网络的路线是对的。但更重要的是,即使闪电网络错了,比特币的主链仍然不受影响。



    记者:说到底,闪电网络技术会给比特币带来的是什么?


    Daniel:只有底层协议稳定可用后,上层应用才能真正展开,之前比特币足够稳定,但流动困难导致可用性不够,闪电网络实现后增加了快速流动的能力,提高了比特币的可用性。


    闪电网络真正让加密货币的实时支付成为现实,实时支付是货币流动的基础需求,只有这个需求满足了,才可以真正做为货币使用,才可能出现规模化的商业应用。


    闪电网络规模越大,比特币的流动性就越大,使用比特币的应用也就越多。



    记者:谁最有可能把闪电网络带入主流?

     

    熊越:逻辑上讲,比特币的支付要在传统支付不合适的时候才会有优势,跨境电商,特别是跨境的服务,可能是一个机会,比如用闪电网络支付国外游戏或者购买国外某网站的会员资格。


    但目前尚未享受到银行服务的人群很难真正成为一个机会。如果连银行卡都没有,怎么可能搞明白比特币、闪电网络这么复杂的东西?



    记者:LApp 会带来一些新的机会吗?


    Daniel:闪电网络设计的首要目的是支付,我认为在实时性和微小额度支付领域应该会诞生一些新的应用类型。具体可能包含:


    • 流式支付。比如视频流按秒支付。
    • 微小额支付。比如超低额度的打赏。
    • 机器交互、IOT 等场景下的支付。比如可以把闪电网络放入一个设备里。


  • admin 楼主 8月前
    0 引用 3
    说闪电网络会导致中心化的一定要搞清楚下面的概念:

    1)闪电网络的中心化是流动性的中心化。跟挖矿一样,只要是市场竞争,一定会出现优势节点现象。但是闪电网络节点本身不提供比特币的存储、不提供交易的记账、仅仅提供流动性,所以跟算力集中化最大的区别是不会威胁底层安全。

    2)矿霸有进行51%攻击摧毁比特币的能力,闪电网络的大节点没有。

    3)目前闪电网络路由的特点是Source  routing  and  onion  routing,即路由是在源节点就指定好,也只有源节点知道整个路径。而且通过一层一层封装,中间节点仅仅知道相邻节点的信息。即便是大节点,并不知道一条支付路径是从谁开始的到哪儿去,用户的隐私信息可以得到很好的保护。

    4)路由算法在闪电网络中是可插拔的模块,并没有指定算法,如果大节点确实对闪电网络稳定性造成问题,完全可以采用更好的算法,绕过这些大节点,在全网均衡路由。

    5)闪电网络由于改变了比特币的激励模型,反而会导致全节点增加,导致比特币网络更加去中心化。
  • admin 楼主 8月前
    0 引用 4

    一文啃透闪电网络基本原理

    今天,我们就将尽可能的用最浅显的语言来给大家讲述下这一基本原理,看看能不能做到让大家能基本明白闪电网络到底是怎么一回事。


    首先,我做个比喻,假设大家现在在打一桌麻将,并且赌的是比特币,如果每打完一局大家都按输赢转账的话,考虑到比特币矿工费,成本其实是很高的,如果再考虑还需要等待一个块的确认时间,那个体验就很成问题了。那现在换一种方法,我们准备一个账本,账本上面列上甲乙丙丁四个人,以及每一局每个人的输赢情况,打满八圈之后,统一算一次帐,最终按最后一次算账的结果转一次币,这样的成本就低了非常多,因为只付一次矿工费就行了,玩儿的时候也不用再等了,因为每一局不再需要和比特币区块链打交道,也就不再需要等待交易确认时间。



    日常生活中,很多人打麻将、玩牌其实都是这么算账的,因为哪怕是每一局给钱,都是件麻烦的事情,记个账最后算一下就好了。而这种算账方式,其实就跟闪电网络的思想有点类似了。但这里有几个问题要解决,作为无需信任的、去中心化的解决方案,如何确保打了这么多局之后,输的一方一定会认账?牌桌上我们能做到,那是因为互相之间有信任,陌生人之间必须是提前压钱的,必须有第三方来负责解决信任。而去中心化的像比特币这样的系统里,想做到这一点那可就难了,闪电网络牛逼就牛逼在彻底从逻辑上解决了这一问题。


    好的,现在让我们正式进入到闪电网络基本原理里的讨论。(我们首先假定你能基本理解比特币的原理,比如说未签名交易、交易hash及交易签名等概念,并且您对多重签名有一定基本的理解)


    因为关于闪电网络最完善的说明就在白皮书里,而由于闪电网络白皮书不像中本聪的那篇那么简短而优雅,属于很长且晦涩难懂的类型,因此,我会尽量简洁清晰的给大家讲述下相关原理,但会借用下白皮书中的图片。





    首先,让我们来看图一:




    这个图其实很简单,首先说说这里的 Funding Tx(入资交易),假设 Alice 和 Bob 要往通道里各放 0.5 BTC。所谓的通道其实从技术实现角度上讲,就是一个 2/2 的多重签名地址,2/2 的意思就是要是想往外转这个地址上的币的话,需要 Alice 和 Bob 双方都同意(都签名)才行,这就像是打麻将你上桌前要先压钱一样。


    只有一个 Funding Tx 的问题是,虽然这能保证双方都往里放了足额的资产(之后的操作都需要双方达成共识才行),但如果一方不配合,另一方的资产就被冻结在里面了,这显然不是我们想达到的目的。极端情况下,假设 Bob 把私钥给弄丢了,那 Alice 的币也没了,这显然是不行的。

    所以,就需要提前准备好一个 Commitment Tx(承诺交易),即在往多签地址上发币之前,先准备好从多签地址给 Alice 和 Bob 各自转回 0.5BTC 的未签名交易,并且(因为是多签),Bob 要对这笔交易签名,并把签名发给 Alice,反之亦然,这样,Alice 和 Bob 都具备了从多签地址把币提回到自己手里的能力了(因为有了对方的签名),通过这种方式,现在双方就不用担心对方不配合了,可以放心的往多签地址里存入资产(因为不需要对方同意也能拿回资产),这就比前面有要好了一些。


    当做好这些步骤之后,双方就可以把 Funding Tx 广播到比特币网络上了,也就是往通道里存好币,而无需担心对方的配合,因为可以随时把多签的币提走。(当然,双方要各自保管好对方给自己的 Commitment Tx 的签名)


    这里我要简要的说一下隔离验证对于闪电网络的意义,首先隔离验证通过把签名从未签名交易的内部拿了出来,最终彻底解决了“交易延展性的问题”,而通过刚才的 Funding Tx + Commitment Tx 的例子我们能看出,闪电网络里大量的运用了对尚未广播交易的后续交易的依赖,这种依赖对于 tx id/hash 的确定性是有要求的,否则前置交易的 hash 如果变了,后面的交易就都作废了(你保管好的凭证也就都没用了),这样显然是不行的,这就是隔离验证对于闪电网络的意义之所在。





    现在,让我们再来看看图二:




    做到了图一的内容之后,其实还不够,因为静态的一个通道是满足不了用户的需求的,玩麻将的时候会有输赢,我们需要通道能体现每一局的输赢关系,比如说 Alice 输给了 Bob 0.1BTC。


    我们假设,用类似图一的方式,同样准备好未签名交易,给 Alice 转0.4BTC,给 Bob 转0.6BTC,双方互相签署交易后,把签名给对方。这样,跟原来的 0.5/0.5 相比,通道又多了一个状态 0.4/0.6,双方都有能力广播这笔交易,各自拿回 0.4 和 0.6 BTC。


    但问题又来了,从 Alice 的角度,她更有动力广播 0.5/0.5 的那笔交易,而 Bob 则更有动力广播 0.4/0.6 的那笔交易,这种情况下,其实还没有达到我们的目的。


    这里其实要说明一下,现在我们需要的其实是能标记出 0.5/0.5 和 0.4/0.6 先后次序的方法,并且,还得在后面的凭证生效后,前面的凭证作废,也就是当 0.4/0.6 生效后,0.5/0.5 得作废才行。





    现在让我们看下图三:(这里我们要说明一下,紫色的表示 Alice 手中已经有了 Bob 的签名,自己再签一下广播出去就能生效的交易;蓝色的反过来)




    图里有一个词叫 Revocable Sequence Maturity Contract (RSMC) 可撤销序列成熟合约


    图三里的逻辑主要就在于,如果 Alice 想中断交易,她就得把 C1a 和 RD1a 广播到比特币网络上(因为 Bob 已经把这两个的签名给了她),当 C1a 广播后,Bob 直接得到了 0.5BTC,而 Alice 的 0.5BTC 被转入了另一个 RSMC 合约里,RD1a 的交易需要等C1a确认后的1000个块才能生效,Alice 才能拿到自己的 0.5BTC。


    通过图三,做到了先后次序依赖及对于主动提出断开通道者的轻微处罚(即等待1000个块的确认)。也就是说,任何时候,通道的一方都可以在无需对方配合的情况下断开通道,断开通道操作会让对方马上得到币,而自己要等待一段时间。




    继续看图四:




    现在我们可以参考图三的方式,更新通道内的装态,从图三的状态更新到图四的状态,C1a/C1b 更新到 C2a/C2b,但我们必须得废除旧的状态,这又该如何做到呢?




    其实我们需要引入的是惩罚机制,请看图五:




    在Alice生成C2a/RD2a之前,他要把自己在C1a里面的私钥Alice2发给Bob;同样,Bob把自己的C1b里面的私钥Bob2发给Alice。


    这里要说明一点,其实,这里给的是 RSMC 合约对应的多重签名地址的私钥,以 C1a 为例,Bob 对 C1a 的未签名交易做了签名,并且给了 Alice,但 Bob 是没法广播 C1a 的,因为 Alice 没签。也就是说,只有 Alice 能广播这笔交易。但当通道状态更新到了 C2a 之后,Alice 就不敢在广播 C1a 了,因为在更新到 C2a 之前,她得把 C1a 中 RSMC 的私钥(另一个私钥)Bob,而 Bob 得到这个私钥后,如果在比特币网络上看到了 C1a ,说明 Alice 作弊,Bob 就可以用 RSMC 中的 Alice2 私钥加上自己的 Bob2 私钥直接把 Alice 的 0.5 BTC 拿走,而 Alice 还要等待 1000 个 区块才能拿回 0.5 BTC,Bob 广播的交易会先生效,惩罚成功。


    而如果 Alice 不违约广播 C1a 交易(而是按照约定废掉了这笔交易),那 C1a 就永远不会出现在比特币网络上,Bob 虽然拿着 RSMC 中的 Alice2 私钥,但也没任何用处,因为该地址上没币。


    通过这种方式,最终做到了将通道状态从 C1 更新到了 C2,并且 Alice 和 Bob 都不敢回到之前的装态,因为谁回去,谁就被惩罚,币就全归了对方了。


    这其实就是闪电网络最根本的原理。


    这样,每一局我们都可以遵循这个规则,C1 更新到 C2,C2 更新到 C3......

    最终,我们就能做到了打八圈麻将,每一局都记好账了,但后一局的结果会作废掉前一局的账目,在这个过程中谁也不敢作弊,作弊者将被处罚。

    这其实就是闪电网络的基本逻辑。


    这里我们可以额外补充一点,通过上面的介绍,大家应该能明白,对于 Alice 和 Bob 来说,把闪电网络通道中对方所发给自己的全部凭证(包括签名、包括历史私钥等)都安全的保留好,至关重要,如果你遗失了任何凭证,在对方违约的情况下,你就无法做到对对方进行惩罚了,也就是说,你将面临资产损失。


    另外,对于闪电网络通道中的任何一方,还必须一直保持对区块链上数据的监控,比如说在通道更新到 C2 状态之后,Bob 必须一直监控着区块链上的数据,看看 Alice 有没有广播 C1a,因为他需要在 Alice 广播 C1a 之后的一段时间之内处罚 Alice,否则 Alice 的违约就成功了,而 Bob 将面临资产损失。这其实又是一个技术上需要解决的问题,这需要你要么自己运行个 SPV 轻节点来监控比特币区块链的数据,要么依赖别人提供的 Watch Towers 瞭望塔来监控。


    闪电网络既然称其为网络,自然是有道理的,如果仅仅是 1:1 的通道,显然不能叫网络。


    当我们理解了闪电网络底层支付通道的最基本原理之后,现在面临的一个问题就是我们不可能让所有的人之间都两两建立通道,首先,操作层面就不现实,更何况通过上面的原理大家明白了通道双方要各自往通道里存入一定数量的比特币,如果让你和所有的比特币用户都建立通道,那显然是不可能的。


    这就需要一个网络结构,比如说,Alice 和 Bob 之间有通道,Bob 和 Carol 之间,Carol 和 Dave 之间都已经有了通道,那把这些通道串联起来,就相当于在 Alice 和 Dave 之间有了通道,Alice 就能通过闪电网络给 Dave 转币了。




    相关步骤参见图六:




    首先,Dave 准备一个随机数 R (除了 Dave 以外,Alice、Bob、Carol 都不知道 R)并计算其哈希 H,然后把 H 给了 Alice。


    Alice 和 Bob 之间达成一个协议,如果 3 天内 Bob 能给出 R ,则 Alice 会给 Bob 0.102 BTC,如果超过3天,就拿回这些币;


    Bob 和 Carol 之间达成一个协议,如果 2 天内 Carol 能给出 R ,则 Bob 会给 Carol 0.101 BTC,如果超过2天,就拿回这些币;


    Carol 和 Dave 之间达成一个协议,如果 1 天内 Dave 能给出 R ,则 Carol 会给 Dave 0.1 BTC,如果超过1天,就拿回这些币;


    当这些协议都成立之后,Dave 把 R 给 Carol,得到 0.1 BTC,Carol 把 R 给 Bob,得到 0.101 BTC,Bob 把 R 给 Alice,得到 0.102 BTC。最终,我们达到了这个目的,即 Alice 支付了 0.102 BTC,Dave 得到了 0.1 BTC,Bob 和 Carol 得到了 0.001 BTC 的手续费。


    上述的逻辑在闪电网络中是通过一个叫 Hashed Timelock Contract(HTLC)哈希时间锁定合约来实现的。比特币脚本是支持 HTLC 这类的合约编写的,具体的脚本因为是比较简单的条件判断,我这里就不详述了。


    通过上面的逻辑描述,理解了原理的用户就应该能明白,为什么闪电网络的交易过程会是这样的,即:


    收款者先准备个二维码,然后付款者扫码支付,其中是不是二维码这种形式并不重要,最重要的其实是需要收款者先准备出一个信息(要准备出个 R,然后计算出其哈希 H,并把 H 和公钥提供出来),付款者用这个信息付款,这一过程其实就是 H 的传递过程,然后大家再拿 R 来领钱。


    也就是说,闪电网络的交易一定是由“接收者”发起的,这也是为什么习惯了比特币、以太坊钱包的用户往往会别扭的地方,大家都会说,你先给我个地址啊,我给你转币,以后我还可以反复的向这个地址转币。现在不行了,我得先给你个 H(加公钥),然后你再通过闪电网络通道给我转币,这个 H 只在一段时间之内有效,并且只能用一次,向另一个人收款的时候,我还得再给一个 H',不能服用之前的 H,现在大家明白这是为什么了吧?


    当我们把 HTLC 合约嵌入到 RSMC 通道时,更完整的闪电网络(多节点模型)就成立了,其中,闪电网络的白皮书用了很多篇幅来描述在网络模型下如何基于 RSMC + HTLC 做到去中心化+无需信任,最终来到今天大家终于可以体验的闪电网络。对于开发闪电网络基础设施来说,基本的原理可以通过我上面讲述的内容就能有一定的了解,但具体实现起来要考虑的方方面面就非常多了,比如说哪怕只是上面说描述的那些通道建立过程及节点传递过程,其实就是一个非常复杂的工程,再加上对于闪电网络这种“网络”系统来说,还得考虑类似于互联网上的节点查找、路由协议(手续费/通道大小等方面还会影响到路由的选择)等内容,这其实都是非常复杂的工作,这也是为什么直到今天闪电网络基础设施的初步进入到能让用户广泛尝试的阶段的原因。


    在这里,我们应该感谢那些为了闪电网络付出艰苦努力的码农们,谢谢!






    下面澄清几个事实:


    1、闪电网络的原理本身并不是限制在比特币协议上的,任何区块链都可以有自己的闪电网络实现,而闪电网络实现并不需要区块链本身做什么改动,只要具备实现上述原理的条件就可以了,像隔离验证的实现就能大大降低在比特币上实现闪电网络的难度一样。所以,莱特币也可以有闪电网络,以太也可以,甚至 EOS 也可以有自己的闪电网络。


    曾有 EOS 大户问我如果比特币有了闪电网络,那是不是 EOS 的价值就大打折扣了,我这里到不这么看,EOS 也可以有自己的闪电网络,EOS 主网做主网的事情,闪电网络做链下闪电网络的事情,没什么问题,因为这是从另一个维度来扩充的区块链的能力,可以说闪电网络对于所有的公链价值都是巨大的。



    2、那为什么闪电网络会在比特币上优先到来呢?为什么不是像隔离验证一样,先在莱特上实验,再逐步更新到比特币网络上的呢?原因很简单:首先,闪电网络不是对比特币协议的升级,因此不涉及任何 bitcoin-core 的开发工作;闪电网络需要很多第三方团队或个人自行开发基础框架,像 lnd、C-lightning 等,也需要很多钱包团队采用自己认为合适的方式来支持,而在这一点上,毫无疑问比特币社区的开发者、企业和个人群体的数量是最大的,从这个角度上讲,闪电网络作为一项原理清晰但实现起来还是很复杂的技术在比特币上首先到来也是一件很正常的事情。



    3、闪电网络对于区块链处理交易的扩充能力是从另一个维度上进行的,它既不需要提升块大小,也不需要采用像当前的那些高 TPS 的区块链一样的牺牲去中心化程度的方法来提升区块链本身的交易处理能力,闪电网络上两两通道间的多次小额交易是完全不需要占据任何区块链空间的,因此,从某个角度上来说,它对于区块链交易处理能力的扩充是巨大的,甚至可以说能够让比特币这类的区块链具备支付宝一样的交易处理能力(比如说,你完全可以准备出很多个像支付宝集群一样大的节点来满足高处理能力的需求);



    4、当前支持闪电网络的钱包(包括比特派)所实现的闪电网络方式其实是以一种“托管式”的方式来提供的闪电网络服务,这里我要说明一点,之前我们曾用过一个词叫“伪闪电网络”,这个词其实是不对的,大家所使用的闪电网络仍然是“真闪电网络”,只不过当前使用“真闪电网络”是以一种“托管式”的方式来进行的,大家通过比特派闪电网络发送比特币给虎符钱包或者 bluewallet,其实都是走了完整的闪电网络的路由,有可能跨过了多个闪电网络的节点,从这个角度上讲,仍然是“真闪电网络”。当前实现“非托管式”的闪电网络模型其实还要付出更大的努力、并且用户的门槛也会高的多(现阶段只有国外的 Eclair 在做这方面的尝试,而且基本上做的还处于不好用甚至几乎没法用的状态)。


    大家都知道,从闪电网络热潮开始,就有很多用户一直在呼吁比特派支持闪电网络(由于我们在比特币方面处于绝对领先的地位,这种呼吁可以说是非常热烈的),但我们最初还是有些犹豫的,最主要的原因就在于在当前的基础设施下,如果要做“非托管式”的闪电网络钱包,会是一个漫长的过程,而“托管式”开发起来虽然很快,但是否是用户真想要的呢?最终我们还是觉得,闪电网络技术普及本身是第一位的,让用户自己来弄闪电网络节点,自己去维护一个 SPV 轻节点,对于普通用户来说,门槛太高,极客们干干也就得了。我们仍应让用户先用上闪电网络这项技术,并让用户越用越爽才是最重要的。


    另外,未来的版本中我们还会给用户提供自己设置节点的功能,对于这部分有能力和精力自己维护闪电网络节点的用户来说,比特派提供的闪电网络服务其实就会是非托管式的、完全去中心化的了,届时比特派的闪电网络服务就会是混合模式的,用户自行选择适合自己的方案。


    这里我可以做出一个预测,未来的闪电网络发展方向,其实最终会是由像比特派这样的领先的钱包服务提供商提供很多个大的节点(当年阿彪和我把这些大节点称为大 Hub),然后钱包用户会与我们的节点建立通道,通过这种方式最终做到“非托管式”的、完全无需信任的、去中心化的闪电网络架构,这样就能做到兼顾易用性与去中心化了。并且,用户无需担心平台风险,他们随时可以断开与大 Hub 的通道连接,拿回自己的资产。最终的闪电网络拓扑图会和当前的互联网很像,有大 Hub、有小节点,还有很多个人自建的自用节点,这其实会是一副很美的景象。


    还有一点,我们近期将基于闪电网络为用户提供更多的第三方应用服务,这里有一个词叫 LApp,对应于之前的 DApp,支付话费只是 LApp 的一个应用而已,未来会有很多人做很多不同的 LDapp,敬请期待。



    5、基于闪电网络的跨链去中心化交易所其实逻辑上是成立的,实现原理不外乎就是:有一个大节点一方面替比特币网络提供闪电网络通道服务,另一方面又替莱特币网络提供闪电网络通道服务,我们假设 Alice 和这个节点分别建立了比特、莱特两个通道,Bob 也和这个节点建立了这两个通道,那么在 Alice 和 Bob 之间进行无需信任的跨链去中心化交易其实是可行的,只是同样双方和节点之间都要做到无需信任、无法作恶就可以了。当然,从基础设施的角度上讲,这个的难度会比闪电网络的大规模普及要大得多,虽然已经有不少创业团队在开始往这个方向努力了,但我们其实能预估到的是在这方面的想获得成功是要付出十倍百倍的努力的。



    6、闪电网络通道里的币当然都是“热”的,这对于大部分用户(节点)来说问题都不大,因为大家并不会往闪电网络通道里放大额的币,超大额的币应该使用像比特护盾 bithd.com 这样的开源硬件钱包,一定额度的资产应该使用像比特派 bitpie.com 这样的多链钱包,只有小额的、想利用闪电网络频繁多次支付的币才需要放到闪电网络通道里,这部分币即便是热的,安全风险也不大。

    但对于像前面我提到的大节点/Hub 来说,“热”就是个问题了,因为未来像比特派这样的 Hub 可能会为大量的用户提供通道服务,而这种情况下,虽然每个通道需要存入的资金量很小,加在一起可能就是巨额资产了,这对于 Hub 提供方的系统安全的要求是非常高的,甚至比当前交易所充提币系统的要求还要高(因为 Hub 方还必须保存所有通道的、所有状态的的全部历史凭证),所以,未来逐步演化到这个阶段时,大的闪电网络 Hub 服务提供方必须能够用名义上“热”但实际上“冷”的,类似于我们过去几年里一直在使用的 ChainCloud.com 全冷区块链云平台的安全架构来为用户提供服务。


    这里,我要补充说明一点,即便是大 Hub 方自己出了问题,用户的资产仍然是安全的,因为用户自己保存了自己的凭证,出问题的时候,断开通道,等一段时间,拿回自己的资产就好了,从这里大家就能看出闪电网络去中心化、无需信任的牛逼之处了。


    总结一下,闪电网络是比特币等区块链在另一个维度上的扩充,它能大大提高区块链的小额支付处理能力并大幅降低成本,使得比特币正式进入到近乎零成本的小额支付领域,我们能预计到未来闪电网络将进一步快速发展,引领区块链进入到新的时代,当然在将来的某一天,闪电网络将颠覆掉的不仅仅是去中心化支付、还包括去中心化交易。

你可以在 登录 or 注册 后,对此帖发表评论!

返回
发新帖