主页 > imtoken冷钱包官方下载 > 闪电网络的技术原理:比特币的双向支付通道@以太坊爱好者

闪电网络的技术原理:比特币的双向支付通道@以太坊爱好者

imtoken冷钱包官方下载 2023-10-26 05:08:09

闪电网络可能是比特币区块链上最受期待的创新(编者注:最初写于 2016 年)。这种支付方案是由 Joseph Poon 和 Tadge Dryja 一年多前首次提出的,它声称允许用户以非常低的成本在用户之间发送无限制的链下交易——并借用比特币网络提供的安全性。

至少有 3 家公司——Poon 和 Dryja 的 Lightning、Blockstream 和 Blockchain——正在开发这项技术的实施。但在技术人员的小圈子之外,很少有人了解“小额支付的未来”如何释放比特币的潜力。

在这一系列文章中,比特币杂志试图列举闪电网络的最基本构建块,并展示如何将这些东西组合起来形成闪电网络,即将推出的协议。

本系列的第一篇文章将列举必要的模块,并展示如何组合这些模块以创建“智能合约”;这个概念可以用来理解闪电网络的第一个前提:双向支付通道。

(提示:对比特币非常熟悉的读者可以跳过这些模块的介绍。)

比特币闪电网络(Lightning Network)原理风险节点基础设施

比特币闪电网络(Lightning Network)原理风险节点基础设施

模块 #1:未确认的交易

比特币协议的核心是所谓“交易”的概念;一般来说,一个事务总是与另一个先前的事务相关联,并且可以在未来的事务中使用。每笔交易都包含一个输入,该输入指向发送比特币的地址;和一个输出,它指向接收比特币的地址。此外,为了发送比特币,输入还必须满足一定的条件,例如提供数字签名以证明发送者对输入地址拥有“所有权”。同时,输出也会为这些比特币未来的使用创造新的条件,在后续交易发出时必须满足。

(译者注:把比特币想象成一张有面额的支票。使用时,支票本身给出资金来源,使用后会形成新的支票。所以对每张支票,都有交易形成支票,这是一个订单前交易;当这些支票再次被花费时,该交易可以称为订单后交易。)

闪电网络的一个关键特性是它由或多或少的常规比特币交易组成。但是,这些交易通常不会在比特币网络中传播。相反,这些交易由用户本地存储在节点上——除了它们可以随时在比特币网络上放置和传播。

比特币地址生成原理

未确认的事务(Unconfirmed Transactions)闪电网络

--

模块 #2:双花保护

闪电网络所需的第二个模块可能不需要太多解释,因为它可以说有点硬币协议本身的存在理由:防止多次支付。如果两个交易(或输入)依赖于相同的输出,那么整个网络只会确认其中一个。

记住:即使未确认的交易之间存在冲突,最终也只会确认一个。

杜绝多重支付(Double-Spend Protection)闪电网络

模块 #3:多重签名

闪电网络的第三个模块也很好理解:多重签名地址。 (或更广泛地说:P2SH 地址(脚本哈希地址)。)

顾名思义,多重签名地址是需要多个私钥才能“解锁”并使用比特币的地址。多重签名地址的条件可以通过多种方式设置。例如,为了转移比特币,可能需要三分之二的私钥参​​与;或其他数量要求(如 2/5、3/4 等)。

闪电网络通常使用 2-2 多重签名要求。从这样的地址转移比特币需要与这两个私钥相关联的两个签名,其中一个都不会丢失。

比特币地址生成原理

多签名(Multisig)闪电网络

模块 #4:时间锁定

第四个模块是时间锁。时间锁定功能可以在输出中放置一个锁定条件,这样这些比特币只能在未来的某个时间之后才可以使用(即用作交易的输入)。

时间锁有两种类型:1)绝对时间锁,称为CheckLockTimeVerify (CLTV); 2)相对时间锁,CheckSequenceVerify (CSV)。 CLTV 将比特币锁定到某个(可以说)特定的未来:特定的时间和日期,或特定的区块高度; CSV 仅使用相对时间。当 CVS 输出在链上时,它必须等待一定数量的块才能使用输出。

时间锁(Time-Locks)闪电网络

模块 #5:哈希值和秘密值

第五个也是最后一个模块——密码学——也是比特币本身最基本的模块。但在闪电网络中,用法不同。

简而言之,“秘密值”是一长串独特的数字,几乎不可能猜到,即使计算机对其进行了无数次暴力破解。并且通过特殊的计算,这个秘密值可以被“切碎”成一个不同的数字,称为“哈希值”。这就是有趣的地方:知道秘密有价值的人可以很容易地计算出它的哈希值,但反之则不然,你不能用哈希值推断秘密值。

在比特币区块链上,这种机制又可以用来“锁定比特币”(实际上,锁定比特币就是比特币协议的工作方式)。例如,您可以在输出中包含哈希值,并要求后续交易仅在它们包含与哈希值对应的秘密值时才花费输出。

模块 #5:哈希值和秘密值 闪电网络

比特币地址生成原理

第一个挑战:双向支付渠道

在闪电网络之前,存在“支付渠道”的概念。标准支付渠道是专门构建的,因此受到限制:它们都是单向渠道。 Alice 可以在链下向 Bob 发起 Dobi 付款,但 Bob 不能使用相同的渠道向 Alice 付款。

