区块链的可拓展性研究【05】闪电网络

news2024/11/18 20:27:12

1.闪电网络:闪电网络是一种基于比特币区块链的 Layer2 扩容方案,它通过建立一个双向支付通道网络,实现了快速、低成本的小额支付。闪电网络的交易速度非常快,可以达到每秒数万笔交易,而且交易费用非常低,几乎可以忽略不计。

闪电网络是构建在比特币网络上的第二层支付协议,用来解决比特币网络堵塞问题。简单来说就是在区块链之外开通一条“绿色通道”,将大量高频的、小额的交易在区块链外进行。同时保证交易的安全性。

闪电网络如何运作?
交易双方需先建立一个支付通道,各转一笔钱到一个多签地址上,双方同时出具私钥才能将钱取出,为避免一方不出具私钥钱取不出来的情况,在存入之前需要先广播一条退款消息,如果一方不出具私钥,你就可以将退款消息广播到区块链上。

但需要注意的是,退款消息一旦广播到链上,对方可以立即收到退款,而发起方的退款则需要存入一个双方的多签地址,退款发起方需要等待1000个区块确认后,才可以收到退款。也就是说**谁先发起退款关闭通道,就会受到延迟退款的小惩罚。**防止发起恶意交易。

闪电网络如何实现多方转账呢?

举个简单的例子:现有小明、小白两人需要交易,他们都分别与小红建立了支付通道。

第一步:1首先用自己的密钥R1生成了一个哈希值H1,然后将哈希值H1传给2。

第二步:同时2和3签署了一个合约(如果3在2天内能给2正确的密钥R1,2就给3转1.1BTC,否则就不给)

第三步:然后1又和3签署了一个合约(如果1天内1能给3密钥R1,3就给1转1BTC,否则就不给)

于是,3作为中间方,拿到1的密钥R1后给到2,2在拿到密钥R1后与1给的哈希值一对比,确认1的身份后即可给1转账,在整个交易过程中,2与3,1与3之间所达成的合约就是我们经常说到的哈希时间锁定合约(Hashed timelock contrct)。

闪电网络关键技术
1多重签名技术

闪电网络优缺点
闪电网络是一种基于区块链技术的二层解决方案,旨在提高比特币和其他加密货币的可扩展性和交易速度。它具有以下优点和缺点:

优点:

  1. 高速交易:闪电网络可以实现几乎实时的交易速度,不受比特币区块链的限制。它使用户能够进行快速且廉价的交易,类似于传统的在线支付系统。
  2. 低费用:由于大部分交易在闪电网络上进行,并且只在最后结算时才提交到区块链上,因此交易费用非常低。这使得小额支付变得更加经济实惠。
  3. 扩展性:闪电网络能够解决比特币网络的可扩展性问题。由于闪电网络上的交易是在链下进行的,因此可以在不增加区块链负担的情况下处理大量的交易。

缺点:
4. 中心化:闪电网络上的交易需要通过双方之间的多次协商和签名完成,这可能导致中心化的风险。如果用户不再信任对方或者其中一方失去访问闪电网络的能力,交易可能会受到影响。
5. 集中风险:闪电网络的节点必须一直在线才能参与交易,这可能导致节点的集中风险。如果一个大型节点垮台或遭受攻击,整个闪电网络可能会受到影响。
6. 资金锁定:在闪电网络上进行交易需要事先锁定一定数量的资金作为抵押。这可能导致用户的资金被锁定在闪电通道中,没有办法快速取出或转移。

总体来说,闪电网络是一种有潜力的解决方案,但也存在一些挑战和风险。随着技术的发展和改进,这些问题可能会得到解决,使闪电网络更加实用和可靠。

