这篇文章就两个点,relay机制 、 连弩挖矿
relay
最终原子性 Eventual Atomicity
一笔跨链交易,从取款shard中发出,到存款shard中. 当收款shard中将这笔夸片交易打包上链后,原子性才执行结束。
这样做的延迟是比较小的。
如何应对分叉问题
在收款shard中,如果将交易上链了,但是该交易在对应取款shard中的区块被冲突称为孤儿区块改怎么办?
我们会重构这种区块,当涉及到需要重构的交易太多,形成连锁反应,这样冲突的代价太高,该如何?
抵制分叉:
Inboud relay 是指从另一个shard传入的跨片交易, oubound 是指需要传出的夸片交易。
当使用Inbound relay 交易时,会面临传入区块失效的风险。当有交易需要涉及到 inbound relay时,我们进行延迟处理。
如上图,我们延迟处理涉及后 λ 个 \lambda 个 λ个 区块中的 inbound relay的交易。直到有更多的块累计确认,出现孤儿区块的可能性会减少。
连弩挖矿 CHU-KO-NU
普通挖矿,只针对一个zone的block的header计算pow。这样会造成算力的浪费,并且如果有 n个zone,会导致算力被平均, H/n 容易受到攻击。
连弩挖矿,对多个块头计算一个merkleroot,再计算pow 就是对多个zone的多个block同时进行挖矿。这样的做法,使得每个zone的算力比较平均,对算力进行了极大的加强。 避免了恶意的矿工集中算力,对一个zone进行攻击。