【区块链 链外交易】SoK Off The Chain Transactions

news2024/11/26 20:48:26

SoK Off The Chain Transactions

摘要

本文对区块链进行了简单介绍,分析目前区块链的缺点——交易吞吐量和速度慢的原因,在此基础上引出解决此问题的方法,也是本轮将要论述的主题——链外交易。之后介绍了链外交易的基本概念和结构,并对两种类型的链外交易:通道和信任链进行了简单分析。对于通道,本文介绍了通道的结构和生命周期,通道同步技术,通道路由算法等,对于信任链,我们介绍了其基本概念和两类信任链:分别是是基于帐户的NOCUST,以及基于UTXO的Plasma。最后,本文介绍了链外交易的隐私保护和安全性。

关键词:区块链、比特币、链外交易

Abstract

This paper gives a brief introduction to blockchain, analyzes the shortcomings of blockchain at present - the reason for slow transaction throughput and speed, and on this basis leads to the method to solve this problem, which is also the topic of this round - off chain transactions. Then it introduces the basic concept and structure of out of chain transactions, and analyzes two types of out of chain transactions: channel and trust chain. For channels, this paper introduces the structure and life cycle of channels, channel synchronization technology, channel routing algorithm, etc. For trust chains, we introduce their basic concepts and two types of trust chains: account based NOCUST and UTXO based Plasma. Finally, this paper introduces the privacy protection and security of off chain transactions.

Keywords:Blockchain, Bitcoin, Off chain Transactions

一、 概述

区块链被认为是继蒸汽机、电力、互联网之后的第四次技术革命。由于区块链技术具有去中心化、公开透明、可追溯性和不可篡改等特点,在一定程度上,可以解决“中心化”导致的信息不对称问题,从而实现去中心化社会。目前,区块链技术已经被广泛应用到互联网金融领域。区块链是一个去中心化的分布式账本数据库,每一个节点都有一个“账本”,记录着每一笔交易的发生过程或原因。区块链记录着每一笔交易中的相关信息,并且这些信息具有不可篡改的特性。但区块链目前表现出很高的延迟,无法处理与传统托管金融系统相当的负载。[1]

img

区块链链上交易与其他支付方式相比

区块链的第二层次的协议基于(第一层)区块链,它只作为争端的追求权,交易并不直接写入,通过向外部传送交易,从而防止每个交易扩散到整个网络。第二级协议的交易只需数秒,成本就会降低,并且可以扩大区块链。

二、 引言

以比特币为代表的公共区块链体系,其最大的缺陷就是交易表现不佳。交易表现较差的原因有两个:一是交易吞吐量较小,二是交易速度较慢。交易吞吐量是指一个系统每小时处理的请求数目。交易速率是指从一个客户提交一个请求到一个交易被确认的平均时间。这两个数值在比特币的区块链系统中是非常低的。平均的交易吞吐量为7次/秒, 速率平均每1小时可以完成1次交易。和普通的商业银行相比,每秒的交易吞吐量都在2000以上,几乎是实时的。[2]

img

区块链

因为比特币区块链在交易速度及吞吐量中表现得如此之差,许多人都将其视为其性能上的不足,从而使其不能作为一种交易货币。是什么原因造成比特币区块链系统的低效能呢?

作为一种分布式的帐簿技术,区块链的核心作用就是记录所有的帐款。一般情况下,公共区块链的记账方法就是一页一页的记录,记录一段时间后,就会用一种竞争的方法,将最好的一张记录下来,然后所有人都抄录一份,加入到自己的账簿中。

这里面有两个限制:账页的大小和记账的周期。账页大小确定了每个区块所能容纳的交易数量,每个区块容纳的交易数量除以记账周期就是交易吞吐量;

img

而记账周期则直接决定了交易确认时间,记账周期乘以大概率确认区块有效性的区块数(比如比特币里我们通常认为6个区块基本上就能确定交易有效)就是交易确认时间。

img

要提高公共区块链的效能,最简单的方法是在每一页面上增加交易(区块扩展),并缩短记录时间。对于区块的扩展,一般会对区块的传输速率产生直接的影响。当然,考虑到目前的带宽和速率,最初的1 MB规模的比特币的确是小了一点,但小块也有小块的优势,那就是可以使用更多的通信手段,比如卫星通信。

img

区块链

减少记账周期,则会影响到区块传播的范围。如果区块过大并且记账周期太短,就会造成去中心化程度的降低。原因很简单,一个矿工挖到了一个区块,其他矿工还在下载接收这个区块时,他已经开始挖下一个区块了。显然,接收一个区块所占用的时间在一个记账周期中的比例越低,对于全体矿工来说就越公平。否则,先发优势过于明显,导致整个系统的去中心化程度降低。与此同时,整个网络同时挖出块的概率将会大大增加,就会需要更加复杂的机制来解决这个问题。

