DEV Community

Daniel Ioni
Daniel Ioni

Posted on

From a Real Kefir Handover to a Blockchain Commitment: Building MyZubster in the Real World

Today we reached an interesting milestone with MyZubster.

Not because we deployed another feature.

Because we tested the system with something that actually happened in the physical world.

A kefir culture was handed from one person to another.

MyZubster then tracked the process through an authenticated marketplace workflow:

ACCEPTED

HANDED_OVER

RECEIVED

RECORDED

The donor confirmed the physical handover.

The recipient independently confirmed that the culture had been received.

Finally, the completed exchange was recorded by MyZubster.

No payment was involved.

method: HAND_DELIVERY
paymentRequired: false
state: RECORDED

This may look like a small experiment, but it raises a much bigger engineering question:

How do you connect events in the physical world with verifiable digital evidence without pretending that software can prove more than it actually knows?

That distinction is becoming an important principle in MyZubster.

RECORDED does not mean blockchain.

It means MyZubster has digitally recorded the completed workflow.

So the system explicitly reports:

onchainRecorded: false

We are now building the next layer.

For a completed handover, MyZubster can prepare a canonical commitment containing only the information required to represent the event:

{
"schema": "myzubster.marketplace-handover.v1",
"handoverId": "...",
"listingId": "...",
"method": "HAND_DELIVERY",
"state": "RECORDED",
"handedOverAt": "...",
"receivedAt": "...",
"recordedAt": "..."
}

The donor and recipient identities are deliberately excluded from the blockchain commitment payload.

The canonical representation is hashed using:

SHA-256

Conceptually:

Real-world event

Authenticated confirmations

MyZubster record

Canonical payload

SHA-256

commitmentHash

Blockchain anchor

But there is another important boundary.

Generating a hash is not the same thing as anchoring something on a blockchain.

MyZubster will only consider a handover on-chain when there is actual blockchain evidence such as:

network
txId
commitmentHash
confirmedAt

Until those exist and the transaction is confirmed:

onchainRecorded = false

No imaginary transaction hashes.

No fake blockchain state.

No “decentralized” label added to a MongoDB record.

The blockchain should prove one narrow thing:

a particular cryptographic commitment existed and was anchored at a verifiable point in the blockchain history.

It does not prove that kefir is safe.

It does not prove what happened physically.

It does not magically validate the knowledge attached to the exchange.

Those claims require their own evidence.

For me, this is where MyZubster is becoming more interesting.

We're not starting with blockchain and looking for something to put on it.

We're starting with real human activity, capturing its evidence boundaries, and only then deciding what is meaningful to anchor cryptographically.

The experiment started with something extremely ordinary:

giving someone kefir.

And that ordinary event is helping us design a much more general protocol:

Share

Transfer

Confirm

Record

Commit

Verify

The blockchain part is next.

But only when there's a real transaction to prove it.

webdev #blockchain #opensource #nodejs

Top comments (0)