闪电网络的一个关键特性是 Poon 和 Dryja 提出的无需信任的双向支付通道。

打开频道

要建立双向支付通道,首先需要双方就开通通道的交易达成共识。这个开放的交易决定了他们每个人将在这个通道中存入多少比特币。

假设 Alice 想向 Bob 发送 1 个比特币。因为双方都预计以后会有频繁的交流,所以决定开通双向支付通道。 (在通道中发送 1 btc 可能有点太大了,毕竟通道对于小额支付可能更有用 - 但它完全可行。)

为了打开通道,Alice 和 Bob 各自向一个 2-2 多重签名地址发送 5 个比特币。这就是“渠道开放交易”。只有 Alice 和 Bob 签署了同一笔交易,该地址中的钱才能花掉。

此外,Alice 和 Bot 各自创建一个秘密值(即一串数字),然后交换哈希值。

Alice 现在创建一个通道打开交易的订单后交易,这是一个“提交交易”。在本次提交交易中,Alice 向自己发送了 4 个 btc,向第二个多重签名地址发送了 6 个 btc;这个多重签名地址比较有趣:Bob 可以自己解锁地址,但是等待(Alice 的交易经过链上 1-00 个区块后,Bob 可以把钱花在里面(这是相对时间锁);Alice 可以也单独打开这个地址,前提是她也有 Bob 给她的对应的 hash 值的 secret 值。(当然 Alice 根本不知道这个 secret 值——她只有 Bob 给她的 hash 值——所以它只是表面上的。)有时间锁,还有哈希锁。)

Alice 签署了她的承诺交易。但她不会公开这件事!相反,她只是将交易发送给 Bob。

比特币地址生成原理

同时,Bob 也做了完全对称的操作。他还创建了一个承诺交易,向自己发送 6 个比特币,向一个新的多重签名地址发送 4 个比特币。 Alice 可以在等待 1000 个区块后单独解锁地址比特币地址生成原理,或者 Bob 可以使用 Alice 的秘密值解锁地址。

Bob 签署交易并将其发送给 Alice。

在交换这些提交的交易和哈希值后,他们共同签署并广播通道开放交易,以便它可以上链。现已开通双向支付通道。

打开通道后,Alice 和 Bob 都可以签署并广播他们从该地方获得的部分有效的承诺交易。如果 Alice 广播(Bob 发送给她的已提交交易),Bob 立即获得 6 个比特币。如果 Bod 广播,Alice 立即获得 4 btc。但是签署和广播交易的一方必须等待 1000 个区块才能解锁该后序列多重签名地址并拿走剩余的比特币。

开启通道 闪电网络

然而,这是支付渠道的关键技巧:不签署和广播他们获得的承诺交易。

(译者注:先与已提交的交易进行交互,然后广播通道开启交易,以免被对手欺诈;而获得已提交的交易后,无需广播即可获得安全保障。)

更新频道

稍后,Bob 想向 Alice 发回 1 个比特币,并且他们想更新通道的状态以使其恢复到 5:5 状态。为此,Alice 和 Bob 需要做两件事。

首先,双方都要再做一遍上述流程(除了开启交易的部分,因为已经记录在链上了)。这一次,Alice 和 Bob 都给对方分配了 5 个 btc,并且都给那个多重签名地址分配了 5 个 btc。这些后续多重签名地址的条件类似,只是它们都需要生成新的秘密值:Alice 和 Bob 都提供了新的哈希值。他们都签署了自己的新承诺交易并将其发送给对方。

比特币地址生成原理

其次,Alice 和 Bob 都将他们的第一个秘密值(在第一个提交事务中使用的那个)移交给另一个。

此时,Alice 和 Bob 都可以签署并广播他们最近提交的交易。他们的对手立即获得 5 btc,而广播自己必须等待 1000 个块。就这样,通道的状态被更新了。

但是什么会阻止 Bob 广播旧的已提交事务呢?那笔承诺交易将给他 6 btc,超过 5 btc...

当然,阻止 Bob 的是他的第一个秘密值,他已经给了 Alice。 .

因为此时 Bob 不能再随意签署和广播旧的承诺交易,因为 Alice 已经知道 Bob 的第一个秘密值。如果 Bob 签署并广播(Alice 给他的那个)较旧的承诺交易,他会立即向 Alice 发送 4 个比特币……他必须等待 1000 个块才能自己认领它比特币地址生成原理,但是,Alice 已经知道他的秘密是值得的,所以她可以利用这段时间抢先夺走剩下的6个btc!

而且,由于 Bob 也有 Alice 的秘密值,Bob 也是如此!如果 Alice 想要签署并广播旧的承诺交易,Bob 可以窃取她放入频道的所有 btc!

这意味着 Alice 和 Bob 必须重新组织激励机制,不要玩诡计,只广播最新的状态。

更新通道 闪电网络

好的,在我们有了双向支付渠道之后,我们需要将其扩展为支付网络。这是我们第二篇文章的主题。

感谢 Rusty Russell 和 Joseph Poon 的热心反馈。

(完)(文中有很多超链接,可点击左下角“阅读原文”从EthFans网站获取)

原文链接: