Skip to content

v42.3.0

Choose a tag to compare

@Phinetwork Phinetwork released this 27 Jan 04:55
fab38a5

v42.3.0 — Share-Link Compact Proof Bundle (KAS + ZK) + Deflate-Bomb Guardrails

What changed

  • Restored social-shareable VerifyPage links while still carrying the full public proof bundle (KAS WebAuthn attestation + Groth16/Poseidon ZK proof + public inputs + hashes) fully self-contained in the URL.

  • Introduced compact share payload ?p= using a versioned codec:

    • ?p=c1:<base64url(deflateRaw(JCS(JSON)))>
  • Kept full backward compatibility:

    • Legacy ?r= links still decode and verify exactly as before.

Why it matters

  • Short links are postable again on Twitter/X and other platforms without breaking the “all-proof-in-the-link” offline verification experience.
  • Offline-first remains intact: opening a shared link renders and verifies directly from embedded public proof material—no server lookup required.

Security / Performance hardening

  • Added strict decode limits to prevent DoS / deflate-bomb expansion:

    • Caps on encoded param length (MAX_P_CHARS)
    • Caps on compressed bytes (MAX_COMPRESSED_BYTES)
    • Caps on inflated output bytes (MAX_INFLATED_BYTES)
    • Fail-fast decoding with safe abort during inflation
  • Legacy ?r= path also bounded to prevent accidental oversized payloads.

Implementation highlights

  • Added a dedicated codec module (shareBundleCodec) with:

    • encodeSharePayload() / decodeSharePayload() for ?p=
    • encodeLegacyRParam() / decodeLegacyRParam() for ?r=
    • Canonical JSON via JCS before compression to maximize determinism + compression ratio.

Result

  • VerifyPage share URLs are compact, deterministic, offline-verifiable, and safe against decompression abuse—without changing any KAS or ZK verification semantics.

What's Changed

Full Changelog: v42.2.0...v42.3.0