玩家间交易是资产流动的主通道,也是盗号销赃的出口。交易校验的目标:双方确认的物品在服务器判定下完成交换,任何一方在确认后修改内容都无效。六道关卡覆盖从发起 to 完成的全流程。
第一道,发起校验:双方等级、行会黑名单、交易冷却(上次交易 60 秒内禁止再次交易)。第二道,锁定机制:任一方放入或移动物品,双方的确认状态全部重置——确认后再改内容必须重新确认,这是防"确认后调包"的核心。第三道,内容快照:确认时服务器记录双方交易的完整内容快照(物品 id、数量、唯一 ID)。第四道,执行原子性:交换在单次事务里完成,双方背包的容量与负重先校验、后入包,任一方失败整体回滚。第五道,流水记录:交易完成写入双向流水(双方账号、物品清单、时间),可疑交易的判定依据。第六道,价值异常告警:交易价值差过大(低价值换高价值)触发延迟到账,24 小时观察期内可回滚。
-- 第四道的原子交换(示意)
local ok, err = TradeService.atomicExchange(tradeA, tradeB)
if not ok then
rollbackBoth(tradeA.playerId, tradeB.playerId)
return false, err
end
历史事故的三种形态与对应关卡:确认后调包(第二道锁定机制)、单边入包失败(第四道原子性)、被盗号销赃(第六道延迟到账)。三层防线(客户端节流、服务器校验、延迟到账)的取舍原则——越靠近资产的防线越要严格,宁可将交易复杂度提高,不可让资产有单向流出的通道。
跨服交易的额外限制在普通六道关卡之上再加三条:交易双方的行会与 IP 关联性检查(同一 IP 段的小号互导资产是工作室的典型形态)、交易价值上限按账号等级分档、跨服交易全程录像(消息流录制篇的录制面覆盖交易命令)。三条限制把跨服通道的成本抬到与收益倒挂,配合延迟到账,销赃通道基本关闭。