(1)网络分片
网络按照一定规则选取节点形成分片。实施分片的第一步就是创建分片,因此网络分片是交易分片、计算分片和状态分片的基础。
(2)交易分片
交易分片:将交易按某种规则分配到不同分片。其思路为,按一定规则将交易分配到同一个分片处理,则既能够达到并行处理的目的又能避免双花问题的出现。在不同的记账方式下,对交易分片的要求有所区别。
目前区块链网络中存在两类记账方式,分别为UTXO(Unspent Transaction Outputs,未使用交易输出)模型和账户/余额模型,典型代表分别如BTC和ETH。
UTXO模型:在BTC交易中,每笔交易都会有一个或多个输出,UTXO指尚未花费的区块链交易的输出,可以作为新交易的输入,而已花费的交易输出不可再花费,类似纸币交易情况下的支付和找零,顾客将一张或多张纸币支付给店家,店家则将一张或多张纸币找零给顾客。
账户/余额模型:系统记录每个账户的余额,在进行交易时,系统检查账户是否有足够余额用于支付,类似于银行转账时,银行会记录每个账户的余额,只有账户余额大于所需转账金额时,交易才能够进行。
UTXO模型下,交易分片需要跨分片通信。在账户/余额模型下,由于一笔交易只有一个输入,因此只要将交易按照发送者地址进行分片,就可以保证同一个账户的多笔交易在同一个分片中处理,有效防止双花。在UTXO模型下,一笔交易可能包括多个输入和多个输出,仅仅按照地址分片无法避免双花问题,分片之间不得不进行通信,如果限制跨分片交易将限制平台的可用性,而允许跨分片交易则不得不权衡跨分片通信的成本和性能提升带来的收益。
(3)计算分片
计算分片:只有网络的一个子集(如一个分片)执行计算,从而高效执行运算密集的任务。
(4)状态分片
状态分片:特定的分片只存储部分状态,而不是完整的区块链状态。状态分片能够减少状态储存冗余,状态分片是最为理想化的分片方式,但是面临着一系列挑战,如跨分片通信、数据有效性和数据可用性等。
区块链网络中验证节点的主要任务包括:
1)处理交易,随着处理交易量的不断增长,节点将需要更多的计算能力;
2)将已被验证的交易和已完成的区块中继给其他节点,随着需要中继的交易的数量不断增长,节点将需要更多的网络带宽;
3)存储整个网络的状态,随着状态的增多,节点将需要更多的存储空间,即便TPS不增加,节点的存储需求依然会不断增加。
这三项任务中的每一项都对验证节点提出了越来越高的要求,分片一方面能够降低验证节点的负载,网络分片、交易分片和计算分片可以很好地解决计算能力瓶颈,而状态分片则能够解决网络带宽和存储能力瓶颈,另一方面降低了需要验证事务的节点的数量。
2
分片挑战
对于目前的区块链而言,分片是一个令人兴奋和充满希望的方向,但是分片在提升了效率的同时也带来了新的问题,主要包括分片内部的安全和效率问题,以及跨分片交易引发的跨分片安全和效率问题。
分片的第一步即网络分片,将网络中的节点按照某种规则分配到不同的分片,这里的问题是,单个分片的算力以及单个分片内的验证节点数量远低于分片之前的整个区块链网络,从而导致对采用PoW共识的单个分片发起51%攻击,或者对采用非PoW共识的分片发动女巫攻击(Sybil Attacks)的成本也极大地降低了。因此,采用何种共识机制、如何划分分片大小以及如何为分片分配节点以防止恶意节点控制分片变得至关重要。现有的分片设计主要通过某种随机性分配验证节点,降低作恶者控制单个分片的概率,针对恶意分叉问题可以通过将部分分片链上的区块连接到信标链(信标链负责协调系统的参与者,如随机分配验证节点到分片及从分片接收状态更新等),并将分叉选择规则设定为首选交叉连接到信标链的链。对女巫攻击问题的解决方案包括要求节点提供抵押物或执行PoW等,以提升作恶成本。
此文由 比特币官网 编辑,未经允许不得转载!:首页 > 比特币行情 » 分片:分而治之,无限扩展 ――区块链技术引卷之四