Path: blob/main/frontier/12-mpc/break/cheating-dealer-detection.ipynb
483 views
Break: Cheating Dealer Detection in Shamir Sharing
Module 12 | Breaking Weak Parameters
Detect when a dealer distributes inconsistent shares using verification polynomials.
Why This Matters
In Shamir secret sharing (Notebook 12a), a dealer splits a secret into shares by evaluating a random polynomial. Every subset of shares reconstructs the same secret because they all lie on the same degree- polynomial.
But what if the dealer is dishonest? A cheating dealer could give one party a share from a different polynomial. Now different subsets of parties reconstruct different "secrets" --- and nobody knows which (if any) is correct.
This is a real threat in distributed key generation, threshold signatures, and any protocol that begins with a sharing phase. The fix is Verifiable Secret Sharing (VSS): the dealer publishes commitments that let every party check their share's consistency.
The Scenario
A dealer distributes Shamir shares over . Five parties each receive a share . But the dealer gives Alice (Party 1) a corrupted share that does not lie on the polynomial used for the other four parties.
Goal: detect the inconsistency without reconstructing the secret.
Step 1: Honest Dealing
First, let's see how an honest dealer works. All shares lie on the same degree-2 polynomial, so every subset of shares reconstructs the same secret.
Step 2: Cheating Dealer
Now the dealer corrupts Alice's share. Party 1 receives a value that does not lie on the honest polynomial. Different subsets of 3 parties now reconstruct different values.
Step 3: Detection with Feldman's VSS
Feldman's Verifiable Secret Sharing (1987) adds a verification layer. The dealer publishes commitments to the polynomial coefficients using a generator of a multiplicative group of order (where divides ).
If the polynomial is , the dealer publishes:
Each party checks their share against the commitments:
This works because:
Step 4: The Corrupted Share Fails Verification
Now the dealer gives Alice a corrupted share. The commitment check catches it immediately.
The Fix: Verifiable Secret Sharing (VSS)
Feldman's VSS ensures share consistency by binding the dealer to a specific polynomial via public commitments.
| Property | Plain Shamir | Feldman VSS |
|---|---|---|
| Share distribution | Dealer sends | Same, plus publishes |
| Verification | None | Each party checks |
| Cheating detection | Only after reconstruction | Immediately upon receiving the share |
| Assumption | Honest dealer | Discrete log hardness |
Limitation: Feldman's VSS reveals (the commitment to the secret). If hiding the secret's commitment is also required, Pedersen's VSS uses an additional generator with unknown discrete log relationship to , achieving information-theoretic hiding.
Summary
| Aspect | Detail |
|---|---|
| Attack | Dishonest dealer gives one party a share from a different polynomial |
| Impact | Different subsets reconstruct different "secrets" --- the output is meaningless |
| Detection | Feldman's VSS: dealer publishes ; each party checks |
| Root cause | Plain Shamir has no mechanism for parties to verify share consistency |
| Fix | Verifiable Secret Sharing (VSS) --- every sharing comes with public verification commitments |
| Real world | Distributed key generation (Ethereum 2.0, threshold ECDSA) requires VSS |
Key takeaway: secret sharing without verification is dangerous. In any protocol where the dealer might be malicious, VSS is essential. The commitments add minimal overhead (one group exponentiation per party) but provide complete protection against inconsistent shares.