区块广播:

【比太公开课】带你畅聊“闪电网络”!

比特派钱包版主发布在 比特派/比太钱包
 41640  117
  • 正序
  • 最新
只看帖主楼层直达
  • 比特派钱包 版主 2019-03-20 16:29:45 来自PC47楼
    我们假设,用类似图一的方式,同样准备好未签名交易,给 Alice 转0.4BTC,给 Bob 转0.6BTC,双方互相签署交易后,把签名给对方。这样,跟原来的 0.5/0.5 相比,通道又多了一个状态 0.4/0.6,双方都有能力广播这笔交易,各自拿回 0.4 和 0.6 BTC。
  • 比特派钱包 版主 2019-03-20 16:31:12 来自PC48楼
    但问题又来了,从 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 得作废才行。
  • 比特派钱包 版主 2019-03-20 16:31:35 来自PC49楼
    现在让我们看下图三:(这里我们要说明一下,紫色的表示 Alice 手中已经有了 Bob 的签名,自己再签一下广播出去就能生效的交易;蓝色的反过来)

  • 比特派钱包 版主 2019-03-20 16:33:29 来自PC50楼
    图里有一个词叫 Revocable Sequence Maturity Contract (RSMC) 可撤销序列成熟合约
  • 比特派钱包 版主 2019-03-20 16:33:39 来自PC51楼
    图三里的逻辑主要就在于,如果 Alice 想中断交易,她就得把 C1a 和 RD1a 广播到比特币网络上(因为 Bob 已经把这两个的签名给了她),当 C1a 广播后,Bob 直接得到了 0.5BTC,而 Alice 的 0.5BTC 被转入了另一个 RSMC 合约里,RD1a 的交易需要等C1a确认后的1000个块才能生效,Alice 才能拿到自己的 0.5BTC。
  • 比特派钱包 版主 2019-03-20 16:35:16 来自PC52楼
    通过图三,做到了先后次序依赖及对于主动提出断开通道者的轻微处罚(即等待1000个块的确认)。也就是说,任何时候,通道的一方都可以在无需对方配合的情况下断开通道,断开通道操作会让对方马上得到币,而自己要等待一段时间。
  • 比特派钱包 版主 2019-03-20 16:36:41 来自PC53楼
    继续看图四:

  • 比特派钱包 版主 2019-03-20 16:37:33 来自PC54楼
    现在我们可以参考图三的方式,更新通道内的装态,从图三的状态更新到图四的状态,C1a/C1b 更新到 C2a/C2b,但我们必须得废除旧的状态,这又该如何做到呢?
  • 比特派钱包 版主 2019-03-20 16:40:00 来自PC55楼
    其实我们需要引入的是惩罚机制,请看图五:

  • 比特派钱包 版主 2019-03-20 16:40:14 来自PC56楼
    在Alice生成C2a/RD2a之前,他要把自己在C1a里面的私钥Alice2发给Bob;同样,Bob把自己的C1b里面的私钥Bob2发给Alice。
  • 比特派钱包 版主 2019-03-20 16:42:32 来自PC57楼
    这里要说明一点,其实,这里给的是 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 广播的交易会先生效,惩罚成功。
  • 比特派钱包 版主 2019-03-20 16:45:27 来自PC58楼
    而如果 Alice 不违约广播 C1a 交易(而是按照约定废掉了这笔交易),那 C1a 就永远不会出现在比特币网络上,Bob 虽然拿着 RSMC 中的 Alice2 私钥,但也没任何用处,因为该地址上没币。
    通过这种方式,最终做到了将通道状态从 C1 更新到了 C2,并且 Alice 和 Bob 都不敢回到之前的装态,因为谁回去,谁就被惩罚,币就全归了对方了。
    这其实就是闪电网络最根本的原理。
  • 比特派钱包 版主 2019-03-20 16:48:49 来自PC59楼
    这样,每一局我们都可以遵循这个规则,C1 更新到 C2,C2 更新到 C3......
    最终,我们就能做到了打八圈麻将,每一局都记好账了,但后一局的结果会作废掉前一局的账目,在这个过程中谁也不敢作弊,作弊者将被处罚。
    这其实就是闪电网络的基本逻辑。
  • 比特派钱包 版主 2019-03-20 16:50:46 来自PC60楼
    这里我们可以额外补充一点,通过上面的介绍,大家应该能明白,对于 Alice 和 Bob 来说,把闪电网络通道中对方所发给自己的全部凭证(包括签名、包括历史私钥等)都安全的保留好,至关重要,如果你遗失了任何凭证,在对方违约的情况下,你就无法做到对对方进行惩罚了,也就是说,你将面临资产损失。
  • 比特派钱包 版主 2019-03-20 16:52:44 来自PC61楼
    另外,对于闪电网络通道中的任何一方,还必须一直保持对区块链上数据的监控,比如说在通道更新到 C2 状态之后,Bob 必须一直监控着区块链上的数据,看看 Alice 有没有广播 C1a,因为他需要在 Alice 广播 C1a 之后的一段时间之内处罚 Alice,否则 Alice 的违约就成功了,而 Bob 将面临资产损失。这其实又是一个技术上需要解决的问题,这需要你要么自己运行个 SPV 轻节点来监控比特币区块链的数据,要么依赖别人提供的 Watch Towers 瞭望塔来监控。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 8
前往
登录 账号发表你的看法,还没有账号?立即免费 注册