一种DAG共识交易公平排序方法

摘要: 本发明涉及区块链,具体为一种dag共识交易公平排序方法。背景技术:1、区块链系统本质上是复制状态机系统,不同节点不仅需要对交易集合达成一致,还需要对交易执行顺序...
一种DAG共识交易公平排序方法

本发明涉及区块链,具体为一种dag共识交易公平排序方法。

背景技术:

1、区块链系统本质上是复制状态机系统,不同节点不仅需要对交易集合达成一致,还需要对交易执行顺序达成一致。对于去中心化交易所、链上清算、抢购、拍卖等应用,交易执行顺序会直接影响用户收益和系统安全。如果攻击者能够影响交易顺序,就可能实施抢跑攻击、三明治攻击、跨块抢跑攻击等交易重排攻击。

2、传统leader-based共识协议中,每一轮通常由单个领导者收集交易并构造区块,领导者能够直接影响区块内交易顺序,因此已有方案提出了接收顺序公平、批顺序公平、排序线性化等公平排序机制。但是,这类方案往往需要领导者或专门模块收集多个节点的本地排序证据,容易形成性能瓶颈,并可能增加交易从提交到执行的等待时间。

3、dag-based共识协议,例如dag-rider、narwhal/tusk、bullshark等,通过多个节点并行出块提高吞吐量,弱化了单一领导者对交易集合的控制。然而,dag结构最终仍需要被线性化为确定性的执行顺序。现有dag共识通常根据领导者因果历史、轮次、区块哈希、父边连接关系或dag遍历规则确定区块顺序,这些规则主要保证一致性和活性,并不直接保证交易顺序公平。攻击者仍可能通过操纵区块连接关系、区块哈希优先级、出块轮次或广播时机,使攻击交易所在区块排在受害者交易所在区块之前。dag-based共识协议是一类高吞吐共识协议。与传统链式结构不同,dag-based共识允许多个节点在同一轮或相邻轮次中并行提出顶点或区块。每个顶点通过父边引用前序顶点,所有顶点构成有向无环图。共识层随后选择某些领导者或锚点,并提交它们的因果历史。

4、以narwhal/tusk为例,narwhal负责交易批次的数据可用性,工作节点生成交易批次,主节点生成包含批次摘要和父边引用的头部,其他节点验证数据可用后投票形成证书。tusk在证书dag上选择领导者,当领导者满足提交条件后,提交该领导者因果历史中尚未提交的证书,并输出给执行层。

5、在这类dag共识中,一个领导者被提交时,其因果历史中新增的顶点会被确定提交。该新增集合天然可以作为一个边界清晰的执行段。然而,现有执行逻辑通常直接使用dag自然顺序或协议规定的确定性排序规则执行该段内交易,并不根据交易级排序证据重新排列交易。

6、现有dag-based共识和公平排序方案主要存在以下不足:

7、(1)dag自然顺序不能保证交易公平性:现有dag共识协议通常根据区块连接关系、轮次、哈希、节点编号或遍历规则确定区块顺序。这些规则能够保证所有节点得到一致顺序,但不保证该顺序符合多数节点观察到的交易接收顺序。

8、(2)区块级排序容易被跨块抢跑攻击利用:攻击者可以通过选择性连接父区块、构造多个候选区块选择更有利哈希、或故意延迟出块保持较低轮次,使攻击区块在最终区块序中排在受害者区块之前。

9、(3)全局公平排序方案执行等待较高:现有强公平方案通常需要等待足够多节点的本地排序证据或时间戳证据后才能输出交易顺序。该等待过程会增加交易从共识提交到执行的延迟。

10、(4)如果使用节点本地观察到的排序证据进行排序,可能导致节点间排序不一致:若公平排序直接读取各节点本地内存池或本地临时排序证据,不同节点可能因为网络延迟和本地观察差异得到不同交易集合或排序证据集合,从而计算出不同排序结果。

11、(5)公平排序窗口缺少与dag提交结构对齐的明确边界:如果公平排序窗口通过时间、固定交易数量或滑动窗口定义,则不同节点可能由于提交进度不同产生窗口边界差异。缺少与dag领导者提交输出一致的窗口边界,会增加工程复杂度。

