• Creating an Off-chain Uniswap Pricing Oracle by Porting Solidity Arithmetic

    TL;DR: If you follow along with this post, you’ll get a recipe for creating an offline pricing oracle for Uniswap by reimplementing several library functions. We start with the high level solidity functions and drill down into the guts of Yul and Ethereum.

  • Rust and WASM - Game of Life

    TL;DR: Playable game of life in this post, written in Rust, running with WebAssembly. I started learning Rust a while ago, when I was trying to get a handle on OS development. I followed along with Philipp Oppermann’s blog but quickly put Rust aside for C and the osdev wiki.

  • ChainLock, A Linux Tool for Locking Down Important Files

    This post was originally written for the ElevenPaths Innovation and Laboratory website, and is available here.

  • Revisiting Blockchain DNS

    I recently received an email from Oleg Khovayko, the CTO of Emercoin, after he read my original post about blockchain DNS. He wanted to raise three points to me. The first is that emerDNS has gained a following in Russia for censorship circumvention. The second is that he maintains a list of active emerDNS domains. And the third is that they’ve simplified the process of running an emerDNS resolver. That third point is nice, because it appears that the Firefox plugin I used last year no longer works. Interestingly, when installing the PeerName Chrome plugin for this post, the webstore automatically recommended some plugins popular in Russia for censorship circumvention. Looks like we’re on to something.

  • A Straightforward Implementation of Dixon's Factoring Algorithm

    When studying RSA cryptanalysis you may be asked to implement, as a learning exercise, Dixon’s random squares algorithm for factoring composite numbers of two primes. Unfortunately, many implementations demonstrate more powerful versions of the algorithm. They take shortcuts, make optimizations, or implement a different algorithm entirely (like the number field sieve). This is not helpful when you’re trying to learn how Dixon’s works in a straightforward way. In this post I’ll lay out a simple implementation of Dixon’s algorithm in C.