Faragiri

Learn BlockchainCode

Petra's woodworking school wanted a blockchain for its certificates. Naming the party nobody trusted answered it in a minute.

5Sections
5Min read
2Depth

The mechanism

Editing one block invalidates every block recorded after it

Four moments on one ledger. Each block carries a summary of the one before it, which is the entire trick.

  1. MarchThe block an attacker wants to alterThe cheapest place to try, because everything after it is already settled
  2. AprilCarries March's summaryStops matching the moment March changes, and the mismatch is arithmetic rather than opinion
  3. MayAnd so on, every block sinceEach one invalidated by the same argument, all the way to the present
  4. NowThe block being addedThe network is still building here, faster than an attacker can redo the rest

The spacing says nothing about how long each block takes, which differs by chain. What is identical everywhere is that the cost of an edit grows with how far back it is made.

Petra Novak was asked to build a certificate registry for a woodworking school in Maribor: 600 graduates a year, and employers who want to check that a certificate is real. The school's first instinct was a blockchain. The question that decided it was not technical, and it is the question this topic is actually about: who is it that nobody trusts?

A chain is a ledger with no owner, and every property it has follows from that one refusal. It is slower than a database, it costs money per write, and it cannot be corrected. Those are not defects. They are the price of the guarantee, and the whole of this topic is worked out in that trade.

Why rewriting the past is expensive

The mechanism is one idea repeated. Each block carries a summary of the transactions in it, and it also carries the summary of the block before it. A block names the hash of the block before it, so changing one changes all of them. Alter a transaction from last March and that block's summary changes; the next block's recorded copy of it no longer matches; and so on to the present, every block after the edit invalidated by it.

That is what makes the history expensive to rewrite rather than impossible. An attacker has to redo the work of every block since the one they edited, faster than the rest of the network is adding new ones. The cost is deliberate, it is continuous, and it is paid by everybody in fees, which is the honest way to describe what a chain charges for. The detail of it is blocks, hashes and why rewriting history is expensive, and the two different ways of imposing that cost are proof of work, proof of stake, and what each buys.

Three facts that cost people money

The first is the one with no appeal. A seed phrase is the key, and anybody holding it holds the money. There is no account, no password reset and no institution. Twelve or twenty four ordinary words, generated once, and possession of them is ownership. A photograph of them in a phone's camera roll is the whole of the security. This is the part of custody, seed phrases and irreversible loss that people understand only after the fact.

The second surprises every beginner writing their first contract. Gas is paid whether the transaction succeeds or fails. The network charges for the computation attempted, not for the outcome, so a contract that runs for a while and then rejects the call has still consumed real money. A loop over an unbounded list is not a slow function here. It is a function that empties a wallet and then reverts.

The third is the one that shapes how contracts are written at all. A deployed contract cannot be changed, only replaced and pointed away from. The code at an address is permanent, so the ordinary practice of shipping a fix on Tuesday does not exist. Everything about code that runs on the chain and cannot be taken back follows from that, including the elaborate patterns for keeping a changeable pointer in front of an unchangeable implementation, and including the fact that an audit happens before deployment because afterwards there is nothing to do with the finding.

The question that answers Petra's brief

A chain is the right answer when the parties genuinely do not trust one another and there is no institution both accept. That is a real situation and it is narrower than the marketing suggests. Petra's registry does not have it: the school issues the certificates, the school is the authority on whether they are genuine, and an employer checking one is trusting the school either way. A signed record on the school's own server gives an employer exactly the same assurance, costs nothing per certificate, and can be corrected when somebody's name is misspelled.

The version of her problem that would want a chain is the one where the school might close, or might be asked to quietly withdraw a certificate. That is a real risk and it is worth naming rather than dismissing, which is what identity, records and the claims worth checking is for. She did not have it, and the honest engineering answer was no.

Petra's registry

What a chain is actually bought with, once the technology is not the question

The left pan is what a chain costs and it is always loaded. The right pan is empty unless there is genuinely nobody to trust.

  • What it costs to runpaid per write, forever, by somebody
    • A fee on every record, whether it succeeds or fails
    • No correction: a misspelled name is permanent
    • Slower than the database it replaced, by a wide margin
  • What it buysworth everything, in the narrow case where it applies
    • No owner who can be leaned on to withdraw a record
    • A history that survives the issuer closing down
    • Verification by a stranger with no account anywhere

the fulcrum is whether an institution both parties accept already exists

The tilt is not a verdict on the technology. It is a claim about how often the right pan is genuinely loaded, and for a school issuing its own certificates it is empty.

Where people stall

The stall is arriving through the price of a token rather than through a problem, and then looking for something to apply the technology to. It produces projects that are a database with extra steps and a worse failure mode, and the people building them usually know within a month and carry on because the decision was announced. Naming the trust question first is what prevents it, and it takes about a minute.

The second stall is technical and expensive. Somebody comfortable in an ordinary language writes a contract as though the code will be patched later, because every other environment they have worked in allows that. Everywhere else in programming, from the first variable to a deployed system a mistake is a Tuesday and a redeploy. Here it is a permanent function at a permanent address, holding whatever was sent to it, and the habits that make somebody fast in an ordinary language are the exact habits that are expensive in this one. The adjustment is not technical difficulty. It is learning to write as though there is no second attempt, which is a working style rather than a skill.

What to open, in 2026

Solidity remains the language most contracts are written in, and it took that position because it arrived with the first widely used programmable chain rather than because it is a pleasant language. It is free. The material on it, in the contract language, and its expensive mistakes, spends more time on what not to do than a language page usually needs to, and that is proportionate.

Foundry is the current default for building and testing contracts locally, and it replaced a JavaScript based generation of tooling for the ordinary reason that it is faster and that its tests are written in the same language as the contracts. A local test chain is free and is where every contract should fail for the first time.

For the browser half, in a front end talking to a chain instead of a server, the shape is familiar and the difference is that the user brings their own identity and pays for their own writes. What none of this decides is whether the thing being recorded needs any of it, and that question is answered by naming the party nobody trusts, not by naming the technology.

Alongside this

Above this