闪电网络可能是部署在比特币之上的最受期待的技术创新。约一年前,约瑟夫·庞(Joseph Poon)和塔奇·德里亚(Tadge Dryja)首次提出了支付层,它承诺在不增加成本的情况下支持用户之间几乎无限数量的脱链交易,同时利用比特币提供的安全性。. 至少三家公司-Poon和Dryja’s 闪电, 区块流 和 区块链 –目前正在研究该技术的实现。但是,除了这个小技术前沿之外,几乎没有人完全了解“小额支付的未来”将如何提高比特币的功能. 在这三部分的系列中, 比特币杂志 列出了闪电网络的基本构建块,并展示了它们如何组合在一起以实现这一即将到来的协议层. 本系列的第一部分介绍了基本构建块,并解释了如何使用这些构建块建立双向支付渠道。第二部分说明双向支付渠道如何转变成网络. 网络 在上一篇文章中,爱丽丝和鲍勃建立了双向支付渠道。现在,爱丽丝想向第三方卡罗尔(Carol)支付一个比特币. 为此,爱丽丝和卡罗尔可以在他们之间建立支付渠道。但是他们实际上并不需要。事实证明,鲍勃和卡罗尔已经有了一个共同的渠道,因此爱丽丝可以通过鲍勃向卡罗尔付款. 具体来说,爱丽丝(Alice)可以向鲍勃(Bob)支付一枚比特币,而鲍勃(Bob)可以向卡罗尔(Carol)支付一枚比特币. 但是,爱丽丝并不真正信任鲍勃(Bob)或卡罗尔(Carol)。她担心如果她付给鲍勃(Bob),鲍勃(Bob)就永远不会付给卡罗尔(Carol)。也许鲍勃 将要 付钱给卡罗尔,但卡罗尔会声称她从未收到这笔钱,爱丽丝也不知道该怪谁. 因此,爱丽丝想确保她只付给鲍勃一个比特币, 如果 他还付给Carol一枚比特币。这是通过一个简单的密码技巧(部分)完成的. 当爱丽丝想向卡罗尔发送比特币时,她告诉卡罗尔创建一个值(数字的随机字符串)并向她发送哈希值。爱丽丝还告诉卡罗尔,请他与鲍勃交换原始价值的比特币. 同时,爱丽丝从卡罗尔那里拿走了哈希,转向鲍勃,并告诉鲍勃,如果他提供给她相应的价值(只有卡罗尔拥有),她将给他一个比特币。. 因此,鲍勃求助于卡罗尔,并给卡罗尔一个比特币作为回报. 然后,鲍勃将值返回给爱丽丝。爱丽丝知道鲍勃一定已经从卡罗尔那里获得了价值,以换取比特币,因此得出结论,卡罗尔得到了她的比特币。所以爱丽丝可以放心地给鲍勃一个比特币. 大家都开心. 出色地… 几乎 大家都很开心. 在这种“幼稚”的情况下,中间人鲍勃仍然必须信任爱丽丝和卡罗尔。鲍勃(Bob)必须信任卡罗尔(Carol)在给他寄送比特币后才能真正给他带来价值,鲍勃(Bob)必须信任爱丽丝(Alice)在向她提供价值后才可以真正给他一个比特币。. 因此,必须在网络上绝对保证比特币换价值交易。进一步来说: 如果 鲍勃给卡罗尔一个比特币,他 必须 一定要从爱丽丝那里收回比特币. 那就是哈希时间锁定合同(HTLC)出现的地方. 散列时间锁定合同 因此,爱丽丝(Alice)和鲍勃(Bob)希望通过HTLC将比特币换成该值。 (鲍勃和卡罗尔也想用相同的价值交换比特币-但现在不要紧。) 为此,爱丽丝没有直接向鲍勃发送比特币,而是向新的(也是时髦的)多重签名地址发送了比特币。锁定在该地址上的比特币可以通过两种不同的方式解锁. 第一种选择是让Bob包括他的签名 和 价值. 第二种选择是让爱丽丝包括自己的签名。但是,此选项带有CLTV时锁:只有在两个星期过去之后,爱丽丝才能签署并广播交易。. 这意味着鲍勃有两个星期的时间来创建后续交易,在交易中他包括他的签名和价值,并进行广播以将比特币从时髦的多重签名地址发送给自己。因此,这种交易是有保证的。鲍勃可以 只要 声称爱丽丝(Alice)提供的价值是他的比特币:通过比特币网络进行广播,使爱丽丝(Alice)可以公开看到它. 而且,如果鲍勃(Bob)没有及时提供价值,那么爱丽丝(Alice)有一种“超时选择”来收回她的比特币。简单的. 回到网络,这就是为什么需要此HTLC设置的原因. 如前所述,不仅Alice和Bob,而且Bob和Carol都建立了HTLC。所以, 如果 卡罗尔向鲍勃·鲍勃索要她的比特币 将要 […]
闪电,技术
了解闪电网络,第1部分:建立双向比特币支付渠道
闪电网络可能是部署在比特币之上的最受期待的技术创新。约一年前,约瑟夫·庞(Joseph Poon)和塔奇·德里亚(Tadge Dryja)首次提出了支付层,它承诺在不增加成本的情况下支持用户之间几乎无限数量的脱链交易,同时利用比特币提供的安全性。. 至少三家公司-Poon和Dryja’s 闪电, 区块流 和 区块链 –目前正在研究该技术的实现。但是,除了这个小技术前沿之外,几乎没有人完全了解“小额支付的未来”将如何提高比特币的功能. 在这个由三部分组成的系列文章中,《比特币杂志》展示了闪电网络的基本构建模块,并展示了它们如何组合在一起以实现即将到来的协议层. 该系列的第一部分建立了必要的构造块,并展示了如何将它们组合起来以创建“智能合约”,该合约可用于实现闪电网络的第一个要求:双向支付渠道. (注意:对比特币有深入了解的任何人都可以跳过构建基块。) 构件1:未确认的交易 从本质上讲,比特币协议由交易组成,这些交易通常链接到先前的交易,并可能链接到将来的交易。每笔交易均包含输入(表示比特币发送至的地址)和输出(表示比特币发送至的地址)。此外,输入必须包含发送比特币的要求,例如证明输入地址“所有权”的签名。同时,输出确定了新要求,必须将其包含在后续交易的输入中. 作为其主要功能之一,闪电网络是由或多或少的常规比特币交易建立的。只是这些交易通常实际上并未通过比特币网络广播。取而代之的是,它们存储在本地的用户节点上,但是可以随时通过网络广播。. 构件2:双重支出保护 闪电网络的第二个构建块可能不需要太多解释,因为它可以说是比特币本身的存在理由:双花保护。如果两个事务(或:输入)依赖于相同的输出,则只有一个可以确认. 这里要记住的重要一点是,即使未确认的交易也可能会发生冲突,这意味着只有一个可以确认. 构件3:Multisig 闪电网络的第三个组成部分也是一个简单明了的组成部分:多重签名(multisig)地址。 (或更笼统地说:P2SH地址。) 多重签名地址是比特币地址,顾名思义,它需要多个私钥来“解锁”并从中花费比特币。可以在各种条件下设置多重签名地址。例如,要求三个可能的键中的两个,或者十五个中的十五个,或者几乎其他任何组合. 闪电网络通常使用两个(两个,共两个)多重信号设置中的两个。要从2 of 2多重签名地址中解锁比特币,需要使用两个专用密钥的两个签名. 构件4:时间锁定 第四要素是时间锁定。时间锁定可以“锁定”输出中的比特币,以使其只能在将来的某个时间使用(包含在后续输入中). 有两种不同类型的时间锁:绝对类型,称为CheckLockTimeVerify(CLTV),以及相对类型,CheckSequenceVerify(CSV)。 CLTV锁定比特币直到(或多或少)未来的具体时间为止:实际时间和日期,或特定的区块高度。 CSV则使用相对时间。将CVS输出记录在区块链上之后,从该点开始需要花费特定数量的块,然后才能再次使用比特币. 构件5:哈希值和秘密 第五个也是最后一个构建块-加密-是比特币本身的最基本构建块。但是在Lightning Network中,它以一种新方式应用. 简而言之,“值”或“秘密”是一个长而唯一的数字字符串,即使对于具有无限尝试次数的计算机,也几乎是不可能猜到的。通过特殊的计算,可以将该值(或机密)“哈希”为不同的数字字符串,即“哈希”。这就是诀窍:知道值的任何人都可以轻松地复制哈希。但这反过来是行不通的;这是一条单向街. 这个技巧可以在比特币本身中使用,再次“锁定比特币”。 (实际上,这实际上是比特币的工作方式。)例如,哈希可以包含在输出中,并且要求后续输入包含相应的值才能使用. 第一个挑战:双向支付渠道 甚至在闪电网络出现之前,支付渠道的概念就已经存在了一段时间。典型的支付渠道可用于某些目的,但也有局限性:它们是单向的。爱丽丝可以向鲍勃支付几笔脱链交易,但鲍勃根本无法通过同一渠道向爱丽丝付款. 作为闪电网络的关键功能,Poon和Dryja提出了无信任的双向支付渠道. 打开频道 要建立双向支付渠道,有关双方必须首先就开始交易达成协议。这项开仓交易确定每个通道中存入多少比特币. 假设爱丽丝(Alice)想向鲍勃(Bob)发送一个比特币。由于爱丽丝(Alice)和鲍勃(Bob)希望更频繁地进行交易,因此他们决定开放双向支付渠道,并使用该渠道发送比特币。 (对于支付渠道而言,发送整个比特币可能很多,因为对于小额支付来说,这些比特币可能会更有用-但这是完全有可能的。) 为了打开频道,爱丽丝和鲍勃分别向5个2位数的多重签名地址发送了5个比特币。这是“期初交易”。如果爱丽丝(Alice)和鲍勃(Bob)都签署了后续交易,则只能从该地址使用比特币. 此外,Alice和Bob都创建了一个秘密(一串数字),并交换了哈希值. 现在,爱丽丝立即根据期初交易创建一个后续交易。这是“承诺交易”。通过承诺交易,爱丽丝向自己发送了四个比特币,并向第二个多重签名地址发送了六个比特币。第二个multisig地址有点时髦。鲍勃可以自己解锁它,但只有在将其包含在区块链中之后再挖掘1000个额外的块之后,才能解锁。它包括一个CSV锁。或者,爱丽丝可以自己打开它,但前提是她还必须包括鲍勃刚刚为其提供的哈希值的秘密。 (当然,爱丽丝不知道这个秘密是什么-她只知道哈希-因此她现在无法利用此选项。) 爱丽丝签署了此承诺交易的结束通知。但是她没有广播!相反,她把它交给了鲍勃. 同时,鲍勃(Bob)做了同样的事情,但也有所反映。他还创建了一个承诺交易,从中他自己发送了六个比特币,并向一个时髦的新的多重签名地址发送了四个。如果她再等待1000个街区,爱丽丝可以解锁该地址,或者鲍勃可以使用她的秘密与爱丽丝解锁. 鲍勃签下这一半,然后交给爱丽丝. 在完成“半有效”承诺交易和秘密哈希的所有这些交换之后,他们都签署并广播了期初交易,以确保将其记录在区块链上。该频道现已正式开放. 此时,Alice和Bob都可以签名并广播他们从对方那里获得的半有效承诺交易。如果爱丽丝这样做,鲍勃立即获得六个比特币。如果鲍勃这样做,爱丽丝立即获得四个比特币。但是无论签名或广播该交易的人将不得不等待1000个区块才能解锁后续的multisig-address,并要求剩余的比特币. 但是,这是支付渠道的关键技巧:根本不签署也不广播其交易的一半. 更新频道 过了一会儿,鲍勃想寄回一个比特币给爱丽丝。他们想更新通道状态,使平衡再次达到5。为此,爱丽丝和鲍勃做了两件事. 首先,两者都重复上述过程(除了开仓交易已记录在区块链上;该部分被跳过)。这次,爱丽丝和鲍勃都给自己分配了五个比特币,并且都给时髦的多重签名地址分配了五个比特币。这些多重签名地址的条件是相似的,除了它们需要新的秘密:爱丽丝和鲍勃都互相提供了新的哈希值。他们都签署了新的一半有效承诺交易,并将其互相给予. 其次,爱丽丝和鲍勃互相交往他们的第一批秘密,如第一次设置中所使用的那样. 在这一点上,爱丽丝和鲍勃再次可以签署并广播他们刚刚获得的新的“半有效”承诺交易。他们的交易对手将立即获得5个比特币,而广播公司则必须等待1000个区块。因此,频道已更新. 但是,是什么阻止了Bob广播较旧的承诺交易呢?这项承诺交易导致他付给他六比特币的报酬,而不是五…. 当然,阻止Bob的是他的第一个秘密,现在他已将其提供给Alice。. […]
了解闪电网络,第3部分:完成难题并关闭渠道
闪电网络可能是最受期待的技术创新,它将部署在比特币之上。约一年前,约瑟夫·庞(Joseph Poon)和塔奇·德里亚(Tadge Dryja)首次提出了支付层,它承诺在不增加成本的情况下支持用户之间几乎无限数量的脱链交易,同时利用比特币提供的安全性。. 至少三家公司-Poon和Dryja’s 闪电, 区块流 和 区块链 –目前正在研究该技术的实现。但是,除了这个小技术前沿之外,几乎没有人完全了解“小额支付的未来”将如何提高比特币的功能. 在这个由三部分组成的系列文章中,《比特币杂志》列出了闪电网络的基本构建模块,并展示了它们如何组合在一起以实现即将到来的协议层. 本系列的第一部分介绍了基本构建块,并解释了如何使用这些构建块建立双向支付渠道。第二部分介绍了如何形成网络,以及哈希时间锁定合同(HTLC)如何将网络中的不同通道链接在一起。本系列的第三部分也是最后一部分将说明HTLC如何放置在双向支付渠道内,以确保交易可以完全在链外进行. 闪电网络 到目前为止,爱丽丝和鲍勃开通了双向支付渠道,他们都用五种比特币供资。他们来回进行了两笔交易,在当前的渠道状态下,爱丽丝和鲍勃都可以通过“丢掉渠道”在区块链上为自己索取五枚比特币. 现在,他们希望在通道中包含HTLC。这是为了确保如果Carol向Bob索要比特币以换取她的价值,则可以保证Bob向Alice索要比特币作为回报。. 像上一步一样,爱丽丝和鲍勃首先创建一个新的承诺交易。在许多方面,这些承诺交易与以前的承诺交易非常相似。它们包括一个普通输出,以及一个带有CSV(CheckSequenceVerify)时间锁和特殊哈希锁的时髦multisig地址的输出。同样,与上一步一样,Alice和Bob交换了他们的旧机密,以有效地使旧频道无效。而且,一旦交换,爱丽丝和鲍勃都可以签署承诺交易的一半,并有可能随时将其丢入区块链. 所有熟悉的领土。除了一项更改。爱丽丝(Alice)和鲍勃(Bob)的承诺交易现在都包含一个价值一比特币的新输出。 (这使余额为4-5-1;四个用于Alice,五个用于Bob,一个用于新输出。) 此新输出实质上是HTLC。到目前为止,它比所有其他输出都更加有趣,因为有三种方法可以对其进行解锁. 首先,新的输出(在爱丽丝和鲍勃的承诺交易中)释放比特币,条件是鲍勃的签名和价值包括在后续交易中。这样,无论Alice还是Bob签署并广播承诺交易,只有Bob包括该值时,都可以解锁此输出。但是,两个承诺事务之间只有一个小差异:如果Bob放弃了频道,则涉及CSV时间锁定。他将需要等待1,000个街区。 (如果爱丽丝放弃频道,他可以立即索取该比特币。) 如果鲍勃放弃频道,鲍勃必须等待1,000个街区的原因与我们之前看到的非常相似:如果鲍勃试图签名并广播旧的频道状态,它可以让爱丽丝拿走这枚比特币。这就是解锁输出的第二种方法。如果爱丽丝提供了鲍勃(最新)的机密,她可以“窃取”资金. 两个人可以玩这个游戏:如果爱丽丝曾经试图作弊并在该频道已经过时时广播该频道,则鲍勃可以使用爱丽丝的秘密索取该比特币。 (他甚至不需要提供价值。) 第三,与其他任何HTLC一样,两个承诺交易还包括爱丽丝通常的CLTV超时回退。如果鲍勃在两周内没有包含该价值(例如,因为他没有从卡罗尔那里得到),那么爱丽丝可以索回她的比特币。同样,对于这个选项,爱丽丝还是鲍勃都放弃了频道. 所以这一切使我们到哪里去了? 爱丽丝和鲍勃都持有半有效的承诺交易。如果爱丽丝(Alice)在区块链上放弃了承诺交易,她会立即向鲍勃(Bob)发送5个比特币。此外,她可以等待1,000个区块,并为自己索取四枚比特币。另外,鲍勃有两周的时间提供该价值,并在“ HTLC输出”中声明了该比特币。 (如果他在两周内没有提供该价值,则爱丽丝可以索回该比特币。) 同时,鲍勃也可以随时取消其承诺交易,并立即向爱丽丝发送四个比特币。然后,他将等待1,000个区块才能从一个地址索取另外五枚比特币,如果他提供了该值,则可以从HTLC输出中索取另一比特币。 (如果他在两周内没有提供该价值,则爱丽丝可以收回该价值。) 当然,如果爱丽丝或鲍勃在将来的任何时候都试图作弊,并在该频道过时时签署并广播该频道,那么两者都可以完全封锁对方,并窃取该频道中的所有比特币. 稳定状态 在这一点上,鲍勃被保证会收到比特币以换取价值(假设他拥有了)。他所要做的就是签署并广播他从爱丽丝获得的承诺交易,将价值包括在后续交易中,并进行签署并广播。. 爱丽丝知道这一点。她不可能从鲍勃的比特币中骗走鲍勃-即使她通过其他方法发现了价值,也无法做到。. 因此,这两个人也可能只是“定居”在渠道之外。 Bob可以简单地将值提供给Alice,Alice可以同意在没有HTLC和超时期限的情况下将通道状态更新为更正常的状态. 假设双方都想保持渠道开放,那自然就是他们要做的事情:麻烦的事比不必在区块链上丢掉渠道要麻烦. 关闭频道 最后,这就是闪电网络的真正力量:这三篇文章中描述的几乎所有东西通常都根本不需要打入比特币区块链。. 如果Alice和Bob都想“和平地”关闭渠道,他们可以简单地从原始的开仓交易中创建交易,以覆盖自开仓交易以来发生的所有事情。通过此次交易,他们将自己应占的公平份额发送给自己,以最近的渠道状态为代表. 具体来说,这意味着如果爱丽丝想要关闭频道,她此时可以简单地创建一笔交易,向自己支付四比特币,向鲍勃支付六比特币,然后要求鲍勃签署并广播该交易。由于没有理由拒绝他,他可能会合作并关闭渠道. 最后,只有两笔交易将通过比特币网络进行广播,并包含在一个区块中:期初和期末交易。即使爱丽丝和鲍勃之间进行一百万次交易,这也将成立,因此可以减轻区块链的负担. 感谢Rusty Russell和Joseph Poon的信息和补充反馈.
闪电的历史:从头脑风暴到Beta
在几周前,第一个Lightning实施- nd -正式处于测试版。第二个实现- 小饼 —已关注 上个星期, 而第三个- c-闪电 -预计将尽快这样做。因此,闪电网络是人们期待已久的廉价和即时交易的比特币覆盖网络,它的许多开发人员认为闪电网络足够安全,可以在比特币的主网上使用:这是该技术多年发展的一个重要里程碑。. 这是到目前为止的故事. 第一次沉思 闪电网络的最早起源可以追溯到比特币本身. 闪电难题的第一部分是一个称为“支付渠道”的概念。支付渠道实质上是两个比特币用户之间只有两个用户之间的比特币余额:世界其他地方不需要了解或关心他们的相互余额。重要的是,无需任何链上比特币交易即可更新这些余额;当一个用户的余额增加时,另一个用户的余额减少相同的数量。实际上,这使两个参与者之间都能进行交易,而不会给他们的交易数据增加整个网络的负担. 一旦用户完成交易,他们就可以通过仅向网络传输一笔交易来结算其支付渠道:该交易根据其渠道余额向他们应收到的每笔款项进行支付。为了这些用户的利益,这还意味着渠道更新(“链下交易”)更便宜,因为它们不需要采矿费,而更新得更快,因为它们不需要区块链确认. 可以说,这个总体思路与中本聪(Satoshi Nakamoto)在2009年发布的第一个比特币软件一样古老。比特币0.1包括一个 原始代码草稿 这将使用户可以在确认交易之前更新交易: 比特币0.1中包含的支付渠道代码的草稿。资料来源:GitHub 虽然此代码只是草稿,但中本聪(Satoshi Nakamoto)进一步详细介绍了付款渠道如何与当时的私人通信一起工作。-比特币 开发人员Mike Hearn. 几年后的2013年,赫恩 已发表 中本聪(Satoshi Nakamoto)在 比特币开发邮件列表: 中本聪(Satoshi Nakamoto)对付款渠道如何运作的解释,由迈克·赫恩(Mike Hearn)描述。来源:比特币开发邮件列表 第一付款渠道 尽管支付渠道的一般概念早在比特币本身就已经存在,但中本聪的设计并不完全安全。最重要的是,付款渠道中的用户可能与矿工串通以确认较旧的交易,声称比特币的数量超过渠道余额应允许他的数量. 中本聪(Satoshi Nakamoto)离开比特币项目后,于2011年夏季首次提出了解决此问题的方案. Bitcointalk论坛 用户“ hashcoin” 概述 一种两级支付渠道,要求用户交换多个部分签名的多签名交易以及具有相互依赖的时间锁的交易。如果一位参与者失踪了,则另一位参与者可能会在一段时间后要求支付通道中的所有资金。但是,这种设计的缺点是,哈希币的渠道只能在一个方向上发挥作用。 “爱丽丝”可以任意次数向“鲍勃”付款,但鲍勃无法通过同一渠道向爱丽丝付款. 与哈希币类似的想法在2013年初浮出水面,这次逃脱了理论领域。那年四月,一种支付渠道的概念是 描述 Jeremy Spilman在比特币开发邮件列表上。他甚至已经编码了 概念证明. 反过来,此设计由Mike Hearn进行了调整,之后是未来的Bitcoin Core贡献者, 区块流 联合创始人 链码实验室 开发人员Matt Corallo将这个概念变成了 比特币 […]