Skip to content

_MakeBlendField Deep Dive

WARNING

This section of the documentation is incomplete.

INFO

This article is a minor rewording of the original _MakeBlendField in-depth analysis written by benji / symere. You can find it in this GitHub Gist.

History

All releases

#DateDetailsSize
12021-04-27"Add a challenge / response system to help cut down on bot connections"23.8 KiB
22021-11-15"Reduce bot flooding with challenge / response upgrades"24.2 KiB
32022-01-31"Internal infrastructure maintenance"25.7 KiB
42022-03-23-296.0 KiB
52023-01-09"The game now runs over https, which should fix some redirect loop errors"303.6 KiB
62024-02-29"Security update"854.3 KiB
72025-04-01-884.1 KiB
82025-08-08-1594.1 KiB

Release-to-release Comparisons

Aligning per-function body sizes by index (meaningful only when the function count/order is stable):

Version PairFunction CountSize DifferenceChanges
v1→v263→63+335 BTrivial patch — 97% of functions byte-identical
v2→v363→64+1.6 KBRecompile (+1 function shifts indices)
v3→v464→304+273 KBFull rebuild — anti-bot system added
v4→v5304→271+8 KBRecompile, slight function-count drop (more inlining)
v5→v6271→669+557 KBFull rebuild — scale to 25 validators + bigger blob
v6→v7669→691+30 KBminor revision (+22 functions)
v7→v8691→691+727 KBfrozen architecture; payload + re-obfuscation

Notable Function Size Changes

FunctionSize Change (Bytes)Delta (Bytes)Description
#35565 → 595,173+594,608The current __wasm_call_ctors blob unpacker
#34285,886 → 5-285,881Was the old unpacker slot, now emptied to a 5-byte stub
#150 / #289 / #130 / ...-~+9,000..+12,000Validators that are re-obfuscated to be bigger (per function)

Per-version Protocol Constants

Constantv1–3v4–5v6–8Derived From
validators (count)11025Count of i32.const 20 / i32.rem_u (one per validator)
challenge sizenot 132 (smaller)132 B132 Bi32.const 132 absent in v1–3, present from v4
response size64 B64 B (likely)64 BLive measurement (v1); documentation (v8)
dispatchcommand-code → 1 coreMBF loops over 10 handlerschallenge[4] % 25 → 1 of 25Replay (v1); decompilation (v4); documentation (v8)
MT state wrap% 624% 624% 624MT19937 (present in all versions)

Credits

  • In-depth analysis: benji / symere - A great deal of research about _MakeBlendField in general was done by him (in just 3 days!).
  • Minor reformatting: AyuBloom

Additional Notes

This article repleaces an old overview of _MakeBlendField (v6). You can still find it here.