Layer2 | 区块链发展新思潮
如果我们仔细回顾今年区块链技术的进展,就会发现有新想法的公链团队越来越少出现了,大家谈论以及关注的点也都不再聚焦公链上了。反倒是很多新的 Layer 2 项目在不断涌现,非常活跃。要知道在这之前,尤其是 2017 年,大家无人不谈公链,无人不做公链,各种 1CO 的项目宛如烈火烹油,火的一塌糊涂。
**为什么会有这样的思潮转变呢? **
这里还是需要提到不可能三角问题。
2017 的很多区块链团队都是野心勃勃,说要颠覆比特币,颠覆以太坊,各种区块链 3.0,甚至是区块链 4.0。比特币和以太坊所为人所诟病的 Tps ,也成了区块链团队攻击并且用来给自己 PR 的材料,很多宣称有百万 Tps 的项目诞生。
而经过一年的发展,大家发现要纯靠一套算法和共识来解决区块链的不可能三角问题是不现实的,因为如果你要保证系统的去中心化和安全性,每一笔交易必须由网络中每个节点进行处理,而这样就注定了它的性能达不到我们要求的。
于是大家的关注点开始转变,越来越多人开始关注第一层的扩容方案。以太坊生态其实一直在研究相关的扩容方案,只是大家在做公链遇到瓶颈的时候,很多人才反过来关注这些东西。
让每个节点做更多的工作量?
公链吞吐量的根本限制来自于它不能高于我们对单个节点所要求的交易吞吐量,由此突破的方向我们可以想到,是不是能够让每一个节点做更多的工作?
我们确实可以让每个节点做更多的工作,比方说把扩大区块大小扩大四倍,这个意味着每一个节点的工作量是之前的四倍,但是这样它就提高了加入门槛和牺牲了部分去中心化。因为扩容之后,节点做的工作多了,计算量也需要扩展,这样会把一批算力小的机器给淘汰,会导致算力变的更中心化。而且,这种扩容方式对提升到我们需要的区块链性能还差的远。
那么现在的问题是,我们怎么在不增加单个节点工作量的情况下做更多有用的事情?
每个节点不需要处理每个操作?
在我们惯常的思维中,每一个节点是需要并行处理每一个交易的,那么如果每一个节点不需要处理每一个操作呢?
设想一下,网络分成了两个部分,每个部分可以半独立运作。A 部分处理一批交易,B 部分处理一批交易,A 和 B 之间彼此独立,目前的交易限制就变成了两个节点同时处理的交易总量,区块链的吞吐量是翻倍的。
而如果我们把区块链分成很多部分,尽可能的细分,我们就可以成倍的增加区块链的 Tps。这就是我们俗称的分片技术( Sharding )
区块链被分成不同的部分,称为碎片,每个部分都可以单独处理交易,这个技术通常被称为第一层的扩展方案,它是在以太坊本身的基础协议中实现的。分片从设想上来说是一个非常棒的想法,但是在技术实现上,还是遇到了很多挑战和问题。 从现有的容量挤出更多有用的业务? 我们如果从相反的方向考虑,我们并不增加区块链本身的容量,但是我们用已有的容量做更多的事情呢?
这个很自然联想到的是压缩计算。
目前区块链上绝大多数的共识的达成其实并不需要经过所有节点的确认,有些东西只发生在你我之间,我们两者之间清楚就好。那么我们可不可以考虑把这些东西放在链外去做,最后底层担任一个 Crypto Court 的角色呢?这样可以兼顾去中心化、安全性和性能。
我觉得是完全可以的,而且我认为这个才是正确的一个方向。这就是我们接下来要着重讲述的「链下」技术,它们包括状态通道、Plasma、Truebit 等,它们也叫做第二层解决方案,简称 Layer2。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Web渗透测试怎么做:安全专家模拟黑客行为讲述了渗透测试的原理
现在,随着企业信息化建设的开展,越来越多的重要数据会以电子媒介的形式存放,这在方便企业办公的同时,也造成了极大的安全隐患。近年来,随着APT攻击的蔓延,使得越来越多的企业遭受不可挽回的重大损失。一个偶然的机会,有幸邀请到了一家国外专门做web安全的公司来对自己的web系统做安全测试。4周下来,我与几位安全专家多次沟通,完成了对自己系统的威胁建模,渗透测试,白盒测试,一共发现了28个漏洞。经验宝贵,因此有必要好好总结下。 在目的明确、装备精良、经验丰富的“雇佣军”式的攻击者面前,传统的安全设备已显得力不从心,企业需要做的是定期开展专业的渗透测试,来降低风险,加固安全。 那么,什么是渗透测试? 渗透测试,是渗透测试工程师完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标网络、主机、应用的安全作深入的探测,发现系统最脆弱的环节。 如果说安全检测是“横向地毯式自动化扫描”,那么渗透测试就是“纵向深度人工化入侵”。 可见渗透测试的目的是发现目标系统潜在的业务漏洞风险。 安全问题都体现在输入输出的问题上,能够分析数据流就有迹可循了。先知道渗透测试的流程,用工具找到漏洞,了解并且复现它。 一、如何...
- 下一篇
一览js模块化:从CommonJS到ES6
本文由云+社区发表 模块化是指把一个复杂的系统分解到一个一个的模块。 模块化开发的优点: (1)代码复用,让我们更方便地进行代码管理、同时也便于后面代码的修改和维护。 (2)一个单独的文件就是一个模块,是一个单独的作用域,只向外暴露特定的变量和函数。这样可以避免污染全局变量,减少变量命名冲突。 js模块化规范有:CommonJS、AMD、CMD、ES6的模块系统。本文将依次介绍下每个规范。 0.早期:用script来引入js模块 <script type="text/javascript" src="a.js"></script> <script type="text/javascript" src="b.js"></script> <script type="text/javascript" src="c.js"></script> <script type="text/javascript" src="d.js"></script> 缺点: (1)加载的时候会停止渲染网页,引入的js文件...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Red5直播服务器,属于Java语言的直播服务器
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS8安装Docker,最新的服务器搭配容器使用
- MySQL8.0.19开启GTID主从同步CentOS8
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS7设置SWAP分区,小内存服务器的救世主