Anonymous Blockchain Voting is Impossible (I Was Wrong)First, you'll think it's impossible. "Anonymous voting on a public blockchain?" Then, after you understand the basics, you'll think it's simple. "Oh, you just hash some secrets and use a Merkle tree. Easy!" You'll be wrong both times. The real insigh...Jan 27 路 18 min readnjerii.hashnode.dev
P3RF3CT ROOT CTF 2025 Writeup - Web3 & CryptographyIntroduction "See you at the next CTF! Maybe next time I'll see less dust and capture more flags!" Well, past me... I'm happy to report: MISSION ACCOMPLISHED. 馃帀 Last year, I stumbled through the P3rf3ctr00t CTF like a newborn deer on ice. Wide-eyed,...Dec 8, 2025 路 45 min readnjerii.hashnode.dev
My Leap Into Zero Knowledge: A ZkForge Bootcamp JourneyWhen I joined the ZkForge Bootcamp by ZKMonk, I wasn鈥檛 sure what to expect. I only knew one thing: I needed structure. Zero-knowledge proofs had been this vast ocean I was swimming in, reading papers, tinkering with toy examples, but never fully know...Sep 25, 2025 路 4 min readnjerii.hashnode.dev
Advent of Rust 2024: Day 2鈥擱eferences in Rust 馃Borrowing without ownership Yesterday, we solved the ownership puzzle using .clone(). Today, I am introducing a more elegant solution: references! Original Code (Ownership Transfer) fn main() { let gift_message = String::from("Merry Christmas! En...Dec 15, 2024 路 4 min readnjerii.hashnode.dev
Advent of Rust 2024: Day 1 - Rust's Ownership馃The Original Challenge fn main() { let gift_message = String::from("Merry Christmas! Enjoy your gift!"); attach_message_to_present(gift_message); println!("{}", gift_message); } fn attach_message_to_present(message: String)...Dec 14, 2024 路 2 min readnjerii.hashnode.dev