因此,对于公有链来说,用改变区块链自身的方式来提升区块链的交易性能,想要追赶现在金融系统的交易处理能力,难度还是非常高的。换句话说,我们想提高公有链的链内交易的交易性能,难度极大。

img

区块链

再回过头来看一下传统的金融体系。目前,国内各大商业银行均采用中央银行的大额小额支付系统进行跨行业务。而一般的用户,在银行系统中,大部分的业务都是在一家银行内部完成,而当涉及到跨行业务的时候,这些数据就会通过中央银行的系统来进行处理。结果是,大量的小额付款系统中的交易量大幅减少。

区块链上也可以采用类似的办法来解决。我们把这种方式统一叫做链外交易。也就是说,某一个组织或者机构可以提供一些服务,让我们在链外记录这些交易,每隔一定的时间,把这些交易的结果写入区块链即可。

尽管转账的过程非常复杂,但是只需要在链上记录下来每个时刻的账户状态(就是每个时间段的清算结果),最终结果与所有交易信息都记到链上效果是一样的。区别在于从链上的数据并不知道交易发生的真实情况。

除了这个区别以外,还有一个重要的区别:在链外交易时,提供这些链外交易服务的组织或机构的信用与整个公有链的信用是有差别的。在链外交易时,这些交易已经不是一个去中心化的交易了,而是一种局部的中心化的交易系统。当然,由于定时会把交易清算结果写回链上,一旦结果写回链上,我们就能够确认提供链外交易的组织是否存在篡改数据的情况。[2]

从经济学的观点来看,由于小额交易的限额很低,所以在链外交易中,通过篡改数据所获取的收益要比通过不断地提供服务所能得到的收益要少。所以,从信用的角度来说,小额交易向外部转移,并没有太大的差别。将来,公共链的发展趋势将会是一个类似于中央银行的结算中心的服务提供商,而事实上,很多小规模的交易都是通过外部的交易完成的。[2]

三、 链外交易基本结构

img

链外交易基本结构示意图

如图所示,链外交易主要分为4层:硬件层、网络层、区块链层、链外层:[3]

(1) 硬件层:可信执行环境(Trusted Execution Environments ,TEE)提供了一个完全隔离的环境,可防止其他软件应用程序、操作系统和主机所有者篡改甚至了解在TEE中运行的应用程序的状态,从而在其他层实现了高效协议,如链外支付[4],可以消除争议流程和向后兼容[5]。例如,Intel Software Guard eXtensions(SGX)提供了一个TEE的实现。TEE和区块链具有互补性。一方面,区块链可以保证其状态的强可用性和持久性,而TEE不能保证可用性(因为主机可以自行终止TEE),也不能可靠地访问网络或持久性存储。另一方面,区块链的计算能力非常有限,必须公开其整个状态以供公开验证,而TEE产生的开销与本地计算相比最小,并通过远程认证提供机密状态的可验证计算。因此,构建能够同时利用两者的混合协议是很有吸引力的。

img

可信执行环境

(2) 网络层:区块链的网络层,作用是节点之间的信息交流和传递,参与区块数据的校验和记账过程[6]。在区块链中,网络层是保证其可扩展性、安全性和隐私的关键。有效的网络层能够提高交易的吞吐量,增强对恶意程序的抗性[7]。除了公用区块链P2P网络,区块链矿工们也会利用专门的矿工P2P网络,例如光纤来实现交易[8]。

(3) 区块链层:第一层是一个固定的、只能附加的区块链,它可以从网络中收集所有的交易。每次交易都会对更新的区块链状态进行编码。交易可以在双方之间进行数字资源的交换或者调用一个应用(也就是智能合同)。区块链的完整性通过参与者之间执行的共识算法来保证。共识算法依赖于例如计算上昂贵的工作量证明(PoW)或大量替代品[9]。设计第二层协议的关键是底层区块链的脚本语言。类似比特币的区块链基于受限的脚本语言,并通过一组未抑制的事务输出(UTXO)进行操作,而其他区块链支持图灵完备语言,实现高度表达的智能合约[10]。第二层协议通常假设区块链层的两个属性:完整性(即,仅将有效交易添加到账本)和与上限的最终同步性(即在关键超时之前,将有效交易最终添加到账本中)。

(4) 链外层:我们将链外或层间协议定义为:1、不会立即在区块链上发布每一笔交易(与链上交易相反);2、完全依赖于父链的共识算法的协议;链外协议有两种类型,分别是,通道:在n个同等方之间形成通道,COMMIT-CHAINS: 依赖于一个中央但不可信的中介。侧链由于具有自己的共识算法,因此不属于第二层[11]。

