Markus Schofnegger
—May 07, 2026
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!
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.
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.
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 .
Before defining the challenges, we fix a set of rules in the following.
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.
We now present the cryptographic challenges.
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.
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 .
Two different approaches qualify as solutions here.
| Prize | ||
|---|---|---|
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.
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.
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 .
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.
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 .
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.
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.