BLS签名算法升级前后的空间占用对比

BLS签名算法升级为我们带来了一系列重要的优势,主要体现在改善验证者地址管理和优化区块空间使用两个方面。

BLS升级的主要目标

共识机制取消对验证者收益地址的依赖

在本次升级过程中,我们对共识机制中使用的签名算法做出了重要的修改:验证者对区块投票签名算法已从ECDSA更改为BLS。这意味着,验证者无需使用收益地址的私钥对区块进行签名,而是使用其对应的BLS私钥进行签名。而这一变化在硬分叉后体现得尤为明显:在节点的启动命令中,用户无需解锁收益地址的keystore,只需要解锁其对应的BLS keystore即可。这一改进,取消了底层共识机制对验证者私钥的依赖,不仅提高了操作的灵活性,还增强了系统的安全性。

优化区块投票数据

通过使用BLS聚合签名技术,使得我们可以将验证者的投票签名进行聚合,进而减少了每个区块中的投票数据。这一变化直接降低了每个区块的磁盘占用。

空间使用详情

以下的比较基于有21个验证者且每个验证者的质押数量相同的场景进行(这里只讨论rei-dao硬分叉前后区块中有变化的数据):

硬分叉前

区块提案签名:65 字节

验证者投票签名:每个验证者的投票数据 65 字节,因此,21个验证者的磁盘占用范围为:65 * 21 * 2 / 3 = 910 字节(最小)至 65 * 21 = 1365 字节(最大)

硬分叉后

区块提案签名:96 字节

验证者投票数据聚合签名:96 字节

区块铸造者收益地址:20字节

验证者投票标记集合(bitArray):3 字节(最小)至4 字节(最大)

因此,当有21个验证者参与且各验证者票权相同时,硬分叉后每个区块的磁盘空间节省量可在760字节至1214字节之间。

然而,值得注意的是,在主网上,由于各验证者的票权并不相同,验证者数量变化等原因,硬分叉后每个区块的实际磁盘空间节省量可能会有所差异。

综上,BLS升级通过一系列优化提高了区块链系统的效率和可用性,给验证者和用户带来了更好的体验。

Subscribe to REINetwork fans
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.