2/2多重签名与时间锁
Step1: 假如A需要向B发起多次转帐且交易总值约为10BTC,只需要,若A将钱存进多签地址后,B由于网络原因处于离线状态且短期内无法上线,那么A的钱将被一直锁定,直到B使用私钥签名解锁。为避免这种情况产生,在A锁定资金之前,B将向A提供一份退款交易(仅创建交易但不在主网上广播),退款交易内容为:在1月7日后(实际中使用区块高度作为时间限制),A可以使用多签地址内的10BTC,并附上B的签名。A在拿到退款交易后,仅需使用私钥签名后在主网上广播即可取回资金。
Step2: 付款方(A)向A和B共同持有的2/2多签地址存对应金额(此处假设为10BTC)即可。
Step3: 通道建立后,A可多次向B进行转账,且无需向主网缴纳手续费。具体的实现方式为:A构造一份新的退款交易发给B,退款交易内容为:在1月6日后,A可以使用多签地址内的9BTC,B可以使用多签地址内的1BTC(即A向B转账1BTC),并附上A的签名。A通过不断更新退款交易来实现转账。每个交易都有时间锁限制,每次交易更新后锁定时间是逐层递减的,防止恶意用户公布旧的交易。
Step4: 假设最后一次退款交易更新内容为:(无时间锁)A可以立即使用多签地址内的0BTC,B可以立即使用多签地址内的10BTC(即A一共向B转账10BTC)。由于通道是有时限的(第一个退款交易约定是1月7日后A可提取所有BTC),所以B需要在最新的交易已经生效而次新的交易还没生效前向主网广播最新的交易结果,否则可能出现旧的交易被广播并且生效的情况。例如:B在1月7日时仍未广播最新的交易内容,尽管最新的约定是B可以取走所有的资金,但A持有第一代退款交易且已经到了生效时间,故A可以签名并广播第一代退款交易,取走所有资金,B损失了10BTC。当退款交易在主网上广播时,也意味着通道即将关闭。
在这里插入图片描述
初代通道技术虽然一定程度上提高了主网吞吐量,降低了交易手续费,但是缺点明显:1、交易仅是单向的,若B想向A转账,则需再开一个通道;2、不友好的时间锁定,如果交易过程中A或B不配合流程,则另一方需要等到时间锁结束后才可解锁资金;3、通道时间有限,由于退款交易限制,到期后通道即关闭。

2 RSMC(Revocable Sequence Maturity Contract)
Revocable Sequence Maturity Contract (RSMC)是一种用于支付通道管理的智能合约机制,主要用于比特币闪电网络中。RSMC允许支付通道的参与方在任何时候撤销合约,并确保资金的安全性和可用性。

RSMC的基本原理是,支付通道的参与方可以通过签署一份具有一定有效期的合约来建立支付通道,并锁定一定数量的资金在合约中。在合约有效期内,参与方可以进行多次的支付操作,无需将每笔交易都记录到区块链上。这样可以大大提高交易的速度和降低交易费用。

当支付通道的一方希望撤销合约时,可以通过触发合约中的撤销条件来关闭支付通道。在撤销合约时,合约中的资金将按照事先约定的规则进行退还给各方。这样可以确保参与方在支付通道关闭时能够安全地取回自己的资金。

RSMC机制提供了一种灵活且安全的方式来进行支付通道管理,可以提升比特币闪电网络的可扩展性和交易效率。同时,RSMC也为用户提供了更多的控制权和灵活性,使他们能够根据自己的需求进行资金的管理和交易操作。

3、HTLC
HTLC (Hashed Time-Locked Contract) 是一种通过哈希和时间锁定达成的合约,用于在链下通道网络中实现安全的双向支付。

HTLC 主要应用于闪电网络(Lightning Network),该网络是一个构建在比特币等区块链上的第二层扩容解决方案。HTLC 协议提供了一种安全的方式,使得在两个参与方之间进行链下交易成为可能。

在 HTLC 中,参与方会设定一个哈希值和一个时间锁。其中,哈希值是由一个秘密值通过哈希函数产生的,而秘密值则只有参与方自己知道。

在交易完成时,接收方需要提供与之前设定的哈希匹配的原始秘密值,以使用合约中的资金。如果提供的秘密值与哈希匹配,接收方可以使用合约中的资金。

