zkBits ::: Cryptographic Proof-of-Work Art Inscriptions on zkBitcoin

zkBits Protocol v1.0.0

Protocol documentation is a work in progress

Cryptographic Proof-of-Work Art
Inscriptions on zkBitcoin

zkBits are provably unique pieces of art
inscribed in zkBitcoin blocks on the zkSync blockchain
using proof-of-work hash inputs

Examples


zkBit #7204
Intentional art

zkBit #6449
(Random noise)

zkBit #7203
(Random noise,
14 frames)

Figure 1: An example of intentional vs. non-intentional zkBit art. The zkBit on the left was produced by computing, at significant cost, a SHA3 input nonce, which is also a recognizable piece of art, that produced a SHA3 output hash satisfying the zkBitcoin equation.

Background:
zkBitcoin PoW mining on zkSync

zkBitcoin is a proof-of-work (PoW) mineable token, modeled on the original Bitcoin cryptocurrency, which runs on zkSync Era, a major Ethereum Layer 2 blockchain.

zkBitcoin miners compete to mine zkBitcoin blocks and receive a financial reward, currently 50 zkBTC per block, if they can solve the zkBitcoin equation. The tokens have immediate liquid value on decentralized markets.

keccak256(
challengeNumber|msg.sender|nonce
) < miningTarget
Figure 2: The zkBitcoin equation. The only fully unconstrained parameter under the hash function is nonce, yet the actual range of acceptable input to hash function is constrained such that the SHA3-Keccak hash satisfies the current mining target of the zkBitcoin protocol, a difficult condition to satisfy.

Method

A zkBit, which is an animated or still artwork, is generated every time the zkBitcoin contract is directly called using the multiMint method, using the successfully mined nonces.

The multiMint method can be called with any number of solution nonces.

Each winning 256-bit nonce is rendered as a 16x16 black-and-white frame, and all the winning nonces are animated as a GIF.


zkBit #7128 (Found art)
Informally titled
"Sideways Ghost with Dog Head"

Figure 3: An example of found zkBit art. The name "Sideways Ghost with Dog Head" is informal.

Why are some zkBits not animated?

The multiMint method can be called with any number of solution nonces, including only a single nonce. In that case, the zkBit will only have a single animation frame, so it will be static.

Notes

Future work