assertAllTobe420 :: Comp GF181 (Expr ‘Unit GF181)
assertAllTobe420 = do
-- expects an input array of length 8
xs <-inputArray 8
-- iterate through the array with indices from 0 to 7
forM_ [0 ..7] $ \i -> do
-- read out the variable in array ‘xs’ at index ‘i’
x <- access xs i
-- assert ‘x’ to be ‘420’
Keelung raises the level of abstraction, allowing developers to focus on implementing business logic rather than complex ZK circuits.
Keelung is a domain-specific language (DSL) embedded in Haskell. This allows developers to write high-level ZKPs guarded by Haskell’s advanced type system while leveraging the ecosystem and toolings of Haskell.
Easily transition to post-quantum. Keelung's modular design allows you to seamlessly move between pre-quantum and post-quantum cryptographic primitives.
Keelung gives you the flexibility to adjust the downstream proving system targeted by the R1CS circuit. This means you only need to compile one R1CS circuit to take advantage of an entire ecosystem of proving systems.
Keelung provides the flexibility to change the target environment for proof verification. Deploy Keelung proofs in any environment capable of zero-knowledge proof verification.
Privacy-Preserving Analytics: ZKPs can be used to enable secure and private data analysis without revealing sensitive information with applications in business intelligence, data analytics and machine learning. For example, a company could use zero-knowledge proofs to prove that their revenue is above a certain threshold without revealing the actual revenue number.
Finance: ING bank uses ZKPs to prove that mortgage applicants incomes are within the admissible range without revealing their exact salary.
Anonymous verifiable voting: Eligible voters can prove the right to cast a ballot without revealing their identity. Voters may also request a verifiable proof that their vote was included in the final tally by the administration organizing the vote.
Learn more about how Keelung works, get started with the step-by-step tutorial and set up your own project.
Read the reference of the language and documentation on the compiler.
Learn Keelung by some examples on a variety topics.
Check out the standard library for Keelung.
Sign up for our monthly newsletter, where we’ll keep you up-to-date with the latest Keelung updates.