Page 173 - 《软件学报》2026年第6期
P. 173
2492 软件学报 2026 年第 37 卷第 6 期
息发送准备). 此时, 区块头作为记录平行链状态变迁和交易详情的关键部分, 承载跨链消息等待时间等信息. 在平
行链 D 进行轮询操作时, 中继链参与维护各平行链区块头的记录. 基于这些记录, 中继链能够识别出当前等待时
间最长的平行链 (假设为平行链 S). 随后, 中继链会优先引导平行链 D 对平行链 S 做出响应, 启动跨链消息 Mi 的
传递流程 (该步骤对应第 5.4 节 (3) 消息转移发送).
由于无法保证接收平行链 D 是诚实的, 在假设其为半诚实的前提下, 本文提出一种轮询检测机制, 该机制利
用智能合约检测平行链 D 是否公平地接收消息. 智能合约通过自动化执行代码来确保系统规则得到遵守, 智能合
约算法伪代码如算法 1 所示. 在该轮询检测算法中, 假设消息进入队列等待的时间 tw、消息从发送平行链的出口
队列发送的时间 ts 是公开可见的, 智能合约的核心目的是验证平行链 D 是否公平地处理消息. 智能合约依赖于公
开可见的消息进入队列时间和从出口队列发送的时间, 来计算消息的等待时间差 tw1 和 tw2. 该合约会实时监控并
对比这两个等待时间, 若发现平行链 D 未按照轮询规则处理消息, 合约会自动触发相应的惩罚机制, 如没收 DOT
代币 (该步骤对应第 5.4 节 (3) 消息转移发送).
算法 1. 轮询检测算法.
输入: {Addi, Ti, N, Xi, Data, PMi}, tw1, ts1, tw2, ts2; /*tw 为消息进入队列的时间、ts 为消息从平行链 S 的出口队列
发送的时间*/
输出: True/False.
1. begin
/*读取 tw1, ts1, tw2, ts2*/
2. Tw1←Subtract(ts1, tw1)
3. Tw2←Subtract(ts2, tw2)
/*Tw1 和 Tw2 分别为消息 1 和消息 2 在出口队列的等待时长*/
4. if Tw1≥Tw2 then
5. return True
/*平行链 D 将消息 2 放入入口队列*/
6. else if Tw1<Tw2 then
7. return False
/*平行链 S 未遵循轮询机制, 没收其部分 DOT 代币*/
8. end
9. end
E-XCMP 协议的轮询机制不仅确保了跨链消息传递过程中的公平性, 还通过考虑消息在出口队列中的等待时
间, 有效避免了某些平行链因频繁发送消息而长期占据传输资源, 从而保障了所有平行链在跨链通信中的平等机
会. 通过将等待时间信息公开记录在区块头上, 也增加了系统的透明度和可信度. 同时, 通过智能合约执行这些规
则, 无需依赖中介机构, 从而确保过程的透明性和公平性. 此外智能合约的不可篡改性也确保了算法的执行不受任
何一方的干扰, 进一步提高了系统的可信度和安全性.
(3) 目标 10 消息持久化: 消息持久化在确保跨链消息在网络中有效处理上至关重要. 然而, 初始协议未能保证
消息的持久化存储, 意味着跨链消息在传递过程中可能面临丢失或重复处理的风险. 恶意攻击者可能利用这一漏
洞实施延迟攻击, 这不仅会影响单个交易的成功, 还可能削弱整个系统的可靠性. 缺乏有效的消息持久化机制, 系
统将无法确保跨链操作的可靠性和一致性, 从而影响整体的健壮性和安全性.
因此, E-XCMP 协议引入一个高效的监督机制, 即利用钓鱼者 C 作为消息有效性的智能验证者. 具体而言, 钓
鱼者 C 对来自平行链 S 的消息进行实时检测, 评估其在当前时间窗口内的有效性. 若钓鱼者 C 通过其算法判定平
行链 S 的消息已超出有效期限或存在其他不可用因素, 该机制将自动触发惩罚措施, 从平行链 S 的账户中扣除一

