• 闪电网络详解


    什么是闪电网络

    闪电网络(Lighting Network)是指运用比特币的交易数据,在比特币网络外进行支付的一种机制。通过使用闪电网络,大量超过区块链交易处理能力的支付也可以进行。原来,在比特币网络上进行交易时需要将交易全部发送至区块链,而在闪电网络中,通过构建出第三方托管型网络(在交易结算时,通过中立的第三方来确保交易安全性的交易形态),就可以在很大程度上减少向区块链发送的交易信息,只留下交易证据。换句话就是,比特币区块链所发挥的作用从“支付处理”转变成“纷争处理”。

    闪电网络工作详解

    如图2-13所示,闪电网络的工作首先是从交易的A、B双方开设基于多重签名技术的通道开始的。两者在开设通道时就决定好了参与交易的比特币数量。接着,A、B双方给出两笔参照了“未花费的交易(Unspent Transaction Output,UTXO)”的交易并互相签名,也就是A同意B的交易、B同意A的交易。所以,两者无论何时都可以关闭各自的通道。

    例如,将第一个交易设置为tx0,那么下一个交易就会存在txla和txlb两个版本,因此编入区块链的交易就是这其中的一个。另一方面,由于txla和txlb两者的输出地址和发送金额都是一样的,因此两者可以在协商的基础上决定好通道的余额是多少。问题在于这之后的交易应当如何处理。如果在txla和txlb上假设A的余额是0.5BTC,B的余额是0.5BTC,那么在接下来的tx2a和tx2b中,A转了0.3BTC给B,就意味着A的余额是0.2BTC,B的余额是0.8BTC。这时,A就有可能将txla,即A的余额是0.5BTC、B的余额是0.5BTC的交易发送出去,从而引起问题。

    这时,交易扩展性的解决方案和相对的时间冻结方法就发挥了作用。具体应当如何操作呢?txla和txlb的内容并不是现时点的余额,而是基于A-B之间的多重签名而返还给自己的全部余额。再生成两者相互签过名的txla-close和txlb-close的交易,此时规定好余额并关闭通道。在这个交易中,附加了“母交易记载于区块链上之后,必须要经过1440区块(大约10天)才是有效交易”的条件。

    进一步而言,在下一个交易生成之前,如果发送了txla和txlb,那么交易就会无条件地执行txla-punish和txlb-punish的操作。也就是说,那些想要在交易中谋取不正当利益的人即使发送了只对自己有利的反映其余额的交易(如txla)来谋取个人利益,由于用于关闭交易的交易在10天内是无效的,所以自动执行的txla-punish操作也会没收其絲余额。

    基于如此巧妙的构造,只要没有不正当行为的发生,那么交易通道就将持续、永久地开放。不需要使用类似山寨币的外部区块链和类似彩色币的协议,只需要活用比特币的交易和脚本语言(比特币脚本语言)就能够发挥作用。关于如何将这一项技术网络化是相当复杂的问题,但是由于这个问题对于闪电网络而言是非常必要的,因此我在这里简单地介绍一下。

    这时就需要用到哈希时间锁定智能合约(Hashed Time-Locked Contracts, HTLC)了。哈希时间锁定智能合约是一种经由多个主体来转移资产的技术。比如想要根据A→B→C→D的路径来实现1BTC从A到D的发送,那么D可以指定一个秘密的“R”,将“R”与哈希值相乘,再将相乘得出的数值“H”发送给A。A在与B的交易中就附带上了“只能向拥有R的人发送”的条件(这时A会为B支付奖金)。

    当然,由于B不知道“R”的数值,所以在传达至D之前必须要合作。同样,B对C也会发送附加了相同条件的交易,而C为了让交易顺利完成,也会向D发送这笔交易。交易一旦发送至D处,D就会通过基于TCP/IP(网络通信协议)的点对点信息,知A、B、、C “R”的值。当那些企图在过程中做坏事或者捣乱 的人有不正当行为发生时,接收者就可以在各自的交易中按顺序关闭通道来应对。

  • 相关阅读:
    Linux重定向命令
    ls命令
    Linux常用命令_(进程管理)
    Linux常用命令_(文件操作)
    Linux常用命令_(文件查看)
    Linux常用命令_(文件搜索)
    Oracle表空间管理
    如何测试数据库表空间不足场景
    find命令
    各种比例尺标准分幅图经差、纬差表
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13312800.html
Copyright © 2020-2023  润新知