Article
Cryptographic Challenges for AADP WE
Break It Bad!
Witness encryption is a powerful cryptographic primitive, which allows a ciphertext to be decrypted by anyone who holds a valid witness to a chosen NP statement, with no prior interaction between sender and receiver. A practical construction would unlock a wide set of applications, including time-lock and event-triggered disclosure, sealed-bid auctions, conditional on-chain payments, fair exchange, and access control gated by zero-knowledge proofs. Today, many of these are realized only with trusted parties or other workarounds.
Recently, we proposed a new witness encryption scheme that is more efficient than previous approaches and can be implemented in practice. It is based on an earlier construction from 2020, extending it to general arithmetic programs. However, in both the original construction and our adaptation, the cryptanalysis relies on heuristics rather than reductions of known hard problems.
In particular, since these constructions are of algebraic nature, cryptanalytic attacks like (re)linearization approaches and more specialized attacks on certain classes of instances seem to be the most promising directions. This is true both for the original construction and for our adaptation.
Although neither construction is broken and there have been extensive efforts in cryptography to optimize algebraic attacks (see, e.g., XSL approaches on the AES and recent research in Gröbner basis attacks), a better understanding of the security of AADPs is desirable, especially when using them in high-stakes settings like Bitcoin.
For this purpose, we designed cryptographic challenges given in the following. We welcome anyone to attempt to break small instances of our new scheme or to discover structural properties that were unknown before.
Results
27 May 2026 A commutator-based attack breaking both this scheme and original ADP for sparse circuits was submitted. We are aware of the mitigation that fixes this class of attacks in characteristic and are working on extending it to characteristic .
Congratulations to the submitter, we will be in touch!
Specification of the AADP Construction
We refer to our construction as the AADP (arithmetic affine determinant programs). It consists of a setup phase and an encryption/decryption phase. For the purpose of this description, we briefly recall the specification without going into the details. Interested readers are referred to our paper.
Setup
We denote by the number of arithmetic gates (constraints) and by the number of variables. In our instances, (we emphasize that this condition is important in order to prevent certain classes of attacks).
Given a projectively safe constraint system , the setup produces public matrices with . For each gate , we define the linear forms from the constraint system and a secret random linear form with \xi_{i,j} \stackrel{\text{\}}{\leftarrow} \mathbb{F}4 \times 4$ gate matrix is then defined as
Secret random masking matrices L_i \stackrel{\}{\leftarrow} \mathbb{F}^{k \times 4}R_i \stackrel{$}{\leftarrow} \mathbb{F}^{4 \times k}$ are sampled, and the public matrix is then defined as a sum over the gates s.t.
If is a valid witness, each has rank and has rank , so . Otherwise, has full rank with high probability.
Encryption and Decryption
To encrypt a message , we set the ciphertext to
i.e., the message is added to the bottom-right entry of . Decryption with a valid witness evaluates at and recovers as the unique root of , which is linear in .
Rules for the Challenges
Before defining the challenges, we fix a set of rules in the following.
- We exclude attacks based on guessing finite field elements, since our target field will be cryptographically large. However, we encourage the use of smaller fields (for ) to facilitate the implementation of attacks (e.g., in cases where an otherwise qualifying attack hits the memory limit on a certain machine).
- Attacks must be implemented and verified in practice. Both the attack code and a detailed description of the approach must be submitted as part of the solution.
- Submissions must be made public within 2 months after confirmation.
- We generally follow a first-come-first-serve basis if there are multiple qualifying submissions. However, we may abstain from following this rule verbatim if two submitted attacks differ largely in their approach.
- A single approach breaking multiple challenges at once only qualifies for the highest-paid challenge.
- People from [[alloc] init] are excluded from the challenges and are not allowed to send any submissions.
- External committee members are allowed to submit results, but in this case they are excluded from the judging process.
External Committee
To ensure fairness, we have an external committee of domain experts that help with the evaluation of the challenge process. In particular, this includes overseeing key decisions and offering neutral perspectives on the submissions. All committee members are serving in an unpaid capacity.
- Carlos Cid
- Lorenzo Grassi
- Morten Øygarden
- Akin Ünal
Cryptographic Challenges
We now present the cryptographic challenges.
Full Instances
Our first set of challenges focuses on full instances of the AADP construction with small setup parameters. As we expect the security of the construction to scale with the number of gates , we choose small values for to reduce the cryptographic complexity of the challenges.
Circuit Definition
The circuit is designed such that no valid witness exists, while preserving the AADP structure that the cryptanalytic challenges target. The reason is that, otherwise, a solution could simply be found by finding a valid witness (which is trivial with small ).
The circuit is built as follows. First, we have bit check gates that enforce that . The circuit's input is the linear form , so . Secondly, we have gates that compute a squaring chain, resulting in . The last of these gates is also meant as an equality check against the target. Finally, we have a public target value fixed during the setup phase by sampling uniformly at random from the quadratic non-residues in . The circuit then asserts .
Since is always a quadratic residue in , picking to be a non-residue rules out any witness with certainty. The bit check gadget is needed to pin into . Indeed, the gate has roots in every extension of , so the bit check prevents an attacker from working in some extension in which does admit a -th root and using the resulting extension field witness to decrypt.
Scaling to (moderately) larger is easy by keeping and setting , so the relation becomes with still in .
Challenges
Two different approaches qualify as solutions here.
- Full Randomness Recovery: A full randomness recovery, i.e., all setup parameters that lead to the public matrices given as part of the challenge. This particularly consists of valid values for , , and .
- Decryption: Decryption of the message contained in the bottom-right entry of .
| Prize | ||
|---|---|---|
Submission
For full randomness recovery, the submission consists of concrete values for all secrets, namely , , and for and . A submission qualifies if
holds as an identity of matrix polynomials in , i.e., if the claimed secrets reproduce each public matrix coefficient-wise. We note that any valid tuple qualifies, hence we do not require the submitted values to match the specific randomness used during setup.
Partial randomness recovery also qualifies. The challenge instances are published in canonical form, so every secret entry has a unique value. A submission qualifies if it satisfies both of the following.
- It lists specific entries of , , or together with their claimed values in . Alternatively, an entry may be replaced by any low-degree polynomial in the secrets. We compare each claim against the secret used during setup.
- It includes an argument that the claimed values do not trivially follow from public information alone (i.e., the constraint system and the public matrices ).
Prizes for partial randomness recovery are scaled according to how much of the secret state is revealed. In both cases, the submission must additionally include the attack code and a detailed description of the approach used to obtain the secrets, consistent with the rules in the previous section.
Challenge Files
We provide the generation code for the challenges and the binary files of the public matrices for each challenge set here. The binary files contain the target of the squaring chain (a quadratic non-residue), followed by the public matrices in row-major order, where each value is stored as a 32-byte big-endian unsigned integer. The field is the BN254 scalar prime and there are matrices each of size , where .
Structural Observations
Submissions reporting structural properties of the ciphertexts are also encouraged, regardless of whether they result in a full attack. Awards and prizes for such observations are granted at our discretion and are essentially based on their impact.
As it is difficult to precisely describe the qualifying criteria, in the following we give two examples that are intended as illustrative guidance.
Unexpected Subspace Intersections with
While the masking matrices are sampled uniformly at random during setup, they are not independent of the public matrices , and tied together by the setup equations . Informally, the AADP construction heuristically relies on the row spans of the still “appearing” random from the attacker’s perspective. Identifying any non-generic correlation that is detectable using only public information is a violation of this assumption, even without a full attack.
In particular, assume we have the following two building blocks.
-
A static subspace of dimension , constructed from publicly available information only, i.e., the constraint system and the public matrices for . In particular, must not depend on the secret .
-
A description of a subspace of dimension , given as a set of coefficient tuples , where , for . The subspace is then defined as the span of the vectors
We expect it to be hard to find and such that
i.e., where the intersection of and exceeds the (generic) expected dimension for two subspaces of dimensions that both live in with . In other words, it should be hard to find and whose intersection is larger than what two random subspaces of those dimensions would typically share. This would suggest that public data leaks information about the row combinations of . Here we exclude trivial correlations following from public data such as relations that can be derived directly from .
Partial Kernel Leakage
Consider the public matrices together with entries of a target kernel vector in specified positions (e.g., the first entries ), with fixed by normalization. We expect it to be hard to find and complete the remaining entries of such that
for a construction where . In particular, we expect the complexity of solving this problem to grow exponentially in , in line with the bilinear/Kipnis-Shamir Gröbner basis estimate.
Submission Process
Following the details for qualifying submissions above, any results or observations should be sent to challenges@allocinit.xyz, including a detailed description of the approach, the challenge claimed to be solved (and an answer if applicable), and auxiliary files like source code.