Drawchain™ by Pickaw
The Drawchain™ governs all draws on Pickaw and allows you to check that everything is going normally. It is the common base on which the entire structure and technique of the draws made on Pickaw rests.
Overview of the Drawchain™
- Seed
45cdz4W0Cc28sZaQ
- Seed
yVQ42tfQ8McEjIIA
- Seed
RWwjzQw4ShULofUd
- SeednnWqTElLhG6OvPPF
- Seed06nrizrLXKHhbEAg
- SeedFLvwQhNjahe6WGrO
To begin with, here is a representative diagram of the Drawchain™ to give you a mental picture and better understand the rest, which will be a little more technical.
Drawchain™
— Set of Seed Pool.
The Drawchain™ governs all draws on Pickaw through links between seed pools.
Seed Pool
— Set of Seed.
Each day corresponds to a Seed Pool being at the origin of the seeds generated and used by the draws made the same day.
Seed
— String of characters.
Each seed is unique and can be associated with a draw to produce and reproduce the process and outcome.
Technical definitions
Before getting to the heart of the matter, here is a list of technical definitions to familiarize yourself with the terms you will encounter several times on this page:
- master_seed: a unique and random string of 32 characters in base62.
- seed_pool: finite list of hash generated consecutively.
- hash, global_hash, ending_hash: unique and random string of 64 hexadecimal characters.
- seed: unique and random string of 16 characters in base62.
- sha256: standardized and highly secure hash function.
- base62: coding the information in 62 characters.
Let’s go into details…
It’s time to get started! As described above, the Drawchain™ is a name given to the list of Seed Pools. So we’ll see now what it contains and how the Seed Pools feed it!
Creation of a Seed Pool
The origin of a seed_pool
comes from the master_seed
generated by Random.org at our request each evening shortly before midnight UTC for the following day.
seedPool
therefore contains a list of all draws for a 24-hour period.This master_seed
is then used to generate a list of hash
large enough to serve all draws over the lifetime of the seed_pool
.
Here are the steps for generating the list of hash
:
- Hashing the
master_seed
withsha256
to create thehash
#1 - Hashing the
hash
#1 withsha256
to create thehash
#2 - Repeat step (2.) until you have a list of
hash
large enough
All hash
are therefore generated consecutively and depend on the master_seed
.
The ending_hash
is the last hash
generated, it is not used and only ensures that the seed_pool
has a beginning (master_seed
) and an end (ending_hash
) in order to prove that it has not been altered during its lifetime.
- 199bd291b6a487bdcc2c2ee694fe33795ce68a7f98980f5b122850311c8b0c58
- dff3c4d48755ba4b5d502abeeaf634f641d648912ea0f2112a19994446ed2234
- 054ef27ac47492d889f3ee68bbe31c5a748b1445d0c8d0c39f3434c9ab1563e9
- 3172b0dbd9355666b0dd60ca841066adde4d8bdae0123998ea0f936d2ae1ea2a
- 0bebacec2587be7b59279dd0785ddf7d503879e84dc52129d08e73c3d78f2803
- ...
- f866064fc6962b11c85221f3be57bc68d1d017151dc4a9d1b3aee5e06f83660b
- 970ee7b2a0c4697c2344b8217c0f63c310ac52d6b9bea9b265b5c2d27d007635
TSSJNvGrhPgWYx833cU8DRYCr6Ge6Q8s
- master_seed
- ending_hash
- hash
master_seed
and the hash
that have not yet been used are voluntarily withheld until the seed_pool
is taken out of service in order to avoid any prediction of hash
or seed
and therefore a possible draw alteration..Once all hash
have been generated, the seed_pool
is finally ready to be used. The previous one is disabled and the new one takes over; the previous master_seed
is now public and can be checked (see below).
Generation and use of a Seed
When a draw is requested on Pickaw, a hash
is removed from the top of the existing seed_pool
and generates a unique seed
that will be assigned and used for the draw.
hash
are consumed from the end of the seed_pool
to ensure that the next ones cannot be predicted to alter the prints (as a reminder, the hash
that have not yet been used are not publicly visible).Here are the steps for generating a seed
:
- The
hash
is converted to base 10 and then divided by the limit value of aseed
(6216) to keep only the rest of the division (this operation is also called modulo) - The value obtained is converted into
base62
, prefixed by as many zeros as necessary to produce a string of 16 characters: we therefore obtain theseed
seed
is saved and can now be used to give rise to the draw… and so on until the seed_pool
is taken out of service. - 199bd291b6a487bdcc2c2ee694fe33795ce68a7f98980f5b122850311c8b0c58 lidjXjrPQvOVTNcM
- dff3c4d48755ba4b5d502abeeaf634f641d648912ea0f2112a19994446ed2234 veBU6I7Kr7ATAk6l
- 054ef27ac47492d889f3ee68bbe31c5a748b1445d0c8d0c39f3434c9ab1563e9 lidjXjrPQvOVTNcM
- 3172b0dbd9355666b0dd60ca841066adde4d8bdae0123998ea0f936d2ae1ea2a EH5WZd5kvxgPp2Fc
- 0bebacec2587be7b59279dd0785ddf7d503879e84dc52129d08e73c3d78f2803 SJvamW7ILjC7hQEr
- ...
- f866064fc6962b11c85221f3be57bc68d1d017151dc4a9d1b3aee5e06f83660b unused
- 970ee7b2a0c4697c2344b8217c0f63c310ac52d6b9bea9b265b5c2d27d007635 unused
TSSJNvGrhPgWYx833cU8DRYCr6Ge6Q8s
- master_seed
- ending_hash
- hash
- Seed
hash
of the seed_pool
) until it was taken out of service. The other hash
are unused and have not resulted in the creation of seed
. Verification of draws
Now that you know how seed_pool
and seed
are generated, we come to the interesting and interactive part: how we prove that the winners come from the fruits of chance. A coincidence that you can check for yourself!
The verification can be done from any level of the Drawchain™ and in several different ways that we list below.
From the master_seed
To begin with, you can check that the master_seed
we use to generate the hash
of a seed_pool
is the one from Random.org using the link attached to the master_seed
directly from Drawchain™ or the Seed Pool in question.
seed_pool
from which the master_seed
belongs.From the seed_pool
Also, you can check at any time that the list of hash
generated has not been altered and follows the logic described above. To ensure this, we have created a JSFiddle available below to be able to reproduce our generation:
How to use it?
- Enter a
master_seed
(or ahash
of aseed_pool
) in the “Start hash” field - Enter the
ending_hash
(or a subsequenthash
) within the sameseed_pool
in the “End hash*” field - Click on the “Compute!” button
From the seed
Finally, the positions of the persons drawn can be checked at any time from the seed
as soon as a draw is completed. To ensure this, we have created a
JSFiddle available below to be able to reproduce the generation of positions:
How to use it?
- Enter the
seed
of the draw in the “Seed of the draw” field - Enter the number of contest entries in the “Number of entries” field
- Enter the number of winners to be drawn in the “Number of winners” field
- Click on the “Compute!” button