若在设定的时间锁定期内未能提供正确的秘密值,资金将自动退回给发送方。这样设计可以确保资金不会被无限期地占用,鼓励及时完成交易。

HTLC 提供了一种安全高效的方式,实现链下交易,并同时保持底层区块链的安全性和去中心化特性。

尽管RSMC完善了通道的功能,但如果涉及多个用户,每个用户间开启通道则需要大量的时间与经济,这与设计之初的理念背道而驰。因此可以基于通道之上,增加HTLC技术将各个通道串联起来,成为闪电网络。
HTLC全称为Hashed Timelock Contract,该合约的功能类似于限时转账,转账方往2/2多签地址转入一笔资金,同时收款方生成一个随机数R,并对R进行哈希运算得到H(R)。转帐方构建一笔交易,交易内容为:若收款方在一定时间内能提供R值,且其哈希值等于H(R),则这笔钱可由接收方支配。签名后发给收款方。收款方也构建一笔交易:在一定时间后转账方可以取回多签地址内资金。签名后发给转账方。
当A与E要进行交易又不在两者间建立通道时,如图5所示,可以通过HTLC技术借用别人的通道实现间接转账,即A→F→G→E或E→G→F→A。通过哈希锁定技术可以确保资金在各方手中安全的周转,通过时间锁技术为各周转单位提供缓冲时间,同时确保在超时后资金可取回。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1308985.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于“Python”的核心知识点整理大全18

目录 ​编辑 8.5 传递任意数量的实参 pizza.py 8.5.1 结合使用位置实参和任意数量实参 8.5.2 使用任意数量的关键字实参 user_profile.py 8.6 将函数存储在模块中 8.6.1 导入整个模块 pizza.py making_pizzas.py 8.6.2 导入特定的函数 8.6.3 使用 as 给函数指定别名…

git 相关操作说明

1.先下载git相关软件 下载地址: https://git-scm.com/download/win下载其中一个安装 2.打开gitee网站,注册账号 3.打开个人中心,选择ssh公钥,查看如何生成公钥 4.生成公钥后,添加相应的公钥 具体仓库操作 1.第一…

6、生产者压缩算法面面观

生产者压缩算法面面观 1、怎么压缩?2、何时压缩?2.1、生产者端2.2、Broker 端 3、何时解压缩?4、各种压缩算法对比 压缩的思想,实际就是用时间去换空间的经典 trade-off 思想,在 Kafka 中,就是用 CPU 时间去…

视频监控管理平台/智能监测/检测系统EasyCVR中HLS流无法播放的解决方案

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

Python进阶(一)

1.Python中一切皆对象 1.1 Python中一切皆对象 JAVA中有class和object这两个概念,object只是class的一个实例。 而在Python中面向对象更加的彻底,class和函数都是对象。代码也是对象,模块也是对象。 函数和类也是对象,对象有四…

Arris VAP2500 list_mac_address未授权RCE漏洞复现

0x01 产品简介 Arris VAP2500是美国Arris集团公司的一款无线接入器产品。 0x02 漏洞概述 Arris VAP2500 list_mac_address接口处命令执行漏洞,未授权的攻击者可通过该漏洞在服务器端任意执行代码,写入后门,获取服务器权限,进而控制整个web服务器。 0x03 复现环境 FOFA…

自定义Mybatis LanguageDriver性能优化

场景:高并发情况下mybatis 动态sql 解析 锁问题优化 优化前 并发测试 XMLLanguageDriver 类 的 createSqlSource 方法有锁 而且 每次执行时都会走该方法 优化前 : 线程有Block 优化后的 LanguageDriver public class CustomXMLLanguageDriver im…

【JAVA】黑马MybatisPlus 学习笔记【二】【核心功能】

2.核心功能 刚才的案例中都是以id为条件的简单CRUD,一些复杂条件的SQL语句就要用到一些更高级的功能了。 2.1.条件构造器 除了新增以外,修改、删除、查询的SQL语句都需要指定where条件。因此BaseMapper中提供的相关方法除了以id作为where条件以外&…

