以比特币为代表的公有区块链系统一直有一个广为诟病的缺点:交易性能低。交易性能低包括两方面:一是交易吞吐量小,二是交易速度慢。交易吞吐量是指系统在单位时间内处理请求的交易数量。交易速度是指系统对交易从提交请求到确认交易成功的平均时间。

在比特币区块链系统中,这两个值低得可怜。交易吞吐量是平均每秒7笔,交易速度是平均1小时能完成交易确认。对比一下一般商业银行的核心系统交易处理能力,交易吞吐量超过每秒2000笔,交易速度基本要达到实时。

正是由于比特币区块链的交易性能太低,很多人认为这个性能缺陷是导致比特币无法成为交易货币的重要原因。是什么导致了比特币区块链系统的交易性能低呢?

区块链作为一种分布式账本技术,核心功能是要把账目都记下来。通常公有区块链的记账方式相当于每个人都在一页账页上一条一条的记录交易,记录了一定时间后,通过某种竞争办法选出记录的最好的一张纸,大家都复制一份,添到自己的账本上,然后开始新的账页记录和竞争。

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

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

要想提升公有区块链的性能,最直接的办法就是增加每个账页内的交易数量(区块扩容)和减少记账周期。(比特币的扩容之争,以及比特币现金(BitCoin Cash)的出现,就是区块扩容引起的,以后我们会详细讲这个问题。)对于区块扩容,通常直接影响到区块的传播速度。当然,以现在的网络带宽和速度来看,比特币当初确定的1MB大小的区块确实是比较小,但是小区块也有小区块的好处——可以采用更多的通讯方式进行传播,比如卫星通讯。

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

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

转回头看看传统金融系统的结构。在我国,不同的商业银行通过央行提供的大小额支付系统实现了跨行交易。而普通用户在使用银行系统的时候,很多交易都是在同一个银行内进行的,只有涉及到跨行交易时,交易数据才会被提交到央行的系统上进行处理。因此,大小额支付系统上的交易数大大降低了。

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

举例来说:Alice、Bob、Charlie、Dave 4个人之间发生了一系列交易:一开始每个人都有100美元,然后Alice转给Bob 50,Bob转给Dave 120,Dave转给Alice 50,Dave转给Charlie 100,Charlie转给Bob 80,Bob转给Dave 100。整个转账过程如图所示:

这些交易之间经过清算,结果就是:

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

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

从经济学角度上看,小额交易由于额度较小,对于链外交易的服务商来说,篡改数据获得的利益要小于持续提供服务带来的盈利。因此,小额交易转移到链外进行,从信任角度来讲,没有过于明显的区别。未来公有链的发展趋势很可能最终变成一个类似央行清算中心的服务提供者,而实际上大量的小额交易只需要在链外交易中进行即可。

原文发布时间为:2017-10-17
本文作者:敖萌
本文来源:雷锋网,如需转载请联系原作者。

