Map
↑Secure Multiparty Computation

Beaver Triples for Secure Multiplication

Wiki summarycryptographympctutorial ↳ show in map Markdown
title
Beaver Triples for Secure Multiplication
type
summary
summary
Stoffel Labs walkthrough of how Beaver triples let secret-shared values be multiplied without raising the reconstruction threshold
tags
cryptography, mpc, tutorial
created
2026-05-10
updated
2026-05-10

Stoffel Labs (an MPC-as-a-service company) wrote a friendly walkthrough of beaver-triples using a four-friends-pick-a-restaurant story. The framing matters because the protocol is exactly the kind of thing that looks abstract until somebody draws the rectangle.

The setup: four people each rate three restaurants on affordability a and food preference f, both 0–10. The group wants per-restaurant scores S_j = Σ a_ij · f_ij without anyone learning the individual a_ij and f_ij. They use secret-sharing with a 2-of-4 reconstruction threshold.

Addition of secret shares is free — secret sharing is linear, so [x] + [y] = [x+y] with no interaction and no degree increase. Multiplication is the hard part: naïvely computing [x][y] doubles the polynomial degree, which means the reconstruction threshold rises from 2 to 3. That breaks the protocol's assumption that two people can open the result.

The fix is a precomputed triple ([a], [b], [c]) where c = ab and a, b are random masks. Beaver's identity rewrites the rectangle of area xy using (x-a) and (y-b):

xy = c + (x-a)·b + a·(y-b) + (x-a)·(y-b)
   = c + d·b + a·e + d·e          where d = x-a, e = y-b

Crucially d and e can be safely opened because a and b are uniformly random one-time masks. With d and e public, the right-hand side is computable from shares alone — no degree increase. The cost is one fresh triple per multiplication, plus one round of communication to open d and e.

The two correctness/security caveats Stoffel emphasizes:

  • a and b must be uniformly random; if either has any bias, opening d=x-a leaks information about x.
  • Each triple must be used exactly once. Reusing [a],[b] across two multiplications (x,y) and (x',y') reveals d'-d = x'-x and e'-e = y'-y, which leaks linear relationships among the secret inputs.

Beaver triples are typically generated in an offline phase (sometimes by a TTP, sometimes via OT/HE-based protocols) and consumed in the online phase. The pattern is the foundation of every modern semi-honest MPC stack — SPDZ, MASCOT, TinyOT — and the reason Stoffel can sell "MPC as a service" without rebuilding the cryptography per use case.

Cross-references: secret-sharing, secure-multiparty-computation, beaver-triples, stoffel-mpc.