智能优化算法应用:基于旗鱼算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于旗鱼算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于旗鱼算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.旗鱼算法4.实验参数设定5.算法结果6.参考文献7.MA…

【教程】查看GPU与PCIe版本和匹配速率

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn] PCIe理论速度对照表 bash脚本 #!/bin/bash# 查找所有 NVIDIA GPU 设备的设备ID及其类型 device_info$(lspci | grep -i nvidia | egrep "VGA compatible controller|3D controller" | awk {print $1, …

JavaEE:单例模式(饿汉模式和懒汉模式)精讲

前言 什么是单例模式? 其实用通俗的话就是程序猿约定俗成的一些东西,就比如如果你继承了一个抽象类,你就要重写里面的抽象方法,如果你实现了一个接口,你就要重写里面的方法。如果不进行重写,那么编译器就会…

ajax和Axios快速入门

什么是ajax 概念: Asynchronous JavaScript And XML,异步的JavaScrip和XML,重点在异步。 作用: 1,数据交互,可以通过ajax给服务器发送请求,并获取服务器响应的数据。 2,异步交互&am…

一些程序源码及教程的网站合集~

很多时候我们需要一个快速上手的code demo及教程,除了最常用的【github】,一些中文网站可能会帮助我们更好上手~ 这里提供几个中文网站参考: 【51CTO】: Python 动态手势识别系统hmm 手势识别opencv_mob64ca140d96d9的技术博客…

Vue3-09-条件渲染-v-show 的基本使用

v-show 的作用 v-show 可以根据条件表达式的值【展示】或【隐藏】html 元素。v-show 的特点 v-show 的实现方式是 控制 dom 元素的 css的 display的属性, 因此,无论该元素是否展示,该元素都会正常渲染在页面上, 当v-show 的 条件…

嵌入式系统未来的发展趋势走向???

人工智能和机器学习应用 模型优化: 为了在资源有限的嵌入式系统上运行,将会看到更多的努力投入到精简、优化和量化模型,以适应边缘计算的环境。 边缘推理: 嵌入式设备将更多地执行本地推理,而不是将所有数据发送到云端…

vue的computed中的getter和setter

vue的computed中的getter和setter 定义getter写法setter写法 定义 computed 中可以分成 getter(读取) 和 setter(设值),一般情况下是没有 setter 的,computed 预设只有 getter,也就是只能读取&a…

9.1 字符设备驱动开发

一、字符设备驱动简介 字符设备是 Linux 驱动中最基本的一类设备驱动,字符设备就是一个一个字节,按照字节流进行读写操作的设备,读写数据是分先后顺序的。比如我们最常见的点灯、按键、 IIC、 SPI,LCD 等等都是字符设备&#xff0…

c语言二维数组之字符数组

介绍: 本篇介绍 c语言二维数组之字符数组 其实他和前两种数组 c语言二维数组之整型数组 c语言二维数组之浮点型数组 差不多 就有两处不同 所以 本篇文章重点讲那两点不同 c语言二维数组之字符数组: 第一点不同: 第一个不同点就是 它存储的…

小航助学2023年9月电子学会Scratch四级真题(含题库答题软件账号)

需要在线模拟训练的题库账号请点击 小航助学编程在线模拟试卷系统(含题库答题软件账号) 单选题3.00分 删除编辑附件图文 答案:A 第1题角色为一个紫色圆圈,运行程序后,舞台上的图案是?( ) A…

imazing是什么软件

imazing是什么软件 iMazing 是世界上最值得信赖的软件,可以将您的信息、音乐、文件和数据从 iPhone 或 iPad 传输到您的 Mac 或 PC。 获得备份、数据提取、媒体和文件传输的强大能力,以及更多 iMazing 功能。 iMazing是一款第三方的苹果iOS设备管理软件。 iMazing- 2 Mac-安装…