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

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.mfbz.cn/a/245192.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux---复制、移动文件及目录命令

1. 复制、移动文件及目录命令的使用 命令说明cp拷贝文件、拷贝目录mv移动文件、移动目录、重命名 cp命令效果图: 说明: 拷贝目录需要加上-r选项,-r表示递归拷贝目录及其内容 mv命令移动文件效果图 mv命令移动目录效果图 mv命令重名名效果图 2. 小结 cp&#…

TwinCAT3 Modbus-TCP Client/Server使用

目录 一、环境配置和准备 1、PLC中安装TF6250-Modbus-TCP库 2、勾选TF6250的license 3、PLC工程中添加Tc2_ModbusSrv库文件 4、分别创建测试ModbusTCP测试的Server和Client程序 二、PLC作为Client端 1、设置测试电脑IP地址 2、运行MobusTCP测试工具 3、PLC端程序编写 …

Python 使用 openpyxl 写表格

当前环境:Win10 x64 MS office 2016 Python3.7 openpyxl3.0.9 1 写入表格 from openpyxl import Workbook# 创建一个 workbook workbook_w Workbook()# 获取被激活的 worksheet worksheet_w workbook_w.active# 1 批量插入数据# 设置一行数据 worksheet_w.ap…

鸿蒙ArkTS基础类库——线性容器

容器类库概述 容器类库,用于存储各种数据类型的元素,并具备一系列处理数据元素的方法,作为纯数据结构容器来使用具有一定的优势。容器类采用了类似静态语言的方式来实现,并通过对存储位置以及属性的限制,让每种类型的…

自己动手写数据库: select 查询语句对应查询树的构造和执行

首先我们需要给原来代码打个补丁,在SelectScan 结构体初始化时需要传入 UpdateScan 接口对象,但很多时候我们需要传入的是 Scan 对象,因此我们需要做一个转换,也就是当初始化 SelectScan 时,如果传入的是 Scan 对象&am…

vs2019 配置liblas

vs2019 配置liblas liblas是一个开源的C库,用于读写LAS格式的点云数据。libLAS易于使用,广泛应用于各种点云处理任务。它支持基本的点云数据操作,如读取、写入和编辑LAS文件中的点。 1.源码下载 https://github.com/libLAS/libLAS 2.编译 首…

Docker多平台安装与配置指南

Docker的流行使得它成为开发者和运维人员不可或缺的工具。在本文中,将深入探讨如何在不同平台上安装和配置Docker,旨在为大家提供详尽的指南,确保他们能够顺利地使用这一强大的容器化工具。 Docker基础概念回顾 Docker利用容器技术&#xf…

设计模式-访问者模式

访问者模式是设计模式中行为型模式的一种(其他的还有如创建型、结构型),听说是设计模式中比较难理解的一种,最近项目中用到了该模式,所以今天总结和实践一下。 一、访问者模式要解决的问题: 稳定的数据结…

【系统架构】集群、分布式概念及系统架构演进过程

集群、分布式概念: 对食物没有太高要求的人在肚子饿的时候一般都会选择去兰州拉面、沙县小吃等小饭馆,这类小饭馆有个很显著的特点:洗菜、切菜、炒菜都是同一个人完成,如果厨子不舒服可能饭馆还会歇业。而一些人流量较大的饭馆的分…

MATLAB 平面拟合并可视化(34)

MATLAB 平面拟合并可视化(34) 一、效果二、代码一、效果 二、代码 % 生成三维点数据 x = rand(100, 1); y = rand(100, 1

nest框架的token登录,以及token校验

1.搭建项目 项目初始化: npm i -g nestjs/cli nest new project-name 在终端下执行这四个命令,生成两个新模块: nest g module auth nest g service auth nest g module users nest g service users 然后把这三个文件删掉,是没有…

【LeetCode刷题笔记(4)】【Python】【移动零】【简单】

文章目录 题目描述示例 1示例 2提示 解决方案题意拆解双指针算法双指针法的主要优点双指针法的使用场景举例: 解决方案:【双指针一次遍历】解题心得方案代码运行结果复杂度分析 结束语 移动零 题目描述 给定一个数组 nums,编写一个函数将所…

OWASP ESAPI 预防XSS跨站脚本攻击

跨站脚本攻击XSS案例&#xff1a;跨站脚本攻击XSS案例及其解决方案_xss攻击案例-CSDN博客 Java集成&#xff1a; 1、引入maven <!--OWASP ESAPI&#xff0c;防御 XSS跨站攻击--><dependency><groupId>org.owasp.esapi</groupId><artifactId>esa…

ArrayList集合的两个实例应用,有趣的洗牌算法与杨辉三角

本节课的内容&#xff0c;就让我们来学习一下ArrayList集合的应用&#xff0c;ArrayList的本质就是一个顺序表&#xff0c;那下面一起来学习吧 目录 一、杨辉三角 1.题目详情及链接 2.剖析题目 3.思路及代码 二、洗牌算法 1.创造牌对象 2.创造一副牌 3.洗牌操作 4.发…

Alibaba分布式事务组件Seata AT实战

1. 分布式事务简介 1.1 本地事务 大多数场景下&#xff0c;我们的应用都只需要操作单一的数据库&#xff0c;这种情况下的事务称之为本地事务(Local Transaction)。本地事务的ACID特性是数据库直接提供支持。本地事务应用架构如下所示&#xff1a; 在JDBC编程中&#xff0c;我…

力扣24 两两交换链表中的节点 Java版本

文章目录 题目解题方法Code 题目 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。 示例 1&#xff1a; 输入&#xff1a;hea…

事务隔离级别:保障数据库并发事务的一致性与性能

目录 引言 1. 事务隔离级别概述 2. 读未提交隔离级别 3. 读已提交隔离级别 4. 可重复读隔离级别 5. 串行化隔离级别 6. 保障事务隔离级别的机制 7. 如何选择合适的隔离级别 8. 结语 引言 在数据库管理系统&#xff08;DBMS&#xff09;中&#xff0c;事务隔离级别是一…

12.14_黑马数据结构与算法笔记Java

目录 120 二叉搜索树 min max 121 二叉搜索树 put 122 二叉搜索树 前任后任1 123 二叉搜索树 前任后任2 124 二叉搜索树 删除1 125 二叉搜索树 删除2 126 二叉搜索树 删除3 127 二叉搜索树 删除 递归1 128 二叉搜索树 删除 递归2 129 二叉搜索树 范围查询 130 二叉搜…

ADC学习总结

ADC的架构分类&#xff1a; 1、Delta-Sigma 采样率一般是在1M以内&#xff0c;位数一般可以做的很高&#xff0c;比如24位&#xff0c;Delta-Sigma ADC采用了过采样技术&#xff0c;不需要在模拟输入端加抗混叠滤波&#xff0c;由后端数字滤波器进行处理&#xff0c;通过信噪…

网工内推 | IT经理,50k*14薪,NP以上即可,七险一金

01 海天瑞声 招聘岗位&#xff1a;IT经理 职责描述&#xff1a; 1、IT基础架构的方案制定、实施和日常维护&#xff0c;包括机房建设运维、服务器配置及运维、网络规划及运维、上网行为管理、电话、电话、监控、门禁等各类弱电系统搭建及运维 2、负责公司环境及网络安全防御体…
最新文章