Blog
A quest for knowledge and professional development
This blog is an exploration of the challenges of a developer at the cutting-edge of technology.
The main point of view is to look at a profession, and life in general, as a grand Journey of Adventure.
Here you’ll find comments on different aspects of working in a revolutionary new field and some (sometimes deep) explorations of the basis of that technology.
Finality and fork resolution in Blockchains
Debugging with the Scientific Method
Little Frictions
Non-Fungible Tokens in Ethereum: ERC-721
Fungible Tokens in Ethereum: ERC-20
New Chains on the Block
March 2021. The days are longer, Covid shows the first signs of receding and Spring is coming. For the…
Echoes from the Future – Chain Reorganizations
More Thoughts About Working From Home
A Comic on Maths, Logic and Computer Science
What’s in an Name?
It’s been a bit over two years since I started Coder’s Errand. All this time, I’ve wondered how this…
Fungible and Non-Fungible Tokens in Blockchains
Part of this series: Fungible and Non-Fungible Tokens in BlockchainsFungible Tokens in Ethereum: ERC-20Non-Fungible Tokens in Ethereum: ERC-721 I…
ECDSA Malleability
ECDSA in Ethereum Digital SignaturesDetails of ECDSA SignaturesECRecover and Signature Verification in EthereumECDSA Malleability In the previous posts in…
Home or Office Working?
The Remote Work Experiment Discoveries about Working From HomeWhy I Preferred Office Working Once again, I turn to write…
Discoveries About Working From Home
The Remote Work Experiment Discoveries about Working From HomeWhy I Preferred the Office The coronavirus pandemic has forced me,…
ECRecover and Signature Verification in Ethereum
Ethereum Digital Signatures Digital SignaturesDetails of ECDSA SignaturesECRecover and Signature Verification in EthereumECDSA Malleability As seen in the previous…
Details of ECDSA Signatures
Ethereum Digital Signatures Digital SignaturesDetails of ECDSA SignaturesECRecover and Signature Verification in EthereumECDSA Malleability In the previous post in…
Digital Signatures
Ethereum Digital Signatures Digital SignaturesDetails of ECDSA SignaturesECRecover and Signature Verification in EthereumECDSA Malleability If you are a cryptographer,…
How to Keep Your Blog Alive
Times of Rebirth
We are living through strange times. Hopefully, if you read this a few years from now, you won’t remember…
A Musical Escapade
If you’re a software developer, or work in some intellectually demanding occupation, one that requires continued focus for a…
Logging in Ethereum – Part 3
Event Topics Logging and Reporting EventsThe EVM’s Log OpcodesEvent Topics If you’ve read the previous post in this series,…
Logging in Ethereum – Part 2
The EVM’s Log Opcodes Logging and Reporting EventsThe EVM’s Log OpcodesEvent Topics The previous post of this series introduced…
Be a Hero: Change Career
It’s the New Year, and many people around the world are now battling themselves to stay true to their…
Logging in Ethereum – Part 1
Ethereum Smart Contracts for Beginners – part 5
Ethereum Apps with Web3.js How Do Ethereum Smart Contracts Work?Writing Smart Contracts in RemixSetting Up Truffle to Deploy Smart…
Ethereum Smart Contracts for Beginners – part 4
Truffle Console and Truffle Tests How Do Ethereum Smart Contracts Work?Writing Smart Contracts in RemixSetting Up Truffle to Deploy…
Ethereum Smart Contracts For Beginners – part 3
Setting Up Truffle to Deploy Smart Contracts How Do Ethereum Smart Contracts Work?Writing Smart Contracts in RemixSetting Up Truffle…
Ethereum Smart Contracts for Beginners – part 2
Writing Smart Contracts in Remix Posts in this series: How Do Ethereum Smart Contracts Work?Writing Smart Contracts in RemixSetting…
Ethereum Smart Contracts For Beginners – part 1
The Buried Giant, or the Spirit of Coder’s Errand
I started the Coder’s Errand in 2018. Part of the reason I did so was that I needed change,…
Are zk-SNARKs the Right Tool for You? (part 3)
Are zk-SNARKs the Right Tool for You? (part 2)
Posts in this series: The Case for zk-SNARKsThe Case Against zk-SNARKs Alternatives to zk-SNARKs I explored the strengths of…
Are zk-SNARKs the Right Tool for You? (part 1)
How to Hash Data Without Errors (part 3)
How to Hash Data Without Errors (part 2)
How to Hash Data Without Errors (part 1)
How ZK-SNARKs Put Privacy in Blockchains
ZK Snarks and Their Algebraic Structure – Part 5
Implementing ZK Snarks: a Story
ZK Snarks and Their Algebraic Structure – Part 4
Extension Fields Some time ago, I started a series on the algebraic structure behind ZK-Snarks. My focus was to…
Can Algorand Solve Blockchain Scalability?
The Vanishing Polynomial for QAPs
ZK Snarks and Their Algebraic Structure – Part 3
Have You Considered a Career In Blockchain?
These are interesting times we live in. This can, of course, be a good thing (exciting new opportunities) or…
How to Build a Quadratic Arithmetic Program
In a previous post I explained how one can express a provable function for a ZK-SNARK in a Rank-1…
ZK Snarks and Their Algebraic Structure – Part 2
Elliptic Curves Previously I started peeling away at the different components that make a cryptographic pairing. I talked about…
Constraint Systems for ZK SNARKs
Currently at Artos, we are researching ZK SNARKs in depth. One of the tasks we’re handling is to convert…
One Year of Coder’s Errand
It is one year today since I started The Coder’s Errand and wrote my first post. Time, then, for…
ZK-Snarks and Their Algebraic Structure – Part 1
Zero-Knowledge Proofs: A Layman’s Introduction
In my experience, people smile when they hear the words Zero-Knowledge Proof . Maybe I did too, I don’t…
Ethereum Support for ZK-SNARKs
I have the rare privilege of being able to do research at work. Since my working life was half…
Practical ZK-SNARKs for Ethereum
Mismatched newlines: CR LF, CR or LF?
A few days ago, I was coding a small parser in C++ for a ZoKrates output file and hit…
Numerical Bases – Part 2: Bit-wise operations
In my previous post, I covered the essentials of how to convert between representations of a number in different…
Numerical Bases
Today’s post is a little different. It is not about Ethereum, Blockchain or anything remotely modern, but rather about…
Solidity’s Stack too deep errors
When one starts coding smart contracts in Solidity, sooner or later, s/he will hit a very annoying obstacle. The…
Problem Encoding for ZK-STARKs
In the last post, I made an introduction to the concept of Zero Knowledge Proofs, and talked a bit…
Personal notes on ZK-STARKs
Since I started looking at the blockchain world, I saw the term ZK-SNARKs pop up here and there, but…
Development environment for Ethereum
When one decides to start developing smart contracts, one of the things at the top of the list is…
More price functions for Token-Bonding Curves
In my previous post about Token-Bonding Curves, I showed that Bancor only allows 4 different types of curves. But…
Token Bonding Curves
There is a relatively new concept doing the rounds around the blockchain community, that of Token Bonding Curves. Although…
Arrays in Solidity
There are many occasions when we want to pass to a function a group of similar data that may,…
HackerRank Day 7: Correlation
Following several days dedicated to probability distributions, the statistics tutorial then changes tack, and turns to correlation coefficients. A…
Working with Strings in Solidity
It feels like a long time since I started this blog, and until now it has been dedicated to…
The Central Limit Theorem (Day 6)
Days 4 and 5 of the Statistics 10-day challenge (HackerRank) were dedicated to specific probability distributions. Day 6 builds…
HackerRank Days 4 and 5: Probability Distributions
In my last post about HackerRank, I left you with a cliffhanger: I covered the approach strategy, showing how…
Crossing the moors
When I started this blog, I purposely set myself two goals, with the expectation I would eventually decide between…
New Beginnings
It has been more or less four weeks since I last wrote on this blog. One moon it is,…
Solving problems with probability distributions
This post focuses on days 4 and 5 of the “10 Days of Statistics” path in HackerRank, because they…
HackerRank Statistics Day 4: Binomial Distribution
On this post, I go on with my trail through the HackerRank series “10 Days of Statistics”. After two…
HackerRank Statistics Day 3: Yet More Probabilities
Day 3 of the Statistics Tutorial in HackerRank was again devoted to Statistics. In general, I felt the exercises…
More About Probabilities: Negative Logic
There is a class of probability problems that I often see students struggling with. I think of them as…
Probabilities: Compound Events
In this post I solved three probability questions using the basic principle of discrete probability: find the ratio of…
HackerRank Statistics Day 2: Probabilities
Hello all, I’m back after a longer hiatus than I intended. After Easter, some things happened that took a…