RSSAmplifier

Blog

Matt Faulkner’s Blog

Thoughts from an Engineer, Entrepreneur, Applied Cryptographer

mfaulk.github.ioRSS feed ↗10 posts

Latest posts

Fixing an Intermittent Left-Half Failure on the Kinesis Advantage360

A follow-up to my earlier post on programming a Dvorak layout for the Advantage360. Same keyboard, different problem: the left half of my wired Advantage360 (KB360, SmartSet engine — not the Pro) started dropping out a few times a day. If you’re seeing the same thing, this post is the short version of how I diagnosed it and what fixed it.

Dvorak with the Kinesis Advantage360

This post shows how to program a Dvorak layout for the wired Kinesis Advantage360 by directly editing a layout file. Note that the (wireless) Advantage360 Professional uses a completely different configuration process, described here . For many years now, my keyboard of choice has been a contoured Advantage keyboard from Kinesis with a Dvorak layout. Contoured keyboards make the home row a very…

ZKML Reading Notes

A chronological survey of the zkML field, through 2024.

The Evolution of SNARKs: Interactive Proofs to Groth16

This post is a high-level recap of the foundational ideas that led to the first practical zk-SNARKs. There’s a lot to cover, and so this post focuses on the developments leading up to the introduction of the Groth16 SNARK. Groth16 feels like a good milestone: it was one of the first SNARKs used in practice, and its small proofs and fast verification are still, largely, unmatched today.

The Evolution of Zero-Knowledge Proofs: A Timeline and Comparison

The field of zero-knowledge proofs (ZKPs) has seen some amazing advances in the last several years. All of that progress, though, makes it difficult to keep up with the state of the art and see how all the pieces fit together. This post is my (ongoing) attempt to follow the impactful developments and trace some of the lines of inquiry.

Deep Learning: Variational Autoencoders

In the previous post about autoencoders, we looked at their ability to compress data into a latent space and then reconstruct it with remarkable fidelity. This time, we’ll look at Variational Autoencoders (VAEs).

Deep Learning: Convolutional Neural Nets

The previous post trained an autoencoder for the MNIST images of handwritten digits. While that worked, it was a very generic solution in the sense that it ignored the spatial structure of an image and just treated an image as a vector of numbers. This time, we’ll build a convolutional autoencoder that uses convolutional layers instead of fully-connected layers. Convolutional layers offer several…

Deep Learning: Autoencoders

Today, I want to kick off a series of posts about Deep Learning. As the first installment, this post delves into the fundamentals of autoencoders, their applications, and gives a worked example of training an autoencoder with PyTorch.

Ilya’s AI papers: Key Takeaways

The internet has been talking about a list of AI papers that Ilya Sutskever, co-founder of OpenAI, recommended to John Carmack:

Zeebra: ZEro-knowledge algEBRA

Introducing Zeebra , a Rust library for zero-knowledge cryptography. Zeebra implements a subset of computational algebra and number theory for zero-knowledge cryptography. It contains many of the core algebraic structures and operations needed for zero-knowledge proofs, including big integers, finite fields, polynomials, and linear algebra. While there are several very good algebra libraries in…