区块链研习 | 什么是区块链的链外交易和链内交易相关推荐

  1. 区块链研习 | 区块链里所说的“智能合约”是什么? 本文作者:敖萌 编辑:温晓桦 2017-10-11 20:31 导语:谈到区块链,必然离不开“智能合约”这个词。我们在本系列的第一篇文章中提到“智能

    区块链研习 | 区块链里所说的"智能合约"是什么? 本文作者:敖萌 编辑:温晓桦 2017-10-11 20:31 导语:谈到区块链,必然离不开"智能合约"这个 ...

  2. 区块链研习社北京聚会记录稿

    创业 主持人:今天我们的第一个主题就是创业. 谭智勇:我在农行工作了 7 年,出来后担任过区块链公司的技术总监,后来又出来自己干.上一家公司,技术是区块链的技术,但至少目前,不是未来发展的方向.而公有 ...

  3. 区块链研习 | 详解三大主要跨链技术,如何推动价值网络的实现

    2017年以来,区块链项目井喷状出现.截至2017年底,GitHub上的项目数超过8万,另据coinmarketcap数据显示,目前已有token种类达到1506个,总市值超过4000亿美元. 但是在 ...

  4. “正道区块链,清风全国行”,脑海链提出知识经济产业区块链应用方案

    7月28日,以"正道区块链,清风全国行"为主题的区块链研习社2018年全国行活动在成都顺利举行. KnowHowChain脑海链CEO谢宏中作为特邀嘉宾与同行们一起解读公链.跨链. ...

  5. 都说区块链颠覆未来,区块链究竟能改变什么?

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 区块链,有时像个天使,有时像个魔鬼. 有人说它是金融泡沫,说他是彻底的庞氏骗局:有人说它能改变世界,有人认为区块链的可以 ...

  6. 区块链软件公司用区块链技能重塑科学出书社

    区块链软件公司用区块链技能重塑科学出书社 该行业现在的性质引发了影响研讨社区的几个问题:获取学术研讨的高成本.出书商而非作者具有版权.评定员缺少奖赏和认可,以及低质量期刊的众多.该行业面对的另一个主要 ...

  7. 区块链100讲:区块链中的随机数

    2019独角兽企业重金招聘Python工程师标准>>> 我们生活的环境充满了随机性.一直以来,运气,概率和命运这些概念都与随机性紧紧联系在一起.所有人类无法理解或无法预测的事物往往都 ...

  8. 区块链80%项目靠同一个故事拿钱,但标准链说最坏的时机就是好的开始

    区块链80%项目靠同一个故事拿钱,但标准链说最坏的时机就是好的开始 2008年,一位名为中本聪大神在一个密码学邮件列表中上传了一份名为"比特币:一个P2P电子货币系统"的白皮书,比 ...

  9. 【区块链与未来】区块链技术将重塑我们的世界

    [区块链与未来]区块链技术将重塑我们的世界 枯叶子 2016-09-13 17:28:25 浏览752 评论0 区块链技术 摘要: 本文是[区块链与未来]的第四篇,也是整个区块链学习的最后一篇,在本文 ...

最新文章

  1. mysql 不同分区 同时insert_一文看懂mysql数据库分区表概念、类型、适用场景、优缺点及原理...
  2. 当年的程序员,如今已是父母,七个方法让孩子爱上学习!
  3. kafka一直rebalance故障,重复消费
  4. 下载nodejs的mysql安装包下载安装_Node.js安装 下载
  5. python学习-38迭代器和生成器
  6. 两教授吐槽:如今博士研究生的论文写作水平为何如此堪忧?
  7. 十五、Python操作mysql数据库
  8. Vuex使用详解,附加项目遇到的问题(简单明了)
  9. 抖音客新版UI短视频点赞任务系统完美运营级别[等级功能+信誉积分+保证金]
  10. Shell基础(一):Shell基础应用、简单Shell脚本的设计、使用Shell变量、变量的扩展应用...
  11. undefined reference to `kbhit'
  12. 替换Android中VM 加载动态库方式
  13. mysql性能测试工具之sysbench
  14. 局域网 服务器禁止共享文件夹,一键设置局域网共享文件夹权限,禁止他人打印...
  15. C++中的gotoxy函数
  16. itext合并两个PDF流
  17. 创业和工作的心态问题
  18. Stacked Hourglass Networks简析
  19. Torus:为Kubernetes量身打造的分布式存储方案
  20. 房产估值模型训练及预测结果

热门文章

  1. 虚拟服务器设置upnp,TP-Link路由器如何设置UPNP开启【设置步骤】
  2. 无需数据线,在Windows电脑上就可以浏览和编辑华为的手机文件
  3. 系统镜像_如何通过云服务器创建Windows系统镜像
  4. 如何设置电脑锁屏时间_电脑如何设置多屏显示?多屏显示的设置方法
  5. 为什么有些xpath绝对路径拿不到数据_我写的Xpath 为什么爬取不到内容
  6. java indexof int_Java Stack indexOf(Object, int)用法及代码示例
  7. cnetos7系统命令补全操作
  8. 数据库系统概论:第八章 数据库编程
  9. 优秀logo设计解析_优秀Logo设计!汽车类标志表现手法
  10. python自带模块连接数据库_Python模块Sqlite数据库模块