CHUAN2 DEV ENGINE
996 正版授权研发中心 · 360 授权合作教学中心 · 抖音传奇直播合作授权 · 快手推广运营商授权
OFFICIAL LICENSED ACADEMY 查验官方授权证书 →
// 威海旷世互娱教学基地 · 技术文章
安全加密

【安全加密】异常交易图谱:资金流向的环路检测

2026-09-21 14:45 作者:996 技术组 0 阅读 安全加密

实战应用:用在哪里

盗号赃物的洗白路径是一条设计好的环路:赃物换成金条,金条拆成小额在三个号之间倒手,末端的干净号再上架交易行。单笔看每笔都正常,连成图看就是环。异常交易图谱把账号之间的资金与物品流转建成有向图,环路检测让洗白链现形。

流转图的构建

lua

---交易流水建图:账号为点,流转为边
function Graph.build(windowHours)
    local g = { edges = {}, adj = {} }
    local since = os.time() - windowHours * 3600
    for _, t in ipairs(Ledger.since(since)) do
        local e = { from = t.from, to = t.to,
            amt = t.amt, at = t.at, kind = t.kind }
        g.edges[#g.edges + 1] = e
        g.adj[e.from] = g.adj[e.from] or {}
        table.insert(g.adj[e.from], e)
    end
    return g
end

交易行成交、面对面交易、邮件附件三类流水统一进账本,24 小时滚动窗口内建图。点与边的粒度到账号级,金额与时间挂在边上,图的重Build按小时增量做,全量重建只在追查大案时执行。

环路的检测

lua

---DFS 找环:路径回到起点即成环
function Graph.findCycle(g, start, node, depth, path, out)
    if depth > 3 then return end
    path[#path + 1] = node
    for _, e in ipairs(g.adj[node] or {}) do
        if e.to == start and depth >= 2 then
            out[#out + 1] = { path = { unpack(path) },
                amt = Graph.sumEdges(g, path) }
        elseif not path marks(e.to) then
            Graph.findCycle(g, start, e.to, depth + 1, path, out)
        end
    end
    path[#path] = nil
end

从每个涉嫌账号出发做限深搜索:3 层以内回到起点即成环,环上各边的金额加总即为洗白规模。命中环路不直接封号——环上的金额超过 50 万金币才进人工复核,复核确认后环上账号全部冻结观察 72 小时,赃物的流向在冻结前已经固化取证。误伤的保护:亲属代充与行会基金的真实场景也会成环,白名单与金额双条件过滤后,人工复核的准确率超过九成。

验证与监控

环检测的命中率与复核转化率周报,检出环的人工确认率低于七成说明阈值需收紧;图谱的构建耗时监控,增量建图超过 5 分钟改流式。

踩坑记录

扫描层数曾经放开到 5 层,组合爆炸让单次扫描跑了 40 分钟,限深 3 层加增量建图后回到秒级。金额阈值曾经按单笔计算,拆单绕过轻而易举,改为环上总额计算。环的判定曾经不要求方向,双向的正常互赠被误判成环,有向图的语义校正。

上线要点

账本的流水字段带交易场景标记,不同场景的边权重不同:交易行与邮件是高危边。图谱数据与多开检测、行为建模共用存储,三个维度的证据链叠加定案。复盘制度:每起确认的洗白案回放图谱,新的洗白套路进检测规则。

本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。

作者履历与出处

本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。

← 返回文章地图返回研学路径

最新技术文章 · 实战干货

LATEST ARTICLES

全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →

性能调优启动加载

【性能调优】启动提速:脚本加载的分阶段优化

实战应用:用在哪里 全服 400 多个 NPC 脚本在开服瞬间集中加载,引擎进程启动耗时 47 秒,值班期间重启就是 47 …

2026-09-22 23:59 996 技术组 · 0 阅读
玩法策划行会驿站

【玩法策划】行会驿站:驿站升级与传送费率的玩法设计

实战应用:用在哪里 行会跨图集合靠世界喊话,从比奇赶到沙巴克动辄三分钟,集合效率低。行会驿站给每个行会一个专属传送网络:驿站…

2026-09-22 23:59 996 技术组 · 0 阅读
案例复盘跨服积分

【案例复盘】跨服战场积分回滚的事故复盘

实战应用:用在哪里 跨服战场周日结算夜出了双事故:30 名玩家积分凭空翻倍,随后 12 名玩家积分变成负数。两条线索指向同一…

2026-09-22 23:59 996 技术组 · 0 阅读
框架设计技能重修

【框架设计】技能遗忘与重修:技能栏位管理与重修费用的框架设计

实战应用:用在哪里 烈火剑法点到一半想换逐日剑法,没有遗忘功能只能养小号,新手加点点废的投诉长期霸榜。技能遗忘与重修框架管三…

2026-09-22 23:59 996 技术组 · 0 阅读
界面UI战斗日志列表

【界面UI】战斗日志:滚动列表的性能与可读性

实战应用:用在哪里 战斗日志全量滚动,烈火剑法暴击、治疗、拾取一场下来上千条,列表越长滑动越卡。改造分两件事:内存里只留最近…

2026-09-22 23:59 996 技术组 · 0 阅读
玩法策划龙舟竞速

【玩法策划】龙舟竞速:队伍竞速与河道障碍的玩法设计

实战应用:用在哪里 夏季活动缺一个全服参与的轻竞速,选定龙舟:五人一队从白日门河道上游划向盟重码头,河道布设障碍与顺流带,全…

2026-09-22 23:59 996 技术组 · 0 阅读