Furein:区块链分级、分层、分片规划

2019-09-03 14:51     来源:     作者:通讯员2

       Furein假设你关心区块链的可扩展性规划,Furein认为那么你可能会遇到分层规划和分片这两个概念,Furein今天介绍这两个概念,一同补偿分级这个概念来修改社区谈论分层规划时的一个误区。

  第1章 分级规划

  在比特币扩容争议中,小区块的支撑者最常运用的一个支撑小区块的逻辑就是应该选用分层规划——主链承当结算层,闪电网络充当支付层,或许称为大额生意走结算层,小额支付走闪电网络。

  但我觉得主链和闪电网络将这种跋涉相同功用,按功用的规划规划分红“分层”,并不能实在称为分层规划,这个应该称为分级规划。

  我从前做机械规划的,规划过过滤粉尘的机器,就常常会用到分级规划。运用一个粗孔滤芯,先过滤掉一些大颗粒粉尘,然后再用细孔滤芯,过滤小颗粒粉尘。处理同一类政策但“物理大小”不相同,规划成多级。这样规划的长处在于节省运营本钱。假设过滤器不分级,直接按最小颗粒来规划滤芯,那很快就要换滤芯,越细孔的滤芯本钱越高。但分级成,运用两级来分担过滤任务,粗孔滤芯更廉价,让粗孔滤芯先过滤掉大粉尘,细孔滤芯压力就小,这样可以节省本钱。

