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.
The Drawchain™ governs all draws on Pickaw through links between seed pools.
Each day corresponds to a Seed Pool being at the origin of the seeds generated and used by the draws made the same day.
Each seed is unique and can be associated with a draw to produce and reproduce the process and outcome.
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
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
sha256: standardized and highly secure hash function.
base62: coding the information in 62 characters.
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!
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.
seed_pool therefore contains a list of all draws for a 24-hour period.
master_seed is then used to generate a list of
hash large enough to serve all draws over the lifetime of the
Here are the steps for generating the list of
sha256 to create the
hash #1 with
sha256 to create the
hash large enough
hash are therefore generated consecutively and depend on 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.
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
seed and therefore a possible draw alteration..
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).
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
hash is converted to base 10 and then divided by the limit value of a
seed (6216) to keep only the rest of the division (this operation is also called modulo)
base62, prefixed by as many zeros as necessary to produce a string of 16 characters: we therefore obtain the
base62. Which means it can be converted into a large number, and vice versa. Its decimal value (base 10) can therefore be between 0 (included) and 6216 (excluded), i.e. 4767240170682823533450263330816.
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.
We can see on this representation that 4 seeds were generated (from the last
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
Now that you know how
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.
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
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?
master_seed (or a
hash of a
seed_pool) in the "Start hash" field
ending_hash (or a subsequent
hash) within the same
seed_pool in the "End hash*" field
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?
seed of the draw in the "Seed of the draw" field
There you go, now the Drawchain™ and its mechanism, which alone took several months of work, have no more secrets for you! We hope these explanations have been clear and have not lost you.