BOB:区块链研究实验室 | 闪电网络代码简化教程-可撤销交付交易part1_ALICE

闪电网络的基本概念很简单。为进一步了解,将闪电网络交易流程作为javascript代码参考白皮书。

本篇文章的目标是解读可撤销交付交易,与白皮书的图5相对应。

轻量区块与交易结构

区块定义和交易结构如下:

区块仅包含先前区块的哈希和交易。同样Transaction仅包含Inputs和Outputs。

花费可撤销的7个步骤:

我将可撤销交付交易的所有流程分为7个步骤,如下所示。请注意,上面的图片上写有C1A或C1B等。

多签名资金

CME Group将于9月11日推出比特币和以太坊亚太地区参考汇率:金色财经报道,衍生品市场CME Group和加密货币基准指数提供商CF Benchmarks计划推出两种新的亚太地区特定参考利率:9月11日,CME CF比特币亚太参考汇率(BRRAP)和CME CF以太坊美元亚太参考汇率(ETHUSD_AP),将为这两种数字资产的美元价格提供每日一次的参考汇率,发布时间为香港/新加坡时间下午4点。

芝商所加密货币产品全球主管Giovanni Viciioso表示:“这些新的参考利率旨在满足全球参与者在不断增长的数字资产领域不断变化的需求。芝加哥商品交易所集团(CME Group)37%的加密货币总交易量是在非美国市场进行的,其中11%的交易来自亚太地区。”[2023/8/17 18:04:46]

构建C1a和C1b

分析师:BTC或跌至9600美元以填补CME缺口 但长期仍然看涨:加密货币分析师和交易员Credible Crypto表示,他认为比特币最近的回调是为了淘汰弱手(weak hands)。他在推特上称,比特币可能会下跌到9600美元左右,填补CME图表上的一个缺口(gap)。虽然他认为比特币可能有更多的下行潜力,但他也表示,比特币仍然呈现长期牛市信号,因为比特币似乎正在更高的时间框架内将之前的阻力转变为支撑。同时Credible Crypto还表示,ETH尚未触底,并预测其将下跌至300美元下方。(The Daily Hodl)[2020/9/6]

构建RD1a和RD1b

动态 | CME比特币期权将与比特币每月期货同时到期:金色财经报道,在最近的一次采访中,CME董事总经理兼股票指数另类投资产品全球负责人Tim McCourt解释了CME即将推出的比特币期权产品以及期权交易。根据CME最近发布的最初比特币期权规范,CME比特币期权将与比特币每月期货同时到期。交易将于合同月份最后一个星期五的伦敦时间下午4:00终止。这意味着,如果交易者持有的选择权在到期时行使期权,那么该头寸将立即变为现金。据此前报道,CME于9月宣布计划在2020年第一季度推出比特币期权。[2019/10/31]

C1a和C1b的交换签名

花费C1b

动态 | CME公司创始人赵易天:“区块链+AI”等新技术指引未来音乐市场的发展走向:据中国文化报消息,日前,第二十八届中国国际专业音响·灯光·乐器及技术展览会(乐器展)在北京举办。CME公司创始人赵易天在会上表示,无论产品硬件研发还是音乐软件开发,都需要符合市场潮流与方向。他提到,MIDI新标准、“区块链+AI”等新技术指引着未来音乐市场的发展走向。例如,MIDI新标准将建立起智能化乐器互联,云服务能建立起无地域限制的双向连接,区块链可以实现节点间的价值传递等。[2019/6/14]

花费D1b

花费RD1b

起初,Alice和Bob创建了2to2多重签名。?

Alice在这个'redeemScriptHash'上存储比特币。

Alice和Bob已经分别存入0.5比特币作为创世块。因此,Alice花费0.5比特币到?fundmulisig上。

我不能运行比特币操作码,所以我将scriptsig和scriptpubkey定义为JSON格式。?

以同样的方式,Bob为multisig提供资金,现在mulisig持有1比特币

构建C1a和C1b

使用Alice和Bob之前创建的两个事务,Alice构建C1A。请注意,C1Awitch类型的第一个输出是“RSMS”。确切的名称是可撤销的序列到期合同。这需要花费2个签名。由此,一个将创建可撤销的交付,另一个是输出。

Bob还不签字。一旦Bob签名,Alice可以立即花费这笔交易。在Alice恶意和Alice不签署RD1A的情况下,Bob将永远失去0.5比特币,因此Bob不应签署。

Json格式scriptSig和scriptPubKey如下。请注意,我在scriptSig中包含redeemScript以支付multisig基金。?

在同样的方式下,Bob构建C1b。

构建RD1a和RD1b

RD1A有时间锁。如果Alice想使用C1A,则要在锁定期结束之前,Alice无法收到0.5比特币。我将时间锁定指定为3,以便Alice需要等待3个区块的确认。另一方面,Bob可以立即收到0.5比特币,因为D1A没有时间锁。

顺便说一下,在实际的用例中,时间锁可能是1000s。

请注意,TxIn中的上一个事务是空的。因为C1a尚未花费,所以无法计算事务哈希值。为实现这一目标,闪电开发团队提倡新的Opcode为SIGHASH_NOINPUT

请注意,RD1a是由Bob签署的。Alice需要将RD1a交给Bob并让他签名,以便RD1a需要Bob的签名。

Json格式RDscriptSig如下,这包含时间锁定。?

以同样的方式,Bob构建RD1b。

C1A和C1B的交换签名

Alice收到Bob签署的RD1a,以便交换C1a的签名。Alice将C1a交给Bob让他签名。现在,Alice可以随时使用C1a。

以同样的方式,Bob让Alice签署C1b。

花费C1b

让我们考虑一下Bob花费c1b的情况。Bob自己签署c1b。验证完成后,Bob转移C1B并添加到区块链。

花费D1b

Alice可以在没有任何时间锁定的情况下花费D1b,因为multisigfund的比特币被Bob用作C1b交易。如果Bob是恶意的并且不与Alice合作,Bob可能会在没有Alice协议的情况下花费C1b。对于这种情况,Bob承担时间锁定。

花费RD1b

起初,Bob试图立即花掉RD1B。但由于时间锁定,结果是失败的。

在添加了2个区块之后,Bob可以成功地使用RD1B,因为时间锁已经过期。?

好的,本章节到此结束,下一节我们将会继续讲解;?

本文转载公众号:区块链研究实验室,专注区块链技术,产品社群,经济模型等全方位的知识体系输出,为大家带来不一样的社群学习体验。欢迎联系作者微信加入社群:csschan1120?

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

大币网

[0:15ms0-4:757ms