技术实现思路

1、为了解决现有ecg信号噪音处理效果不佳,导致心脏检查准确率低的问题,本发明提出了一种dag共识交易公平排序方法。

2、为了解决上述技术问题,本发明提供如下技术方案:一种dag共识交易公平排序方法,包括以下步骤:

3、步骤一:客户端广播交易;

4、步骤二:节点接收交易后通过本地递增的计数器为交易生成本地排序证据;

5、步骤三:节点将交易及其本地排序证据打包进入dag顶点并进行广播;

6、步骤四:领导者提交段的确定,当dag共识层提交某个领导者时,系统获取该领导者的因果历史,并去除此前已经随其他领导者提交过的顶点,剩余的新增顶点集合即为当前领导者提交段;

7、步骤五:从领导者提交段中提取交易和排序证据,确定当前领导者提交段后,系统读取该领导者提交段中各个dag顶点所携带或引用的交易及排序证据,形成当前领导者提交段的交易集合和已提交排序证据集合;

8、步骤六:基于已提交排序证据的段内公平排序,对于当前领导者提交段中的任意两笔交易,系统统计该领导者提交段内不同节点的排序证据所支持的相对顺序,构成当前领导者提交段的公平排序图;

9、步骤七:排序结果输出,公平排序完成后,系统将当前领导者提交段内的交易输出为确定性执行序列或若干公平批次,并交由应用执行层执行。

10、在一种优选的实施方式中,所述步骤二中的本地排序证据包括交易标识、生成排序证据的节点标识、本地递增序号以及节点签名,对于同一节点生成的两笔交易排序证据,若交易a的本地递增序号小于交易b,则表示该节点本地认为交易a早于交易b。

11、在一种优选的实施方式中,所述步骤五中系统只使用已经进入当前领导者提交段并被共识提交的交易和排序证据,不使用节点本地存储的最新的排序顺序,以避免不同节点排序得出的顺序不同。

12、在一种优选的实施方式中,所述步骤六中如果某些节点的排序证据显示交易a的本地序号早于交易b,则它们支持a早于b;如果另一些节点的排序证据交易b早于交易a,它们支持b早于a。

13、在一种优选的实施方式中,所述步骤六中系统根据支持度比较来判定交易的先后顺序,即当支持交易a早于交易b的节点数量超过反方向时,系统在公平排序图中加入交易a指向交易b的约束,表示交易a应不晚于交易b执行,若两者支持度相同,则根据交易哈希或者摘要的大小来确定性排序两个交易;所有交易之间的此类约束共同构成当前提交段的公平排序图。

14、在一种优选的实施方式中,若某交易对在当前领导者提交段内缺少足够排序证据,将相关交易合并为公平批次放入图中。

15、在一种优选的实施方式中,所述步骤六中若公平排序图中不存在环,则系统对该公平排序图进行拓扑排序,得到交易的执行顺序,若图中存在环,说明不同节点的本地排序证据之间存在循环偏好,系统可以将环中的交易合并为一个公平批次,再对批次之间进行拓扑排序,对于同一批次中无法判定先后顺序的交易,则通过交易哈希或摘要的大小来确定性排序这些交易。

16、与现有技术相比,本发明所达到的有益效果是:

17、1、本发明将每个已提交领导者的新增因果历史定义为公平排序窗口,使公平排序边界与dag共识提交结果天然对齐;

18、2、本发明仅使用领导者提交段内已提交的交易和各节点交易本地顺序计算排序,保证不同正确节点公平排序输入一致;

19、3、本发明对同一提交段内的交易,使用各节点交易本地顺序统计相对顺序支持度,覆盖原始dag区块自然顺序对交易执行顺序的影响;

20、4、本发明在证据不足或多数偏好成环时,采用公平批次或确定性中立排序,避免直接回退到容易被攻击者操纵的dag自然顺序;

21、5、本发明在不等待全局充分证据的前提下,提供低延迟的局部公平排序能力。