四、 通道

4.1通道概述

img

通道示意图

一个通道允许n个用户通过一致同意商定智能合约的新状态来建立。通道的生命周期包括三个阶段。1、通道建立;2、通道转换;3、通道关闭。

(1) 通道建立:所有参与用户通过在区块链上锁定资金来合作打开一个通道。资金只能通过一致的协议或通过预先定义的退款条件来释放。

(2) 通道转换:一旦通道被建立,所有参与用户都可以通过两步流程更新通道的状态。首先,某个用户提出一个新的状态转换,向所有其他用户方发送一个签名命令和新的状态img。每一方将状态转换计算为img,其中img表示应用img的转换函数,img表示与应用img相关的给定命令。其次,所有其他用户方重新计算状态转换,以验证提议的状态,然后再签署它并将其签名发送给所有其他用户方。

(3) 通道关闭:如果一个诚实的用户在本地超时前没有收到n个签名,它就认为对提议的状态有分歧。诚实的一方可以触发区块链第一层争端,在没有其他各方合作的情况下强制执行新的状态转换。

通道为各用提供的财产和安全保障有以下几点[12]:

(1) 一致建立:只有当所有用户方同意建立通道时,通道才被视为开放。

(2) 一致过渡:第二层的过渡,即没有链上争议,需要所有用户方同意。

(3) 平衡安全:诚实的一方用户总是可以在链上发生争议时从通道中撤回约定的平衡状态。

(4) 状态进展:用户可以随时在链上强制执行链外状态转换,因此状态机总是到达终端状态[13]。

建立通道:Bob和Coffeeshop都把资金存入到链上地址,Bob存入0.05BTC,Coffeeshop存入0BTC。只有通道关闭时,链上的资金才会被释放,用户才能真正拥有该资金[14]。

img

建立通道

通道转换:Bob和Coffeeshop之间的交易在链下进行,可以是多次交易。他们在建立的支付通道内通过相互在白条上签名来完成交易。每次交易,双方都保存一份相同的带有双方签名的白条。保存的白条是处理后续交易,解决交易纠纷的关键。

img

交易打白条

通道关闭:任何一方都可以申请关闭链下支付通道来进行交易结算。比如BoB 可以拿着白条:Bob 0.045 BTC Coffeeshop 0.005 BTC,到链上申请关闭链下支付通道,并进行交易结算,结算完成后 Bob 可以拿到 0.045 BTC,Coffeeshop拿到 0.005 BTC。

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

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

相关文章

PMAT:使用低覆盖度HiFi测序数据的高效植物线粒体组装工具包

