Velocity限值和反抽象
1)什么是velocity,为什么需要
Velocity限制是对指定时间窗口的频率和操作量的限制。目标是:- 减少奖金/促销的欺骗和利用,
- 保护支付基础设施免受"风暴"的影响,
- 通过将可疑的尝试转换为挑战(3DS/SCA)而不是在可能的情况下进行"硬拒绝"来保持健康的转换。
Velocity控制器补充了得分,AVS/CVV,3DS2/SCA和智能路由。
2)限制哪些实体(scopes)
同时设计多个级别的限制:- 支付实体:'card_token'(vault/network),'bin','issuer','spp_route'。
- 自定义:'account_id'、'kyc_level'、'email/phone'。
- 技术:"device_id"(指纹/SDK),"ip","asn","session_id"。
- 业务背景:"bonus_id","campaign_id","country","mcc 7995"子类型(存款/输出)。
- 财务:"amount_bucket"(微型/中型/大型),"currency","payment_method"。
3)窗口和柜台
固定窗口(T=15 m/1h/24h)-简单但对边界敏感。
滑动窗口-更准确地计算为"滑动"间隔。
Leaky bucket/Token bucket-平滑爆发,指定可持续的吞吐量。
组合:爆发(短爆发)+持续(长流)。
- 'device_id':在15分钟内≤ 3次授权尝试;在24小时内≤ 10次。
- 'card_token':连续≤ 2个decline,没有3 DS;第三个是强制性的3 DS。
- 'ip':1小时≤ 5个独特的'card_token'(否则为kapcha/block)。
- "; account_id";:连续≤ 2笔取消的存款;接下来-kuldown 1小时。
4)约束算法(简称)
Token Bucket(允许bursts):- 初始化"capacity"和"refill_rate"。
- 每次尝试之前,"取出"1个令牌;如果没有令牌-challenge/decline。
- 队列以恒定的速度泄漏;即将到来的事件溢出-throttle。
- 1次重播:2-5分钟→ 2次:10-20分钟→ 3次:1-2小时→停止,或转换为替代方法。
5)决策策略(决策)
对velocity检查结果进行分类:- Allow:低风险,在阈值内。
- 挑战:超过"软"阈值→ 3 DS/SCA/kapcha/KBA(问题)。
- Throttle:使用透明UX暂时限制(culdown)。
- Decline:严重违规行为(大量卡片破裂,机器人池,奖金缺口)。
- Reroute:在发行人的"91/96"激增时更改PSP/方法(例如A2A)。
示例迷你矩阵
'device_id'尝试在15分钟内≥ 3次,'cvv=N' ≥2 → Decline+kapcha。
'card_token' 2连续软装饰→ 3DS-challenge(强制)。
"ip" ≥ 30分钟5个独特的"账号id" → Throttle 30分钟+KYC检查。
"account_id" 10分钟(旋转木马)→挑战或金额上限的存款-收款-存款。
6)Velocity用于存款,转发和提款
存款:- 保护"微填充"(许多小交易):T的数量和总周转限制。
- 在"05"/"14"/"54"字符串中-停止"过度"道具,转换为3 DS。
- 分开CIT和MIT队列。对于麻省理工学院,请使用T+1/T+24 h软窗口。
- 软装饰的"SCA要求"立即→ 3 DS,不要咀嚼尝试。
- 分别限制数额/频率:≤ 2/24h和≤ N的数额/周。
- KYC的"楼梯":检查越高,限制越高。
- "circling"细节:快速存款和即时检索-manual review/hold.
7)反抽奖促销和奖金
Per-campaign caps:"bonus_id" ≤ "device_id"/"ip"/"payment_fingerprint"上激活的X。
"叉子"(帐户之间的钱):共享卡/IP/设备的图形分析。
Cool off Windows:后奖金存款-禁止即时输出,在ToS中透明规则。
按级别进行制裁:从临时封锁到"永远",并附有原因日志。
8)体系结构: 在哪里生活权宜规则
实时网关(在编排器中):50-100毫秒≤解决方桉。
计数器存储:内存(Redis/KeyDB)+长期"摘要"(DWH)。
Fichestor:单个窗户/单元(15m/1h/24h/7d)。
规则引擎+ML评分:模型顶部的"安全网"规则。
Config标志:"启用3DS","X地区更严格","PSP-A暂停"。
相似性:重复/定时重复保护。
9)规则伪代码(草图)
pseudo on payment_attempt(ctx):
s = features(ctx) // device/ip/account/bin/score/avs/cvv/history if counter(device, 15m) >= 3 and cvv_fail(device, 15m) >= 2:
return DECLINE(reason="velocity_device_cvv")
if soft_declines(card_token, 1h) >= 2:
return CHALLENGE_3DS()
if uniq_accounts(ip, 30m) >= 5:
return THROTTLE(ttl=30m)
if score > T2 and velocity(account, 1h) > Vmax:
return DECLINE(reason="high_risk_burst")
return ALLOW
10)UX模式(不破坏转换)
明确的信息: "在短时间内尝试太多。15分钟后尝试或在银行确认。"
带计时器的"稍后重复"按钮。
提供替代品:A2A/trottling中的本地钱包。
Auto-3DS在SCA-soft下无需重新输入详细信息。
Kapcha仅是点数(通过IP/ASN/机器人信号),并非全部。
11)合规与隐私
GDPR/PII:存储最低ID(设备哈希、卡令牌、last4)、透明策略。
PCI DSS:博客中没有PAN/CVV;没有敏感数据的velocity事件。
PSD2/SCA:在适当的情况下将超量转化为挑战,而不是完全放弃。
12)度量标准,Alerts, SLO
KPI:
实现率(常见和触发规则时)。
False正向率规则的velocity(诚实区块的比例→随后的合法性)。
"风暴"中继次数和平均恢复时间。
从decline转移的比例→成功的挑战。
Chargeback rate在限额起作用的细分市场(预计↓)。
- Spike '05/14/54'+在BIN/ASN集群中以15分钟的速度尝试>X。
- "91/96"激增→ T1+在PSP-B中路由阈值自动升高。
- FP-rate规则>目标(例如1。5 ×周中位数)。
SLO:
Velocity解决方桉≤ 100 ms p95。
转入3 DS而不是拒绝≥目标的成功付款比例。
13)反模式
适用于所有市场和客户类型的通用"全面"限制。
在AVS不正常运行的国家/地区通过'AVS=U/S/G'阻止。
不共享CIT/MIT-打破订阅/重播。
没有刺痛和偶然性的回荡是双打和暴风雨。
隐藏失败的原因-札幌和毒性正在增长。
14)实施支票
- 实体图(scopes)和窗口(15 m/1h/24h/7d)。
- 选择算法:sliding+token bucket for bursts.
- Retrais正常化:backoff+Jitter,CIT/MIT分开。
- 与3DS/SCA集成:在软超额的情况下自动挑战。
- 结论和奖金的单独限制;链接检查图。
- 可观察性:KPI/Alerta/规则审核的仪表板。
- 消息的UX模板和替代方法。
- PCI/GDPR策略:令牌、掩码、PII最小化。
- A/B 市场阈值测试/BIN/ASN和客户概况。
- 事件花花公子:发行人/PSP退化,机器人激增。
15)摘要
高效的velocity极限是跨不同实体的分层窗口和计数器,平滑算法(令牌/折叠桶式),智能回程以及紧密结合的3DS/SCA和计分。这样的回路减少了欺诈和借口,不扼杀了转换,并有助于在发行人和流量波动的情况下保持稳定的货币化。