每笔新增转币交易都要在自己的区块链中以字节的形式存储在每一个新产生的区块中。区块容量是指,限定在在每个区块存储的字节数,也就是先定了每个区块容纳的交易。所以比特币高速发展下,会产生拥堵。

  背景介绍

  区块链技术随着比特币等数字加密货币的日益普及而越来越受关注。区块链技术是一种新型的去中心化协议,能安全存储数字货币、股权债权等数字资产。区块链技术通过运用数据加密、时间戳、分布式共识和经济激励等手段,有效地解决了拜占庭将军问题中的共识问题,实现了在节点无需互相信任的分布式系统中实现去中心化的点对点交易,从而有效降低了现实经济的信任成本,重新定义了互联网时代的产权制度。

  区块容量节点

  区块链存储容量可扩展模型中的节点包含三个角色:用户节点,储存节点和验证节点。用户节点是原始数据拥有者,储存节点是副本的保存者,而验证节点是储存节点稳定性的验证者。一个节点可以同时具备两种或者三种角色。同时,模型建立了两条新的区块链:P(Position)链和 POR (Proofs of Reliability)链。P链保存在用户节点中,记录数据各个副本被保存在存储节点的位置。POR 链保存在验证节点中,记录各个储存节点的可靠性评价。将存储节点位置信息和储存节点的可靠性评价写入基于区块链技术的 P 链和 POR链中,也是利用了区块链不可被篡改的特点,保证数据的安全性。

  区块链存储容量可扩展模型

  分布式存储方法,提出了区块链存储容量可扩展模型。其核心思想是将一条完整的区块链分成若干部分,分布存储在系统中,如图所示。

  

  在现有的区块链技术中,一个攻击者想要篡改数据,需要控制网络中 50%以上的节点。在区块链分布式存储后,网络中区块链的副本数减少,攻击者就可以在控制少于 50%节点数的情况下修改区块链数据。这在一定程度上降低了区块链的安全性。但是随着区块链技术的广泛应用,海量节点正源源不断地加入到区块链系统中。攻击者想要控制区块链系统中的很少一部分节点也是几乎不可能的。尽管如此,在区块链容量可扩展模型还是提出了节点可靠性验证的方法,增加了区块链的安全性。区块链存储容量可扩展模型框架如图所示。

  

  数据存储

  在区块链存储容量可扩展模型进行数据存储时,模型采用了POR数据可检索性证明[16][17]方法对用户节点区块链中的区块进行加密处理,得到相应的密文和密钥。POR 方法是保存在外地服务器上数据的可检索性的加密证明。其实现的具体过程是:用户节点将密文交由储存节点中保存后,可以随时查询储存节点中数据的完整性;储存节点会在被查询时,随机选择一部分密文数据发送给用户节点;用户节点通过密钥与接收密文的计算结果进行比对,得出储存节点中的数据是否完整。因此,利用 POR方法可以在少量文件传输的通信成本下,实时验证出系统中数据完整性。在模型进行数据存储过程中,首先采用 POR 方法对用户节点中的每个区块进行加密,得到相应的密文和密钥。然后,用户节点计算出每个区块需要保存的副本数。接着,模型将 POR 方法生成的密钥保存到本地存储器中,并发给验证节点保存;将加密后的区块数据保存到储存节点中。此时,模型将访问验证节点中保存的储存节点可靠性信息,从中找出可靠值较高的储存节点来保存各个区块数据。验证节点为了保证储存节点可靠性信息不会被恶意篡改,将其保存在了POR 链中。之后,将每个区块按照所需要的副本数保存在相应数量的选出的储存节点中。当数据副本被保存后,为了保证用户节点进行数据读取,模型将储存节点的地址返回给用户节点,并将其保存在了 P 链中,保证储存节点地址数据的安全性。

  数据读取

  在区块链存储容量可扩展模型进行数据读取时,首先用户节点访问本地磁盘中的 P 链,得到各个区块储存的位置信息,根据位置信息找到相应的储存节点。然后,储存节点将保存的数据返回给用户节点。用户节点根据本地保存的 POR 方法生成的密钥,对接收密文数据进行恢复,得到原始数据。

  

  储存节点可靠性验证

  在区块链存储容量可扩展模型中,储存节点保存着区块数据。但是由于一些特殊状况,储存节点可能出现将数据修改或将数据丢失等故障。为了减小由于储存节点故障导致的区块数据的不稳定性,验证节点会根据 POR 方法生成的密钥,随时验证存储节点随机发回的部分密文数据,实时检测储存节点数据存储情况。然后,验证节点将实时的检测情况写入 POR 链中,当用户节点再次申请储存数据时,提供最新的储存节点可靠性值,使用户节点选出此时最稳定的存储节点保存区块数据。区块链存储容量可扩展模型中储存节点可靠性验证过程如图所示。

  

  在实际的应用中,模型对于存储节点可靠性的评价标准可以采取如下方法。首先,模型会给每个存储节点分配相同的可靠性值。然后,验证节点每隔相同的一段时间检测存储节点数据的可靠性,相隔时间根据对数据安全需求的具体情况来制定。当存储节点中数据完整时,其可靠性值不变。当存储节点数据被修改或者丢失时,则减少其可靠性值,并保存到 POR 链中。最后,当模型选择高可靠性的存储节点时,以 POR 链中的各个存储节点可靠性值作为衡量标准。

  发展

  区块链的协议要求全网中每个节点都保存着同一条完整的区块链信息。这导致了区块链的容量受到了网络里存储空间最小的节点的限制。区块链存储容量可扩展模型将区块链中各个区块保存在一定比例的节点中,而不是所有节点中。并且,模型增加了节点可靠性验证,保证了数据的安全性。模型中用户节点根据数据副本分配策略将每个区块保存相应的副本数,并基于 POR数据可检索性证明方法对副本数据进行加密,并将密钥发送个验证节点。验证节点利用 POR 方法实时更新存储存节点稳定性值,依此选择高稳定性节点来储存用户节点的数据副本。经实验证明,区块链存储容量可扩展模型在具有一定的稳定性、容错性和安全性的同时,有效地增加了区块的链储存扩展性。未来我们可以对数据副本分配策略进一步研究,提出更准确的计算数据副本方法,在保证数据安全性的前提下,减少更多储存空间。同时,也可以将区块链存储容量可扩展模型应用于 Ethereum 和Parity 等不同的区块链系统中,提高不同区块链系统的存储扩展性。

  本词条内容贡献者为:

  李嘉骞 - 博士 - 同济大学

区块容量

图文简介