PMAT: an efficient plant mitogenome assembly toolkit using low-coverage HiFi sequencing data ,一篇关于线粒体组装工具包的文献 PMAT:使用低覆盖度HiFi测序数据的高效植物线粒体组装工具包 植物的完整线粒体基因组(mitogenomes&#x…

软件项目经理面试必备PMP知识 | 软件项目管理面试题目

1. 在项目管理中,客户可以控制范围、时间和成本中的哪些方面? 范围、时间和成本构成了项目管理中的三角关系。当其中一项发生变化时,很可能会影响到其他两项。项目管理的核心在于在保证质量的前提下,寻求这三者之间的最佳平衡。作…

Metasequoia 4 for Mac v4.8.7激活版 水杉3D建模器

Metasequoia 4 for Mac是一款强大的3D水杉建模软件,该应用程序设法提供一组强大的功能,并通过非常友好的界面提供。运行水杉有几种模式,即初学者,建模(字符串),建模(图标&#xff09…

搭建端到端检索式问答系统

问答系统(Question Answering System, QA)是信息检索系统的一种高级形式,它能用准确、简洁的自然语言回答用户用自然语言提出的问题。问答系统的应用空间十分广,包括搜索引擎,小度音响等智能硬件,聊天机器人,以及政府、…

golang语言系列:学习路线图

云原生学习路线导航页(持续更新中) 本文是 golang语言系列 文章,主要展示golang语言学习的全路线图 参考:https://github.com/darius-khll/golang-developer-roadmap/blob/master/i18n/zh-CN/ReadMe-zh-CN.md

【攻防世界】file_include (PHP伪协议+过滤器)

打开题目环境: 进行PHP代码审计,发现这是一个文件包含漏洞。 我们尝试利用PHP伪协议中的 php://filter来读取 check.php 中的内容。 构造payload 并提交: 发现payload被过滤掉了,我们就需要尝试使用不同的转换器。 PHP各类转换…

鸿蒙OS开发问题:【尺寸适配算法】

背景 如何在HarmonyOS 系统上出设计稿? 问题1: 为什么要计算虚拟高度,即 virtualHeight static adaptDimension(value: number): number {let deviceDisplay: display.Display GlobalContext.getContext().getObject(display) as display.Display;le…

int的最大值加1会变成int的最小值

一、概要 int是4个字节,总共是32个bit位,所以总共能表示2^32个数 int的最大值是2^31-1,也就是2147483647,大约21亿多 减的那个1表示自然数0的位置 int的最小值是-2^31,也就是-2147483648,大约负的21亿多…

[网鼎杯 2020 朱雀组]Nmap1

打开题目 在源代码中看到了提示 先随便输入127.0.0.1 那我们试试输入 127.0.0.1 | ls 可以看到 | 被转义符号\所转义 那我们输入 127.0.0.1 /| ls 得到三条反斜线 我们猜测,我们输入的东西是被escapeshellarg和escapeshellcmd处理过后的结果 我们输入的东西必须…

银行监管报送系统介绍(十六):外汇数据报送(BOP,ACC,FAL,JSH,CWD)

2023年5月初,外管局发布了《通过银行进行国际收支统计申报业务指引(2023年版)》,该报送指引主要针对的是外管局的国际收支统计(即BOP)模块的报送。 附件 1 通过银行进行国际收支统计申报业务指引 &#x…

基于PHP后台微信网上购物商城小程序系统设计与实现(安装部署+源码+文档)

博主介绍:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程&#xff…

ArcGIS操作(四)

任务: 根据江苏省夜间灯光影像完成数据处理与分析查阅统计年鉴数据以提取建成区空间分布位置完成建成区重心转移轨迹 步骤: 这里选取江苏省2000年、2004年、2008年夜光数据进行分析 加载影像 掩膜提取 投影 栅格转面 融合 栅格转面数据时分冗余&…

Echarts实现高亮某一个点

背景 接口会返回所有点的数据,以及最优点的数据。产品要求在绘制图形后,高亮最优点,添加一个红色的样式,如图。点击select选择器时,可选择不同指标和花费对应的关系。 以下介绍实现思路 1、自定义配置选择器的数据源…

MS SQL Server STUFF 函数实战 统计记录行转为列显示

目录 范例运行环境 视图样本设计 数据统计要求 STUFF函数实现 小结 范例运行环境 操作系统: Windows Server 2019 DataCenter 数据库:Microsoft SQL Server 2016 视图样本设计 假设某一视图 [v_pj_rep1_lname_score] 可查询对某一被评价人的绩效…

【解决方案】荣耀系统Android8.0 system目录Read-only file system

本来以为直接把Charles证书改成系统证书格式,然后通过mt管理器root之后移动到系统证书目录就行了,结果访问baidu仍然显示网络错误,折腾一晚上。安装为用户证书,又与系统证书冲突。 手机型号:荣耀v10 EMUI&#xff1a…

ardupilot开发 --- 远程标识 篇

1. wifi协议 https://zhuanlan.zhihu.com/p/660568077 AP 无线接入点 路由器STA 站点 接入路由器的终端SSID 标识符 无线网络的名称信标祯 Beacon AP通过广播Beacon祯来告诉想要接入者(STA)无线网络的信息,如SSIDWLAN数据帧 Wi-Fi网络中传输数据时所使用的数据帧格…

Oracle客户端如何连接远程数据库?

Oracle是一种常用的数据库管理系统,它具有高效、稳定的特性,广泛应用于各行各业。为了实现远程数据库的连接,我们可以使用Oracle客户端工具。本文将介绍如何使用Oracle客户端连接远程数据库,并讨论其使用场景。 Oracle客户端工具 …

parallel linux虚拟机没有root权限

前言 今天刚在parallel上装上linux虚拟机,安装的是Debian发行版。用终端输入命令时,无意间发现当前用户竟然不是root用户,岂有此理!众所周知,Linux系统一般安装之后都是默认root用户的,但是可能parallel先…

简单几分钟将GPT部署到移动磁盘,从此不需要网络带着跑

Chat GPT 发布已经一年多,目前也有很多平替产品出现,为什么我们还是需要一个本地可以跑在电脑上的 GPT 模型呢? 隐私:使用某个公司提供的服务,避免不了你的个人数据安全无法得到保障,特别如果你要咨询关于…

软件工程知识体系 Chapter3 软件构造

介绍 软件构造一词指的是通过编码、验证、单元测试、集成测试和调试等组合详细创建工作软件的过程。 软件构建知识领域(KA)与所有其他KA都有关联,但它与软件设计和软件测试的关联最为紧密,因为软件构建过程涉及重要的软件设计和…