Furein:区块链分级、分层、分片规划(图1)

  分级规划在我们日子中对错常常见的,我们家庭常用的饮用水过滤器就是分级的。

  比特币扩容方案选择的时分,有人提出运用闪电网络来分流主链的压力,这归于分级规划。因为这种提议,主链和闪电网络跋涉的功用是完全相同的,都是发生意的支付行为。虽然有人将主链的生意行为称为“结算”,但这个叫法无法改动行为的功用。

  因为比特币主链上发生意的本钱是最高的,对个人来说,需求支付矿工费,对比特币系统来说需求全部节点来无缺验证生意,需求系统的CPU、带宽、硬盘。而在闪电网络上发生意的本钱是较低的,对个人来说,闪电网络里的手续费更低,速度更快,对比特币系统来说,并不需求全部节点去验证闪电网络内的生意,只需求验证进出闪电网络的生意。

  相同的,运用offchain钱包来无缺同钱包内的转账,也归于分级规划。因为offchain钱包,只是钱包公司自己无缺数据的调整就可以了,这和在比特币网络上发生意是完全不相同的本钱。

  分级规划中,榜首级(主链)是根柢就不需求关心第二级是什么姿势的,但第二级(闪电网络和offchain等)是需求关心主链的。比如闪电网络就需求监督主链,以保证不会呈现支付通道的人做广播欺诈。

  分级规划中,第二级出了问题,并不会损害榜首级主链。比如offchain钱包被盗了,跟主链毛联络都没有。但反过来则不相同。

  分级规划其实是人对本钱的考量而催生出来的,并不需求顶层规划,让商场安闲博弈就能呈现出来分级处理方案。

  第2章 分层规划

  互联网最成功的分层规划应该是网络协议分层,就是我们熟知的七层网络结构,什么物理层、链路层、网络层……

  分层的根柢规划原则是:

  各层是独立的,各自层做好自己的事即可。

  层和层之间的功用是不相同的。

  层和层之间的交流都是通过接口通讯,只需接口坚持不变,层内部的规划可以改动,且不会影响其他层。

  现在各种区块链的规划,各种宣称号自己是分层规划的,往往都是不符合上述原理。

  比特币比较靠近分层规划的思想是侧链的规划原理。侧链可以无缺独立规划成和主链完全不相同的功用,比如RSK政策是结束智能合约。而比特币主链结束的中心功用就是UTXO的转账和账本的更新维护。侧链和主链只是通过特定的生意来充当接口。但侧链往往需求关心主链在干吗,主链是不需求关心侧链的。这就是侧链和主链并不是互相独立的。

  比特币(包括BTC和BCH),尤其是BCH的OP_Return就是一个将来非常好的扩展为分层的规划。比特币主链对OP_Return里的数据只关心是否为真,并不关心具体的数据。那OP_Return就可以在里面规划出一整套新的功用,只需这儿面的代码终究在BCH主链的生意里为真。而主链和OP_Return规划出来的新层是不需求互相关心的。

  很早之前,以太坊的V神就想在OP_Return上结束他的以太坊的智能合约幻想,怅惘当时被Core开发组约束了。

  比特现金BCH的开发正在拿OP_Return大做文章。

  其实比特币的元币协议,就是一个很好的分层规划,只是一贯没有被广泛运用起来。但现在我还没有充值理解元币协议,往后搞懂了再来讲。

  以太坊并不是分层规划,全部的功用都是在同一层上。以太坊全部的Dapp都是在同一套账本层里干事,并没有分层处理。

  第3章 分片规划

  分片规划现在还没有做完,无论是在比特币仍是在以太坊上,都没有结束。但我可以简略讲下原理。

  现在比特币网络处理生意是这样的,一个节点收到一波生意,比如1万笔,节点会先将这些生意序列化,即给这些生意编个号排队,然后一笔一笔去验证。假设碰到某一笔验证无法通过,比如需求前置零供认的生意,那就先缓存起来。假设碰到有不合法的生意,则直接丢掉。

  比特币现在的这种处理生意方法就是串行的,即一个时间点,只能处理一笔生意。这样做就会有很大的瓶颈,单一电脑再牛逼,处理才干也会有上限。

  那能不能分红两台电脑,比如将1万笔生意,分红两波,5000笔一波,分别发给一台服务器去验证呢?不能!现在比特币还不支撑这种并行验证。

  怎样要做到并行验证呢?那就是要讲到分片规划了。#p#分页标题#e#

  比特币的UTXO的“物理实体”是这样的,一笔UTXO在电脑里存的首要数据是以下四个部分:

  1生成这笔UTXO的生意的txid;

  2生成这笔UTXO的生意的输出序列号index。因为大部分生意是一个或多个输入,多个输出,榜首个输入序列号是0,第二个是1。

  3确认脚本lockscript。

  4是金额value

  其间txid是16进制表达,即运用0到F来表达,假设将首字符来分类,0归一类,1归一类……F归一类,就可以分为16类。假设运用首两个字符来分类,00一类,01一类……FF一类,那就可以分为256类……假设运用4个字符呢?16^4类。

  我们将上述的一类称为一个片,这就是分片。分片后,将一类分给一台电脑去处理,另一类分给另一台去处理……,256片就可以分红256台电脑来处理。

  而UTXO的txid就是生意的txid,则打包生意的区块,也可以按这种分类来打包,比如分红256片,则同一区块里,可以设成256个分区,一个分区打包一个片。

  也就是说,UTXO、生意、和区块都可以按相同的规则分片。

  这样比特币全网就可以结束节点可选择处理哪一个分片,比如我工作一个节点,我只收、验证和广播特定分片的UTXO、生意和区块。

  这样就结束了比特币网络的并行扩展。

  但这种分片仍是很凌乱的,我上面讲的只是根柢的原理,要结束规划对错常凌乱的。比如一个UTXO去花费两次,是可以结束不同的txid,然后发到不同的分片,假设分片之间没有机制来通讯,则可能会双花成功,但假设分片之间还要为这种侵犯许多通讯,则还不如不分片呢。

  但假设结束了分片,那比特币网络则是可以结束无限扩展,什么百万TPS,都不在话下,什么1M、8M、32M根柢就不是事,至少1G区块。因为一台电脑处理不了,可以搞16^n台来处理好了,一个人买不起16^n台电脑(中心化)的话,那就找16^n个人每人买一台好了。

  以太坊的分片更凌乱,我暂时讲不明白。

  BCH的开发正在全力开发UTXO分片,我也在努力学习这些知识,以求能贡献一点知识。

上一篇:“区块狗”跑路:高科技是幌子,割韭菜是本质

下一篇:Furein:区块链名词的有趣解释

*免责声明: 凡本网注明“来源:XXX(非神州瞭望网)”的作品,均转载其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。若内容涉及投资建议,仅供参考勿作为投资依据。本网站无法鉴别所上传图片或文字的知识版权,如果侵犯,请及时通知我们,本网站将在第一时间及时删除。


推荐阅读