在本文中,我们将以以太坊区块链上的分片技术为例,分析分片技术将如何实现区块链扩容。
在本文中,我们将以以太坊区块链上的分片技术为例,分析分片技术将如何实现区块链扩容。
众所周知,目前最常用的区块链是以太网,所以理解为什么以太坊开发者社区希望在以太坊上采用分片技术,将有助于理解分片技术是什么,以及分片技术为什么是一个受欢迎的扩容解决方案。
ETHGasStation表示,在以太坊网络中,将交易添加到以太坊区块链大约需要1.78分钟,生成一个新区块需要32秒,平均每秒处理15-20笔交易。可以看出,以太坊生态系统是一个对矿工有利,而非对用户有利的环境,如果用户想要优先处理他们的交易,就必须提高该笔交易的gas费用。
低吞吐量、高延迟和高交易费用是当前以太坊面临的主要问题,一些对扩展性有要求的服务和应用不太适合采用以太坊网络。以太坊吞吐量低的主要原因是每个节点都要处理系统中的所有交易。
分片技术是什么?
简单地说,分片是一种分区方法,将计算工作量和存储工作量分布到P2P网络上,这样每个节点就不负责处理整个网络的所有交易,而是只处理自己本分区的信息。
为了进一步了解分片,我们从实现分片最简单的方式开始讲,V神在他的文章中将这种方式称为“scalingbyathousandaltcoins”。
在这个分片方式中,我们不会只运行单条区块链,而是运行多条区块链,并且不是将每条链称为区块链,而是称为shard。每个分片都会拥有独立的验证者或节点网络,即通过PoW机制挖矿或者质押投票机制来验证交易和生成区块的网络参与者。
分片技术面临的一些主要挑战
在尝试使用分片技术中,我们发现的第一个问题是,由于每个分片都有自己的验证者,单个片区的安全性就会比整条链更差。例如,一条有X个验证者且没有分片的区块链,决定硬分叉成一条有分片的链,并将X个验证者分摊到10个片区中,那单个片区中的验证者数量就是X/10个,因此只需要控制总验证者数量的5.1%就可能破坏一个分片。
我们遇到的第二个问题是:“由谁来为每个分片选择验证者?”对于一个坏的参与者来说,如果所有5.1%的验证者都在同一个分片中,则控制5.1%的验证者会造成不好的情况。如果验证者无法选择验证哪个分片,则控制5.1%验证者的参与者极不可能在同一分片中获得所有验证者,从而大大降低了它们破坏系统的能力。
实际上,几乎所有的分片设计都依赖于某种随机性来为分片分配节点,且随机性和验证者分配都需要不针对任何特定分片的计算。为了实现这种计算,几乎所有现有的设计都包含一条单独的区块链,负责执行维护整个网络所需的操作。
这个链在以太坊中称为信标链,负责生成随机数、为分片分配节点、接收分片的信息更新、处理权益证明和其他各种功能。
信标链也有一些不足之处。因为信标链需要做一些记账计算工作,且这些计算量是与系统中分片的数量成正比的,所以分片数量越多,信标链的计算工作量就越大。这就出现了与没有使用分片网络时的同样问题:低吞吐量和高延迟,所以分片网络存在一个与生俱来的可扩展性限制的问题。
但是,分片网络的结构确实对节点的任何改进都具有乘法效应。因为任何提高节点效率的提升都会使节点能更快地处理交易,如果运行网络的所有节点处理交易的速度都变成4倍,那每个分片能够处理的交易量将是之前的4倍,且信标链能够维持的分片数量也将是之前的4倍。由此来看,整个系统的吞吐量将变成之前的4x4=16倍。
如何将数据分割为碎片?
让我们先看看节点在区块链上主要执行那些事务:
1.处理/验证交易
2.将经过验证的交易和已完成的区块传播给其他节点
3.存储所有交易的历史
随着网络的发展,节点需要能够跟上网络的需求,从而随着网络的发展而增长;
1.随着需要处理的交易的数量不断增长,要求每个节点增加更多的计算能力
2.随着需要中继的交易的数量不断增长,节点在中继交易和区块时需要更多的网络带宽;
3.随着状态的增多,节点在存储数据时需要更多的存储空间。
从这三点可看出,无论每秒的交易量和中继的交易量是否增加,数据存储都会增加。
虽然很多人提议过对存储进行分片,而不是对交易处理进行分片,但是有一些项目已经实现了对交易处理的分片,最常见的分片类型被称为“状态分片”,在状态分片中,每个分片中的节点都在搭建自己的分片链,这条链包含的交易只会影响该分片全局状态中本地的状态。这意味着分片中的验证着只需要存储本地的状态,并且只需执行和中继那些影响本地状态的交易。
来源|hackernoon
作者|TiaanWolmarans
翻译|头等仓Annie
编译|头等仓AlonsoChen
文章版权属原作者,翻译由头等仓提供,任何转载请保留前言信息。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。