MeMark: Membrane-Space Watermarking for Spiking Neural Networks
Organizations: Radboud University, The Netherlands · IKERLAN Technology Research Centre, Spain · University of Bergen, Norway · University of Zagreb, Croatia
Abstract
Spiking Neural Networks (SNNs) are increasingly distributed as pretrained checkpoints and reused as backbones for new tasks. However, current SNN watermarks are mainly verified against the model output. Thus, a user who replaces the output head can keep most of the original network while removing the evidence used for verification. We present MeMark, a watermark designed for the checkpoint-reuse setting. Instead of storing the watermark in the output head, MeMark embeds a multi-bit identifier in the internal membrane state of selected Leaky Integrate-and-Fire (LIF) neurons. A secret input drives each selected neuron to the chosen side of its own firing threshold, and the same threshold is later used to recover the secret bit, so the verifier does not need a learned decoder. We evaluate MeMark across recurrent, convolutional, residual, and transformer SNNs. On a 215.4M-parameter SpikeGPT checkpoint, all 20 independent 64-bit keys pass the fixed 51/64 verification rule, while none of the fresh random keys pass when tested against all 20 protected checkpoints and the clean model. All 20 genuine keys also remain above the threshold after fine-tuning, 90% pruning, int8 quantization, and output-head replacement. Under our stated threat model, adaptive attacks can weaken the watermark but do not remove the ownership evidence in the settings we test. Additionally, we study false ownership claims, key-aware and key-agnostic removal, partial key disclosure, rollback, and extraction into a student. The results show that MeMark can provide evidence of checkpoint derivatives, while being resistant to the adversary's attacks and complete head replacement.
Figures & tables
| Fixed rule | FP keys | Key FPR | 95% upper | Genuine |
| Hard/spike, | 0/30 000 | 0.000% | 0.010% | 20/20 |
| Accuser’s strategy | Mem. | Aux. out. | Joint |
| Honest random key | 13/32 | 20/32 | 13/32 |
| Coordinates and bits fitted | 32/32 | 16/32 | 16/32 |
| Trigger optimized only | 18/32 | 20/32 | 18/32 |
| Coordinates fitted trigger optimized | 32/32 | 17/32 | 17/32 |
| output token pairs fitted | 32/32 | 32/32 | 32/32 |
| Carrier | Decoder reference | On-trig. BER | Off-trig. agreement |
| membrane | firing threshold | 0.000 | 0.516 |
| membrane | trained projection | 0.000 | 0.715 |
| activation | zero | 0.000 | 0.580 |
| activation | calibration mean | 0.000 | 0.680 |
| activation | calibration median | 0.000 | 0.677 |
| Scheme | Payload | White-box read on the challenge | Read without the challenge | Output channel | Fidelity |
| MeMark (ours) | 32 bits | BER | agreement | BER | loss |
| DICTION-style [ 1 ] | 32 bits | BER | agreement | BER | loss |
| DeepSigns-style [ 23 ] | 32 bits | BER | BER | n/a | loss |
| Uchida et al. [ 28 ] | 32 bits | BER | no challenge to withhold | n/a | loss |
| Poursiami et al. [ 22 ] | 1 continuation | n/a | n/a | 16/16 tokens | loss |
| Attack | Matching bits | Pass |
| None (baseline) | 59.4 [55, 62] | 20/20 |
| Fine-tune, 200 steps | 58.3 [53, 61] | 20/20 |
| Prune | 59.4 [55, 62] | 20/20 |
| int8 quantization | 59.4 [55, 62] | 20/20 |
| Head reset retrain | 59.4 [55, 62] | 20/20 |
| Channel permutation | 32.6 [28, 38] | 0/20 |
| Transformation | Max logit | Naive BER | Recovered BER |
| Layer split ( ) | 0.000 | 0.000 | |
| Replicate permute | 0.562 | 0.000 | |
| layer split | 0.562 | 0.000 |
| Reference | Revert | Mem. BER | Out. BER | Clean loss |
| Public initializer | 0.156 | 0.019 | 4.496 | |
| 0.169 | 0.094 | 4.593 | ||
| 0.206 | 0.256 | 4.914 | ||
| Similar, same corpus | 0.169 | 0.019 | 4.427 | |
| 0.244 | 0.119 | 4.425 | ||
| Similar, disjoint corpus | 0.163 | 0.019 | 4.425 |
Appendix figures & tables10 assets
Supplementary material from the paper’s appendix.
Appendix
| Dataset or task | Architecture | LIF timesteps or context | Parameters | Embed steps | Payload |
| enwik8 language modeling | 4-layer recurrent SNN | context 128 | 0.97M | 250 | 32 |
| OpenWebText checkpoint, enwik8 embed | SpikeGPT-216M | context 1 024 | 215.4M | 2,000 | 64 |
| MNIST | 3-stage spiking CNN | 4 | 0.21M | 200 | 24 |
| CIFAR-10 | SEW-ResNet-18 | 4 | 11.18M | 300 | 16 |
| CIFAR-10 | Spikformer | 4 | 0.65M | 3 000 | 16 |
| CIFAR-10 | QKFormer | 4 | 0.14M | 3 000 | 16 |
| Steps | Genuine min. | Negative max. | Difference |
| 53 | 49 | 4 | |
| 59 | 48 | 11 | |
| 59 | 50 | 9 |
| Training | Genuine range | Fresh FP | FT pass |
| 400/ | 48–57 | 8/30 000 | 19/20 |
| all at | 53–60 | 0/30 000 | 19/20 |
| all at | 55–62 | 0/30 000 | 20/20 |
| Payload | Membrane | Output |
| 8 | 8/8 | 8/8 |
| 16 | 16/16 | 16/16 |
| 32 | 32/32 | 32/32 |
| 64 | 64/64 | 64/64 |
| 128 | 128/128 | 127/128 |
| Scale | MeMark | DICTION | loss M | loss D |
| Firing threshold | ||||
| 0.075 | 0.256 | +0.603 | +0.606 | |
| 0.034 | 0.178 | +0.510 | +0.513 | |
| 0.003 | 0.022 | +0.256 | +0.258 | |
| 0.000 | 0.000 | +0.088 | +0.088 | |
| 0.000 | 0.000 | +0.000 | +0.000 | |
| Exposed fraction | Exposed BER | Hidden BER |
| 0.00 | – | 0.000 |
| 0.25 | 1.000 | 0.000 |
| 0.50 | 1.000 | 0.000 |
| 0.75 | 1.000 | 0.000 |
| 1.00 | 1.000 | – |
| Condition | Val. loss | Match acc. | Recovered BER |
| Task signature flattening | 0.984 | 0.000 | |
| Plain fine-tuning | 0.828 | 0.031 |
| Quantity | Measured |
| Checkpoint / secret key size | 861.7 MB / bytes |
| Membrane state on the challenge | scalars |
| Scalars the verifier reads | 64 ( ) |
| LIF modules that must be observable | 30 of 36 |
| with the keyed modules tapped | 788 ms ( ) |
| with all LIF modules tapped | 791 ms ( ) |
Robust Watermarking
Robust watermarking embeds or verifies ownership and provenance signals that survive editing, compression, model changes, and deliberate removal.
See all 208 papers