MultiVAC是如何解决的跨分片间传输,信息丢失的问题?



  • 我们主要保证两步,即输出分片的数据不丢失,以及接收分片总能把数据加入到本分片中。具体来说:

    1. 保证输出分片的数据不丢失。跨分片的数据是通过a. BlockHeader, b. 共识完成后记录在区块中的具体的DataCell和Actions。这两份数据都是某个分片内的公开信息:理论来说,在该分片中的所有矿工和所有存储节点都会得到这两个数据。只要不发生该分片所有矿工和存储节点都被攻击者攻陷,那么这两份数据就不会丢失,目标分片的矿工在未来总是可以通过联系该分片的存储节点获取对应的区块头和交易数据。

    2. 保证接收分片的矿工有意愿去获取数据。我们采用了单调一致性(monotonic consistency)的原则,要求接收分片必须按顺序加入所有跨分片的数据,允许延迟但不允许遗漏。

    跨分片数据是通过目标分片的矿工在完成共识时添加入本分片的数据库中的。每次添加一个来自其他分片的区块,矿工都可以获得一定的奖励。即使跨分片信息出现延迟的时候,目标分片的矿工主观上有动力去尝试联系输出分片的存储节点或矿工获取对应的信息。



  • MultiVAC是如何防止跨分片传输的重放(replay)问题的?


Log in to reply