感觉这个区块链分片跨域方案很有意思:
论文名称:Scale Out Blockchain with Asynchronous Consensus Zones
在文章当中,作者将区块链当中的节点人为的划分为不同的片区,每个区域当中的所有节点共同维护这区域内部的一条子链,而所有节点(不论是哪个区域的)又共同维护着一条主链。
在转账交易的时候:需要区分两种情况
(1)区域内部的交易
(2)跨区域的交易
在设计时,每个区域当中的节点对跨域操作会生成两个部分:**一个是链接块另外一个是交易块。**链接块用于跨域过程中交易块的验证。链接块是要被广播到所有的区域所有的节点当中的,并被写入到主链当中的。而交易块在发送方所在的区域确认之后,从发出方账户当中完成取款操作,将广播到接收方所在的区域当中,由接收方区域内的矿工拾取后,通过主链验证之后将在区域内完成存款交易。(仅仅只在两个区域之间广播具体交易信息,通信开销和时间开销应当降低了)
首先,若是区域内部的交易,由区域内部进行交易的验证保存。若是在不同的区域,作者引入了一个双阶段交易处理机制,通过派生和转发一个中继交易,该中继事务将存款操作传送到其目标区域。图2展示了跨区域支付的过程和处理的数据结构。
交易过程:
区域A的交易验证和转发:
- 当矿工构建一个新的区块时,未确认的交易 < ρ , a , ϕ , b > \left< \rho ,a,\phi ,b \right> ⟨ρ,a,ϕ,b⟩ 被支付人a所在区域中一个矿工所拾取。
- 如果a的余额不小于转帐金额,则初始交易被验证。如果余额不足,交易将被标记为无效,并被总结嵌入块中。
- 链接块 和交易块 被构造。 有一个已验证的交易列表,包括从a到b的交易。
- 矿工运行的PoW共识将所有确认的交易列表进行上链。
- PoW问题解决后,立即在全部区域当中广播链接块 ,a所在区域中广播交易块 。
- 执行和完成区域内交易。
- 然后执行所有跨区域交易中的提取操作 。
- 每个跨区域交易派生出一个出站中继交易 ,并将其发送到目的区域,即收款人b所在的区域b。
在区域B中继事务处理:
- 接收中继交易:在建造新区块时,会被收款人b所在区域的矿工捡起。
- 矿工根据其原始块 来验证入站中继交易。如果无效,跳过此操作。
- 矿工构建了一个新链接块 和一个新的交易块 。包括入站中继交易 。
- 达成共识之后,交易块 将在b所在的区域当中广播。
- 存款操作 被执行,交易 将被完成。
算力划分:连弩方案:感觉到最有意思的地方。
5.1 连弩挖矿
连弩挖矿允许矿工使用单一PoW解决方案在不同的区域同时创建多个区块,但每个区域最多只有一个区块。在这种情况下,图4中的批处理链接块将替换链接块,如图2所示,并在所有区域之间进行复制。以IT资源的性能为基础,矿工被允许执行从区域b开始的n个区域或所有区域 的连弩挖矿机制。
矿工将对所有涉及的n个区域执行交易验证,并收集n个chaining-headers ,即图4中的A部分。在没有连弩挖矿机制的情况下,如比特币或以太坊,一个矿工需要找到n个随机数 并且每个随机数都需要满足:
h a s h ( < A i , η i > ) < τ hash\left( \left< A_i,\eta _i \right> \right) <\tau hash(⟨Ai,ηi⟩)<τ<