主页 > 华为无法更新imtoken > 理解闪电网络:为比特币构建双向支付通道

理解闪电网络:为比特币构建双向支付通道

华为无法更新imtoken 2023-02-17 07:45:08

原标题:《UNDERSTANDING THE LIGHTNING NETWORK, PART 1: BUILDING A BIDIRECTIONAL BITCOIN PAYMENT CHANNEL》 原作者:AARON VAN WIRDUM 原编译:阿健,以太坊爱好者

图片

闪电网络可能是比特币区块链上最受期待的创新(编者按:最初写于 2016 年)。 这一支付方案最早由 Joseph Poon 和 Tadge Dryja 于一年多前提出。 它号称支持用户在链下发送无限次交易,成本极低——它还可以借用比特币网络提供的安全保障。

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

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

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

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

模块 #1:未确认的交易

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

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

比特币行情实时走势图比特币行情_比特币分叉对比特币的影响_兀币和比特币的秘密

闪电网络的一个关键属性是它由或多或少的常规比特币交易组成。 然而,这些交易通常不会在比特币网络中传播。 相反,这些交易由节点上的用户保存在本地——但它们随时准备在比特币网络中传播。

图片

-(译者注:如图所示,比特币可以像支票一样拆分,其流通会形成一条清晰的链条。) -模块#2:双花保护

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

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

图片

模块#3:多重签名

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

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

闪电网络一般采用 2-2 多重签名要求。 从这样的地址转出比特币,需要提供与这两个私钥相关的两个签名,少一个不行。

兀币和比特币的秘密_比特币行情实时走势图比特币行情_比特币分叉对比特币的影响

图片

模块#4:时间锁

第四个模块是时间锁。 时间锁功能在输出上设置了锁定条件,以便这些比特币只能在未来特定时间后使用(即用作交易的输入)。

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

图片

模块 #5:哈希和秘密

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

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

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

图片

比特币行情实时走势图比特币行情_兀币和比特币的秘密_比特币分叉对比特币的影响

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

在闪电网络出现之前,就已经有了“支付通道”的概念。 标准支付渠道是专门建立的,因此是有限的:它们是单向渠道。 Alice 可以在链下向 Bob 发起 Dobby 支付,但 Bob 不能使用相同的渠道向 Alice 付款。

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

开放通道

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

假设爱丽丝要发送 1 个比特币给鲍勃。 因为双方都希望以后往来频繁,所以决定开通双向支付通道。 (在通道中发送 1 btc 可能有点太多,毕竟通道可能对小额支付更有用——但这是完全可行的。)

为了打开通道,Alice 和 Bob 每人发送 5 个比特币到一个 2-2 多重签名地址。 这就是“通道开通交易”。 只有 Alice 和 Bob 签署了同一笔交易,才能使用该地址中的钱。

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

现在,Alice 创建了通道开启交易的后续交易,这是一个“承诺交易”。 在本次承诺交易中,Alice向自己发送了4个btc,向第二个多重签名地址发送了6个btc; 这个多重签名地址比较有意思:Bob可以单独解锁这个地址,但是,等等(Alice的交易在链上1-00个区块后,Bob可以花掉里面的钱(这是相对时间锁);Alice也可以单独打开这个地址,前提是她也有Bob给她的hash值对应的hash值。的秘密值。(当然Alice对这个秘密值是完全不知道的——她只有Bob的hash值给了她——所以只是表面上的。)(译者注:即这第二个多重签名地址既有时间锁也有哈希锁。)

爱丽丝签署她的提交交易。 但她不会广播交易! 相反,她只会将交易发送给 Bob。

兀币和比特币的秘密_比特币行情实时走势图比特币行情_比特币分叉对比特币的影响

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

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

交换这些承诺交易和哈希值后,他们一起签名并广播通道开放交易,以便将其上传到链上。 现在,开通了双向支付通道。

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

图片

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

(译者注:先与承诺交易交互,再广播通道开通交易的目的是为了避免对方欺诈;获得承诺交易后,无需广播,也可以获得安全保障。 )

更新频道

后来,Bob 想把 1 个 btc 发回给 Alice,他们想更新这个通道的状态,让它回到 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 的第一个秘密值。 如果鲍勃要签署并广播(爱丽丝给他的那个)一个较早的承诺交易,他会立即发送 4 个比特币给爱丽丝......他将不得不等待 1000 个区块才能自己认领它,但爱丽丝已经知道了他的秘密值得,所以她可以利用这段时间抢先提取剩余的6 btc!

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

这意味着 Alice 和 Bob 都重新组织了他们的激励机制,不再耍花招,而是只广播最近的状态。

图片

那么,在有了双向支付通道之后,我们需要把它扩展成一个支付网络。 这是我们第二篇文章的主题。

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

原文链接