Generative Editions and Provable Randomness

Written by
Conlan Rios

Generative Editions and Provable Randomness

Written by
Conlan Rios

Generative Editions and Provable Randomness

Written by
Conlan Rios

Async's new Blueprints template has leveled up Layers into generative projects, where an artist pre-determines the possible variations and collectors mint a provably random Edition. You might be asking: "How do I know the Edition I'm getting is actually random?"

For this, let’s imagine you’re purchasing an edition of the “Fruit Gang” Blueprint. Each Edition has a 1/3 chance of being a Banana, Orange, or Grape, respectively...

...and the rules of the purchase are as follows: 

Once you buy, you will roll a single number between 1 and 99. If that number is 1-33, you’ll receive a Banana, if it’s 34-66, you’ll receive an Orange, and if it’s 67-99 you’ll receive a Grape.

The sale flow looks like this:

You pay the money and I give you the Edition. Then I tell you which number you rolled to determine that Edition’s type.

Can you see anything potentially wrong with this flow? 

The randomness is not provable! Maybe I was running low on Grapes and decided to give you an Orange. Or maybe Bananas are worth a lot more and I want to keep them for myself. There’s no way for you to verify that 55 is in fact what you rolled.

To fix this, let’s first cover what a “Pseudorandom number generator” is.

Don’t run away! It’s really quite simple. A random number generator can be thought of as a machine that displays a random number each time you poke it.

If it’s truly random, then you can never predict what number will be displayed since it could be anything: 1, 99, 7, 13, 2037, 55599999999, etc.

Furthermore, if you were to duplicate this machine, the numbers they generate would be different for each one.

Now let’s take a pseudorandom number generator. This is the same thing, except that when you first build it, you provide a single number of your own. It can be anything that you choose and this number is called a seed.

Now the machine will still generate random numbers:

But machines with the same seed will generate random numbers in the same order as each other. This is important because we want everyone participating in the generative project to be part of the same random chain of numbers.

Now let’s go back to the Fruit Gang purchase and see how this can fix our flow. Before the purchase, I hold out a closed hand and tell you that the seed to a random number generator is concealed inside.

You make the purchase as normal.

But now after the sale I also open my hand to reveal the seed number as well:

Enabling you to take that seed and run the random generator yourself:

As a way to verify that 55 was, in fact, your rolled number.

Learn more about Async Blueprints here.